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 <tomascohen@theke.io>
This commit is contained in:
David Cook 2022-08-08 05:07:47 +00:00 committed by Tomas Cohen Arazi
parent d673d7efdc
commit 38ef4f635d
Signed by: tomascohen
GPG key ID: 0A272EA1B2F3C15F

View file

@ -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