|
Lines 29-34
use base qw(Koha::Object);
Link Here
|
| 29 |
use Koha::Exceptions::ClubHold; |
29 |
use Koha::Exceptions::ClubHold; |
| 30 |
use Koha::Club::Hold::PatronHold; |
30 |
use Koha::Club::Hold::PatronHold; |
| 31 |
use Koha::Clubs; |
31 |
use Koha::Clubs; |
|
|
32 |
use Koha::Patrons; |
| 32 |
|
33 |
|
| 33 |
use List::Util 'shuffle'; |
34 |
use List::Util 'shuffle'; |
| 34 |
|
35 |
|
|
Lines 72-82
sub add {
Link Here
|
| 72 |
|
73 |
|
| 73 |
foreach my $enrollment (@enrollments) { |
74 |
foreach my $enrollment (@enrollments) { |
| 74 |
my $patron_id = $enrollment->borrowernumber; |
75 |
my $patron_id = $enrollment->borrowernumber; |
|
|
76 |
my $pickup_id = $params->{pickup_library_id}; |
| 77 |
|
| 78 |
my $can_place_hold; |
| 79 |
if($params->{default_patron_home}) { |
| 80 |
my $patron = Koha::Patrons->find($patron_id); |
| 81 |
my $patron_home = $patron->branchcode; |
| 82 |
$can_place_hold = $params->{item_id} |
| 83 |
? C4::Reserves::CanItemBeReserved( $patron_id, $params->{item_id}, $patron_home ) |
| 84 |
: C4::Reserves::CanBookBeReserved( $patron_id, $params->{biblio_id}, $patron_home ); |
| 85 |
$pickup_id = $patron_home if $can_place_hold->{status} eq 'OK'; |
| 86 |
unless ( $can_place_hold->{status} eq 'OK' ) { |
| 87 |
warn "Patron(".$patron_id.") Hold cannot be placed with patron's homebranch ($patron_home). Reason: " . $can_place_hold->{status}; |
| 88 |
} |
| 89 |
} |
| 75 |
|
90 |
|
| 76 |
my $can_place_hold |
91 |
unless ( defined $can_place_hold && $can_place_hold->{status} eq 'OK' ) { |
| 77 |
= $params->{item_id} |
92 |
$can_place_hold = $params->{item_id} |
| 78 |
? C4::Reserves::CanItemBeReserved( $patron_id, $params->{club_id} ) |
93 |
? C4::Reserves::CanItemBeReserved( $patron_id, $params->{item_id}, $pickup_id ) |
| 79 |
: C4::Reserves::CanBookBeReserved( $patron_id, $params->{biblio_id} ); |
94 |
: C4::Reserves::CanBookBeReserved( $patron_id, $params->{biblio_id}, $pickup_id ); |
|
|
95 |
} |
| 80 |
|
96 |
|
| 81 |
unless ( $can_place_hold->{status} eq 'OK' ) { |
97 |
unless ( $can_place_hold->{status} eq 'OK' ) { |
| 82 |
warn "Patron(".$patron_id.") Hold cannot be placed. Reason: " . $can_place_hold->{status}; |
98 |
warn "Patron(".$patron_id.") Hold cannot be placed. Reason: " . $can_place_hold->{status}; |
|
Lines 92-98
sub add {
Link Here
|
| 92 |
|
108 |
|
| 93 |
my $hold_id = C4::Reserves::AddReserve( |
109 |
my $hold_id = C4::Reserves::AddReserve( |
| 94 |
{ |
110 |
{ |
| 95 |
branchcode => $params->{pickup_library_id}, |
111 |
branchcode => $pickup_id, |
| 96 |
borrowernumber => $patron_id, |
112 |
borrowernumber => $patron_id, |
| 97 |
biblionumber => $params->{biblio_id}, |
113 |
biblionumber => $params->{biblio_id}, |
| 98 |
priority => $priority, |
114 |
priority => $priority, |
|
Lines 118-124
sub add {
Link Here
|
| 118 |
error_message => "Could not create hold for Patron(".$patron_id.")" |
134 |
error_message => "Could not create hold for Patron(".$patron_id.")" |
| 119 |
})->store(); |
135 |
})->store(); |
| 120 |
} |
136 |
} |
| 121 |
|
|
|
| 122 |
} |
137 |
} |
| 123 |
|
138 |
|
| 124 |
return $club_hold; |
139 |
return $club_hold; |