|
Lines 427-434
sub CanItemBeReserved{
Link Here
|
| 427 |
# we retrieve borrowers and items informations # |
427 |
# we retrieve borrowers and items informations # |
| 428 |
my $item = GetItem($itemnumber); |
428 |
my $item = GetItem($itemnumber); |
| 429 |
my $borrower = C4::Members::GetMember('borrowernumber'=>$borrowernumber); |
429 |
my $borrower = C4::Members::GetMember('borrowernumber'=>$borrowernumber); |
| 430 |
|
430 |
|
| 431 |
# we retrieve user rights on this itemtype and branchcode |
431 |
|
|
|
432 |
# Before we check too see if the borrower has exceed the |
| 433 |
# maximum number of holds allowed for this itemtype, |
| 434 |
# we need to check to see if *any* holds are allowed |
| 435 |
# for this patron/itemtype as determined by the holds policy |
| 436 |
my $holds_policy = GetBranchItemRule( |
| 437 |
$controlbranch eq "ItemHomeLibrary" |
| 438 |
? $item->{homebranch} |
| 439 |
: $borrower->{branchcode}, |
| 440 |
|
| 441 |
$item->{itype} |
| 442 |
); |
| 443 |
|
| 444 |
if ( $holds_policy->{holdallowed} == 0 ) { |
| 445 |
|
| 446 |
# If holdallowed is 0, we can quit right here |
| 447 |
return 0; |
| 448 |
} |
| 449 |
elsif ( $holds_policy->{holdallowed} == 1 ) { |
| 450 |
|
| 451 |
# If it's 1, then only patrons from the item's home library may put this book on hold. |
| 452 |
return 0 unless ( $borrower->{'branchcode'} eq $item->{'homebranch'} ); |
| 453 |
} |
| 454 |
|
| 455 |
# If we've gotten this far, the holds policy does not prevent the patron |
| 456 |
# from placing this hold. We now need to see if the patron has exceeded |
| 457 |
# the maximum number of holds allowed for this itemtype based on the patrons |
| 432 |
my $sth = $dbh->prepare("SELECT categorycode, itemtype, branchcode, reservesallowed |
458 |
my $sth = $dbh->prepare("SELECT categorycode, itemtype, branchcode, reservesallowed |
| 433 |
FROM issuingrules |
459 |
FROM issuingrules |
| 434 |
WHERE (categorycode in (?,'*') ) |
460 |
WHERE (categorycode in (?,'*') ) |
| 435 |
- |
|
|