[freeside-commits] branch master updated. f75a63a2fdf3fa154b5865f62387380bea1b134f

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


The branch, master has been updated
       via  f75a63a2fdf3fa154b5865f62387380bea1b134f (commit)
      from  27faccf1f8017a07bc6b527258448a723eb904b2 (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 f75a63a2fdf3fa154b5865f62387380bea1b134f
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Apr 19 17:16:23 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