From 8e963cbf12ebd83b3b0af0ba0ed5e4e7b614c567 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 --- reserve/request.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reserve/request.pl b/reserve/request.pl index 4df90a78a0..18f4943e58 100755 --- a/reserve/request.pl +++ b/reserve/request.pl @@ -551,7 +551,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.24.1 (Apple Git-126)