push @results, $msg;
warn "$me: linking requestor to custnum $custnum: $msg\n"
if $Debug > 1;
+
+ ## check if FS contact email exists, if not create it.
+ if ( !qsearchs( {
+ 'table' => 'contact_email',
+ 'hashref' => { 'emailaddress' => $Requestor->{'values'}->{'emailaddress'}, },
+ } ) ) {
+
+ ## get first and last name for contact.
+ my ($fname, $lname) = (
+ split (/\@/, substr($Requestor->{'values'}->{'emailaddress'}, 0, index($Requestor->{'values'}->{'emailaddress'}, ".")))
+ );
+
+ use Lingua::EN::NameParse;
+ my $name = Lingua::EN::NameParse->new();
+
+ my $error = $name->parse($Requestor->{'values'}->{'realname'})
+ unless !$Requestor->{'values'}->{'realname'};
+
+ my %name_comps = $name->components unless !$Requestor->{'values'}->{'realname'} || $error;
+
+ $fname = $name_comps{given_name_1} || $name_comps{initials_1} unless !$name_comps{given_name_1} && !$name_comps{initials_1};
+ $lname = $name_comps{surname_1} unless !$name_comps{surname_1};
+
+ ## create the contact.
+ use FS::contact;
+ my $contact = new FS::contact {
+ 'custnum' => $custnum,
+ 'first' => $fname,
+ 'last' => $lname,
+ 'emailaddress' => $Requestor->{'values'}->{'emailaddress'},
+ 'comment' => 'Auto created from RT requestor',
+ };
+ $error = $contact->insert;
+ push @results, 'Created Freeside contact for requestor ' . $Requestor->{'values'}->{'emailaddress'}
+ unless $error;
+ }
}
}