From 0401d13d2c2ae8335a95ea3dade63fd719ce8b47 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Joonas=20Kylm=C3=A4l=C3=A4?= Date: Tue, 28 Jan 2020 15:05:15 +0000 Subject: [PATCH] Bug 18936: (follow-up) Make possible to have unlimited value for holds_per_day MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Without this it is not possible to make for a specific patron category or itemtype a more specific unlimited holds_per_day rule if you have a catch all rule (categorycode = *, itemtype = *) with limited holds_per_day value. Signed-off-by: Minna Kivinen Signed-off-by: Joonas Kylmälä Signed-off-by: Martin Renvoize --- C4/Reserves.pm | 13 +++++++------ admin/smart-rules.pl | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 86ff1faebb..db910a0c04 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -393,7 +393,8 @@ sub CanItemBeReserved { biblionumber => $item->biblionumber, } ); - if ( $holds->count() >= $holds_per_record ) { + if ( defined $holds_per_record && $holds_per_record ne '' + && $holds->count() >= $holds_per_record ) { return { status => "tooManyHoldsForThisRecord", limit => $holds_per_record }; } @@ -402,10 +403,9 @@ sub CanItemBeReserved { reservedate => dt_from_string->date }); - if ( defined $holds_per_day && - ( ( $holds_per_day > 0 && $today_holds->count() >= $holds_per_day ) - or ( $holds_per_day == 0 ) ) - ) { + if ( defined $holds_per_day && $holds_per_day ne '' + && $today_holds->count() >= $holds_per_day ) + { return { status => 'tooManyReservesToday', limit => $holds_per_day }; } @@ -436,7 +436,8 @@ sub CanItemBeReserved { } # we check if it's ok or not - if ( $reservecount >= $allowedreserves ) { + if ( defined $allowedreserves && $allowedreserves ne '' + && $reservecount >= $allowedreserves ) { return { status => 'tooManyReserves', limit => $allowedreserves }; } diff --git a/admin/smart-rules.pl b/admin/smart-rules.pl index ceb4a9be5b..75ed5164ca 100755 --- a/admin/smart-rules.pl +++ b/admin/smart-rules.pl @@ -277,7 +277,7 @@ elsif ($op eq 'add') { my $holds_per_record = $input->param('holds_per_record'); my $holds_per_day = $input->param('holds_per_day'); $holds_per_day =~ s/\s//g; - $holds_per_day = undef if $holds_per_day !~ /^\d+/; + $holds_per_day = '' if $holds_per_day !~ /^\d+/; my $onshelfholds = $input->param('onshelfholds') || 0; $maxissueqty =~ s/\s//g; $maxissueqty = '' if $maxissueqty !~ /^\d+/; -- 2.39.5