@@ -, +, @@
---
koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt | 14 +++++++++++---
reserve/request.pl | 11 +++++++++--
2 files changed, 20 insertions(+), 5 deletions(-)
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt
@@ -291,7 +291,7 @@ function checkMultiHold() {
[% ELSIF NOT noitems %]
-[% IF ( exceeded_maxreserves || alreadyreserved || none_available || alreadypossession || ageRestricted ) %]
+[% IF ( exceeded_maxreserves || exceeded_holds_per_record || alreadyreserved || none_available || alreadypossession || ageRestricted ) %]
[% UNLESS ( multi_hold ) %]
@@ -299,6 +299,8 @@ function checkMultiHold() {
[% IF ( exceeded_maxreserves ) %]
Too many holds: [% borrowerfirstname %] [% borrowersurname %] can only place a maximum of [% maxreserves %] total holds.
+ [% ELSIF ( exceeded_holds_per_record ) %]
+ Too many holds for this record: [% borrowerfirstname %] [% borrowersurname %] can only place a maximum of [% max_holds_for_record %] hold(s) on this record.
[% ELSIF ( alreadypossession ) %]
[% borrowerfirstname %] [% borrowersurname %] is already in possession of one itemCannot place hold on some items
[% IF ( exceeded_maxreserves ) %]
Too many holds: [% borrowerfirstname %] [% borrowersurname %] can place [% new_reserves_allowed %] of the requested [% new_reserves_count %] holds for a maximum of [% maxreserves %] total holds.
+ [% ELSIF ( exceeded_holds_per_record ) %]
+ [% FOREACH biblioloo IN biblioloop %]
+ [% IF (biblioloo.tooManyHoldsForThisRecord) %]
+ Too many holds for [% biblioloo.title %] : [% borrowerfirstname %] [% borrowersurname %] can only place a maximum of [% max_holds_for_record %] hold(s) on this record.
+ [% END %]
+ [% END %]
[% END %]
[% END %]
@@ -444,12 +452,12 @@ function checkMultiHold() {
- [% IF max_holds_for_record > 1 %]
+ [% IF remaining_holds_for_record > 1 %]
[% SET count = 1 %]
Holds to place (count)
- [% WHILE count <= max_holds_for_record %]
+ [% WHILE count <= remaining_holds_for_record %]
[% count %]
[% SET count = count + 1 %]
[% END %]
--- a/reserve/request.pl
+++ a/reserve/request.pl
@@ -83,6 +83,7 @@ my $messageborrower;
my $warnings;
my $messages;
my $exceeded_maxreserves;
+my $exceeded_holds_per_record;
my $date = output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 });
my $action = $input->param('action');
@@ -226,6 +227,10 @@ foreach my $biblionumber (@biblionumbers) {
elsif ( $canReserve eq 'tooManyReserves' ) {
$exceeded_maxreserves = 1;
}
+ elsif ( $canReserve eq 'tooManyHoldsForThisRecord' ) {
+ $exceeded_holds_per_record = 1;
+ $biblioloopiter{$canReserve} = 1;
+ }
elsif ( $canReserve eq 'ageRestricted' ) {
$template->param( $canReserve => 1 );
$biblioloopiter{$canReserve} = 1;
@@ -255,9 +260,10 @@ foreach my $biblionumber (@biblionumbers) {
# For a librarian to be able to place multiple record holds for a patron for a record,
# we must find out what the maximum number of holds they can place for the patron is
my $max_holds_for_record = GetMaxPatronHoldsForRecord( $borrowerinfo->{borrowernumber}, $biblionumber );
- $max_holds_for_record = $max_holds_for_record - $holds->count();
- $biblioloopiter{max_holds_for_record} = $max_holds_for_record;
+ my $remaining_holds_for_record = $max_holds_for_record - $holds->count();
+ $biblioloopiter{remaining_holds_for_record} = $max_holds_for_record;
$template->param( max_holds_for_record => $max_holds_for_record );
+ $template->param( remaining_holds_for_record => $remaining_holds_for_record );
}
# Check to see if patron is allowed to place holds on records where the
@@ -634,6 +640,7 @@ foreach my $biblionumber (@biblionumbers) {
$template->param( biblioloop => \@biblioloop );
$template->param( biblionumbers => $biblionumbers );
$template->param( exceeded_maxreserves => $exceeded_maxreserves );
+$template->param( exceeded_holds_per_record => $exceeded_holds_per_record );
if ($multihold) {
$template->param( multi_hold => 1 );
--