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 its 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.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Passes koha-qa.pl, works as advertised, no regressions found.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This commit is contained in:
Jacek Ablewicz 2013-10-16 17:31:04 +02:00 committed by Galen Charlton
parent 4927140966
commit 6dcc34c1b4
1 changed files with 8 additions and 12 deletions

View File

@ -153,20 +153,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");