From afd20c1bd49ec2f7638e073a74406453ae7d1bb1 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Fri, 3 Jun 2016 11:26:42 -0300 Subject: [PATCH] Bug 14048: Hook new rules into C4::Circulation This patch makes AddIssue and AddReturn use the new implementation The behaviour should respect the specification. Sponsored-by: DoverNet Sponsored-by: South-East Kansas Library System Sponsored-by: SWITCH Library Consortium Signed-off-by: Nick Clemens Signed-off-by: Jason Robb Signed-off-by: Jennifer Schmidt Signed-off-by: Margaret Thrasher --- C4/Circulation.pm | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 2cb0930..7ceac6b 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -53,6 +53,8 @@ use Koha::Patron::Debarments; use Koha::Database; use Koha::Libraries; use Koha::Holds; +use Koha::RefundLostItemFeeRule; +use Koha::RefundLostItemFeeRules; use Carp; use List::MoreUtils qw( uniq ); use Scalar::Util qw( looks_like_number ); @@ -1450,12 +1452,17 @@ sub AddIssue { UpdateTotalIssues( $item->{'biblionumber'}, 1 ); } - ## If item was lost, it has now been found, reverse any list item charges if necessary. - if ( $item->{'itemlost'} ) { - if ( C4::Context->preference('RefundLostItemFeeOnReturn') ) { - _FixAccountForLostAndReturned( $item->{'itemnumber'}, undef, $item->{'barcode'} ); - } + ## If item was lost, it has now been found, reverse any list item charges if necessary. + if ( $item->{'itemlost'} ) { + if ( Koha::RefundLostItemFeeRules->should_refund( + current_branch => C4::Context->userenv->{ branch }, + patron_branch => $borrower->{ branchcode }, + item_home_branch => $item->{ homebranch }, + item_holding_branch => $item->{ holdingbranch } + ) ) { + _FixAccountForLostAndReturned( $item->{'itemnumber'}, undef, $item->{'barcode'} ); } + } ModItem( { @@ -2131,9 +2138,16 @@ sub AddReturn { if ( $item->{'itemlost'} ) { $messages->{'WasLost'} = 1; - if ( C4::Context->preference('RefundLostItemFeeOnReturn' ) ) { - _FixAccountForLostAndReturned($item->{'itemnumber'}, $borrowernumber, $barcode); # can tolerate undef $borrowernumber - $messages->{'LostItemFeeRefunded'} = 1; + if ( $item->{'itemlost'} ) { + if ( Koha::RefundLostItemFeeRules->should_refund( + current_branch => C4::Context->userenv->{ branch }, + patron_branch => $borrower->{ branchcode }, + item_home_branch => $item->{ homebranch }, + item_holding_branch => $item->{ holdingbranch } + ) ) { + _FixAccountForLostAndReturned( $item->{'itemnumber'}, $borrowernumber, $barcode ); + $messages->{'LostItemFeeRefunded'} = 1; + } } } -- 2.9.0