</form>
[% ELSIF NOT noitems %]
-[% IF ( exceeded_maxreserves || alreadyreserved || none_available || alreadypossession || ageRestricted ) %]
+[% IF ( exceeded_maxreserves || exceeded_holds_per_record || alreadyreserved || none_available || alreadypossession || ageRestricted ) %]
<div class="dialog alert">
[% UNLESS ( multi_hold ) %]
<ul>
[% IF ( exceeded_maxreserves ) %]
<li><strong>Too many holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> can only place a maximum of [% maxreserves %] total holds.</li>
+ [% ELSIF ( exceeded_holds_per_record ) %]
+ <li><strong>Too many holds for this record: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> can only place a maximum of [% max_holds_for_record %] hold(s) on this record.</li>
[% ELSIF ( alreadypossession ) %]
<li> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> <strong>is already in possession</strong> of one item</lie
[% ELSIF ( alreadyreserved ) %]
<h3>Cannot place hold on some items</h3>
[% IF ( exceeded_maxreserves ) %]
<li><strong>Too many holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> can place [% new_reserves_allowed %] of the requested [% new_reserves_count %] holds for a maximum of [% maxreserves %] total holds.</li>
+ [% ELSIF ( exceeded_holds_per_record ) %]
+ [% FOREACH biblioloo IN biblioloop %]
+ [% IF (biblioloo.tooManyHoldsForThisRecord) %]
+ <li><strong>Too many holds for <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber %]"> [% biblioloo.title %]</a>: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> can only place a maximum of [% max_holds_for_record %] hold(s) on this record.</li>
+ [% END %]
+ [% END %]
[% END %]
[% END %]
<input type="hidden" name="alreadyreserved" value="[% alreadyreserved %]" />
</li>
- [% IF max_holds_for_record > 1 %]
+ [% IF remaining_holds_for_record > 1 %]
[% SET count = 1 %]
<li>
<label for="holds_to_place_count">Holds to place (count)</label>
<select name="holds_to_place_count" id="holds_to_place_count">
- [% WHILE count <= max_holds_for_record %]
+ [% WHILE count <= remaining_holds_for_record %]
<option value="[% count %]">[% count %]</option>
[% SET count = count + 1 %]
[% END %]
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');
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;
# 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
$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 );