Lines 61-66
use C4::Log;
Link Here
|
61 |
use Koha::Items; |
61 |
use Koha::Items; |
62 |
use Koha::Libraries; |
62 |
use Koha::Libraries; |
63 |
use Koha::Patrons; |
63 |
use Koha::Patrons; |
|
|
64 |
use Koha::Patron::Message::Preferences; |
64 |
|
65 |
|
65 |
=head1 NAME |
66 |
=head1 NAME |
66 |
|
67 |
|
Lines 261-271
UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
Link Here
|
261 |
my $borrower_preferences; |
262 |
my $borrower_preferences; |
262 |
if ( 0 == $upcoming->{'days_until_due'} ) { |
263 |
if ( 0 == $upcoming->{'days_until_due'} ) { |
263 |
# This item is due today. Send an 'item due' message. |
264 |
# This item is due today. Send an 'item due' message. |
264 |
$borrower_preferences = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $upcoming->{'borrowernumber'}, |
265 |
$borrower_preferences = Koha::Patron::Message::Preferences->find_with_message_name({ |
265 |
message_name => 'item_due' } ); |
266 |
borrowernumber => $upcoming->{'borrowernumber'}, |
|
|
267 |
message_name => 'item_due', |
268 |
}); |
266 |
next unless $borrower_preferences; |
269 |
next unless $borrower_preferences; |
267 |
|
270 |
|
268 |
if ( $borrower_preferences->{'wants_digest'} ) { |
271 |
if ( $borrower_preferences->wants_digest ) { |
269 |
# cache this one to process after we've run through all of the items. |
272 |
# cache this one to process after we've run through all of the items. |
270 |
if ($digest_per_branch) { |
273 |
if ($digest_per_branch) { |
271 |
$due_digest->{ $upcoming->{branchcode} }->{ $upcoming->{borrowernumber} }->{email} = $from_address; |
274 |
$due_digest->{ $upcoming->{branchcode} }->{ $upcoming->{borrowernumber} }->{email} = $from_address; |
Lines 284-290
UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
Link Here
|
284 |
} |
287 |
} |
285 |
|
288 |
|
286 |
## Get branch info for borrowers home library. |
289 |
## Get branch info for borrowers home library. |
287 |
foreach my $transport ( keys %{$borrower_preferences->{'transports'}} ) { |
290 |
foreach my $transport ( keys %{$borrower_preferences->message_transport_types} ) { |
288 |
my $letter = parse_letter( { letter_code => $letter_type, |
291 |
my $letter = parse_letter( { letter_code => $letter_type, |
289 |
borrowernumber => $upcoming->{'borrowernumber'}, |
292 |
borrowernumber => $upcoming->{'borrowernumber'}, |
290 |
branchcode => $upcoming->{'branchcode'}, |
293 |
branchcode => $upcoming->{'branchcode'}, |
Lines 298-309
UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
Link Here
|
298 |
} |
301 |
} |
299 |
} |
302 |
} |
300 |
} else { |
303 |
} else { |
301 |
$borrower_preferences = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $upcoming->{'borrowernumber'}, |
304 |
$borrower_preferences = Koha::Patron::Message::Preferences->find_with_message_name({ |
302 |
message_name => 'advance_notice' } ); |
305 |
borrowernumber => $upcoming->{'borrowernumber'}, |
303 |
next UPCOMINGITEM unless $borrower_preferences && exists $borrower_preferences->{'days_in_advance'}; |
306 |
message_name => 'advance_notice', |
304 |
next UPCOMINGITEM unless $borrower_preferences->{'days_in_advance'} == $upcoming->{'days_until_due'}; |
307 |
}); |
|
|
308 |
next UPCOMINGITEM unless $borrower_preferences && defined $borrower_preferences->days_in_advance; |
309 |
next UPCOMINGITEM unless $borrower_preferences->days_in_advance == $upcoming->{'days_until_due'}; |
305 |
|
310 |
|
306 |
if ( $borrower_preferences->{'wants_digest'} ) { |
311 |
if ( $borrower_preferences->wants_digest ) { |
307 |
# cache this one to process after we've run through all of the items. |
312 |
# cache this one to process after we've run through all of the items. |
308 |
if ($digest_per_branch) { |
313 |
if ($digest_per_branch) { |
309 |
$upcoming_digest->{ $upcoming->{branchcode} }->{ $upcoming->{borrowernumber} }->{email} = $from_address; |
314 |
$upcoming_digest->{ $upcoming->{branchcode} }->{ $upcoming->{borrowernumber} }->{email} = $from_address; |
Lines 315-328
UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
Link Here
|
315 |
} else { |
320 |
} else { |
316 |
my $item = Koha::Items->find( $upcoming->{itemnumber} ); |
321 |
my $item = Koha::Items->find( $upcoming->{itemnumber} ); |
317 |
my $letter_type = 'PREDUE'; |
322 |
my $letter_type = 'PREDUE'; |
318 |
$sth->execute($upcoming->{'borrowernumber'},$upcoming->{'itemnumber'},$borrower_preferences->{'days_in_advance'}); |
323 |
$sth->execute($upcoming->{'borrowernumber'},$upcoming->{'itemnumber'},$borrower_preferences->days_in_advance); |
319 |
my $titles = ""; |
324 |
my $titles = ""; |
320 |
while ( my $item_info = $sth->fetchrow_hashref()) { |
325 |
while ( my $item_info = $sth->fetchrow_hashref()) { |
321 |
$titles .= C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); |
326 |
$titles .= C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); |
322 |
} |
327 |
} |
323 |
|
328 |
|
324 |
## Get branch info for borrowers home library. |
329 |
## Get branch info for borrowers home library. |
325 |
foreach my $transport ( keys %{$borrower_preferences->{'transports'}} ) { |
330 |
foreach my $transport ( keys %{$borrower_preferences->message_transport_types} ) { |
326 |
my $letter = parse_letter( { letter_code => $letter_type, |
331 |
my $letter = parse_letter( { letter_code => $letter_type, |
327 |
borrowernumber => $upcoming->{'borrowernumber'}, |
332 |
borrowernumber => $upcoming->{'borrowernumber'}, |
328 |
branchcode => $upcoming->{'branchcode'}, |
333 |
branchcode => $upcoming->{'branchcode'}, |
Lines 380-386
if ($digest_per_branch) {
Link Here
|
380 |
get_item_info => sub { |
385 |
get_item_info => sub { |
381 |
my $params = shift; |
386 |
my $params = shift; |
382 |
$params->{sth}->execute($params->{borrowernumber}, |
387 |
$params->{sth}->execute($params->{borrowernumber}, |
383 |
$params->{borrower_preferences}->{'days_in_advance'}); |
388 |
$params->{borrower_preferences}->days_in_advance); |
384 |
return sub { |
389 |
return sub { |
385 |
$params->{sth}->fetchrow_hashref; |
390 |
$params->{sth}->fetchrow_hashref; |
386 |
}; |
391 |
}; |
Lines 413-419
if ($digest_per_branch) {
Link Here
|
413 |
get_item_info => sub { |
418 |
get_item_info => sub { |
414 |
my $params = shift; |
419 |
my $params = shift; |
415 |
$params->{sth}->execute($params->{borrowernumber}, |
420 |
$params->{sth}->execute($params->{borrowernumber}, |
416 |
$params->{borrower_preferences}->{'days_in_advance'}); |
421 |
$params->{borrower_preferences}->days_in_advance); |
417 |
return sub { |
422 |
return sub { |
418 |
$params->{sth}->fetchrow_hashref; |
423 |
$params->{sth}->fetchrow_hashref; |
419 |
}; |
424 |
}; |
Lines 549-561
sub send_digests {
Link Here
|
549 |
$branchcode = $branch_info{'branches.branchcode'}; |
554 |
$branchcode = $branch_info{'branches.branchcode'}; |
550 |
} |
555 |
} |
551 |
|
556 |
|
552 |
my $borrower_preferences = |
557 |
my $borrower_preferences = Koha::Patron::Message::Preferences->find_with_message_name({ |
553 |
C4::Members::Messaging::GetMessagingPreferences( |
558 |
borrowernumber => $borrowernumber, |
554 |
{ |
559 |
message_name => $params->{message_name}, |
555 |
borrowernumber => $borrowernumber, |
560 |
}); |
556 |
message_name => $params->{message_name} |
|
|
557 |
} |
558 |
); |
559 |
|
561 |
|
560 |
next PATRON unless $borrower_preferences; # how could this happen? |
562 |
next PATRON unless $borrower_preferences; # how could this happen? |
561 |
|
563 |
|
Lines 569-575
sub send_digests {
Link Here
|
569 |
$titles .= C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); |
571 |
$titles .= C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); |
570 |
} |
572 |
} |
571 |
|
573 |
|
572 |
foreach my $transport ( keys %{ $borrower_preferences->{'transports'} } ) { |
574 |
foreach my $transport ( keys %{ $borrower_preferences->message_transport_types } ) { |
573 |
my $letter = parse_letter( |
575 |
my $letter = parse_letter( |
574 |
{ |
576 |
{ |
575 |
letter_code => $params->{letter_code}, |
577 |
letter_code => $params->{letter_code}, |