From 11feb7ad188631791f3d4227271ae90c0c0e2f81 Mon Sep 17 00:00:00 2001 From: David Cook Date: Mon, 8 Aug 2022 05:07:47 +0000 Subject: [PATCH] Bug 31303: Prevent fatal errors when missing "waiting hold cancellation" rule This patch removes method chaining which didn't account for the fact that the "waiting hold cancellation" circulation rule might not exist. Test plan: 0. Apply patch and koha-plack --restart kohadev 1. Go to http://localhost:8081/cgi-bin/koha/reserve/request.pl?biblionumber=29 2. Search for "koha" user 3. Choose the specific item and click "Place hold" 4. Check in "39999000001310" and click "Confirm hold (Y)" 5. Go to http://localhost:8080/cgi-bin/koha/opac-user.pl#opac-user-holds 6. Rejoice in Koha not exploding 7. Go to http://localhost:8081/cgi-bin/koha/admin/smart-rules.pl 8. Go to "Default waiting hold cancellation policy" and change "Cancellation allowed" to "Yes" and click "Add" 9. Go to http://localhost:8080/cgi-bin/koha/opac-user.pl#opac-user-holds 10. Note the "Cancel" button appears 11. Rejoice again that the "Cancel" button appeared Signed-off-by: Tomas Cohen Arazi --- Koha/Hold.pm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Koha/Hold.pm b/Koha/Hold.pm index 63e30970cad..c662a08a6c5 100644 --- a/Koha/Hold.pm +++ b/Koha/Hold.pm @@ -460,14 +460,15 @@ sub cancellation_requestable_from_opac { $controlbranch = $item->homebranch; } - return Koha::CirculationRules->get_effective_rule( + my $rule = Koha::CirculationRules->get_effective_rule( { categorycode => $patron->categorycode, itemtype => $item->itype, branchcode => $controlbranch, rule_name => 'waiting_hold_cancellation', } - )->rule_value ? 1 : 0; + ); + return ( $rule && $rule->rule_value ) ? 1 : 0; } =head3 is_at_destination -- 2.34.1