|
Lines 458-488
sub CanItemBeReserved {
Link Here
|
| 458 |
my $holds_per_record = $rights->{holds_per_record} // 1; |
458 |
my $holds_per_record = $rights->{holds_per_record} // 1; |
| 459 |
my $holds_per_day = $rights->{holds_per_day}; |
459 |
my $holds_per_day = $rights->{holds_per_day}; |
| 460 |
|
460 |
|
| 461 |
my $search_params = { |
|
|
| 462 |
borrowernumber => $patron->borrowernumber, |
| 463 |
biblionumber => $item->biblionumber, |
| 464 |
}; |
| 465 |
$search_params->{found} = undef if $params->{ignore_found_holds}; |
| 466 |
|
| 467 |
my $holds = Koha::Holds->search($search_params); |
| 468 |
if ( defined $holds_per_record && $holds_per_record ne '' ){ |
461 |
if ( defined $holds_per_record && $holds_per_record ne '' ){ |
| 469 |
if ( $holds_per_record == 0 ) { |
462 |
if ( $holds_per_record == 0 ) { |
| 470 |
return { status => "noReservesAllowed" }; |
463 |
return { status => "noReservesAllowed" }; |
| 471 |
} |
464 |
} |
| 472 |
if ( !$params->{ignore_hold_counts} && $holds->count() >= $holds_per_record ) { |
465 |
if ( !$params->{ignore_hold_counts} ) { |
| 473 |
return { status => "tooManyHoldsForThisRecord", limit => $holds_per_record }; |
466 |
my $search_params = { |
|
|
467 |
borrowernumber => $patron->borrowernumber, |
| 468 |
biblionumber => $item->biblionumber, |
| 469 |
}; |
| 470 |
$search_params->{found} = undef if $params->{ignore_found_holds}; |
| 471 |
my $holds = Koha::Holds->search($search_params); |
| 472 |
return { status => "tooManyHoldsForThisRecord", limit => $holds_per_record } if $holds->count() >= $holds_per_record; |
| 474 |
} |
473 |
} |
| 475 |
} |
474 |
} |
| 476 |
|
475 |
|
| 477 |
my $today_holds = Koha::Holds->search({ |
476 |
if (!$params->{ignore_hold_counts} && defined $holds_per_day && $holds_per_day ne '') |
| 478 |
borrowernumber => $patron->borrowernumber, |
|
|
| 479 |
reservedate => dt_from_string->date |
| 480 |
}); |
| 481 |
|
| 482 |
if (!$params->{ignore_hold_counts} && defined $holds_per_day && $holds_per_day ne '' |
| 483 |
&& $today_holds->count() >= $holds_per_day ) |
| 484 |
{ |
477 |
{ |
| 485 |
return { status => 'tooManyReservesToday', limit => $holds_per_day }; |
478 |
my $today_holds = Koha::Holds->search({ |
|
|
479 |
borrowernumber => $patron->borrowernumber, |
| 480 |
reservedate => dt_from_string->date |
| 481 |
}); |
| 482 |
return { status => 'tooManyReservesToday', limit => $holds_per_day } if $today_holds->count() >= $holds_per_day; |
| 486 |
} |
483 |
} |
| 487 |
|
484 |
|
| 488 |
# we retrieve count |
485 |
# we retrieve count |
| 489 |
- |
|
|