Lines 58-63
use C4::Overdues;
Link Here
|
58 |
use Koha::DateUtils; |
58 |
use Koha::DateUtils; |
59 |
use C4::Log; |
59 |
use C4::Log; |
60 |
use Koha::Libraries; |
60 |
use Koha::Libraries; |
|
|
61 |
use Koha::Patron::Message::Preferences; |
61 |
|
62 |
|
62 |
=head1 NAME |
63 |
=head1 NAME |
63 |
|
64 |
|
Lines 241-251
UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
Link Here
|
241 |
my $borrower_preferences; |
242 |
my $borrower_preferences; |
242 |
if ( 0 == $upcoming->{'days_until_due'} ) { |
243 |
if ( 0 == $upcoming->{'days_until_due'} ) { |
243 |
# This item is due today. Send an 'item due' message. |
244 |
# This item is due today. Send an 'item due' message. |
244 |
$borrower_preferences = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $upcoming->{'borrowernumber'}, |
245 |
$borrower_preferences = Koha::Patron::Message::Preferences->find_with_message_name({ |
245 |
message_name => 'item_due' } ); |
246 |
borrowernumber => $upcoming->{'borrowernumber'}, |
|
|
247 |
message_name => 'item_due', |
248 |
}); |
246 |
next unless $borrower_preferences; |
249 |
next unless $borrower_preferences; |
247 |
|
250 |
|
248 |
if ( $borrower_preferences->{'wants_digest'} ) { |
251 |
if ( $borrower_preferences->wants_digest ) { |
249 |
# cache this one to process after we've run through all of the items. |
252 |
# cache this one to process after we've run through all of the items. |
250 |
$due_digest->{ $upcoming->{borrowernumber} }->{email} = $from_address; |
253 |
$due_digest->{ $upcoming->{borrowernumber} }->{email} = $from_address; |
251 |
$due_digest->{ $upcoming->{borrowernumber} }->{count}++; |
254 |
$due_digest->{ $upcoming->{borrowernumber} }->{count}++; |
Lines 260-266
UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
Link Here
|
260 |
} |
263 |
} |
261 |
|
264 |
|
262 |
## Get branch info for borrowers home library. |
265 |
## Get branch info for borrowers home library. |
263 |
foreach my $transport ( keys %{$borrower_preferences->{'transports'}} ) { |
266 |
foreach my $transport ( keys %{$borrower_preferences->message_transport_types} ) { |
264 |
my $letter = parse_letter( { letter_code => $letter_type, |
267 |
my $letter = parse_letter( { letter_code => $letter_type, |
265 |
borrowernumber => $upcoming->{'borrowernumber'}, |
268 |
borrowernumber => $upcoming->{'borrowernumber'}, |
266 |
branchcode => $upcoming->{'branchcode'}, |
269 |
branchcode => $upcoming->{'branchcode'}, |
Lines 274-292
UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
Link Here
|
274 |
} |
277 |
} |
275 |
} |
278 |
} |
276 |
} else { |
279 |
} else { |
277 |
$borrower_preferences = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $upcoming->{'borrowernumber'}, |
280 |
$borrower_preferences = Koha::Patron::Message::Preferences->find_with_message_name({ |
278 |
message_name => 'advance_notice' } ); |
281 |
borrowernumber => $upcoming->{'borrowernumber'}, |
279 |
next UPCOMINGITEM unless $borrower_preferences && exists $borrower_preferences->{'days_in_advance'}; |
282 |
message_name => 'advance_notice', |
280 |
next UPCOMINGITEM unless $borrower_preferences->{'days_in_advance'} == $upcoming->{'days_until_due'}; |
283 |
}); |
281 |
|
284 |
next UPCOMINGITEM unless $borrower_preferences && $borrower_preferences->days_in_advance; |
282 |
if ( $borrower_preferences->{'wants_digest'} ) { |
285 |
next UPCOMINGITEM unless $borrower_preferences->days_in_advance == $upcoming->{'days_until_due'}; |
|
|
286 |
|
287 |
if ( $borrower_preferences->wants_digest ) { |
283 |
# cache this one to process after we've run through all of the items. |
288 |
# cache this one to process after we've run through all of the items. |
284 |
$upcoming_digest->{ $upcoming->{borrowernumber} }->{email} = $from_address; |
289 |
$upcoming_digest->{ $upcoming->{borrowernumber} }->{email} = $from_address; |
285 |
$upcoming_digest->{ $upcoming->{borrowernumber} }->{count}++; |
290 |
$upcoming_digest->{ $upcoming->{borrowernumber} }->{count}++; |
286 |
} else { |
291 |
} else { |
287 |
my $biblio = C4::Biblio::GetBiblioFromItemNumber( $upcoming->{'itemnumber'} ); |
292 |
my $biblio = C4::Biblio::GetBiblioFromItemNumber( $upcoming->{'itemnumber'} ); |
288 |
my $letter_type = 'PREDUE'; |
293 |
my $letter_type = 'PREDUE'; |
289 |
$sth->execute($upcoming->{'borrowernumber'},$upcoming->{'itemnumber'},$borrower_preferences->{'days_in_advance'}); |
294 |
$sth->execute($upcoming->{'borrowernumber'},$upcoming->{'itemnumber'},$borrower_preferences->days_in_advance); |
290 |
my $titles = ""; |
295 |
my $titles = ""; |
291 |
while ( my $item_info = $sth->fetchrow_hashref()) { |
296 |
while ( my $item_info = $sth->fetchrow_hashref()) { |
292 |
my @item_info = map { $_ =~ /^date|date$/ ? format_date($item_info->{$_}) : $item_info->{$_} || '' } @item_content_fields; |
297 |
my @item_info = map { $_ =~ /^date|date$/ ? format_date($item_info->{$_}) : $item_info->{$_} || '' } @item_content_fields; |
Lines 294-300
UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
Link Here
|
294 |
} |
299 |
} |
295 |
|
300 |
|
296 |
## Get branch info for borrowers home library. |
301 |
## Get branch info for borrowers home library. |
297 |
foreach my $transport ( keys %{$borrower_preferences->{'transports'}} ) { |
302 |
foreach my $transport ( keys %{$borrower_preferences->message_transport_types} ) { |
298 |
my $letter = parse_letter( { letter_code => $letter_type, |
303 |
my $letter = parse_letter( { letter_code => $letter_type, |
299 |
borrowernumber => $upcoming->{'borrowernumber'}, |
304 |
borrowernumber => $upcoming->{'borrowernumber'}, |
300 |
branchcode => $upcoming->{'branchcode'}, |
305 |
branchcode => $upcoming->{'branchcode'}, |
Lines 345-358
PATRON: while ( my ( $borrowernumber, $digest ) = each %$upcoming_digest ) {
Link Here
|
345 |
my $count = $digest->{count}; |
350 |
my $count = $digest->{count}; |
346 |
my $from_address = $digest->{email}; |
351 |
my $from_address = $digest->{email}; |
347 |
|
352 |
|
348 |
my $borrower_preferences = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $borrowernumber, |
353 |
my $borrower_preferences = Koha::Patron::Message::Preferences->find_with_message_name({ |
349 |
message_name => 'advance_notice' } ); |
354 |
borrowernumber => $borrowernumber, |
|
|
355 |
message_name => 'advance_notice', |
356 |
}); |
350 |
next PATRON unless $borrower_preferences; # how could this happen? |
357 |
next PATRON unless $borrower_preferences; # how could this happen? |
351 |
|
358 |
|
352 |
|
359 |
|
353 |
my $letter_type = 'PREDUEDGST'; |
360 |
my $letter_type = 'PREDUEDGST'; |
354 |
|
361 |
|
355 |
$sth->execute($borrowernumber,$borrower_preferences->{'days_in_advance'}); |
362 |
$sth->execute($borrowernumber,$borrower_preferences->days_in_advance); |
356 |
my $titles = ""; |
363 |
my $titles = ""; |
357 |
while ( my $item_info = $sth->fetchrow_hashref()) { |
364 |
while ( my $item_info = $sth->fetchrow_hashref()) { |
358 |
my @item_info = map { $_ =~ /^date|date$/ ? format_date($item_info->{$_}) : $item_info->{$_} || '' } @item_content_fields; |
365 |
my @item_info = map { $_ =~ /^date|date$/ ? format_date($item_info->{$_}) : $item_info->{$_} || '' } @item_content_fields; |
Lines 362-368
PATRON: while ( my ( $borrowernumber, $digest ) = each %$upcoming_digest ) {
Link Here
|
362 |
## Get branch info for borrowers home library. |
369 |
## Get branch info for borrowers home library. |
363 |
my %branch_info = get_branch_info( $borrowernumber ); |
370 |
my %branch_info = get_branch_info( $borrowernumber ); |
364 |
|
371 |
|
365 |
foreach my $transport ( keys %{ $borrower_preferences->{'transports'} } ) { |
372 |
foreach my $transport ( keys %{ $borrower_preferences->message_transport_types } ) { |
366 |
my $letter = parse_letter( |
373 |
my $letter = parse_letter( |
367 |
{ |
374 |
{ |
368 |
letter_code => $letter_type, |
375 |
letter_code => $letter_type, |
Lines 404-411
PATRON: while ( my ( $borrowernumber, $digest ) = each %$due_digest ) {
Link Here
|
404 |
my $count = $digest->{count}; |
411 |
my $count = $digest->{count}; |
405 |
my $from_address = $digest->{email}; |
412 |
my $from_address = $digest->{email}; |
406 |
|
413 |
|
407 |
my $borrower_preferences = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $borrowernumber, |
414 |
my $borrower_preferences = Koha::Patron::Message::Preferences->find_with_message_name({ |
408 |
message_name => 'item_due' } ); |
415 |
borrowernumber => $borrowernumber, |
|
|
416 |
message_name => 'item_due', |
417 |
}); |
409 |
next PATRON unless $borrower_preferences; # how could this happen? |
418 |
next PATRON unless $borrower_preferences; # how could this happen? |
410 |
|
419 |
|
411 |
my $letter_type = 'DUEDGST'; |
420 |
my $letter_type = 'DUEDGST'; |
Lines 419-425
PATRON: while ( my ( $borrowernumber, $digest ) = each %$due_digest ) {
Link Here
|
419 |
## Get branch info for borrowers home library. |
428 |
## Get branch info for borrowers home library. |
420 |
my %branch_info = get_branch_info( $borrowernumber ); |
429 |
my %branch_info = get_branch_info( $borrowernumber ); |
421 |
|
430 |
|
422 |
for my $transport ( keys %{ $borrower_preferences->{'transports'} } ) { |
431 |
for my $transport ( keys %{ $borrower_preferences->message_transport_types } ) { |
423 |
my $letter = parse_letter( |
432 |
my $letter = parse_letter( |
424 |
{ |
433 |
{ |
425 |
letter_code => $letter_type, |
434 |
letter_code => $letter_type, |