Lines 450-456
END_SQL
Link Here
|
450 |
# <date> <itemcount> <firstname> <lastname> <address1> <address2> <address3> <city> <postcode> <country> |
450 |
# <date> <itemcount> <firstname> <lastname> <address1> <address2> <address3> <city> <postcode> <country> |
451 |
|
451 |
|
452 |
my $borrower_sql = <<'END_SQL'; |
452 |
my $borrower_sql = <<'END_SQL'; |
453 |
SELECT distinct(issues.borrowernumber), firstname, surname, address, address2, city, zipcode, country, email |
453 |
SELECT distinct(issues.borrowernumber), firstname, surname, address, address2, city, zipcode, country, email, emailpro, B_email |
454 |
FROM issues,borrowers,categories |
454 |
FROM issues,borrowers,categories |
455 |
WHERE issues.borrowernumber=borrowers.borrowernumber |
455 |
WHERE issues.borrowernumber=borrowers.borrowernumber |
456 |
AND borrowers.categorycode=categories.categorycode |
456 |
AND borrowers.categorycode=categories.categorycode |
Lines 478-501
END_SQL
Link Here
|
478 |
$sth->execute(@borrower_parameters); |
478 |
$sth->execute(@borrower_parameters); |
479 |
$verbose and warn $borrower_sql . "\n $branchcode | " . $overdue_rules->{'categorycode'} . "\n ($mindays, $maxdays)\nreturns " . $sth->rows . " rows"; |
479 |
$verbose and warn $borrower_sql . "\n $branchcode | " . $overdue_rules->{'categorycode'} . "\n ($mindays, $maxdays)\nreturns " . $sth->rows . " rows"; |
480 |
|
480 |
|
481 |
while ( my ( $borrowernumber, $firstname, $lastname, |
481 |
while ( my $data = $sth->fetchrow_hashref ) { |
482 |
$address1, $address2, $city, $postcode, $country, $email |
482 |
my $borrowernumber = $data->{'borrowernumber'}; |
483 |
) = $sth->fetchrow ) |
483 |
my $borr = |
484 |
{ |
484 |
$data->{'firstname'} . ', ' |
485 |
$verbose and warn "borrower $firstname, $lastname ($borrowernumber) has items triggering level $i."; |
485 |
. $data->{'surname'} . ' (' |
|
|
486 |
. $borrowernumber . ')'; |
487 |
$verbose |
488 |
and warn "borrower $borr has items triggering level $i."; |
489 |
|
486 |
@emails_to_use = (); |
490 |
@emails_to_use = (); |
487 |
if ( !$nomail) { |
491 |
my $notice_email = |
488 |
if ( @emails ) { |
492 |
C4::Members::GetNoticeEmailAddress($borrowernumber); |
489 |
my $memberinfos = C4::Members::GetMember(borrowernumber => $borrowernumber); |
493 |
unless ($nomail) { |
|
|
494 |
if (@emails) { |
490 |
foreach (@emails) { |
495 |
foreach (@emails) { |
491 |
push @emails_to_use, $memberinfos->{$_} |
496 |
push @emails_to_use, $data->{$_} if ( $data->{$_} ); |
492 |
if ($memberinfos->{$_} ne ''); |
|
|
493 |
} |
497 |
} |
494 |
} |
498 |
} |
495 |
else { |
499 |
else { |
496 |
$email = |
500 |
push @emails_to_use, $notice_email if ($notice_email); |
497 |
C4::Members::GetFirstValidEmailAddress($borrowernumber); |
|
|
498 |
push @emails_to_use, $email if ($email ne ''); |
499 |
} |
501 |
} |
500 |
} |
502 |
} |
501 |
|
503 |
|
Lines 513-519
END_SQL
Link Here
|
513 |
|
515 |
|
514 |
#action taken is debarring |
516 |
#action taken is debarring |
515 |
C4::Members::DebarMember($borrowernumber, '9999-12-31'); |
517 |
C4::Members::DebarMember($borrowernumber, '9999-12-31'); |
516 |
$verbose and warn "debarring $borrowernumber $firstname $lastname\n"; |
518 |
$verbose and warn "debarring $borr\n"; |
517 |
} |
519 |
} |
518 |
my @params = ($listall ? ( $borrowernumber , 1 , $MAX ) : ( $borrowernumber, $mindays, $maxdays )); |
520 |
my @params = ($listall ? ( $borrowernumber , 1 , $MAX ) : ( $borrowernumber, $mindays, $maxdays )); |
519 |
$verbose and warn "STH2 PARAMS: borrowernumber = $borrowernumber, mindays = $mindays, maxdays = $maxdays"; |
521 |
$verbose and warn "STH2 PARAMS: borrowernumber = $borrowernumber, mindays = $mindays, maxdays = $maxdays"; |
Lines 567-623
END_SQL
Link Here
|
567 |
} |
569 |
} |
568 |
$letter->{'content'} =~ s/\<[^<>]*?\>//g; # Now that we've warned about them, remove them. |
570 |
$letter->{'content'} =~ s/\<[^<>]*?\>//g; # Now that we've warned about them, remove them. |
569 |
$letter->{'content'} =~ s/\<[^<>]*?\>//g; # 2nd pass for the double nesting. |
571 |
$letter->{'content'} =~ s/\<[^<>]*?\>//g; # 2nd pass for the double nesting. |
570 |
|
572 |
|
571 |
if ($nomail) { |
573 |
if ( !$nomail && scalar @emails_to_use ) { |
572 |
|
574 |
C4::Letters::EnqueueLetter( |
|
|
575 |
{ letter => $letter, |
576 |
borrowernumber => $borrowernumber, |
577 |
message_transport_type => 'email', |
578 |
from_address => $admin_email_address, |
579 |
to_address => join(',', @emails_to_use), |
580 |
} |
581 |
); |
582 |
} else { |
583 |
# if not sent by email then print |
573 |
push @output_chunks, |
584 |
push @output_chunks, |
574 |
prepare_letter_for_printing( |
585 |
prepare_letter_for_printing( |
575 |
{ letter => $letter, |
586 |
{ letter => $letter, |
576 |
borrowernumber => $borrowernumber, |
587 |
borrowernumber => $borrowernumber, |
577 |
firstname => $firstname, |
588 |
firstname => $data->{'firstname'}, |
578 |
lastname => $lastname, |
589 |
lastname => $data->{'surname'}, |
579 |
address1 => $address1, |
590 |
address1 => $data->{'address'}, |
580 |
address2 => $address2, |
591 |
address2 => $data->{'address2'}, |
581 |
city => $city, |
592 |
city => $data->{'city'}, |
582 |
postcode => $postcode, |
593 |
postcode => $data->{'zipcode'}, |
583 |
country => $country, |
594 |
country => $data->{'country'}, |
584 |
email => $email, |
595 |
email => $notice_email, |
585 |
itemcount => $itemcount, |
596 |
itemcount => $itemcount, |
586 |
titles => $titles, |
597 |
titles => $titles, |
587 |
outputformat => defined $csvfilename ? 'csv' : defined $htmlfilename ? 'html' : '', |
598 |
outputformat => defined $csvfilename ? 'csv' : defined $htmlfilename ? 'html' : '', |
588 |
} |
599 |
} |
589 |
); |
600 |
); |
590 |
} else { |
|
|
591 |
if (scalar(@emails_to_use) > 0 ) { |
592 |
C4::Letters::EnqueueLetter( |
593 |
{ letter => $letter, |
594 |
borrowernumber => $borrowernumber, |
595 |
message_transport_type => 'email', |
596 |
from_address => $admin_email_address, |
597 |
to_address => join(',', @emails_to_use), |
598 |
} |
599 |
); |
600 |
} else { |
601 |
|
602 |
# If we don't have an email address for this patron, send it to the admin to deal with. |
603 |
push @output_chunks, |
604 |
prepare_letter_for_printing( |
605 |
{ letter => $letter, |
606 |
borrowernumber => $borrowernumber, |
607 |
firstname => $firstname, |
608 |
lastname => $lastname, |
609 |
address1 => $address1, |
610 |
address2 => $address2, |
611 |
city => $city, |
612 |
postcode => $postcode, |
613 |
country => $country, |
614 |
email => $email, |
615 |
itemcount => $itemcount, |
616 |
titles => $titles, |
617 |
outputformat => defined $csvfilename ? 'csv' : defined $htmlfilename ? 'html' : '', |
618 |
} |
619 |
); |
620 |
} |
621 |
} |
601 |
} |
622 |
} |
602 |
} |
623 |
$sth->finish; |
603 |
$sth->finish; |
624 |
- |
|
|