From deba3f003213dc589a0e233290965a8ae15f487c Mon Sep 17 00:00:00 2001 From: Srdjan Jankovic Date: Tue, 20 Dec 2011 14:56:51 +1300 Subject: [PATCH] bug_5473: Update items when receiving shipments Signed-off-by: Nicole C. Engard 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. Signed-off-by: Paul Poulain (cherry picked from commit 92ca5a13e57f6254a4f6b504fbd3f68d4709c6a3) Signed-off-by: Chris Nighswonger --- 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 7127f24ba5..ef95ead368 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 cf716ab0a6..72fdf8ea19 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 71b13d60d0..cf7ceeec04 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"); -- 2.39.5