From 5257ce02964a378313188b2e7a091991730a7f70 Mon Sep 17 00:00:00 2001 From: Jacek Ablewicz Date: Wed, 16 Oct 2013 17:31:04 +0200 Subject: [PATCH] Bug 9224: Make acqui/finishreceive.pl Plack-compatible Under Plack/mod_perl wrapping, sub update_item() will become a closure, so after the 1st run it will retain it's own private instances of the following variables: $booksellerid, $datereceived, $unitprice, $rrp, $biblionumber. I.e., in case update_item() gets invoked 2nd+ time (inside the same process, but for different-subsequent receives) it may incorrectly flag the (old, wrong) biblionumber for Zebra reindexing, and erronously modify the current item[s] with the previously used (wrong) values. This simple patch should make acqui/finishreceive.pl Plack-compatible. Test plan: Test patched acqui/finishreceive.pl script (create and receive some orders w/ items, etc.). Ensure items are gettting added and/or modified correctly during receiving process. --- acqui/finishreceive.pl | 20 ++++++++------------ 1 files changed, 8 insertions(+), 12 deletions(-) diff --git a/acqui/finishreceive.pl b/acqui/finishreceive.pl index f9c8532..81c4f35 100755 --- a/acqui/finishreceive.pl +++ b/acqui/finishreceive.pl @@ -138,20 +138,16 @@ if ($quantityrec > $origquantityrec ) { } -update_item( $_ ) foreach GetItemnumbersFromOrder( $ordernumber ); - -print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoiceid=$invoiceid"); - -################################ End of script ################################ - -sub update_item { - my ( $itemnumber ) = @_; - - ModItem( { +ModItem( + { booksellerid => $booksellerid, dateaccessioned => $datereceived, price => $unitprice, replacementprice => $rrp, replacementpricedate => $datereceived, - }, $biblionumber, $itemnumber ); -} + }, + $biblionumber, + $_ +) foreach GetItemnumbersFromOrder($ordernumber); + +print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoiceid=$invoiceid"); -- 1.7.5.4