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