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 379-385
if ($digest_per_branch) {
Link Here
|
379 |
get_item_info => sub { |
384 |
get_item_info => sub { |
380 |
my $params = shift; |
385 |
my $params = shift; |
381 |
$params->{sth}->execute($params->{borrowernumber}, |
386 |
$params->{sth}->execute($params->{borrowernumber}, |
382 |
$params->{borrower_preferences}->{'days_in_advance'}); |
387 |
$params->{borrower_preferences}->days_in_advance); |
383 |
return sub { |
388 |
return sub { |
384 |
$params->{sth}->fetchrow_hashref; |
389 |
$params->{sth}->fetchrow_hashref; |
385 |
}; |
390 |
}; |
Lines 410-416
if ($digest_per_branch) {
Link Here
|
410 |
get_item_info => sub { |
415 |
get_item_info => sub { |
411 |
my $params = shift; |
416 |
my $params = shift; |
412 |
$params->{sth}->execute($params->{borrowernumber}, |
417 |
$params->{sth}->execute($params->{borrowernumber}, |
413 |
$params->{borrower_preferences}->{'days_in_advance'}); |
418 |
$params->{borrower_preferences}->days_in_advance); |
414 |
return sub { |
419 |
return sub { |
415 |
$params->{sth}->fetchrow_hashref; |
420 |
$params->{sth}->fetchrow_hashref; |
416 |
}; |
421 |
}; |
Lines 545-557
sub send_digests {
Link Here
|
545 |
$branchcode = $branch_info{'branches.branchcode'}; |
550 |
$branchcode = $branch_info{'branches.branchcode'}; |
546 |
} |
551 |
} |
547 |
|
552 |
|
548 |
my $borrower_preferences = |
553 |
my $borrower_preferences = Koha::Patron::Message::Preferences->find_with_message_name({ |
549 |
C4::Members::Messaging::GetMessagingPreferences( |
554 |
borrowernumber => $borrowernumber, |
550 |
{ |
555 |
message_name => 'advance_notice', |
551 |
borrowernumber => $borrowernumber, |
556 |
}); |
552 |
message_name => 'advance_notice' |
|
|
553 |
} |
554 |
); |
555 |
|
557 |
|
556 |
next PATRON unless $borrower_preferences; # how could this happen? |
558 |
next PATRON unless $borrower_preferences; # how could this happen? |
557 |
|
559 |
|
Lines 565-571
sub send_digests {
Link Here
|
565 |
$titles .= C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); |
567 |
$titles .= C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); |
566 |
} |
568 |
} |
567 |
|
569 |
|
568 |
foreach my $transport ( keys %{ $borrower_preferences->{'transports'} } ) { |
570 |
foreach my $transport ( keys %{ $borrower_preferences->message_transport_types } ) { |
569 |
my $letter = parse_letter( |
571 |
my $letter = parse_letter( |
570 |
{ |
572 |
{ |
571 |
letter_code => $params->{letter_code}, |
573 |
letter_code => $params->{letter_code}, |