[Koha-patches] [PATCH] Fixes bug 3619: _send_message_by_email not respecting AutoEmailPrimaryAddress = 'OFF'
Ian Walls
ian.walls at bywatersolutions.com
Mon Jun 14 16:26:09 CEST 2010
---
C4/Letters.pm | 7 ++++++-
C4/Members.pm | 29 +++++++++++++++++++++++++++++
2 files changed, 35 insertions(+), 1 deletions(-)
diff --git a/C4/Letters.pm b/C4/Letters.pm
index 3dc3e52..82c6227 100644
--- a/C4/Letters.pm
+++ b/C4/Letters.pm
@@ -822,7 +822,12 @@ sub _send_message_by_email ($;$$$) {
return;
}
my $which_address = C4::Context->preference('AutoEmailPrimaryAddress');
- $to_address = $member->{$which_address};
+ # If the system preference is set to 'first valid' (value == OFF), look up email address
+ if ($which_address eq 'OFF') {
+ $to_address = GetFirstValidEmailAddress( $message->{'borrowernumber'} );
+ } else {
+ $to_address = $member->{$which_address};
+ }
unless ($to_address) {
# warn "FAIL: No 'to_address' and no email for " . ($member->{surname} ||'') . ", borrowernumber ($message->{borrowernumber})";
# warning too verbose for this more common case?
diff --git a/C4/Members.pm b/C4/Members.pm
index 30e9f2d..bde6912 100644
--- a/C4/Members.pm
+++ b/C4/Members.pm
@@ -56,6 +56,8 @@ BEGIN {
&getzipnamecity
&getidcity
+ &GetFirstValidEmailAddress
+
&GetAge
&GetCities
&GetRoadTypes
@@ -1263,6 +1265,33 @@ sub getidcity {
return $data;
}
+=head2 GetFirstValidEmailAddress
+
+ $email = GetFirstValidEmailAddress($borrowernumber);
+
+Return the first valid email address for a borrower, given the borrowernumber. For now, the order
+is defined as email, emailpro, B_email. Returns the empty string if the borrower has no email
+addresses.
+
+=cut
+
+sub GetFirstValidEmailAddress {
+ 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;
+
+ if ($data->{'email'}) {
+ return $data->{'email'};
+ } elsif ($data->{'emailpro'}) {
+ return $data->{'emailpro'};
+ } elsif ($data->{'B_email'}) {
+ return $data->{'B_email'};
+ } else {
+ return '';
+ }
+}
=head2 GetExpiryDate
--
1.5.6.5
More information about the Koha-patches
mailing list