From: Srdjan Jankovic Date: Tue, 20 Dec 2011 01:56:51 +0000 (+1300) Subject: bug_5473: Update items when receiving shipments X-Git-Tag: v3.08.00~608 X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=commitdiff_plain;h=92ca5a13e57f6254a4f6b504fbd3f68d4709c6a3;p=koha-ffzg.git 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 --- diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm index 5cf88ec089..de1df43309 100644 --- a/C4/Acquisition.pm +++ b/C4/Acquisition.pm @@ -926,7 +926,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");