[freeside-commits] branch FREESIDE_4_BRANCH updated. ff47ea64ff72717fa76b8cbb1d2d136910a5e6f1

Ivan ivan at 420.am
Wed Apr 19 17:16:26 PDT 2017


The branch, FREESIDE_4_BRANCH has been updated
       via  ff47ea64ff72717fa76b8cbb1d2d136910a5e6f1 (commit)
      from  bbcc87b4f8a5e6c6fc2bd4d4cce17ae45d905a8d (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 ff47ea64ff72717fa76b8cbb1d2d136910a5e6f1
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Apr 19 17:16:25 2017 -0700

    customer links on customer class browse

diff --git a/FS/FS/cust_class.pm b/FS/FS/cust_class.pm
index fdc92ba..a71bc16 100644
--- a/FS/FS/cust_class.pm
+++ b/FS/FS/cust_class.pm
@@ -3,6 +3,7 @@ use base qw( FS::class_Common );
 
 use strict;
 use FS::cust_category;
+use FS::Record qw( dbh );
 
 =head1 NAME
 
@@ -117,8 +118,35 @@ sub cust_category {
 Returns the category name associated with this class, or false if there
 is none.
 
+=item num_prospect
+
+=item num_ordered
+
+=item num_active
+
+=item num_inactive
+
+=item num_suspended
+
+=item num_cancelled
+
 =cut
 
+sub num_sql {
+  my( $self, $sql ) = @_;
+  my $statement = "SELECT COUNT(*) FROM cust_main WHERE classnum = ? AND $sql";
+  my $sth = dbh->prepare($statement) or die dbh->errstr." preparing $statement";
+  $sth->execute($self->classnum) or die $sth->errstr. " executing $statement";
+  $sth->fetchrow_arrayref->[0];
+}
+
+sub num_prospect  { shift->num_sql(FS::cust_main->prospect_sql) }
+sub num_ordered   { shift->num_sql(FS::cust_main->ordered_sql) }
+sub num_active    { shift->num_sql(FS::cust_main->active_sql) }
+sub num_inactive  { shift->num_sql(FS::cust_main->inactive_sql) }
+sub num_suspended { shift->num_sql(FS::cust_main->susp_sql) }
+sub num_cancelled { shift->num_sql(FS::cust_main->cancel_sql) }
+
 =back
 
 =head1 BUGS
diff --git a/httemplate/browse/cust_class.html b/httemplate/browse/cust_class.html
index 70a279a..a35c045 100644
--- a/httemplate/browse/cust_class.html
+++ b/httemplate/browse/cust_class.html
@@ -23,12 +23,62 @@ my $html_init =
   'Customer classes define groups of customer for reporting.<BR><BR>'.
   qq!<A HREF="${p}edit/cust_class.html"><I>Add a customer class</I></A><BR><BR>!;
 
+#cust_class-disable_counts?  or just migrate this to one config probably
+#my $disable_counts = $conf->exists('agent-disable_counts');
+my $disable_counts = 0; 
+
+my $customers_sub = sub {
+  my $cust_class = shift;
+
+  my $cust_main_link = $p. 'search/cust_main.html?'.
+                       'classnum='. $cust_class->classnum;
+
+  #false laziness w/agent.cgi
+  my $OUT = '<TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>';
+
+  my @cust_status =
+    qw( prospect inactive ordered active suspended cancelled );
+  my %PL = ( 'prospect' => 'prospects', );
+  #my %link = ( 'cancelled' => 'showcancelledcustomers=1&cancelled' );
+  my $statuscolor = FS::cust_main->statuscolors;
+
+  foreach my $status ( @cust_status ) {
+    my $meth = 'num_'. $status;
+    #my $link = exists($link{$status}) ? $link{$status} : $status;
+
+    $OUT .= '<TR>';
+      my $num = 0;
+      unless ( $disable_counts ) {
+        $num = $cust_class->$meth();
+        $OUT .= '<TH ALIGN="right" WIDTH="40%">'.
+                '<FONT COLOR="#'. $statuscolor->{$status}. '">'.
+                $num. ' </FONT></TH>';
+      }
+    $OUT .= '<TD>';
+
+    if ( $num || $disable_counts ) { 
+      $OUT .= '<A HREF="'. $cust_main_link. "&status=$status". '">';
+    } 
+    $OUT .= exists($PL{$status}) ? $PL{$status} : $status;
+    if ($num || $disable_counts ) {
+      $OUT .= '</A>';
+    } 
+
+    $OUT .= '</TD></TR>';
+
+  }
+
+  $OUT .= '</TABLE>';
+
+  $OUT;
+
+};
+
 my $count_query = 'SELECT COUNT(*) FROM cust_class';
 
 my $link = [ $p.'edit/cust_class.html?', 'classnum' ];
-
-my $header = [ '#', 'Class' ];
-my $fields = [ 'classnum', 'classname' ];
+my $header = [ '#', 'Class', 'Customers' ];
+my $fields = [ 'classnum', 'classname', $customers_sub, ];
 my $links  = [ $link, $link ];
 
 my $cat_query = 'SELECT COUNT(*) FROM cust_class where categorynum IS NOT NULL';

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

Summary of changes:
 FS/FS/cust_class.pm               |   28 +++++++++++++++++++
 httemplate/browse/cust_class.html |   56 +++++++++++++++++++++++++++++++++++--
 2 files changed, 81 insertions(+), 3 deletions(-)




More information about the freeside-commits mailing list