<% include( 'elements/browse.html', 'title' => 'Customer classes', 'html_init' => $html_init, 'name' => 'customer classes', 'disableable' => 1, 'disabled_statuspos' => 2, 'query' => { 'table' => 'cust_class', 'hashref' => {}, 'order_by' => 'ORDER BY classnum', }, 'count_query' => $count_query, 'header' => $header, 'fields' => $fields, 'links' => $links, ) %> <%init> die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); my $html_init = 'Customer classes define groups of customer for reporting.

'. qq!Add a customer class

!; #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 = ''; 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 .= ''; my $num = 0; unless ( $disable_counts ) { $num = $cust_class->$meth(); $OUT .= ''; } $OUT .= ''; } $OUT .= '
'. ''. $num. ' '; if ( $num || $disable_counts ) { $OUT .= ''; } $OUT .= exists($PL{$status}) ? $PL{$status} : $status; if ($num || $disable_counts ) { $OUT .= ''; } $OUT .= '
'; $OUT; }; my $count_query = 'SELECT COUNT(*) FROM cust_class'; my $link = [ $p.'edit/cust_class.html?', 'classnum' ]; 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'; my $sth = dbh->prepare($cat_query) or die "Error preparing $cat_query: ". dbh->errstr; $sth->execute or die "Error executing $cat_query: ". $sth->errstr; if ($sth->fetchrow_arrayref->[0]) { push @$header, 'Category'; push @$fields, 'categoryname'; push @$links, $link; } my $conf = new FS::Conf; if ( $conf->exists('cust_class-tax_exempt') ) { push @$header, 'Tax exempt'; push @$fields, 'tax'; push @$links, ''; }