X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fsvc_acct.pm;fp=FS%2FFS%2Fsvc_acct.pm;h=a137143ce609a5b0491e680f2eeb65c08d35e376;hp=59d1e04f9407480586dd061ef85c1fd345da936d;hb=571291dda91dd92db80660aa3d67333b0c88fc34;hpb=c47980a8d9e1b83a80232674a57a875e319f9643 diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm index 59d1e04f9..a137143ce 100644 --- a/FS/FS/svc_acct.pm +++ b/FS/FS/svc_acct.pm @@ -713,14 +713,21 @@ sub insert { # slight false laziness w/ edit/process/cust_main.cgi... # and also slightly arbitrary behavior. - # if the "real name" of this account matches the first + last name - # of a contact, attach the email address to that person. - my @contacts = map { $_->contact } $cust_main->cust_contact; - my $myname = $self->get('finger'); - my ($contact) = - grep { $_->get('first') . ' ' . $_->get('last') eq $myname } @contacts; - # otherwise just pick the first one - $contact ||= $contacts[0]; + # + # this will never happen but check it anyway + my ($contact) = map { $_->contact } + qsearch('contact_email', { emailaddress => $self->email }); + + if (!$contact) { + # if the "real name" of this account matches the first + last name + # of a contact, attach the email address to that person. + my @contacts = map { $_->contact } $cust_main->cust_contact; + my $myname = $self->get('finger'); + my ($contact) = + grep { $_->get('first') . ' ' . $_->get('last') eq $myname } @contacts; + # otherwise just pick the first one + $contact = $contacts[0]; + } # if there is one $contact ||= FS::contact->new({ 'custnum' => $cust_main->get('custnum'),