Bug 12923 Improve error logging for advance_notices.pl

Show borrowernumber when no letter of type is found and force utf8
output when running advance_notices.pl with -n flag, diacritics run awol
in the console output!

Also when debugging which borrower requests undefined letter templates,
it is very handy to log the borrowernumber so we catch and fix bad
borrower message transport settings.

TEST PREPARATION:

0. Edit the ODUEDGST letter, find an undefined letter for any trasport
   type.

::TESTS ARE (ALMOST) THE SAME AS IN bugg 12922::
TEST PLAN:

1. Find a borrower and from the messaging preferences set the "Advance
   notice" transport type to the undefined digest. Set the "Days in
   Advance" to 1.
2. Check-out something for that borrower and set the due date for
   tomorrow.
3. Run "misc/cronjobs/advance_notices.pl -c -n -v" from the terminal.
4. BEFORE THIS PATCH: You get an error "no letter of type 'PREDUEDGST'
   found. Please see sample_notices.sql at ./advance_notices.pl line
   366."
4. AFTER THIS PATCH: You get an error "no letter of type 'PREDUEDGST'
   found for borrowernumber 1104659. Please see sample_notices.sql at
   ./advance_notices.pl line 368."
   Makes life more worth living for!
   Also diacritics printed on screen are displayed properly.

Signed-off-by: Frederic Demians <f.demians@tamil.fr>
  I confirm the diacritics issue and solution. borrowernumber is
  displayed with warning when the 'no letter...' message is displayed.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
Olli-Antti Kivilahti 2014-09-15 11:42:34 +03:00 committed by Kyle M Hall
parent 201f6e4e0b
commit d5e946d0ed

View file

@ -162,6 +162,8 @@ The F<misc/cronjobs/overdue_notices.pl> program allows you to send
messages to patrons when their messages are overdue.
=cut
binmode( STDOUT, ':encoding(UTF-8)' );
# These are defaults for command line options.
my $confirm; # -c: Confirm that the user has read and configured this script.
my $nomail; # -n: No mail. Will not send any emails.
@ -266,7 +268,7 @@ UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
substitute => { 'items.content' => $titles },
message_transport_type => $transport,
} )
or warn "no letter of type '$letter_type' found. Please see sample_notices.sql";
or warn "no letter of type '$letter_type' found for borrowernumber ".$upcoming->{'borrowernumber'}.". Please see sample_notices.sql";
push @letters, $letter if $letter;
}
}
@ -300,7 +302,7 @@ UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
substitute => { 'items.content' => $titles },
message_transport_type => $transport,
} )
or warn "no letter of type '$letter_type' found. Please see sample_notices.sql";
or warn "no letter of type '$letter_type' found for borrowernumber ".$upcoming->{'borrowernumber'}.". Please see sample_notices.sql";
push @letters, $letter if $letter;
}
}
@ -373,7 +375,7 @@ PATRON: while ( my ( $borrowernumber, $digest ) = each %$upcoming_digest ) {
message_transport_type => $transport,
}
)
or warn "no letter of type '$letter_type' found. Please see sample_notices.sql";
or warn "no letter of type '$letter_type' found for borrowernumber $borrowernumber. Please see sample_notices.sql";
push @letters, $letter if $letter;
}
@ -430,7 +432,7 @@ PATRON: while ( my ( $borrowernumber, $digest ) = each %$due_digest ) {
message_transport_type => $transport,
}
)
or warn "no letter of type '$letter_type' found. Please see sample_notices.sql";
or warn "no letter of type '$letter_type' found for borrowernumber $borrowernumber. Please see sample_notices.sql";
push @letters, $letter if $letter;
}