From a2510b9e594e8fc752d7717c2b6e532e7246efbd Mon Sep 17 00:00:00 2001 From: David Cook Date: Tue, 17 Jul 2012 18:30:13 +1000 Subject: [PATCH] Bug 8455 - Check ins processed through "Check Out" tab of the Patron Record ignore Circulation System Preferences If you check-in an item through the "Check Out" tab of the Patron Record, the return/check-in ignores the "InProcessingToShelvingCart" and "ReturnToShelvingCart" circulation system preferences. Or rather, there just isn't any logic to handle them in the renewscript.pl file. I'm pretty much just bringing the code straight across from returns.pl, although some minor changes need to be made due to context. Both system preferences are important to include, since you can check-out an in processing item to a patron. While a regular check-in will clear the in processing status, a check-in through the Patron module will cause the item to have its status returned to "In Processing" rather than going to "Shelving Cart", if the preference is set, of course. To test the scenario, turn on one of (or both of) these settings and try checking books in through the Circulation module and the Patron module. Before the patch, you will see that only the Circulation module will change the shelving location. After the patch, you should see identical behaviour. Signed-off-by: Kyle M Hall Signed-off-by: Chris Cormack (cherry picked from commit 8da4f376b4bdd66df966060536ee80adb672a643) Signed-off-by: Jared Camins-Esakov --- reserve/renewscript.pl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/reserve/renewscript.pl b/reserve/renewscript.pl index f4c7fb4125..df0b6a3080 100755 --- a/reserve/renewscript.pl +++ b/reserve/renewscript.pl @@ -25,6 +25,8 @@ use strict; use warnings; use CGI; use C4::Circulation; +use C4::Context; +use C4::Items; use C4::Auth; use URI::Escape; use C4::Dates qw/format_date_in_iso/; @@ -91,6 +93,26 @@ foreach my $itemno (@data) { my $failedreturn = q{}; foreach my $barcode (@barcodes) { # check status before renewing issue + + #System Preference Handling During Check-in In Patron Module + my $itemnumber; + $itemnumber = GetItemnumberFromBarcode($barcode); + if ($itemnumber) { + if ( C4::Context->preference("InProcessingToShelvingCart") ) { + my $item = GetItem( $itemnumber ); + if ( $item->{'location'} eq 'PROC' ) { + $item->{'location'} = 'CART'; + ModItem( $item, $item->{'biblionumber'}, $item->{'itemnumber'} ); + } + } + + if ( C4::Context->preference("ReturnToShelvingCart") ) { + my $item = GetItem( $itemnumber ); + $item->{'location'} = 'CART'; + ModItem( $item, $item->{'biblionumber'}, $item->{'itemnumber'} ); + } + } + my ( $returned, $messages, $issueinformation, $borrower ) = AddReturn($barcode, $branch, $exemptfine); $failedreturn.="&failedreturn=$barcode" unless ($returned); -- 2.39.5