From cfbb598cd6c212c9583f4ecfd2990abefa4493f2 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 http://bugs.koha-community.org/show_bug.cgi?id=7189 --- reserve/renewscript.pl | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/reserve/renewscript.pl b/reserve/renewscript.pl index ad03d88..c7e021c 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 Koha::DateUtils; @@ -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); -- 1.7.2.5