View | Details | Raw Unified | Return to bug 9103
Collapse All | Expand All

(-)a/C4/Letters.pm (-7 / +1 lines)
Lines 1015-1027 sub _send_message_by_email { Link Here
1015
                                   status     => 'failed' } );
1015
                                   status     => 'failed' } );
1016
            return;
1016
            return;
1017
        }
1017
        }
1018
        my $which_address = C4::Context->preference('AutoEmailPrimaryAddress');
1018
        $to_address = GetPrimaryEmailAddress( $message->{'borrowernumber'} );
1019
        # If the system preference is set to 'first valid' (value == OFF), look up email address
1020
        if ($which_address eq 'OFF') {
1021
            $to_address = GetFirstValidEmailAddress( $message->{'borrowernumber'} );
1022
        } else {
1023
            $to_address = $member->{$which_address};
1024
        }
1025
        unless ($to_address) {  
1019
        unless ($to_address) {  
1026
            # warn "FAIL: No 'to_address' and no email for " . ($member->{surname} ||'') . ", borrowernumber ($message->{borrowernumber})";
1020
            # warn "FAIL: No 'to_address' and no email for " . ($member->{surname} ||'') . ", borrowernumber ($message->{borrowernumber})";
1027
            # warning too verbose for this more common case?
1021
            # warning too verbose for this more common case?
(-)a/C4/Members.pm (+30 lines)
Lines 65-70 BEGIN { Link Here
65
        &getidcity
65
        &getidcity
66
66
67
        &GetFirstValidEmailAddress
67
        &GetFirstValidEmailAddress
68
        &GetPrimaryEmailAddress
68
69
69
        &GetAge
70
        &GetAge
70
        &GetCities
71
        &GetCities
Lines 1312-1317 sub GetFirstValidEmailAddress { Link Here
1312
    }
1313
    }
1313
}
1314
}
1314
1315
1316
=head2 GetPrimaryEmailAddress
1317
1318
  $email = GetPrimaryEmailAddress($borrowernumber);
1319
1320
Return the primary email address for a borrower, given the borrowernumber.
1321
Returns the empty string if no email address.
1322
1323
=cut
1324
1325
sub GetPrimaryEmailAddress {
1326
    my $borrowernumber = shift;
1327
1328
    my $which_address = C4::Context->preference("AutoEmailPrimaryAddress");
1329
    # if syspref is set to 'first valid' (value == OFF), look up email address
1330
    if ( $which_address eq 'OFF' ) {
1331
        return GetFirstValidEmailAddress($borrowernumber);
1332
    }
1333
    # specified email address field
1334
    my $dbh = C4::Context->dbh;
1335
    my $sth = $dbh->prepare( qq{
1336
        SELECT $which_address AS primaryemail
1337
        FROM borrowers
1338
        WHERE borrowernumber=?
1339
    } );
1340
    $sth->execute($borrowernumber);
1341
    my $data = $sth->fetchrow_hashref;
1342
    return $data->{'primaryemail'} || '';
1343
}
1344
1315
=head2 GetExpiryDate 
1345
=head2 GetExpiryDate 
1316
1346
1317
  $expirydate = GetExpiryDate($categorycode, $dateenrolled);
1347
  $expirydate = GetExpiryDate($categorycode, $dateenrolled);
(-)a/C4/Reserves.pm (-8 / +1 lines)
Lines 1835-1848 sub _koha_notify_reserve { Link Here
1835
    my $borrower = C4::Members::GetMember(borrowernumber => $borrowernumber);
1835
    my $borrower = C4::Members::GetMember(borrowernumber => $borrowernumber);
1836
    
1836
    
1837
    # Try to get the borrower's email address
1837
    # Try to get the borrower's email address
1838
    my $to_address;
1838
    my $to_address = C4::Members::GetPrimaryEmailAddress( $borrowernumber );
1839
    my $which_address = C4::Context->preference('AutoEmailPrimaryAddress');
1840
    # If the system preference is set to 'first valid' (value == OFF), look up email address
1841
    if ($which_address eq 'OFF') {
1842
        $to_address = C4::Members::GetFirstValidEmailAddress( $borrowernumber );
1843
    } else {
1844
        $to_address = $borrower->{$which_address};
1845
    }
1846
    
1839
    
1847
    my $letter_code;
1840
    my $letter_code;
1848
    my $print_mode = 0;
1841
    my $print_mode = 0;
(-)a/misc/cronjobs/overdue_notices.pl (-4 / +7 lines)
Lines 40-45 use C4::Dates qw/format_date/; Link Here
40
use C4::Debug;
40
use C4::Debug;
41
use C4::Letters;
41
use C4::Letters;
42
use C4::Overdues qw(GetFine);
42
use C4::Overdues qw(GetFine);
43
use C4::Members;
43
44
44
=head1 NAME
45
=head1 NAME
45
46
Lines 445-451 END_SQL Link Here
445
            # <date> <itemcount> <firstname> <lastname> <address1> <address2> <address3> <city> <postcode>
446
            # <date> <itemcount> <firstname> <lastname> <address1> <address2> <address3> <city> <postcode>
446
447
447
            my $borrower_sql = <<'END_SQL';
448
            my $borrower_sql = <<'END_SQL';
448
SELECT distinct(issues.borrowernumber), firstname, surname, address, address2, city, zipcode, country, email
449
SELECT distinct(issues.borrowernumber), firstname, surname, address, address2, city, zipcode, country
449
FROM   issues,borrowers,categories
450
FROM   issues,borrowers,categories
450
WHERE  issues.borrowernumber=borrowers.borrowernumber
451
WHERE  issues.borrowernumber=borrowers.borrowernumber
451
AND    borrowers.categorycode=categories.categorycode
452
AND    borrowers.categorycode=categories.categorycode
Lines 474-484 END_SQL Link Here
474
            $verbose and warn $borrower_sql . "\n $branchcode | " . $overdue_rules->{'categorycode'} . "\n ($mindays, $maxdays)\nreturns " . $sth->rows . " rows";
475
            $verbose and warn $borrower_sql . "\n $branchcode | " . $overdue_rules->{'categorycode'} . "\n ($mindays, $maxdays)\nreturns " . $sth->rows . " rows";
475
476
476
            while ( my ( $borrowernumber, $firstname, $lastname,
477
            while ( my ( $borrowernumber, $firstname, $lastname,
477
                    $address1, $address2, $city, $postcode, $country, $email
478
                    $address1, $address2, $city, $postcode, $country
478
                    ) = $sth->fetchrow )
479
                    ) = $sth->fetchrow )
479
            {
480
            {
480
                $verbose and warn "borrower $firstname, $lastname ($borrowernumber) has items triggering level $i.";
481
                $verbose and warn "borrower $firstname, $lastname ($borrowernumber) has items triggering level $i.";
481
    
482
483
                # Try to get the borrower's email address
484
                my $email = GetPrimaryEmailAddress($borrowernumber);
485
482
                if ( $overdue_rules->{"debarred$i"} ) {
486
                if ( $overdue_rules->{"debarred$i"} ) {
483
    
487
    
484
                    #action taken is debarring
488
                    #action taken is debarring
485
- 

Return to bug 9103