|
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 |
- |
|
|