[freeside-commits] branch master updated. ce7d68e984aab0075f87cf3fa5a55ee4083fadd2

Ivan ivan at 420.am
Sat Aug 26 15:01:04 PDT 2017


The branch, master has been updated
       via  ce7d68e984aab0075f87cf3fa5a55ee4083fadd2 (commit)
      from  13bcd704deec03008853c18a0258e031b62e2ec6 (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 ce7d68e984aab0075f87cf3fa5a55ee4083fadd2
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Sat Aug 26 15:00:59 2017 -0700

    referral status search, RT#75757

diff --git a/FS/FS/cust_main/Search.pm b/FS/FS/cust_main/Search.pm
index 09558b8..4eab474 100644
--- a/FS/FS/cust_main/Search.pm
+++ b/FS/FS/cust_main/Search.pm
@@ -872,10 +872,24 @@ sub search {
   ##
   # with referrals
   ##
-  if ( $params->{'with_referrals'} =~ /^\s*(\d+)\s*$/ ) {
+  if ( $params->{with_referrals} =~ /^\s*(\d+)\s*$/ ) {
+
+    my $n = $1;
+  
+    # referral status
+    my $and_status = '';
+    if ( grep { $params->{referral_status} eq $_ } FS::cust_main->statuses() ) {
+      my $method = $params->{referral_status}. '_sql';
+      $and_status = ' AND '. FS::cust_main->$method();
+      $and_status =~ s/ cust_main\./ referred_cust_main./g;
+    }
+
     push @where,
-      " $1 <= ( SELECT COUNT(*) FROM cust_main AS referred_cust_main
-                  WHERE cust_main.custnum = referred_cust_main.referral_custnum )";
+      " $n <= ( SELECT COUNT(*) FROM cust_main AS referred_cust_main
+                  WHERE cust_main.custnum = referred_cust_main.referral_custnum
+                    $and_status
+              )";
+
   }
 
   ##
diff --git a/httemplate/search/cust_main.html b/httemplate/search/cust_main.html
index 41309fd..c897879 100755
--- a/httemplate/search/cust_main.html
+++ b/httemplate/search/cust_main.html
@@ -55,7 +55,7 @@ my @scalars = qw (
   all_tags
   all_pkg_classnums
   any_pkg_status
-  with_referrals
+  with_referrals referral_status
 );
 
 for my $param ( @scalars ) {
diff --git a/httemplate/search/report_cust_main.html b/httemplate/search/report_cust_main.html
index 2a313a1..14e7844 100755
--- a/httemplate/search/report_cust_main.html
+++ b/httemplate/search/report_cust_main.html
@@ -107,13 +107,24 @@
         </TD>
       </TR>
 
+  </TABLE>
+  <BR>
+
+  <FONT CLASS="fsinnerbox-title"><% emt('Referral search options') %></FONT>
+  <TABLE CLASS="fsinnerbox">
+
       <& /elements/tr-input-text.html,
-           label     => emt('At least this many referrals'),
+           label     => emt('At least this many'),
            field     => 'with_referrals',
            size      => 4,
            maxlength => 4,
       &>
 
+      <& /elements/tr-select-cust_main-status.html,
+           label => emt('Referral status'),
+           field => 'referral_status',
+      &>
+
   </TABLE>
   <BR>
 

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

Summary of changes:
 FS/FS/cust_main/Search.pm               |   20 +++++++++++++++++---
 httemplate/search/cust_main.html        |    2 +-
 httemplate/search/report_cust_main.html |   13 ++++++++++++-
 3 files changed, 30 insertions(+), 5 deletions(-)




More information about the freeside-commits mailing list