Lines 49-54
use C4::Log qw( cronlogaction );
Link Here
|
49 |
use Koha::Items; |
49 |
use Koha::Items; |
50 |
use Koha::Libraries; |
50 |
use Koha::Libraries; |
51 |
use Koha::Patrons; |
51 |
use Koha::Patrons; |
|
|
52 |
use Koha::Patron::MessagePreferences; |
52 |
|
53 |
|
53 |
=head1 OPTIONS |
54 |
=head1 OPTIONS |
54 |
|
55 |
|
Lines 267-277
UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
Link Here
|
267 |
my $borrower_preferences; |
268 |
my $borrower_preferences; |
268 |
if ( 0 == $upcoming->{'days_until_due'} ) { |
269 |
if ( 0 == $upcoming->{'days_until_due'} ) { |
269 |
# This item is due today. Send an 'item due' message. |
270 |
# This item is due today. Send an 'item due' message. |
270 |
$borrower_preferences = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $upcoming->{'borrowernumber'}, |
271 |
$borrower_preferences = Koha::Patron::MessagePreferences->find_with_message_name({ |
271 |
message_name => 'item_due' } ); |
272 |
borrowernumber => $upcoming->{'borrowernumber'}, |
|
|
273 |
message_name => 'item_due', |
274 |
}); |
272 |
next unless $borrower_preferences; |
275 |
next unless $borrower_preferences; |
273 |
|
276 |
|
274 |
if ( $borrower_preferences->{'wants_digest'} ) { |
277 |
if ( $borrower_preferences->wants_digest ) { |
275 |
# cache this one to process after we've run through all of the items. |
278 |
# cache this one to process after we've run through all of the items. |
276 |
if ($digest_per_branch) { |
279 |
if ($digest_per_branch) { |
277 |
$due_digest->{ $upcoming->{branchcode} }->{ $upcoming->{borrowernumber} }->{email} = $from_address; |
280 |
$due_digest->{ $upcoming->{branchcode} }->{ $upcoming->{borrowernumber} }->{email} = $from_address; |
Lines 297-303
UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
Link Here
|
297 |
my $title = C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); |
300 |
my $title = C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); |
298 |
|
301 |
|
299 |
## Get branch info for borrowers home library. |
302 |
## Get branch info for borrowers home library. |
300 |
foreach my $transport ( keys %{$borrower_preferences->{'transports'}} ) { |
303 |
foreach my $transport ( keys %{$borrower_preferences->message_transport_types} ) { |
301 |
next if $transport eq 'itiva'; |
304 |
next if $transport eq 'itiva'; |
302 |
my $letter = parse_letter( { letter_code => $letter_type, |
305 |
my $letter = parse_letter( { letter_code => $letter_type, |
303 |
borrowernumber => $upcoming->{'borrowernumber'}, |
306 |
borrowernumber => $upcoming->{'borrowernumber'}, |
Lines 315-326
UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
Link Here
|
315 |
} |
318 |
} |
316 |
} |
319 |
} |
317 |
} else { |
320 |
} else { |
318 |
$borrower_preferences = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $upcoming->{'borrowernumber'}, |
321 |
$borrower_preferences = Koha::Patron::MessagePreferences->find_with_message_name({ |
319 |
message_name => 'advance_notice' } ); |
322 |
borrowernumber => $upcoming->{'borrowernumber'}, |
320 |
next UPCOMINGITEM unless $borrower_preferences && exists $borrower_preferences->{'days_in_advance'}; |
323 |
message_name => 'advance_notice', |
321 |
next UPCOMINGITEM unless $borrower_preferences->{'days_in_advance'} == $upcoming->{'days_until_due'}; |
324 |
}); |
|
|
325 |
next UPCOMINGITEM unless $borrower_preferences && defined $borrower_preferences->days_in_advance; |
326 |
next UPCOMINGITEM unless $borrower_preferences->days_in_advance == $upcoming->{'days_until_due'}; |
322 |
|
327 |
|
323 |
if ( $borrower_preferences->{'wants_digest'} ) { |
328 |
if ( $borrower_preferences->wants_digest ) { |
324 |
# cache this one to process after we've run through all of the items. |
329 |
# cache this one to process after we've run through all of the items. |
325 |
if ($digest_per_branch) { |
330 |
if ($digest_per_branch) { |
326 |
$upcoming_digest->{ $upcoming->{branchcode} }->{ $upcoming->{borrowernumber} }->{email} = $from_address; |
331 |
$upcoming_digest->{ $upcoming->{branchcode} }->{ $upcoming->{borrowernumber} }->{email} = $from_address; |
Lines 341-352
UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
Link Here
|
341 |
|
346 |
|
342 |
my $item = Koha::Items->find( $upcoming->{itemnumber} ); |
347 |
my $item = Koha::Items->find( $upcoming->{itemnumber} ); |
343 |
my $letter_type = 'PREDUE'; |
348 |
my $letter_type = 'PREDUE'; |
344 |
$sth->execute($upcoming->{'borrowernumber'},$upcoming->{'itemnumber'},$borrower_preferences->{'days_in_advance'}); |
349 |
$sth->execute($upcoming->{'borrowernumber'},$upcoming->{'itemnumber'},$borrower_preferences->days_in_advance); |
345 |
my $item_info = $sth->fetchrow_hashref(); |
350 |
my $item_info = $sth->fetchrow_hashref(); |
346 |
my $title = C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); |
351 |
my $title = C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); |
347 |
|
352 |
|
348 |
## Get branch info for borrowers home library. |
353 |
## Get branch info for borrowers home library. |
349 |
foreach my $transport ( keys %{$borrower_preferences->{'transports'}} ) { |
354 |
foreach my $transport ( keys %{$borrower_preferences->message_transport_types} ) { |
350 |
next if $transport eq 'itiva'; |
355 |
next if $transport eq 'itiva'; |
351 |
my $letter = parse_letter( { letter_code => $letter_type, |
356 |
my $letter = parse_letter( { letter_code => $letter_type, |
352 |
borrowernumber => $upcoming->{'borrowernumber'}, |
357 |
borrowernumber => $upcoming->{'borrowernumber'}, |
Lines 408-414
if ($digest_per_branch) {
Link Here
|
408 |
get_item_info => sub { |
413 |
get_item_info => sub { |
409 |
my $params = shift; |
414 |
my $params = shift; |
410 |
$params->{sth}->execute($params->{borrowernumber}, |
415 |
$params->{sth}->execute($params->{borrowernumber}, |
411 |
$params->{borrower_preferences}->{'days_in_advance'}); |
416 |
$params->{borrower_preferences}->days_in_advance); |
412 |
return sub { |
417 |
return sub { |
413 |
$params->{sth}->fetchrow_hashref; |
418 |
$params->{sth}->fetchrow_hashref; |
414 |
}; |
419 |
}; |
Lines 441-447
if ($digest_per_branch) {
Link Here
|
441 |
get_item_info => sub { |
446 |
get_item_info => sub { |
442 |
my $params = shift; |
447 |
my $params = shift; |
443 |
$params->{sth}->execute($params->{borrowernumber}, |
448 |
$params->{sth}->execute($params->{borrowernumber}, |
444 |
$params->{borrower_preferences}->{'days_in_advance'}); |
449 |
$params->{borrower_preferences}->days_in_advance); |
445 |
return sub { |
450 |
return sub { |
446 |
$params->{sth}->fetchrow_hashref; |
451 |
$params->{sth}->fetchrow_hashref; |
447 |
}; |
452 |
}; |
Lines 578-590
sub send_digests {
Link Here
|
578 |
$branchcode = $branch_info{'branches.branchcode'}; |
583 |
$branchcode = $branch_info{'branches.branchcode'}; |
579 |
} |
584 |
} |
580 |
|
585 |
|
581 |
my $borrower_preferences = |
586 |
my $borrower_preferences = Koha::Patron::MessagePreferences->find_with_message_name({ |
582 |
C4::Members::Messaging::GetMessagingPreferences( |
587 |
borrowernumber => $borrowernumber, |
583 |
{ |
588 |
message_name => $params->{message_name}, |
584 |
borrowernumber => $borrowernumber, |
589 |
}); |
585 |
message_name => $params->{message_name} |
|
|
586 |
} |
587 |
); |
588 |
|
590 |
|
589 |
next PATRON unless $borrower_preferences; # how could this happen? |
591 |
next PATRON unless $borrower_preferences; # how could this happen? |
590 |
|
592 |
|
Lines 602-608
sub send_digests {
Link Here
|
602 |
$titles .= C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); |
604 |
$titles .= C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); |
603 |
} |
605 |
} |
604 |
|
606 |
|
605 |
foreach my $transport ( keys %{ $borrower_preferences->{'transports'} } ) { |
607 |
foreach my $transport ( keys %{ $borrower_preferences->message_transport_types } ) { |
606 |
next if $transport eq 'itiva'; |
608 |
next if $transport eq 'itiva'; |
607 |
my $letter = parse_letter( |
609 |
my $letter = parse_letter( |
608 |
{ |
610 |
{ |