my $admin_adress = C4::Context->preference('KohaAdminEmailAddress');
+my @letters;
UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
warn 'examining ' . $upcoming->{'itemnumber'} . ' upcoming due items' if $verbose;
# warn( Data::Dumper->Dump( [ $upcoming ], [ 'overdue' ] ) );
my $from_address = $upcoming->{branchemail} || $admin_adress;
- my $letter;
my $borrower_preferences;
if ( 0 == $upcoming->{'days_until_due'} ) {
# This item is due today. Send an 'item due' message.
}
## Get branch info for borrowers home library.
- $letter = parse_letter( { letter_code => $letter_type,
+ foreach my $transport ( keys %{$borrower_preferences->{'transports'}} ) {
+ my $letter = parse_letter( { letter_code => $letter_type,
borrowernumber => $upcoming->{'borrowernumber'},
branchcode => $upcoming->{'branchcode'},
biblionumber => $biblio->{'biblionumber'},
itemnumber => $upcoming->{'itemnumber'},
- substitute => { 'items.content' => $titles }
+ substitute => { 'items.content' => $titles },
+ message_transport_type => $transport,
} )
- or die "no letter of type '$letter_type' found. Please see sample_notices.sql";
+ or die "no letter of type '$letter_type' found. Please see sample_notices.sql";
+ push @letters, $letter;
+ }
}
} else {
$borrower_preferences = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $upcoming->{'borrowernumber'},
}
## Get branch info for borrowers home library.
- $letter = parse_letter( { letter_code => $letter_type,
+ foreach my $transport ( keys %{$borrower_preferences->{'transports'}} ) {
+ my $letter = parse_letter( { letter_code => $letter_type,
borrowernumber => $upcoming->{'borrowernumber'},
branchcode => $upcoming->{'branchcode'},
biblionumber => $biblio->{'biblionumber'},
itemnumber => $upcoming->{'itemnumber'},
- substitute => { 'items.content' => $titles }
+ substitute => { 'items.content' => $titles },
+ message_transport_type => $transport,
} )
- or die "no letter of type '$letter_type' found. Please see sample_notices.sql";
+ or die "no letter of type '$letter_type' found. Please see sample_notices.sql";
+ push @letters, $letter;
+ }
}
}
# If we have prepared a letter, send it.
- if ($letter) {
+ if ( @letters ) {
if ($nomail) {
- local $, = "\f";
- print $letter->{'content'};
+ for my $letter ( @letters ) {
+ local $, = "\f";
+ print $letter->{'content'};
+ }
}
else {
- foreach my $transport ( keys %{$borrower_preferences->{'transports'}} ) {
+ for my $letter ( @letters ) {
C4::Letters::EnqueueLetter( { letter => $letter,
borrowernumber => $upcoming->{'borrowernumber'},
from_address => $from_address,
- message_transport_type => $transport } );
+ message_transport_type => $letter->{message_transport_type} } );
}
}
}
AND issues.borrowernumber = ?
AND (TO_DAYS(date_due)-TO_DAYS(NOW()) = ?)
END_SQL
-
+@letters = ();
PATRON: while ( my ( $borrowernumber, $digest ) = each %$upcoming_digest ) {
my $count = $digest->{count};
my $from_address = $digest->{email};
## Get branch info for borrowers home library.
my %branch_info = get_branch_info( $borrowernumber );
- my $letter = parse_letter(
- {
- letter_code => $letter_type,
- borrowernumber => $borrowernumber,
- substitute => {
- count => $count,
- 'items.content' => $titles,
- %branch_info,
- },
- branchcode => $branch_info{ "branches.branchcode" },
- }
- )
- or die "no letter of type '$letter_type' found. Please see sample_notices.sql";
- if ($nomail) {
- local $, = "\f";
- print $letter->{'content'};
+ foreach my $transport ( keys %{ $borrower_preferences->{'transports'} } ) {
+ my $letter = parse_letter(
+ {
+ letter_code => $letter_type,
+ borrowernumber => $borrowernumber,
+ substitute => {
+ count => $count,
+ 'items.content' => $titles,
+ %branch_info,
+ },
+ branchcode => $branch_info{"branches.branchcode"},
+ message_transport_type => $transport,
+ }
+ )
+ or die "no letter of type '$letter_type' found. Please see sample_notices.sql";
+ push @letters, $letter;
}
- else {
- foreach my $transport ( keys %{$borrower_preferences->{'transports'}} ) {
- C4::Letters::EnqueueLetter( { letter => $letter,
- borrowernumber => $borrowernumber,
- from_address => $from_address,
- message_transport_type => $transport } );
+
+ if ( @letters ) {
+ if ($nomail) {
+ for my $letter ( @letters ) {
+ local $, = "\f";
+ print $letter->{'content'};
+ }
+ }
+ else {
+ for my $letter ( @letters ) {
+ C4::Letters::EnqueueLetter( { letter => $letter,
+ borrowernumber => $borrowernumber,
+ from_address => $from_address,
+ message_transport_type => $letter->{message_transport_type} } );
+ }
}
}
}
# Now, run through all the people that want digests and send them
+@letters = ();
PATRON: while ( my ( $borrowernumber, $digest ) = each %$due_digest ) {
my $count = $digest->{count};
my $from_address = $digest->{email};
## Get branch info for borrowers home library.
my %branch_info = get_branch_info( $borrowernumber );
- my $letter = parse_letter(
- {
- letter_code => $letter_type,
- borrowernumber => $borrowernumber,
- substitute => {
- count => $count,
- 'items.content' => $titles,
- %branch_info,
- },
- branchcode => $branch_info{ "branches.branchcode" },
- }
- )
- or die "no letter of type '$letter_type' found. Please see sample_notices.sql";
-
- if ($nomail) {
- local $, = "\f";
- print $letter->{'content'};
+ for my $transport ( keys %{ $borrower_preferences->{'transports'} } ) {
+ my $letter = parse_letter(
+ {
+ letter_code => $letter_type,
+ borrowernumber => $borrowernumber,
+ substitute => {
+ count => $count,
+ 'items.content' => $titles,
+ %branch_info,
+ },
+ branchcode => $branch_info{"branches.branchcode"},
+ message_transport_type => $transport,
+ }
+ )
+ or die "no letter of type '$letter_type' found. Please see sample_notices.sql";
+ push @letters, $letter;
}
- else {
- foreach my $transport ( keys %{$borrower_preferences->{'transports'}} ) {
- C4::Letters::EnqueueLetter( { letter => $letter,
- borrowernumber => $borrowernumber,
- from_address => $from_address,
- message_transport_type => $transport } );
+
+ if ( @letters ) {
+ if ($nomail) {
+ for my $letter ( @letters ) {
+ local $, = "\f";
+ print $letter->{'content'};
+ }
+ }
+ else {
+ for my $letter ( @letters ) {
+ C4::Letters::EnqueueLetter( { letter => $letter,
+ borrowernumber => $borrowernumber,
+ from_address => $from_address,
+ message_transport_type => $letter->{message_transport_type} } );
+ }
}
}
+
}
=head1 METHODS
branchcode => $table_params{'branches'},
substitute => $params->{'substitute'},
tables => \%table_params,
+ message_transport_type => $params->{message_transport_type},
);
}