[freeside-commits] branch FREESIDE_4_BRANCH updated. 2772e7d5ee1b894b2101db42069b123e3f7bd0d0

Christopher Burger burgerc at 420.am
Mon Jul 24 15:34:36 PDT 2017


The branch, FREESIDE_4_BRANCH has been updated
       via  2772e7d5ee1b894b2101db42069b123e3f7bd0d0 (commit)
       via  4ff1872e2cc96bf4c4a07101e91e98a09bd29a0d (commit)
      from  9937efbc70996ccd9ccf6b340af0718bc3cd6db2 (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 2772e7d5ee1b894b2101db42069b123e3f7bd0d0
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 da0b189..909127b 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 4ff1872e2cc96bf4c4a07101e91e98a09bd29a0d
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 ea3a498..da0b189 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