customer referral report, RT#75757
[freeside.git] / FS / FS / cust_main / Search.pm
index 4473aed..0eb0020 100644 (file)
@@ -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 = {