[freeside-commits] branch master updated. a989f40712bcbef325a566802118432063315240

Ivan ivan at 420.am
Thu Apr 27 13:41:59 PDT 2017


The branch, master has been updated
       via  a989f40712bcbef325a566802118432063315240 (commit)
      from  1d94d421c28cb157e6cb2f8ff30d1ac85b399b57 (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 a989f40712bcbef325a566802118432063315240
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Thu Apr 27 13:41:58 2017 -0700

    customer referral report, RT#75757

diff --git a/FS/FS/cust_main/Search.pm b/FS/FS/cust_main/Search.pm
index 4473aed..0eb0020 100644
--- a/FS/FS/cust_main/Search.pm
+++ b/FS/FS/cust_main/Search.pm
@@ -866,6 +866,15 @@ sub search {
     if $params->{'no_tax'};
 
   ##
+  # with referrals
+  ##
+  if ( $params->{'with_referrals'} ) {
+    push @where,
+      ' EXISTS ( SELECT 1 FROM cust_main AS referred_cust_main
+                   WHERE cust_main.custnum = referred_cust_main.referral_custnum )';
+  }
+
+  ##
   # dates
   ##
 
@@ -1101,6 +1110,20 @@ sub search {
 
   }
 
+  if ( $params->{'with_referrals'} ) {
+
+    #XXX next: num for each customer status
+     
+    push @select,
+      '( SELECT COUNT(*) FROM cust_main AS referred_cust_main
+           WHERE cust_main.custnum = referred_cust_main.referral_custnum
+       ) AS num_referrals';
+
+    unshift @extra_headers, 'Referrals';
+    unshift @extra_fields, 'num_referrals';
+
+  }
+
   my $select = join(', ', @select);
 
   my $sql_query = {
diff --git a/httemplate/elements/menu.html b/httemplate/elements/menu.html
index 752c312..58a7d57 100644
--- a/httemplate/elements/menu.html
+++ b/httemplate/elements/menu.html
@@ -129,6 +129,7 @@ $report_customers_lists{'by active trouble tickets'} = [ $fsurl. 'search/cust_ma
   if $conf->config('ticket_system');
 $report_customers_lists{'with USPS-unvalidated addresses'} = [ $fsurl. 'search/cust_main.cgi?browse=uspsunvalid', '' ]
   if $conf->config('usps_webtools-userid') && $conf->config('usps_webtools-password');
+$report_customers_lists{'with referrals'} = [ $fsurl. 'search/cust_main.html?with_referrals=1' ];
 
 tie my %report_customers, 'Tie::IxHash';
 $report_customers{'List customers'} = [ \%report_customers_lists, 'List customers' ]
diff --git a/httemplate/search/cust_main.html b/httemplate/search/cust_main.html
index b0ce31a..41309fd 100755
--- a/httemplate/search/cust_main.html
+++ b/httemplate/search/cust_main.html
@@ -27,7 +27,11 @@
                                                       $cgi->param('cust_fields')
                                                                    )
                                      ),
-                                     map '', @extra_fields
+                                     map  { $_ eq 'num_referrals'
+                                              ? $referral_link
+                                              : ''
+                                          }
+                                       @extra_fields
                                    ],
 &>
 <%init>
@@ -51,6 +55,7 @@ my @scalars = qw (
   all_tags
   all_pkg_classnums
   any_pkg_status
+  with_referrals
 );
 
 for my $param ( @scalars ) {
@@ -111,6 +116,8 @@ my @extra_fields  = @{ delete($sql_query->{'extra_fields'})  };
 
 my $link = [ "${p}view/cust_main.cgi?", 'custnum' ];
 
+my $referral_link = [ "${p}search/cust_main.cgi?referral_custnum=", 'custnum' ];
+
 ###
 # email links
 ###

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

Summary of changes:
 FS/FS/cust_main/Search.pm        |   23 +++++++++++++++++++++++
 httemplate/elements/menu.html    |    1 +
 httemplate/search/cust_main.html |    9 ++++++++-
 3 files changed, 32 insertions(+), 1 deletion(-)




More information about the freeside-commits mailing list