[Patches] [PATCH] [SIGNED-OFF] bug_5473: Update items when receiving shipments

koha-patchbot at kohaaloha.com koha-patchbot at kohaaloha.com
Wed Dec 21 03:40:03 NZDT 2011


From: Srdjan Jankovic <srdjan at catalyst.net.nz>
Date: Tue, 20 Dec 2011 14:56:51 +1300
Subject: [PATCH] [SIGNED-OFF] bug_5473: Update items when receiving shipments

Signed-off-by: Nicole C. Engard <nengard at bywatersolutions.com>

Tested by recieving multiple items with the AcqCreateItem
preference set to 'placing and order' and 'receiving an item'
In both cases the pricing and vendor is brought over to the
item record so I'm signing off.
---
 C4/Acquisition.pm      |    1 -
 C4/Items.pm            |    3 +--
 acqui/finishreceive.pl |   46 +++++++++++++++++++++++-----------------------
 3 files changed, 24 insertions(+), 26 deletions(-)

diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm
index 7127f24..ef95ead 100644
--- a/C4/Acquisition.pm
+++ b/C4/Acquisition.pm
@@ -923,7 +923,6 @@ sub NewOrder {
 =cut
 
 sub NewOrderItem {
-    #my ($biblioitemnumber,$ordernumber, $biblionumber) = @_;
     my ($itemnumber, $ordernumber)  = @_;
     my $dbh = C4::Context->dbh;
     my $query = qq|
diff --git a/C4/Items.pm b/C4/Items.pm
index 8802a4c..a3616eb 100644
--- a/C4/Items.pm
+++ b/C4/Items.pm
@@ -458,8 +458,7 @@ sub ModItemFromMarc {
 
 =head2 ModItem
 
-  ModItem({ column => $newvalue }, $biblionumber, 
-                  $itemnumber[, $original_item_marc]);
+  ModItem({ column => $newvalue }, $biblionumber, $itemnumber);
 
 Change one or more columns in an item record and update
 the MARC representation of the item.
diff --git a/acqui/finishreceive.pl b/acqui/finishreceive.pl
index 71b13d6..55a9977 100755
--- a/acqui/finishreceive.pl
+++ b/acqui/finishreceive.pl
@@ -54,28 +54,11 @@ my $error_url_str;
 my $ecost = $input->param('ecost');
 my $note = $input->param("note");
 
-my %tplorder = ( 'quantity'                  =>     $input->param('quantity') || '',
-                             'quantityreceived'   =>     $input->param('quantityrec') || '',
-                             'notes'                      =>      $input->param("note") || '',
-                             'rrp'                          =>      $input->param('rrp') || '',
-                             'ecost'                      =>      $input->param('ecost') || '',
-                             'unitprice'                =>      $input->param('cost') || '',
-                     );
-my $order = GetOrder($ordernumber);
-if ( any { $order->{$_} ne $tplorder{$_} } qw(quantity quantityreceived notes rrp ecost unitprice) ) {
-    $order->{quantity} = $tplorder{quantity} if $tplorder{quantity};
-    $order->{quantityreceived} = $tplorder{quantityreceived} if $tplorder{quantityreceived};
-    $order->{notes} = $tplorder{notes} if $tplorder{notes};
-    $order->{rrp} = $tplorder{rrp} if $tplorder{rrp};
-    $order->{ecost} = $tplorder{ecost} if $tplorder{ecost};
-    $order->{unitprice} = $tplorder{unitprice} if $tplorder{unitprice};
-    ModOrder($order);
-}
-
 #need old recievedate if we update the order, parcel.pl only shows the right parcel this way FIXME
 if ($quantityrec > $origquantityrec ) {
     # now, add items if applicable
     if (C4::Context->preference('AcqCreateItem') eq 'receiving') {
+
         my @tags         = $input->param('tag');
         my @subfields    = $input->param('subfield');
         my @field_values = $input->param('field_value');
@@ -105,13 +88,30 @@ if ($quantityrec > $origquantityrec ) {
                                     $itemhash{$item}->{'ind_tag'},
                                     $itemhash{$item}->{'indicator'},'ITEM');
             my $record=MARC::Record::new_from_xml($xml, 'UTF-8');
-            my ($biblionumber,$bibitemnum,$itemnumber) = AddItemFromMarc($record,$biblionumber);
+            my (undef,$bibitemnum,$itemnumber) = AddItemFromMarc($record,$biblionumber);
+            NewOrderItem($itemnumber, $ordernumber);
         }
     }
     
     # save the quantity received.
-	if( $quantityrec > 0 ) {
-    	$datereceived = ModReceiveOrder($biblionumber,$ordernumber, $quantityrec ,$user,$unitprice,$invoiceno,$freight,$replacement,undef,$datereceived);
-	}
+   	$datereceived = ModReceiveOrder($biblionumber,$ordernumber, $quantityrec ,$user,$unitprice,$invoiceno,$freight,$replacement,undef,$datereceived);
+}
+
+update_item( $_ ) foreach GetItemnumbersFromOrder( $ordernumber );
+
+print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoice=$invoiceno&supplierid=$supplierid&freight=$freight&gst=$gst&datereceived=$datereceived$error_url_str");
+
+################################ End of script ################################
+
+sub update_item {
+    my ( $itemnumber ) = @_;
+    warn "AAA $itemnumber";
+
+    ModItem( {
+        booksellerid         => $supplierid,
+        dateaccessioned      => $datereceived,
+        price                => $unitprice,
+        replacementprice     => $replacement,
+        replacementpricedate => $datereceived,
+    }, $biblionumber, $itemnumber );
 }
-    print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoice=$invoiceno&supplierid=$supplierid&freight=$freight&gst=$gst&datereceived=$datereceived$error_url_str");
-- 
1.7.2.3


More information about the Patches mailing list