From 80d0ec47497b076e58534a55b4eb4e0fa065fadb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9rick?= <frederick.capovilla@libeo.com> Date: Fri, 24 Aug 2012 13:43:51 -0400 Subject: [PATCH] Bug 8687: Improvements in the overdue_notices.pl script Content-Type: text/plain; charset="utf-8" - UTF-8 support in the HTML output - Add the cardnumber and phone columns to the csv output Patch sponsored by the CCSR ( http://www.ccsr.qc.ca ) Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> --- misc/cronjobs/overdue_notices.pl | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-) diff --git a/misc/cronjobs/overdue_notices.pl b/misc/cronjobs/overdue_notices.pl index e83bd39..273b401 100755 --- a/misc/cronjobs/overdue_notices.pl +++ b/misc/cronjobs/overdue_notices.pl @@ -350,7 +350,7 @@ if ( defined $csvfilename ) { } else { open $csv_fh, ">", $csvfilename or die "unable to open $csvfilename: $!"; } - if ( $csv->combine(qw(name surname address1 address2 zipcode city country email itemcount itemsinfo)) ) { + if ( $csv->combine(qw(name surname address1 address2 zipcode city country email phone cardnumber itemcount itemsinfo)) ) { print $csv_fh $csv->string, "\n"; } else { $verbose and warn 'combine failed on argument: ' . $csv->error_input; @@ -364,11 +364,12 @@ if ( defined $htmlfilename ) { $html_fh = *STDOUT; } else { my $today = DateTime->now(time_zone => C4::Context->tz ); - open $html_fh, ">",File::Spec->catdir ($htmlfilename,"notices-".$today->ymd().".html"); + open $html_fh, ">:utf8",File::Spec->catdir ($htmlfilename,"notices-".$today->ymd().".html"); } print $html_fh "<html>\n"; print $html_fh "<head>\n"; + print $html_fh "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n"; print $html_fh "<style type='text/css'>\n"; print $html_fh "pre {page-break-after: always;}\n"; print $html_fh "pre {white-space: pre-wrap;}\n"; @@ -445,7 +446,7 @@ END_SQL # <date> <itemcount> <firstname> <lastname> <address1> <address2> <address3> <city> <postcode> my $borrower_sql = <<'END_SQL'; -SELECT distinct(issues.borrowernumber), firstname, surname, address, address2, city, zipcode, country, email +SELECT distinct(issues.borrowernumber), firstname, surname, address, address2, city, zipcode, country, email, phone, cardnumber FROM issues,borrowers,categories WHERE issues.borrowernumber=borrowers.borrowernumber AND borrowers.categorycode=categories.categorycode @@ -474,8 +475,8 @@ END_SQL $verbose and warn $borrower_sql . "\n $branchcode | " . $overdue_rules->{'categorycode'} . "\n ($mindays, $maxdays)\nreturns " . $sth->rows . " rows"; while ( my ( $borrowernumber, $firstname, $lastname, - $address1, $address2, $city, $postcode, $country, $email - ) = $sth->fetchrow ) + $address1, $address2, $city, $postcode, $country, $email, + $phone, $cardnumber) = $sth->fetchrow ) { $verbose and warn "borrower $firstname, $lastname ($borrowernumber) has items triggering level $i."; @@ -553,6 +554,8 @@ END_SQL postcode => $postcode, email => $email, itemcount => $itemcount, + phone => $phone, + cardnumber => $cardnumber, titles => $titles, outputformat => defined $csvfilename ? 'csv' : defined $htmlfilename ? 'html' : '', } @@ -744,7 +747,7 @@ sub prepare_letter_for_printing { if ( exists $params->{'outputformat'} && $params->{'outputformat'} eq 'csv' ) { if ($csv->combine( $params->{'firstname'}, $params->{'lastname'}, $params->{'address1'}, $params->{'address2'}, $params->{'postcode'}, - $params->{'city'}, $params->{'email'}, $params->{'itemcount'}, $params->{'titles'} + $params->{'city'}, $params->{'email'}, $params->{'phone'}, $params->{'cardnumber'}, $params->{'itemcount'}, $params->{'titles'} ) ) { return $csv->string, "\n"; -- 1.7.2.5