Lines 37-43
use C4::Debug;
Link Here
|
37 |
use Koha::DateUtils; |
37 |
use Koha::DateUtils; |
38 |
# use Data::Dumper; |
38 |
# use Data::Dumper; |
39 |
|
39 |
|
40 |
my $MAXIMUM_NUMBER_OF_RESERVES = C4::Context->preference("maxreserves"); |
40 |
my $maxreserves = C4::Context->preference("maxreserves"); |
|
|
41 |
my $max_holds_per_record = C4::Context->preference('MaxHoldsPerRecord'); |
41 |
|
42 |
|
42 |
my $query = new CGI; |
43 |
my $query = new CGI; |
43 |
my ( $template, $borrowernumber, $cookie ) = get_template_and_user( |
44 |
my ( $template, $borrowernumber, $cookie ) = get_template_and_user( |
Lines 298-304
if ( CheckBorrowerDebarred($borrowernumber) ) {
Link Here
|
298 |
|
299 |
|
299 |
my @reserves = GetReservesFromBorrowernumber( $borrowernumber ); |
300 |
my @reserves = GetReservesFromBorrowernumber( $borrowernumber ); |
300 |
$template->param( RESERVES => \@reserves ); |
301 |
$template->param( RESERVES => \@reserves ); |
301 |
if ( $MAXIMUM_NUMBER_OF_RESERVES && (scalar(@reserves) >= $MAXIMUM_NUMBER_OF_RESERVES) ) { |
302 |
if ( $maxreserves && (scalar(@reserves) >= $maxreserves) ) { |
302 |
$template->param( message => 1 ); |
303 |
$template->param( message => 1 ); |
303 |
$noreserves = 1; |
304 |
$noreserves = 1; |
304 |
$template->param( too_many_reserves => scalar(@reserves)); |
305 |
$template->param( too_many_reserves => scalar(@reserves)); |
Lines 306-317
if ( $MAXIMUM_NUMBER_OF_RESERVES && (scalar(@reserves) >= $MAXIMUM_NUMBER_OF_RES
Link Here
|
306 |
foreach my $res (@reserves) { |
307 |
foreach my $res (@reserves) { |
307 |
foreach my $biblionumber (@biblionumbers) { |
308 |
foreach my $biblionumber (@biblionumbers) { |
308 |
if ( $res->{'biblionumber'} == $biblionumber && $res->{'borrowernumber'} == $borrowernumber) { |
309 |
if ( $res->{'biblionumber'} == $biblionumber && $res->{'borrowernumber'} == $borrowernumber) { |
309 |
# $template->param( message => 1 ); |
310 |
$biblioDataHash{$biblionumber}->{holds_count}++; |
310 |
# $noreserves = 1; |
|
|
311 |
# $template->param( already_reserved => 1 ); |
312 |
$biblioDataHash{$biblionumber}->{already_reserved} = 1; |
313 |
} |
311 |
} |
314 |
} |
312 |
} |
|
|
313 |
|
315 |
} |
314 |
} |
316 |
|
315 |
|
317 |
unless ($noreserves) { |
316 |
unless ($noreserves) { |
Lines 353-359
foreach my $biblioNum (@biblionumbers) {
Link Here
|
353 |
$biblioLoopIter{author} = $biblioData->{author}; |
352 |
$biblioLoopIter{author} = $biblioData->{author}; |
354 |
$biblioLoopIter{rank} = $biblioData->{rank}; |
353 |
$biblioLoopIter{rank} = $biblioData->{rank}; |
355 |
$biblioLoopIter{reservecount} = $biblioData->{reservecount}; |
354 |
$biblioLoopIter{reservecount} = $biblioData->{reservecount}; |
356 |
$biblioLoopIter{already_reserved} = $biblioData->{already_reserved}; |
355 |
$biblioLoopIter{holds_count} = $biblioData->{holds_count}; |
357 |
|
356 |
|
358 |
if (!$itemLevelTypes && $biblioData->{itemtype}) { |
357 |
if (!$itemLevelTypes && $biblioData->{itemtype}) { |
359 |
$biblioLoopIter{description} = $itemTypes->{$biblioData->{itemtype}}{description}; |
358 |
$biblioLoopIter{description} = $itemTypes->{$biblioData->{itemtype}}{description}; |
Lines 480-486
foreach my $biblioNum (@biblionumbers) {
Link Here
|
480 |
$policy_holdallowed = 0; |
479 |
$policy_holdallowed = 0; |
481 |
} |
480 |
} |
482 |
|
481 |
|
483 |
if (IsAvailableForItemLevelRequest($itemNum) and $policy_holdallowed and CanItemBeReserved($borrowernumber,$itemNum) and ($itemLoopIter->{already_reserved} ne 1)) { |
482 |
if (IsAvailableForItemLevelRequest($itemNum) and $policy_holdallowed and CanItemBeReserved($borrowernumber,$itemNum) and ($itemLoopIter->{holds_count} < $max_holds_per_record )) { |
484 |
$itemLoopIter->{available} = 1; |
483 |
$itemLoopIter->{available} = 1; |
485 |
$numCopiesAvailable++; |
484 |
$numCopiesAvailable++; |
486 |
} |
485 |
} |
Lines 513-518
foreach my $biblioNum (@biblionumbers) {
Link Here
|
513 |
$biblioLoopIter{holdable} = undef; |
512 |
$biblioLoopIter{holdable} = undef; |
514 |
$anyholdable = undef; |
513 |
$anyholdable = undef; |
515 |
} |
514 |
} |
|
|
515 |
if ($biblioLoopIter{holds_count} >= $max_holds_per_record) { |
516 |
$biblioLoopIter{holdable} = undef; |
517 |
$anyholdable = undef; |
518 |
} |
516 |
if(not CanBookBeReserved($borrowernumber,$biblioNum)){ |
519 |
if(not CanBookBeReserved($borrowernumber,$biblioNum)){ |
517 |
$biblioLoopIter{holdable} = undef; |
520 |
$biblioLoopIter{holdable} = undef; |
518 |
$anyholdable = undef; |
521 |
$anyholdable = undef; |
519 |
- |
|
|