From e0ec375ee31270a8ee123e116355086ad58fa36d Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 11 Nov 2020 14:55:27 +0100 Subject: [PATCH] Bug 26990: (bug 22284 follow-up) Prevent hold to be placed if cannot be transferred There is a missing parameter to CanItemBeReserved, we need to know if the hold can be placed at a given pickup library. Test plan: 1 - Set preferences: UseBranchTransferLimits: enforce BranchTransferLimitsType: itype AllowHoldPolicyOverride: Don't allow 2 - Set Centerville 'Book' items to not be allowed to transfer to any other library 3 - Make sure Hold policy is set to 'any library' 4 - Find a record with a Centerville item and other items 5 - Attempt to place an item level hold on the Centerville item (with a pickup library different than Centerville) => Without this patch you are taken to the holds list, but your hold is not placed Nothing indicates why hold has failed => With this patch you cannot select the item from Centerville "Cannot be transferred to pickup library" Signed-off-by: David Nind Signed-off-by: Kyle M Hall Signed-off-by: Jonathan Druart (cherry picked from commit fbd0bbf98f574a7eb804673978a198eea6fdd798) Signed-off-by: Lucas Gass --- reserve/request.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reserve/request.pl b/reserve/request.pl index 5b050ce02b..1d5e59065b 100755 --- a/reserve/request.pl +++ b/reserve/request.pl @@ -556,7 +556,7 @@ foreach my $biblionumber (@biblionumbers) { $item->{'holdallowed'} = $branchitemrule->{'holdallowed'}; - my $can_item_be_reserved = CanItemBeReserved( $patron->borrowernumber, $itemnumber )->{status}; + my $can_item_be_reserved = CanItemBeReserved( $patron->borrowernumber, $itemnumber, $pickup )->{status}; $item->{not_holdable} = $can_item_be_reserved unless ( $can_item_be_reserved eq 'OK' ); $item->{item_level_holds} = Koha::CirculationRules->get_opacitemholds_policy( { item => $item_object, patron => $patron } ); -- 2.39.5