[freeside-commits] branch master updated. 9bf940754c8cfc9404a49965ea3e4e8f0d4cd646

Christopher Burger burgerc at freeside.biz
Fri Nov 30 12:43:39 PST 2018


The branch, master has been updated
       via  9bf940754c8cfc9404a49965ea3e4e8f0d4cd646 (commit)
      from  09bcf3a2ea2968b60bb96c1b48839db1d2c1defc (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 9bf940754c8cfc9404a49965ea3e4e8f0d4cd646
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Fri Nov 30 15:42:53 2018 -0500

    RT# 71289 - now shows contact email and phone changes while attached to customer

diff --git a/httemplate/elements/change_history_common.html b/httemplate/elements/change_history_common.html
index f22e09360..d73405343 100644
--- a/httemplate/elements/change_history_common.html
+++ b/httemplate/elements/change_history_common.html
@@ -232,6 +232,8 @@ my %h_table_labelsub = (
   #'h_cust_tag'      => $tag_labelsub,
   'h_contact'  => $contact_labelsub,
   'h_cust_contact'  => $contact_labelsub,
+  'h_contact_phone' => $contact_labelsub,
+  'h_contact_email' => $contact_labelsub,
 );
 
 my $tag_descripsub = sub {
@@ -240,6 +242,24 @@ my $tag_descripsub = sub {
   '<SPAN STYLE="background-color: #'.$part_tag->tagcolor.'">'. encode_entities($part_tag->tagname). '</SPAN>';
 };
 
+my $contact_descripsub = sub {
+  my($item, $label) = @_;
+  my $phone_type = qsearchs('phone_type',{ phonetypenum => $item->phonetypenum });
+  my @fields = $item->fields;
+  join(', ',
+    map  {
+           my $value = ( $_ eq "phonetypenum" )
+              ? $item->get($_).' ('.$phone_type->typename.')'
+              : $item->get($_);
+           $value = substr($value, 0, 77).'...' if length($value) > 80;
+           $value = encode_entities($value);
+           "<I>$_</I>:<B>$value</B>";
+         }
+         grep { ! /^(history|custnum$)/i }
+            @fields
+  );
+};
+
 my $discounts = {};
 my $discount_descripsub = sub {
   my($item) = @_;
@@ -260,6 +280,7 @@ my $discount_descripsub = sub {
 my %h_table_descripsub = (
   'h_cust_pkg_discount' => $discount_descripsub,
   'h_cust_tag'          => $tag_descripsub,
+  'h_contact_phone'     => $contact_descripsub,
 );
 
 my $cust_pkg_date_format = '%b %o, %Y';
diff --git a/httemplate/view/cust_main/change_history.html b/httemplate/view/cust_main/change_history.html
index 11777b54c..933d66c8a 100644
--- a/httemplate/view/cust_main/change_history.html
+++ b/httemplate/view/cust_main/change_history.html
@@ -50,6 +50,8 @@ tie my %tables, 'Tie::IxHash',
   'cust_tag'          => 'Tag',
   'contact'           => 'Contact',
   'cust_contact'      => 'Contact',
+  'contact_phone'     => 'Contact',
+  'contact_email'     => 'Contact',
 ;
 
 my $pkg_join = "JOIN cust_pkg USING ( pkgnum )";
@@ -147,8 +149,7 @@ my $extra_sql = ' AND custnum = '. $cust_main->custnum;
 
 my %foundsvcs;
 foreach my $table ( keys %tables ) {
-  if ($table eq 'cust_contact') { next; } #skip as dont need to search table but hack to show contact name
-  elsif ($table eq 'contact') {
+  if ($tables{$table} eq 'Contact') {
 
     my $contact_addl_from = "
       INNER JOIN (select contactnum, min(history_date) as min_history_date, max(history_date) as max_history_date, max(historynum) as max_historynum FROM h_cust_contact WHERE custnum = ".$cust_main->custnum." AND history_date >= $newer_than GROUP BY contactnum) a ON h_cust_contact.contactnum = a.contactnum
@@ -168,25 +169,14 @@ foreach my $table ( keys %tables ) {
 
      ## get history of contact while attached to customer
      my @contact_history = qsearch({
-       'table'      => "h_contact",
+       'table'      => "h_$table",
        'hashref'    => {
-          'history_date' =>  { op=>'>=', value=>$c->{Hash}->{min_history_date} },
+          'history_date' =>  { op=>'>=', value=>($c->{Hash}->{min_history_date} - 1) },
           'contactnum'   => $c->{Hash}->{contactnum},
-        },
-        'extra_sql' => $max_date_sql,
+       },
+       'extra_sql' => $max_date_sql,
      });
-
-     ## get history of customer specific changes to contact.
-     my @cust_contact_history = qsearch({
-       'table'     => "h_cust_contact",
-       'hashref'   => {
-          'history_date' =>  { op=>'>=', value=>$c->{Hash}->{min_history_date} },
-          'contactnum'   => $c->{Hash}->{contactnum},
-          'custnum'      => $cust_main->custnum,
-        },
-     });
-
-     push @history, @contact_history; push @history, @cust_contact_history;
+     push @history, @contact_history;
     }
   }
   else {

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

Summary of changes:
 httemplate/elements/change_history_common.html | 21 +++++++++++++++++++++
 httemplate/view/cust_main/change_history.html  | 26 ++++++++------------------
 2 files changed, 29 insertions(+), 18 deletions(-)




More information about the freeside-commits mailing list