From 41abb100c3d3e5cf97473abf06337e49f9b44710 Mon Sep 17 00:00:00 2001 From: Matthias Meusburger Date: Wed, 17 Mar 2021 14:14:25 +0100 Subject: [PATCH] Bug 30118: Make holds_block_checkin in SIP behave like in Koha interface. In koha interface, a warning is displayed when an item on hold is returned only if the return is for this specific item. This patch does the same in SIP: the return is blocked when holds_block_checkin is enabled and there is a hold on a specific item and this is the very item being returned. Test plan: The following behavior is expected in SIP: - An item is returned, and there is a reservation on record-level: block - An item is returned, and there is a reservation on this very item: block - An item is returned, and there is a reservation on another item: allow Signed-off-by: Sonia Signed-off-by: Kyle M Hall Signed-off-by: Fridolin Somers Signed-off-by: Kyle M Hall --- C4/SIP/ILS/Transaction/Checkin.pm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/C4/SIP/ILS/Transaction/Checkin.pm b/C4/SIP/ILS/Transaction/Checkin.pm index a4e09304ac..bba433415e 100644 --- a/C4/SIP/ILS/Transaction/Checkin.pm +++ b/C4/SIP/ILS/Transaction/Checkin.pm @@ -13,7 +13,7 @@ use C4::SIP::ILS::Transaction; use C4::Circulation qw( AddReturn LostItem ); use C4::Items qw( ModItemTransfer ); -use C4::Reserves qw( ModReserve ModReserveAffect ); +use C4::Reserves qw( ModReserve ModReserveAffect CheckReserves ); use Koha::DateUtils qw( dt_from_string ); use Koha::Items; @@ -87,7 +87,14 @@ sub do_checkin { $messages->{additional_materials} = 1; } - my $checkin_blocked_by_holds = $holds_block_checkin && $item->biblio->holds->count; + my $reserved; + my $lookahead = C4::Context->preference('ConfirmFutureHolds'); #number of days to look for future holds + my ($resfound, $resrec, undef) = C4::Reserves::CheckReserves( $item->itemnumber, undef, $lookahead ) unless ( $item->withdrawn ); + if ( $resfound eq "Reserved") { + $reserved = 1; + } + + my $checkin_blocked_by_holds = $holds_block_checkin && $reserved; ( $return, $messages, $issue, $borrower ) = AddReturn( $barcode, $branch, undef, $return_date ) -- 2.39.5