From 95e2754af6a2dbd5f042a1c3504488f5de8c8d23 Mon Sep 17 00:00:00 2001 From: Jacek Ablewicz Date: Sat, 14 Dec 2013 12:07:11 +0100 Subject: [PATCH] Bug 9948: fix creation/updating of items when partially receiving an order Problem summary: when doing partial receives for the given order - 1) if AcqCreateItem is set to 'ordering', various item data (price, dateaccessioned, replacementprice, replacementpricedate) are getting erroneously updated on the wrong (yet to be received == not the ones being currently received) item records 2) if AcqCreateItem is set to 'receiving', newly received item records are being created without the aforementioned fields set to the proper values This (trivial) patch should deal with both cases, hopefully without breaking enything else. To test: - apply the patch, - create some orders with 2+ quantity - test partial & non-partial receives for those orders - ensure the received item records are getting modified (for AcqCreateItem set to 'ordering') and/or created (for AcqCreateItem set to 'receiving') correctly for both partial and non-partial receives - receiving orders with quantity = 1 / receiving orders in non-partial mode should be still working fine for 1) & 2) scenarios (i.e., AcqCreateItem set to 'ordering' / AcqCreateItem set to 'receiving') Signed-off-by: Nicole C. Engard Works as I'd expect now! Awesome patch. Signed-off-by: Kyle M Hall Signed-off-by: Katrin Fischer Passes all tests and QA script. Also: t/db_dependent/Acquisition/ t/db_dependent/Acquisition.t Created 2 orders with 3 items each for both settings of AcqCreateItem (on receive, on order) with the patches applied. No regressions found. Closed baskets and received shipments for each, with AcqCreateItem set according to how the order was created. First recreated the problem without the patches, reloaded database and confirmed that the patch fixes it. No problems found. Signed-off-by: Galen Charlton --- acqui/finishreceive.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/acqui/finishreceive.pl b/acqui/finishreceive.pl index ea9c9a23c4..aeb4394453 100755 --- a/acqui/finishreceive.pl +++ b/acqui/finishreceive.pl @@ -56,6 +56,7 @@ my $rrp = $input->param('rrp'); my $note = $input->param("note"); my $bookfund = $input->param("bookfund"); my $order = GetOrder($ordernumber); +my $new_ordernumber = $ordernumber; #need old recievedate if we update the order, parcel.pl only shows the right parcel this way FIXME if ($quantityrec > $origquantityrec ) { @@ -97,7 +98,6 @@ if ($quantityrec > $origquantityrec ) { } } - my $new_ordernumber = $ordernumber; # save the quantity received. if ( $quantityrec > 0 ) { ($datereceived, $new_ordernumber) = ModReceiveOrder( @@ -163,6 +163,6 @@ ModItem( }, $biblionumber, $_ -) foreach GetItemnumbersFromOrder($ordernumber); +) foreach GetItemnumbersFromOrder($new_ordernumber); print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoiceid=$invoiceid"); -- 2.39.5