@@ -, +, @@ --- C4/Reserves.pm | 11 +---------- Koha/CirculationRules.pm | 9 ++++++--- admin/smart-rules.pl | 4 ++-- 3 files changed, 9 insertions(+), 15 deletions(-) --- a/C4/Reserves.pm +++ a/C4/Reserves.pm @@ -411,19 +411,10 @@ sub CanItemBeReserved { } # Now we need to check hold limits by patron category - my $rule = Koha::CirculationRules->find( + my $rule = Koha::CirculationRules->get_effective_rule( { categorycode => $borrower->{categorycode}, branchcode => $branchcode, - itemtype => undef, - rule_name => 'max_holds', - } - ); - $rule ||= Koha::CirculationRules->find( - { - categorycode => $borrower->{categorycode}, - branchcode => undef,, - itemtype => undef, rule_name => 'max_holds', } ); --- a/Koha/CirculationRules.pm +++ a/Koha/CirculationRules.pm @@ -53,9 +53,9 @@ sub get_effective_rule { my $search_params; $search_params->{rule_name} = $rule_name; - $search_params->{categorycode} = defined $categorycode ? { 'in' => [ $categorycode, '*' ] } : undef; - $search_params->{itemtype} = defined $itemtype ? { 'in' => [ $itemtype, '*' ] } : undef; - $search_params->{branchcode} = defined $branchcode ? { 'in' => [ $branchcode, '*' ] } : undef; + $search_params->{categorycode} = defined $categorycode ? [ $categorycode, undef ] : undef; + $search_params->{itemtype} = defined $itemtype ? [ $itemtype, undef ] : undef; + $search_params->{branchcode} = defined $branchcode ? [ $branchcode, undef ] : undef; my $rule = $self->search( $search_params, @@ -94,6 +94,9 @@ sub set_rule { my $rule_name = $params->{rule_name}; my $rule_value = $params->{rule_value}; + for my $v ( $branchcode, $categorycode, $itemtype ) { + $v = undef if $v and $v eq '*'; + } my $rule = $self->search( { rule_name => $rule_name, --- a/admin/smart-rules.pl +++ a/admin/smart-rules.pl @@ -267,7 +267,7 @@ elsif ($op eq "set-branch-defaults") { Koha::CirculationRules->set_rule( { branchcode => $branch, - categorycode => '*', + categorycode => undef, itemtype => undef, rule_name => 'max_holds', rule_value => $max_holds, @@ -344,7 +344,7 @@ elsif ($op eq "add-branch-cat") { Koha::CirculationRules->set_rule( { - branchcode => '*', + branchcode => undef, categorycode => $categorycode, itemtype => undef, rule_name => 'max_holds', --