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

(-)a/C4/Letters.pm (-14 / +16 lines)
Lines 926-948 sub _send_message_by_email { Link Here
926
926
927
    my $member = C4::Members::GetMember( 'borrowernumber' => $message->{'borrowernumber'} );
927
    my $member = C4::Members::GetMember( 'borrowernumber' => $message->{'borrowernumber'} );
928
    my $to_address = $message->{'to_address'};
928
    my $to_address = $message->{'to_address'};
929
    unless ($to_address) {
929
930
        unless ($member) {
930
    if ($member) {
931
            warn "FAIL: No 'to_address' and INVALID borrowernumber ($message->{borrowernumber})";
931
        my $guarantorid = $member->{'guarantorid'};
932
            _set_message_status( { message_id => $message->{'message_id'},
932
        if ($guarantorid){
933
                                   status     => 'failed' } );
933
                $to_address = C4::Members::GetNoticeEmailAddress( $message->{'borrowernumber'} );
934
            return;
934
        } else {
935
        }
935
            unless ($to_address) {
936
        $to_address = C4::Members::GetNoticeEmailAddress( $message->{'borrowernumber'} );
936
                $to_address = C4::Members::GetNoticeEmailAddress( $message->{'borrowernumber'} );
937
        unless ($to_address) {  
937
            }
938
            # warn "FAIL: No 'to_address' and no email for " . ($member->{surname} ||'') . ", borrowernumber ($message->{borrowernumber})";
939
            # warning too verbose for this more common case?
940
            _set_message_status( { message_id => $message->{'message_id'},
941
                                   status     => 'failed' } );
942
            return;
943
        }
938
        }
944
    }
939
    }
945
940
941
    unless ($to_address) {
942
         warn "FAIL: No 'to_address' and INVALID borrowernumber ($message->{borrowernumber})";
943
         _set_message_status( { message_id => $message->{'message_id'},
944
                               status     => 'failed' } );
945
         return;
946
    }
947
946
    my $utf8   = decode('MIME-Header', $message->{'subject'} );
948
    my $utf8   = decode('MIME-Header', $message->{'subject'} );
947
    $message->{subject}= encode('MIME-Header', $utf8);
949
    $message->{subject}= encode('MIME-Header', $utf8);
948
    my $subject = encode('utf8', $message->{'subject'});
950
    my $subject = encode('utf8', $message->{'subject'});
(-)a/C4/Members.pm (-13 / +15 lines)
Lines 1497-1518 Returns the empty string if no email address. Link Here
1497
1497
1498
sub GetNoticeEmailAddress {
1498
sub GetNoticeEmailAddress {
1499
    my $borrowernumber = shift;
1499
    my $borrowernumber = shift;
1500
    my $dbh = C4::Context->dbh();
1501
1502
    my $member = C4::Members::GetMember( 'borrowernumber' => $borrowernumber );
1503
    my $guarantorid = $member->{'guarantorid'};
1504
1505
    my $borrowerNumberToSendEmail = $guarantorid ? $guarantorid : $borrowernumber;
1500
1506
1501
    my $which_address = C4::Context->preference("AutoEmailPrimaryAddress");
1507
    my $which_address = C4::Context->preference("AutoEmailPrimaryAddress");
1502
    # if syspref is set to 'first valid' (value == OFF), look up email address
1508
    # if syspref is set to 'first valid' (value == OFF), look up email address
1509
    my $to_address = $member->{$which_address};
1503
    if ( $which_address eq 'OFF' ) {
1510
    if ( $which_address eq 'OFF' ) {
1504
        return GetFirstValidEmailAddress($borrowernumber);
1511
        $to_address = GetFirstValidEmailAddress($borrowerNumberToSendEmail);
1505
    }
1512
    } elsif( $guarantorid ) {
1506
    # specified email address field
1513
        my $guarantor = C4::Members::GetMember( 'borrowernumber' => $guarantorid );
1507
    my $dbh = C4::Context->dbh;
1514
        if ( $guarantor ){
1508
    my $sth = $dbh->prepare( qq{
1515
            $to_address = $guarantor->{ $which_address };
1509
        SELECT $which_address AS primaryemail
1516
        }
1510
        FROM borrowers
1517
   }
1511
        WHERE borrowernumber=?
1518
   return $to_address || '';
1512
    } );
1513
    $sth->execute($borrowernumber);
1514
    my $data = $sth->fetchrow_hashref;
1515
    return $data->{'primaryemail'} || '';
1516
}
1519
}
1517
1520
1518
=head2 GetExpiryDate 
1521
=head2 GetExpiryDate 
1519
- 

Return to bug 12532