|
Lines 447-454
sub CanItemBeReserved{
Link Here
|
| 447 |
# we retrieve borrowers and items informations # |
447 |
# we retrieve borrowers and items informations # |
| 448 |
my $item = GetItem($itemnumber); |
448 |
my $item = GetItem($itemnumber); |
| 449 |
my $borrower = C4::Members::GetMember('borrowernumber'=>$borrowernumber); |
449 |
my $borrower = C4::Members::GetMember('borrowernumber'=>$borrowernumber); |
| 450 |
|
450 |
|
| 451 |
# we retrieve user rights on this itemtype and branchcode |
451 |
|
|
|
452 |
# Before we check too see if the borrower has exceed the |
| 453 |
# maximum number of holds allowed for this itemtype, |
| 454 |
# we need to check to see if *any* holds are allowed |
| 455 |
# for this patron/itemtype as determined by the holds policy |
| 456 |
my $holds_policy = GetBranchItemRule( |
| 457 |
$controlbranch eq "ItemHomeLibrary" |
| 458 |
? $item->{homebranch} |
| 459 |
: $borrower->{branchcode}, |
| 460 |
|
| 461 |
$item->{itype} |
| 462 |
); |
| 463 |
|
| 464 |
if ( $holds_policy->{holdallowed} == 0 ) { |
| 465 |
|
| 466 |
# If holdallowed is 0, we can quit right here |
| 467 |
return 0; |
| 468 |
} |
| 469 |
elsif ( $holds_policy->{holdallowed} == 1 ) { |
| 470 |
|
| 471 |
# If it's 1, then only patrons from the item's home library may put this book on hold. |
| 472 |
return 0 unless ( $borrower->{'branchcode'} eq $item->{'homebranch'} ); |
| 473 |
} |
| 474 |
|
| 475 |
# If we've gotten this far, the holds policy does not prevent the patron |
| 476 |
# from placing this hold. We now need to see if the patron has exceeded |
| 477 |
# the maximum number of holds allowed for this itemtype based on the patrons |
| 452 |
my $sth = $dbh->prepare("SELECT categorycode, itemtype, branchcode, reservesallowed |
478 |
my $sth = $dbh->prepare("SELECT categorycode, itemtype, branchcode, reservesallowed |
| 453 |
FROM issuingrules |
479 |
FROM issuingrules |
| 454 |
WHERE (categorycode in (?,'*') ) |
480 |
WHERE (categorycode in (?,'*') ) |
| 455 |
- |
|
|