Lines 276-282
my $csvfilename;
Link Here
|
276 |
my $htmlfilename; |
276 |
my $htmlfilename; |
277 |
my $triggered = 0; |
277 |
my $triggered = 0; |
278 |
my $listall = 0; |
278 |
my $listall = 0; |
279 |
my $itemscontent = join( ',', qw( date_due title barcode author itemnumber ) ); |
279 |
my $itemscontent = join( ',', qw( itemnumber issuedate date_due title barcode author itemcallnumber branchname ) ); |
280 |
my @myborcat; |
280 |
my @myborcat; |
281 |
my @myborcatout; |
281 |
my @myborcatout; |
282 |
my $date; |
282 |
my $date; |
Lines 367-373
if ( defined $csvfilename ) {
Link Here
|
367 |
} else { |
367 |
} else { |
368 |
open $csv_fh, ">", $csvfilename or die "unable to open $csvfilename: $!"; |
368 |
open $csv_fh, ">", $csvfilename or die "unable to open $csvfilename: $!"; |
369 |
} |
369 |
} |
370 |
if ( $csv->combine(qw(name surname address1 address2 zipcode city country email itemcount itemsinfo)) ) { |
370 |
if ( $csv->combine(qw(name surname address1 address2 zipcode city country email phone cardnumber itemcount itemsinfo branchname letternumber)) ) { |
371 |
print $csv_fh $csv->string, "\n"; |
371 |
print $csv_fh $csv->string, "\n"; |
372 |
} else { |
372 |
} else { |
373 |
$verbose and warn 'combine failed on argument: ' . $csv->error_input; |
373 |
$verbose and warn 'combine failed on argument: ' . $csv->error_input; |
Lines 381-391
if ( defined $htmlfilename ) {
Link Here
|
381 |
$html_fh = *STDOUT; |
381 |
$html_fh = *STDOUT; |
382 |
} else { |
382 |
} else { |
383 |
my $today = DateTime->now(time_zone => C4::Context->tz ); |
383 |
my $today = DateTime->now(time_zone => C4::Context->tz ); |
384 |
open $html_fh, ">",File::Spec->catdir ($htmlfilename,"notices-".$today->ymd().".html"); |
384 |
open $html_fh, ">:utf8",File::Spec->catdir ($htmlfilename,"notices-".$today->ymd().".html"); |
385 |
} |
385 |
} |
386 |
|
386 |
|
387 |
print $html_fh "<html>\n"; |
387 |
print $html_fh "<html>\n"; |
388 |
print $html_fh "<head>\n"; |
388 |
print $html_fh "<head>\n"; |
|
|
389 |
print $html_fh "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n"; |
389 |
print $html_fh "<style type='text/css'>\n"; |
390 |
print $html_fh "<style type='text/css'>\n"; |
390 |
print $html_fh "pre {page-break-after: always;}\n"; |
391 |
print $html_fh "pre {page-break-after: always;}\n"; |
391 |
print $html_fh "pre {white-space: pre-wrap;}\n"; |
392 |
print $html_fh "pre {white-space: pre-wrap;}\n"; |
Lines 406-415
foreach my $branchcode (@branches) {
Link Here
|
406 |
$verbose and warn sprintf "branchcode : '%s' using %s\n", $branchcode, $admin_email_address; |
407 |
$verbose and warn sprintf "branchcode : '%s' using %s\n", $branchcode, $admin_email_address; |
407 |
|
408 |
|
408 |
my $sth2 = $dbh->prepare( <<"END_SQL" ); |
409 |
my $sth2 = $dbh->prepare( <<"END_SQL" ); |
409 |
SELECT biblio.*, items.*, issues.*, biblioitems.itemtype, TO_DAYS($date)-TO_DAYS(date_due) AS days_overdue |
410 |
SELECT biblio.*, items.*, issues.*, biblioitems.itemtype, TO_DAYS($date)-TO_DAYS(date_due) AS days_overdue, branchname |
410 |
FROM issues,items,biblio, biblioitems |
411 |
FROM issues,items,biblio, biblioitems, branches b |
411 |
WHERE items.itemnumber=issues.itemnumber |
412 |
WHERE items.itemnumber=issues.itemnumber |
412 |
AND biblio.biblionumber = items.biblionumber |
413 |
AND biblio.biblionumber = items.biblionumber |
|
|
414 |
AND b.branchcode = items.homebranch |
413 |
AND biblio.biblionumber = biblioitems.biblionumber |
415 |
AND biblio.biblionumber = biblioitems.biblionumber |
414 |
AND issues.borrowernumber = ? |
416 |
AND issues.borrowernumber = ? |
415 |
AND TO_DAYS($date)-TO_DAYS(date_due) BETWEEN ? and ? |
417 |
AND TO_DAYS($date)-TO_DAYS(date_due) BETWEEN ? and ? |
Lines 456-462
END_SQL
Link Here
|
456 |
# <date> <itemcount> <firstname> <lastname> <address1> <address2> <address3> <city> <postcode> <country> |
458 |
# <date> <itemcount> <firstname> <lastname> <address1> <address2> <address3> <city> <postcode> <country> |
457 |
|
459 |
|
458 |
my $borrower_sql = <<'END_SQL'; |
460 |
my $borrower_sql = <<'END_SQL'; |
459 |
SELECT distinct(issues.borrowernumber), firstname, surname, address, address2, city, zipcode, country, email, emailpro, B_email |
461 |
SELECT distinct(issues.borrowernumber), firstname, surname, address, address2, city, zipcode, country, email, emailpro, B_email, phone, cardnumber |
460 |
FROM issues,borrowers,categories |
462 |
FROM issues,borrowers,categories |
461 |
WHERE issues.borrowernumber=borrowers.borrowernumber |
463 |
WHERE issues.borrowernumber=borrowers.borrowernumber |
462 |
AND borrowers.categorycode=categories.categorycode |
464 |
AND borrowers.categorycode=categories.categorycode |
Lines 480-486
END_SQL
Link Here
|
480 |
} |
482 |
} |
481 |
|
483 |
|
482 |
# $sth gets borrower info iff at least one overdue item has triggered the overdue action. |
484 |
# $sth gets borrower info iff at least one overdue item has triggered the overdue action. |
483 |
my $sth = $dbh->prepare($borrower_sql); |
485 |
my $sth = $dbh->prepare($borrower_sql); |
484 |
$sth->execute(@borrower_parameters); |
486 |
$sth->execute(@borrower_parameters); |
485 |
$verbose and warn $borrower_sql . "\n $branchcode | " . $overdue_rules->{'categorycode'} . "\n ($mindays, $maxdays)\nreturns " . $sth->rows . " rows"; |
487 |
$verbose and warn $borrower_sql . "\n $branchcode | " . $overdue_rules->{'categorycode'} . "\n ($mindays, $maxdays)\nreturns " . $sth->rows . " rows"; |
486 |
|
488 |
|
Lines 603-612
END_SQL
Link Here
|
603 |
city => $data->{'city'}, |
605 |
city => $data->{'city'}, |
604 |
postcode => $data->{'zipcode'}, |
606 |
postcode => $data->{'zipcode'}, |
605 |
country => $data->{'country'}, |
607 |
country => $data->{'country'}, |
|
|
608 |
phone => $data->{'phone'}, |
609 |
cardnumber => $data->{'cardnumber'}, |
606 |
email => $notice_email, |
610 |
email => $notice_email, |
607 |
itemcount => $itemcount, |
611 |
itemcount => $itemcount, |
608 |
titles => $titles, |
612 |
titles => $titles, |
609 |
outputformat => defined $csvfilename ? 'csv' : defined $htmlfilename ? 'html' : '', |
613 |
outputformat => defined $csvfilename ? 'csv' : defined $htmlfilename ? 'html' : '', |
|
|
614 |
branchname => $branch_details->{'branchname'}, |
615 |
letternumber => $i |
610 |
} |
616 |
} |
611 |
); |
617 |
); |
612 |
} |
618 |
} |
Lines 764-770
sub prepare_letter_for_printing {
Link Here
|
764 |
if ( exists $params->{'outputformat'} && $params->{'outputformat'} eq 'csv' ) { |
770 |
if ( exists $params->{'outputformat'} && $params->{'outputformat'} eq 'csv' ) { |
765 |
if ($csv->combine( |
771 |
if ($csv->combine( |
766 |
$params->{'firstname'}, $params->{'lastname'}, $params->{'address1'}, $params->{'address2'}, $params->{'postcode'}, |
772 |
$params->{'firstname'}, $params->{'lastname'}, $params->{'address1'}, $params->{'address2'}, $params->{'postcode'}, |
767 |
$params->{'city'}, $params->{'country'}, $params->{'email'}, $params->{'itemcount'}, $params->{'titles'} |
773 |
$params->{'city'}, $params->{'country'}, $params->{'email'}, $params->{'phone'}, $params->{'cardnumber'}, |
|
|
774 |
$params->{'itemcount'}, $params->{'titles'}, $params->{'branchname'}, $params->{'letternumber'} |
768 |
) |
775 |
) |
769 |
) { |
776 |
) { |
770 |
return $csv->string, "\n"; |
777 |
return $csv->string, "\n"; |
771 |
- |
|
|