Lines 133-139
$verbose = 1 unless $verbose or $confirm;
Link Here
|
133 |
print "Test run only\n" unless $confirm; |
133 |
print "Test run only\n" unless $confirm; |
134 |
|
134 |
|
135 |
print "getting auto renewals\n" if $verbose; |
135 |
print "getting auto renewals\n" if $verbose; |
136 |
my $auto_renews = Koha::Checkouts->search({ auto_renew => 1, 'patron.autorenew_checkouts' => 1 },{ join => 'patron'}); |
136 |
my $auto_renews = Koha::Checkouts->search( |
|
|
137 |
{ |
138 |
auto_renew => 1, |
139 |
'patron.autorenew_checkouts' => 1, |
140 |
}, |
141 |
{ |
142 |
join => ['patron','item'] |
143 |
} |
144 |
); |
137 |
print "found " . $auto_renews->count . " auto renewals\n" if $verbose; |
145 |
print "found " . $auto_renews->count . " auto renewals\n" if $verbose; |
138 |
|
146 |
|
139 |
my $renew_digest = {}; |
147 |
my $renew_digest = {}; |
Lines 141-147
my %report;
Link Here
|
141 |
while ( my $auto_renew = $auto_renews->next ) { |
149 |
while ( my $auto_renew = $auto_renews->next ) { |
142 |
print "examining item '" . $auto_renew->itemnumber . "' to auto renew\n" if $verbose; |
150 |
print "examining item '" . $auto_renew->itemnumber . "' to auto renew\n" if $verbose; |
143 |
|
151 |
|
144 |
my ( $borrower_preferences, $wants_email, $wants_digest ) = ( undef, 0, 0 ); |
152 |
my ( $borrower_preferences, $wants_messages, $wants_digest ) = ( undef, 0, 0 ); |
145 |
if ( $send_notices_pref eq 'preferences' ){ |
153 |
if ( $send_notices_pref eq 'preferences' ){ |
146 |
$borrower_preferences = C4::Members::Messaging::GetMessagingPreferences( |
154 |
$borrower_preferences = C4::Members::Messaging::GetMessagingPreferences( |
147 |
{ |
155 |
{ |
Lines 149-163
while ( my $auto_renew = $auto_renews->next ) {
Link Here
|
149 |
message_name => 'auto_renewals' |
157 |
message_name => 'auto_renewals' |
150 |
} |
158 |
} |
151 |
); |
159 |
); |
152 |
$wants_email = 1 |
160 |
$wants_messages = 1 |
153 |
if $borrower_preferences |
161 |
if $borrower_preferences |
154 |
&& $borrower_preferences->{transports} |
162 |
&& $borrower_preferences->{transports}; |
155 |
&& $borrower_preferences->{transports}->{email}; |
|
|
156 |
$wants_digest = 1 |
163 |
$wants_digest = 1 |
157 |
if $wants_email |
164 |
if $wants_messages |
158 |
&& $borrower_preferences->{wants_digest}; |
165 |
&& $borrower_preferences->{wants_digest}; |
159 |
} else { # Preference is never or cron |
166 |
} else { # Preference is never or cron |
160 |
$wants_email = $send_notices; |
167 |
$wants_messages = $send_notices; |
161 |
$wants_digest = 0; |
168 |
$wants_digest = 0; |
162 |
} |
169 |
} |
163 |
|
170 |
|
Lines 175-181
while ( my $auto_renew = $auto_renews->next ) {
Link Here
|
175 |
$auto_renew->auto_renew_error(undef)->store; |
182 |
$auto_renew->auto_renew_error(undef)->store; |
176 |
} |
183 |
} |
177 |
push @{ $report{ $auto_renew->borrowernumber } }, $auto_renew |
184 |
push @{ $report{ $auto_renew->borrowernumber } }, $auto_renew |
178 |
if ( $wants_email ) && !$wants_digest; |
185 |
if ( $wants_messages ) && !$wants_digest; |
179 |
} elsif ( $error eq 'too_many' |
186 |
} elsif ( $error eq 'too_many' |
180 |
or $error eq 'on_reserve' |
187 |
or $error eq 'on_reserve' |
181 |
or $error eq 'restriction' |
188 |
or $error eq 'restriction' |
Lines 194-200
while ( my $auto_renew = $auto_renews->next ) {
Link Here
|
194 |
if ( $updated ) { |
201 |
if ( $updated ) { |
195 |
$auto_renew->auto_renew_error($error)->store if $confirm; |
202 |
$auto_renew->auto_renew_error($error)->store if $confirm; |
196 |
push @{ $report{ $auto_renew->borrowernumber } }, $auto_renew |
203 |
push @{ $report{ $auto_renew->borrowernumber } }, $auto_renew |
197 |
if $error ne 'auto_too_soon' && ( $wants_email && !$wants_digest ); # Do not notify if it's too soon |
204 |
if $error ne 'auto_too_soon' && ( $wants_messages && !$wants_digest ); # Do not notify if it's too soon |
198 |
} |
205 |
} |
199 |
} |
206 |
} |
200 |
|
207 |
|
Lines 218-247
while ( my $auto_renew = $auto_renews->next ) {
Link Here
|
218 |
if ( $send_notices && $confirm ) { |
225 |
if ( $send_notices && $confirm ) { |
219 |
for my $borrowernumber ( keys %report ) { |
226 |
for my $borrowernumber ( keys %report ) { |
220 |
my $patron = Koha::Patrons->find($borrowernumber); |
227 |
my $patron = Koha::Patrons->find($borrowernumber); |
221 |
for my $issue ( @{ $report{$borrowernumber} } ) { |
228 |
my $borrower_preferences = |
222 |
my $item = Koha::Items->find( $issue->itemnumber ); |
229 |
C4::Members::Messaging::GetMessagingPreferences( |
223 |
my $letter = C4::Letters::GetPreparedLetter( |
230 |
{ |
224 |
module => 'circulation', |
231 |
borrowernumber => $borrowernumber, |
225 |
letter_code => 'AUTO_RENEWALS', |
232 |
message_name => 'auto_renewals' |
226 |
tables => { |
233 |
} |
227 |
borrowers => $patron->borrowernumber, |
|
|
228 |
issues => $issue->itemnumber, |
229 |
items => $issue->itemnumber, |
230 |
biblio => $item->biblionumber, |
231 |
}, |
232 |
lang => $patron->lang, |
233 |
); |
234 |
); |
|
|
235 |
for my $issue ( @{ $report{$borrowernumber} } ) { |
236 |
my $item = $issue->item; |
237 |
# Force sending of email and only email if pref is set to "cron" |
238 |
my @transports = $send_notices_pref eq 'preferences' ? keys %{ $borrower_preferences->{'transports'} } : 'sms'; |
239 |
foreach my $transport ( @transports ) { |
240 |
my $letter = C4::Letters::GetPreparedLetter ( |
241 |
module => 'circulation', |
242 |
letter_code => 'AUTO_RENEWALS', |
243 |
tables => { |
244 |
borrowers => $patron->borrowernumber, |
245 |
issues => $issue->itemnumber, |
246 |
items => $issue->itemnumber, |
247 |
biblio => $item->biblionumber, |
248 |
}, |
249 |
lang => $patron->lang, |
250 |
message_transport_type => $transport, |
251 |
); |
234 |
|
252 |
|
235 |
my $library = Koha::Libraries->find( $patron->branchcode ); |
253 |
if ($letter) { |
236 |
my $admin_email_address = $library->from_email_address; |
254 |
my $library = $patron->library; |
237 |
|
255 |
my $admin_email_address = $library->from_email_address; |
238 |
C4::Letters::EnqueueLetter( |
256 |
|
239 |
{ letter => $letter, |
257 |
C4::Letters::EnqueueLetter( |
240 |
borrowernumber => $borrowernumber, |
258 |
{ |
241 |
message_transport_type => 'email', |
259 |
letter => $letter, |
242 |
from_address => $admin_email_address, |
260 |
borrowernumber => $borrowernumber, |
|
|
261 |
from_address => $admin_email_address, |
262 |
message_transport_type => $transport |
263 |
} |
264 |
); |
243 |
} |
265 |
} |
244 |
); |
266 |
} |
245 |
} |
267 |
} |
246 |
} |
268 |
} |
247 |
|
269 |
|
248 |
- |
|
|