|
Lines 485-494
sub CanItemBeReserved {
Link Here
|
| 485 |
} |
485 |
} |
| 486 |
} |
486 |
} |
| 487 |
|
487 |
|
| 488 |
# we retrieve borrowers and items informations # |
|
|
| 489 |
# item->{itype} will come for biblioitems if necessery |
| 490 |
my $borrower = $patron->unblessed; |
| 491 |
|
| 492 |
# If an item is damaged and we don't allow holds on damaged items, we can stop right here |
488 |
# If an item is damaged and we don't allow holds on damaged items, we can stop right here |
| 493 |
return _cache { status =>'damaged' } |
489 |
return _cache { status =>'damaged' } |
| 494 |
if ( $item->damaged |
490 |
if ( $item->damaged |
|
Lines 526-539
sub CanItemBeReserved {
Link Here
|
| 526 |
} |
522 |
} |
| 527 |
elsif ( $controlbranch eq "PatronLibrary" ) { |
523 |
elsif ( $controlbranch eq "PatronLibrary" ) { |
| 528 |
$branchfield = "borrowers.branchcode"; |
524 |
$branchfield = "borrowers.branchcode"; |
| 529 |
$reserves_control_branch = $borrower->{branchcode}; |
525 |
$reserves_control_branch = $patron->branchcode; |
| 530 |
} |
526 |
} |
| 531 |
|
527 |
|
| 532 |
# we retrieve rights |
528 |
# we retrieve rights |
| 533 |
if ( |
529 |
if ( |
| 534 |
my $reservesallowed = Koha::CirculationRules->get_effective_rule({ |
530 |
my $reservesallowed = Koha::CirculationRules->get_effective_rule({ |
| 535 |
itemtype => $item->effective_itemtype, |
531 |
itemtype => $item->effective_itemtype, |
| 536 |
categorycode => $borrower->{categorycode}, |
532 |
categorycode => $patron->categorycode, |
| 537 |
branchcode => $reserves_control_branch, |
533 |
branchcode => $reserves_control_branch, |
| 538 |
rule_name => 'reservesallowed', |
534 |
rule_name => 'reservesallowed', |
| 539 |
}) |
535 |
}) |
|
Lines 546-552
sub CanItemBeReserved {
Link Here
|
| 546 |
} |
542 |
} |
| 547 |
|
543 |
|
| 548 |
my $rights = Koha::CirculationRules->get_effective_rules({ |
544 |
my $rights = Koha::CirculationRules->get_effective_rules({ |
| 549 |
categorycode => $borrower->{'categorycode'}, |
545 |
categorycode => $patron->categorycode, |
| 550 |
itemtype => $item->effective_itemtype, |
546 |
itemtype => $item->effective_itemtype, |
| 551 |
branchcode => $reserves_control_branch, |
547 |
branchcode => $reserves_control_branch, |
| 552 |
rules => ['holds_per_record','holds_per_day'] |
548 |
rules => ['holds_per_record','holds_per_day'] |
|
Lines 655-661
sub CanItemBeReserved {
Link Here
|
| 655 |
} |
651 |
} |
| 656 |
|
652 |
|
| 657 |
if ( $branchitemrule->{holdallowed} eq 'from_home_library' |
653 |
if ( $branchitemrule->{holdallowed} eq 'from_home_library' |
| 658 |
&& $borrower->{branchcode} ne $item->homebranch ) |
654 |
&& $patron->branchcode ne $item->homebranch ) |
| 659 |
{ |
655 |
{ |
| 660 |
return _cache { status => 'cannotReserveFromOtherBranches' }; |
656 |
return _cache { status => 'cannotReserveFromOtherBranches' }; |
| 661 |
} |
657 |
} |
|
Lines 684-690
sub CanItemBeReserved {
Link Here
|
| 684 |
if ($branchitemrule->{hold_fulfillment_policy} eq 'holdgroup' && !$item_library->validate_hold_sibling( {branchcode => $pickup_branchcode} )) { |
680 |
if ($branchitemrule->{hold_fulfillment_policy} eq 'holdgroup' && !$item_library->validate_hold_sibling( {branchcode => $pickup_branchcode} )) { |
| 685 |
return _cache { status => 'pickupNotInHoldGroup' }; |
681 |
return _cache { status => 'pickupNotInHoldGroup' }; |
| 686 |
} |
682 |
} |
| 687 |
if ($branchitemrule->{hold_fulfillment_policy} eq 'patrongroup' && !Koha::Libraries->find({branchcode => $borrower->{branchcode}})->validate_hold_sibling({branchcode => $pickup_branchcode})) { |
683 |
if ($branchitemrule->{hold_fulfillment_policy} eq 'patrongroup' && !Koha::Libraries->find({branchcode => $patron->branchcode})->validate_hold_sibling({branchcode => $pickup_branchcode})) { |
| 688 |
return _cache { status => 'pickupNotInHoldGroup' }; |
684 |
return _cache { status => 'pickupNotInHoldGroup' }; |
| 689 |
} |
685 |
} |
| 690 |
} |
686 |
} |
| 691 |
- |
|
|