@@ -, +, @@ --- reserve/request.pl | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) --- a/reserve/request.pl +++ a/reserve/request.pl @@ -425,6 +425,7 @@ foreach my $biblionumber (@biblionumbers) { my $num_available = 0; my $num_override = 0; my $hiddencount = 0; + my $num_alreadyheld = 0; $biblioitem->{force_hold_level} = $force_hold_level; @@ -584,7 +585,7 @@ foreach my $biblionumber (@biblionumbers) { if ( $can_item_be_reserved ne 'itemAlreadyOnHold' ) { $item->{override} = 1; $num_override++; - } + } else { $num_alreadyheld++ } push( @available_itemtypes, $item->{itype} ); } @@ -604,7 +605,10 @@ foreach my $biblionumber (@biblionumbers) { push @{ $biblioitem->{itemloop} }, $item; } - if ( $num_override == scalar( @{ $biblioitem->{itemloop} } ) ) { # That is, if all items require an override + # While we can't override an alreay held item, we should be able to override the others + # Unless all items are already held + if ( $num_override > 0 && ($num_override + $num_alreadyheld) == scalar( @{ $biblioitem->{itemloop} } ) ) { + # That is, if all items require an override $template->param( override_required => 1 ); } elsif ( $num_available == 0 ) { $template->param( none_available => 1 ); --