RT# 38517 - added auto create of customer contact, if requestor is not a contact...
authorChristopher Burger <burgerc@freeside.biz>
Thu, 20 Jul 2017 13:29:45 +0000 (09:29 -0400)
committerChristopher Burger <burgerc@freeside.biz>
Thu, 20 Jul 2017 13:29:45 +0000 (09:29 -0400)
rt/lib/RT/Interface/Web_Vendor.pm

index ea3a498..da0b189 100644 (file)
@@ -164,6 +164,33 @@ sub ProcessTicketCustomers {
         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'}, },
+           } ) ) {
+             use FS::contact;
+
+             my $lname = $Requestor->{'values'}->{'realname'} ?
+                (split (/ /, $Requestor->{'values'}->{'realname'}))[-1] :
+                'Requestor';
+
+            my $fname = $Requestor->{'values'}->{'realname'} ?
+                (split (/ /, $Requestor->{'values'}->{'realname'}))[0] :
+                'RT';
+
+             my $contact = new FS::contact {
+                'custnum'       => $custnum,
+                'first'         => $fname,
+                'last'          => $lname,
+                'emailaddress'  => $Requestor->{'values'}->{'emailaddress'},
+                'comment'       => 'Auto created from RT requestor',
+             };
+             my $error = $contact->insert;
+             push @results, 'Created Freeside contact for requestor ' . $Requestor->{'values'}->{'emailaddress'}
+             unless $error;
+        }
       }
 
     }