Bugzilla – Attachment 8712 Details for
Bug 6835
Ability to specify types of email address in overdue_notices.pl
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 6835 - Ability to specify types of email address in overdue_notices.pl
Bug-6835---Ability-to-specify-types-of-email-addre.patch (text/plain), 6.11 KB, created by
Matthias Meusburger
on 2012-03-30 09:09:24 UTC
(
hide
)
Description:
Bug 6835 - Ability to specify types of email address in overdue_notices.pl
Filename:
MIME Type:
Creator:
Matthias Meusburger
Created:
2012-03-30 09:09:24 UTC
Size:
6.11 KB
patch
obsolete
>From afd98a54f19dcfba3f0cef26f0a98e0b91903d49 Mon Sep 17 00:00:00 2001 >From: Alex Arnaud <alex.arnaud@biblibre.com> >Date: Fri, 2 Sep 2011 11:40:40 +0200 >Subject: [PATCH] Bug 6835 - Ability to specify types of email address in > overdue_notices.pl > >- perltidy done >- in production for a BibLibre customer >- validated by the customer > >Signed-off-by: Claire Hernandez <claire.hernandez@biblibre.com> >--- > C4/Members.pm | 33 +++++++++++++++++++++++++++++ > misc/cronjobs/overdue_notices.pl | 43 ++++++++++++++++++++++++++++++++++++- > 2 files changed, 74 insertions(+), 2 deletions(-) > >diff --git a/C4/Members.pm b/C4/Members.pm >index 6161ac9..337e936 100644 >--- a/C4/Members.pm >+++ b/C4/Members.pm >@@ -64,6 +64,7 @@ BEGIN { > &getidcity > > &GetFirstValidEmailAddress >+ &GetValidEmailAddresses > > &GetAge > &GetCities >@@ -1315,6 +1316,38 @@ sub GetFirstValidEmailAddress { > } > } > >+ >+=head2 GetValidEmailAddresses >+ >+ $email = GetValidEmailAddresses($borrowernumber); >+ >+Return all the valid email address for a borrower, given the borrowernumber. Returns an hash. >+ >+=cut >+ >+sub GetValidEmailAddresses { >+ my $borrowernumber = shift; >+ my $dbh = C4::Context->dbh; >+ my $sth = $dbh->prepare( >+"SELECT email, emailpro, B_email FROM borrowers where borrowernumber = ? " >+ ); >+ $sth->execute($borrowernumber); >+ my $data = $sth->fetchrow_hashref; >+ my %mailhash; >+ >+ if ( $data->{'email'} ) { >+ $mailhash{'email'} = $data->{'email'}; >+ } >+ if ( $data->{'emailpro'} ) { >+ $mailhash{'emailpro'} = $data->{'emailpro'}; >+ } >+ if ( $data->{'B_email'} ) { >+ $mailhash{'B_email'} = $data->{'B_email'}; >+ } >+ return \%mailhash; >+} >+ >+ > =head2 GetExpiryDate > > $expirydate = GetExpiryDate($categorycode, $dateenrolled); >diff --git a/misc/cronjobs/overdue_notices.pl b/misc/cronjobs/overdue_notices.pl >index cb9ffa2..10b7313 100755 >--- a/misc/cronjobs/overdue_notices.pl >+++ b/misc/cronjobs/overdue_notices.pl >@@ -47,7 +47,10 @@ overdue_notices.pl - prepare messages to be sent to patrons for overdue items > > =head1 SYNOPSIS > >-overdue_notices.pl [ -n ] [ -library <branchcode> ] [ -library <branchcode>...] [ -max <number of days> ] [ -csv [ <filename> ] ] [ -itemscontent <field list> ] >+overdue_notices >+ . pl [ -n ][ -library <branchcode> ][ -library <branchcode> ... ] >+ [ -max <number of days> ][ -csv [<filename>] ][ -itemscontent <field list> ] >+ [ -email <email_type> ... ] > > Options: > -help brief help message >@@ -60,6 +63,7 @@ overdue_notices.pl [ -n ] [ -library <branchcode> ] [ -library <branchcode>...] > -itemscontent <list of fields> item information in templates > -borcat <categorycode> category code that must be included > -borcatout <categorycode> category code that must be excluded >+ -email <email_type> type of email that will be used. Can be 'email', 'emailpro' or 'B_email'. Repeatable. > > =head1 OPTIONS > >@@ -143,6 +147,10 @@ Default items.content lists only those items that fall in the > range of the currently processing notice. > Choose list-all to include all overdue items in the list (limited by B<-max> setting). > >+=item B<-email> >+ >+Allows to specify which type of email will be used. Can be email, emailpro or B_email. Repeatable. >+ > =back > > =head1 DESCRIPTION >@@ -252,6 +260,8 @@ my $verbose = 0; > my $nomail = 0; > my $MAX = 90; > my @branchcodes; # Branch(es) passed as parameter >+my @emails_to_use; # Emails to use for messaging >+my @emails; # Emails given in command-line parameters > my $csvfilename; > my $htmlfilename; > my $triggered = 0; >@@ -274,6 +284,7 @@ GetOptions( > 't|triggered' => \$triggered, > 'borcat=s' => \@myborcat, > 'borcatout=s' => \@myborcatout, >+ 'email=s' => \@emails, > ) or pod2usage(2); > pod2usage(1) if $help; > pod2usage( -verbose => 2 ) if $man; >@@ -459,6 +470,33 @@ END_SQL > ) = $sth->fetchrow ) > { > $verbose and warn "borrower $firstname, $lastname ($borrowernumber) has items triggering level $i."; >+ @emails_to_use = (); >+ if ( @emails && !$nomail ) { >+ my $validemails = >+ C4::Members::GetValidEmailAddresses($borrowernumber); >+ foreach (@emails) { >+ push @emails_to_use, $validemails->{$_} >+ if ( defined $validemails->{$_} ); >+ } >+ $email = 1 if (@emails_to_use); >+ } >+ else { >+ $email = >+ C4::Members::GetFirstValidEmailAddress($borrowernumber); >+ push @emails_to_use, $email; >+ } >+ >+ $verbose and warn "borrower $firstname, $lastname ($borrowernumber) has $itemcount items triggering level $i."; >+ >+ my $letter = C4::Letters::getletter( 'circulation', $overdue_rules->{"letter$i"} ); >+ >+ unless ($letter) { >+ $verbose and warn "Message '$overdue_rules->{letter$i}' content not found"; >+ >+ # might as well skip while PERIOD, no other borrowers are going to work. >+ # FIXME : Does this mean a letter must be defined in order to trigger a debar ? >+ next PERIOD; >+ } > > if ( $overdue_rules->{"debarred$i"} ) { > >@@ -538,12 +576,13 @@ END_SQL > } > ); > } else { >- if ($email) { >+ if (scalar(@emails_to_use) > 0 ) { > C4::Letters::EnqueueLetter( > { letter => $letter, > borrowernumber => $borrowernumber, > message_transport_type => 'email', > from_address => $admin_email_address, >+ to_address => join(',', @emails_to_use), > } > ); > } else { >-- >1.7.5.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 6835
:
5281
|
6208
|
8712
|
9753
|
10018
|
10069
|
12036
|
12335
|
12336
|
14068
|
14727