diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt index 3884124a9c..37f7deb4bb 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt @@ -471,7 +471,7 @@ [% END %] - [% IF ( no_reserves_allowed || exceeded_maxreserves || exceeded_holds_per_record || alreadyreserved || none_available || alreadypossession || ageRestricted || recall ) %] + [% IF ( no_reserves_allowed || exceeded_maxreserves || exceeded_holds_per_record || alreadyreserved || none_available || none_available_override || alreadypossession || ageRestricted || recall ) %]
[% UNLESS ( multi_hold ) %] @@ -489,7 +489,7 @@
  • [% INCLUDE 'patron-title.inc' patron => patron no_title => 1 no_cardnumber => 1 hide_patron_infos_if_needed => 1 %] already has a hold on this item.
  • [% ELSIF ( ageRestricted ) %]
  • Age restricted
  • - [% ELSIF ( none_available ) %] + [% ELSIF ( none_available || none_available_override ) %]
  • No items are available to be placed on hold.
  • [% ELSIF ( maxreserves ) %]
  • Too many holds: [% INCLUDE 'patron-title.inc' patron => patron no_title => 1 no_cardnumber => 1 hide_patron_infos_if_needed => 1 no_title => 1 no_cardnumber => 1 hide_patron_infos_if_needed => 1 %] has too many holds.
  • @@ -680,7 +680,7 @@
    [% IF ( patron.borrowernumber ) %] [% IF ( override_required ) %] - + [% ELSIF ( none_available ) %] [% ELSE %] @@ -780,7 +780,7 @@
    [% IF ( patron.borrowernumber ) %] [% IF ( override_required ) %] - + [% ELSIF ( none_available ) %] [% ELSE %] @@ -1039,7 +1039,7 @@
    [% IF ( patron.borrowernumber ) %] [% IF ( override_required ) %] - + [% ELSIF ( none_available ) %] [% ELSE %] @@ -1197,7 +1197,7 @@
    [% IF ( patron AND patron.borrowernumber ) %] [% IF ( override_required ) %] - + [% ELSIF ( no_bibs_available ) %] [% ELSIF ( none_available ) %] diff --git a/reserve/request.pl b/reserve/request.pl index b9a3182d7c..2398fd01ba 100755 --- a/reserve/request.pl +++ b/reserve/request.pl @@ -401,6 +401,7 @@ if ( ( $findborrower && $borrowernumber_hold || $findclub && $club_hold ) my $num_override = 0; my $hiddencount = 0; my $num_alreadyheld = 0; + my $valid_items = 0; # iterating through all items first to check if any of them available # to pass this value further inside down to IsAvailableForItemLevelRequest to @@ -522,6 +523,11 @@ if ( ( $findborrower && $borrowernumber_hold || $findclub && $club_hold ) && IsAvailableForItemLevelRequest($item_object, $patron, undef) ) { + $valid_items = 1; + } + + if ($valid_items) { + # Send the pickup locations count to the UI, the pickup locations will be pulled using the API my $pickup_locations = $item_object->pickup_locations({ patron => $patron }); $item->{pickup_locations_count} = $pickup_locations->count; @@ -550,6 +556,7 @@ if ( ( $findborrower && $borrowernumber_hold || $findclub && $club_hold ) if ( @pickup_locations || C4::Context->preference('AllowHoldPolicyOverride') ) { $num_items_available++; $item->{override} = 1; + $num_override++; my $default_pickup_location; @@ -590,6 +597,9 @@ if ( ( $findborrower && $borrowernumber_hold || $findclub && $club_hold ) if ( $num_override > 0 && ($num_override + $num_alreadyheld) == scalar( @{ $biblioloopiter{itemloop} } ) ) { # That is, if all items require an override $template->param( override_required => 1 ); + if ( $valid_items == 0 ) { + $template->param( none_available_override => 1 ); + } } elsif ( $num_items_available == 0 ) { $template->param( none_available => 1 ); $biblioloopiter{warn} = 1;