[freeside-commits] branch FREESIDE_3_BRANCH updated. 4f4d11046c36e8f8f6c74a6e8c0fe6ecd976d3ca

Christopher Burger burgerc at 420.am
Tue Jul 25 05:48:13 PDT 2017


The branch, FREESIDE_3_BRANCH has been updated
       via  4f4d11046c36e8f8f6c74a6e8c0fe6ecd976d3ca (commit)
       via  44c03de388473659249249885c8b068485ec4112 (commit)
      from  dec15062e2df6f615e42d5f87193133a3e072826 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 4f4d11046c36e8f8f6c74a6e8c0fe6ecd976d3ca
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Mon Jul 24 16:45:50 2017 -0400

    RT# 38517 - Added Lingua::EN::NameParse to parse real name into first and last name.

diff --git a/rt/lib/RT/Interface/Web_Vendor.pm b/rt/lib/RT/Interface/Web_Vendor.pm
index b9f27a4..d157733 100644
--- a/rt/lib/RT/Interface/Web_Vendor.pm
+++ b/rt/lib/RT/Interface/Web_Vendor.pm
@@ -170,16 +170,25 @@ sub ProcessTicketCustomers {
             'table'     => 'contact_email',
             'hashref'   => { 'emailaddress' => $Requestor->{'values'}->{'emailaddress'}, },
            } ) ) {
-             use FS::contact;
 
-             my $lname = $Requestor->{'values'}->{'realname'} ?
-                (split (/ /, $Requestor->{'values'}->{'realname'}))[-1] :
-                'Requestor';
+            ## 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 $fname = $Requestor->{'values'}->{'realname'} ?
-                (split (/ /, $Requestor->{'values'}->{'realname'}))[0] :
-                'RT';
+             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,

commit 44c03de388473659249249885c8b068485ec4112
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Thu Jul 20 09:29:45 2017 -0400

    RT# 38517 - added auto create of customer contact, if requestor is not a contact yet when adding a company to ticket.

diff --git a/rt/lib/RT/Interface/Web_Vendor.pm b/rt/lib/RT/Interface/Web_Vendor.pm
index c9bff6f..b9f27a4 100644
--- a/rt/lib/RT/Interface/Web_Vendor.pm
+++ b/rt/lib/RT/Interface/Web_Vendor.pm
@@ -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;
+        }
       }
 
     }

-----------------------------------------------------------------------

Summary of changes:
 rt/lib/RT/Interface/Web_Vendor.pm |   36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)




More information about the freeside-commits mailing list