Lines 33-39
use C4::Overdues;
Link Here
|
33 |
use C4::Debug; |
33 |
use C4::Debug; |
34 |
# use Data::Dumper; |
34 |
# use Data::Dumper; |
35 |
|
35 |
|
36 |
my $MAXIMUM_NUMBER_OF_RESERVES = C4::Context->preference("maxreserves"); |
36 |
my $maxreserves = C4::Context->preference("maxreserves"); |
|
|
37 |
my $max_holds_per_record = C4::Context->preference('MaxHoldsPerRecord'); |
37 |
|
38 |
|
38 |
my $query = new CGI; |
39 |
my $query = new CGI; |
39 |
my ( $template, $borrowernumber, $cookie ) = get_template_and_user( |
40 |
my ( $template, $borrowernumber, $cookie ) = get_template_and_user( |
Lines 289-295
if ( CheckBorrowerDebarred($borrowernumber) ) {
Link Here
|
289 |
|
290 |
|
290 |
my @reserves = GetReservesFromBorrowernumber( $borrowernumber ); |
291 |
my @reserves = GetReservesFromBorrowernumber( $borrowernumber ); |
291 |
$template->param( RESERVES => \@reserves ); |
292 |
$template->param( RESERVES => \@reserves ); |
292 |
if ( $MAXIMUM_NUMBER_OF_RESERVES && (scalar(@reserves) >= $MAXIMUM_NUMBER_OF_RESERVES) ) { |
293 |
if ( $maxreserves && (scalar(@reserves) >= $maxreserves) ) { |
293 |
$template->param( message => 1 ); |
294 |
$template->param( message => 1 ); |
294 |
$noreserves = 1; |
295 |
$noreserves = 1; |
295 |
$template->param( too_many_reserves => scalar(@reserves)); |
296 |
$template->param( too_many_reserves => scalar(@reserves)); |
Lines 297-308
if ( $MAXIMUM_NUMBER_OF_RESERVES && (scalar(@reserves) >= $MAXIMUM_NUMBER_OF_RES
Link Here
|
297 |
foreach my $res (@reserves) { |
298 |
foreach my $res (@reserves) { |
298 |
foreach my $biblionumber (@biblionumbers) { |
299 |
foreach my $biblionumber (@biblionumbers) { |
299 |
if ( $res->{'biblionumber'} == $biblionumber && $res->{'borrowernumber'} == $borrowernumber) { |
300 |
if ( $res->{'biblionumber'} == $biblionumber && $res->{'borrowernumber'} == $borrowernumber) { |
300 |
# $template->param( message => 1 ); |
301 |
$biblioDataHash{$biblionumber}->{holds_count}++; |
301 |
# $noreserves = 1; |
|
|
302 |
# $template->param( already_reserved => 1 ); |
303 |
$biblioDataHash{$biblionumber}->{already_reserved} = 1; |
304 |
} |
302 |
} |
305 |
} |
303 |
} |
|
|
304 |
|
306 |
} |
305 |
} |
307 |
|
306 |
|
308 |
unless ($noreserves) { |
307 |
unless ($noreserves) { |
Lines 344-350
foreach my $biblioNum (@biblionumbers) {
Link Here
|
344 |
$biblioLoopIter{author} = $biblioData->{author}; |
343 |
$biblioLoopIter{author} = $biblioData->{author}; |
345 |
$biblioLoopIter{rank} = $biblioData->{rank}; |
344 |
$biblioLoopIter{rank} = $biblioData->{rank}; |
346 |
$biblioLoopIter{reservecount} = $biblioData->{reservecount}; |
345 |
$biblioLoopIter{reservecount} = $biblioData->{reservecount}; |
347 |
$biblioLoopIter{already_reserved} = $biblioData->{already_reserved}; |
346 |
$biblioLoopIter{holds_count} = $biblioData->{holds_count}; |
348 |
|
347 |
|
349 |
if (!$itemLevelTypes && $biblioData->{itemtype}) { |
348 |
if (!$itemLevelTypes && $biblioData->{itemtype}) { |
350 |
$biblioLoopIter{description} = $itemTypes->{$biblioData->{itemtype}}{description}; |
349 |
$biblioLoopIter{description} = $itemTypes->{$biblioData->{itemtype}}{description}; |
Lines 471-477
foreach my $biblioNum (@biblionumbers) {
Link Here
|
471 |
$policy_holdallowed = 0; |
470 |
$policy_holdallowed = 0; |
472 |
} |
471 |
} |
473 |
|
472 |
|
474 |
if (IsAvailableForItemLevelRequest($itemNum) and $policy_holdallowed and CanItemBeReserved($borrowernumber,$itemNum) and ($itemLoopIter->{already_reserved} ne 1)) { |
473 |
if (IsAvailableForItemLevelRequest($itemNum) and $policy_holdallowed and CanItemBeReserved($borrowernumber,$itemNum) and ($itemLoopIter->{holds_count} < $max_holds_per_record )) { |
475 |
$itemLoopIter->{available} = 1; |
474 |
$itemLoopIter->{available} = 1; |
476 |
$numCopiesAvailable++; |
475 |
$numCopiesAvailable++; |
477 |
} |
476 |
} |
Lines 504-509
foreach my $biblioNum (@biblionumbers) {
Link Here
|
504 |
$biblioLoopIter{holdable} = undef; |
503 |
$biblioLoopIter{holdable} = undef; |
505 |
$anyholdable = undef; |
504 |
$anyholdable = undef; |
506 |
} |
505 |
} |
|
|
506 |
if ($biblioLoopIter{holds_count} >= $max_holds_per_record) { |
507 |
$biblioLoopIter{holdable} = undef; |
508 |
$anyholdable = undef; |
509 |
} |
507 |
if(not CanBookBeReserved($borrowernumber,$biblioNum)){ |
510 |
if(not CanBookBeReserved($borrowernumber,$biblioNum)){ |
508 |
$biblioLoopIter{holdable} = undef; |
511 |
$biblioLoopIter{holdable} = undef; |
509 |
$anyholdable = undef; |
512 |
$anyholdable = undef; |
510 |
- |
|
|