From ee381ca702b089e1d3116bc0ec4c873913528792 Mon Sep 17 00:00:00 2001 From: Julian Maurice Date: Mon, 27 Feb 2023 10:05:44 +0100 Subject: [PATCH] Bug 33074: Take ReservesControlBranch into account in opac-reserve.pl Test plan: 1. Set system preferences: - Disable OPACAllowUserToChooseBranch - Set ReservesControlBranch to "item's home library" - Enable UseBranchTransferLimits - Set BranchTransferLimitsType to "item type" - Enable canreservefromotherbranches - Disable IndependantBranches 2. Create two libraries: ITEM_LIB and PATRON_LIB 3. Set circulation rules: - Remove all circulation rules (DELETE FROM circulation_rules) - Set a default rule that allow some holds and with "OPAC item level holds" = "force". Allow "on shelf" holds for easier testing. - In the rules for ITEM_LIB, under "Default checkout, hold and return policy", - set "Hold policy" to "From any library" - set "Hold pickup library match" to "item's home library" - In the rules for PATRON_LIB, under "Default checkout, hold and return policy", - set "Hold policy" to "From any library", - set "Hold pickup library match" to "any library" 4. In "Library transfer limits" disable all transfers from ITEM_LIB to PATRON_LIB for an item type (let's say "BOOK") 5. Create a biblio with an item: - item type must be the same as in previous step ("BOOK") - home branch and holding branch must be ITEM_LIB 6. Create a patron at PATRON_LIB, give it a password so it can log in. 7. Go to OPAC, and login with this patron 8. Try to place a hold for the new item. You should be allowed to place a hold, but when doing it, no holds will be created. 9. Apply patch, restart Koha 10. Try to place a hold for the new item. This time the hold should be created Signed-off-by: Jessie Zairo Signed-off-by: Marcel de Rooy [EDIT] Merged tidy patch and switch to Koha::Policy::Holds here. Signed-off-by: Tomas Cohen Arazi --- opac/opac-reserve.pl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/opac/opac-reserve.pl b/opac/opac-reserve.pl index 38150b04df..98c3340ab3 100755 --- a/opac/opac-reserve.pl +++ b/opac/opac-reserve.pl @@ -230,8 +230,9 @@ if ( $query->param('place_reserve') ) { my $item = $itemNum ? Koha::Items->find( $itemNum ) : undef; # When choosing a specific item, the default pickup library should be dictated by the default hold policy if ( ! C4::Context->preference("OPACAllowUserToChooseBranch") && $item ) { - my $type = $item->effective_itemtype; - my $rule = GetBranchItemRule( $patron->branchcode, $type ); + my $type = $item->effective_itemtype; + my $reserves_control_branch = Koha::Policy::Holds->holds_control_library( $item, $patron ); + my $rule = GetBranchItemRule( $reserves_control_branch, $type ); if ( $rule->{hold_fulfillment_policy} eq 'any' || $rule->{hold_fulfillment_policy} eq 'patrongroup' ) { $branch = $patron->branchcode; -- 2.39.5