summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-08-26 15:00:59 -0700
committerIvan Kohler <ivan@freeside.biz>2017-08-26 15:00:59 -0700
commitce7d68e984aab0075f87cf3fa5a55ee4083fadd2 (patch)
tree65f663671428cf496c18b6ce8c9e6cb6f4da90d9
parent13bcd704deec03008853c18a0258e031b62e2ec6 (diff)
referral status search, RT#75757
-rw-r--r--FS/FS/cust_main/Search.pm20
-rwxr-xr-xhttemplate/search/cust_main.html2
-rwxr-xr-xhttemplate/search/report_cust_main.html13
3 files changed, 30 insertions, 5 deletions
diff --git a/FS/FS/cust_main/Search.pm b/FS/FS/cust_main/Search.pm
index 09558b84b..4eab474e1 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 41309fdd1..c89787953 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 2a313a13b..14e784454 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>