<style type="text/css">
.report * {
background-color: #f8f8f8;
- border: 1px solid black;
+ border: 1px solid #999999;
padding: 2px;
}
.report td {
unless $FS::CurrentUser::CurrentUser->access_right('Financial reports');
my ($agentnum,$sel_agent);
-if ( $cgi->param('agentnum') eq 'all' ) {
- $agentnum = 0;
-}
-elsif ( $cgi->param('agentnum') =~ /^(\d+)$/ ) {
+if ( $cgi->param('agentnum') =~ /^(\d+)$/ ) {
$agentnum = $1;
$sel_agent = qsearchs('agent', { 'agentnum' => $agentnum } );
die "agentnum $agentnum not found!" unless $sel_agent;
$title .= 'Customer Accounting Summary Report';
-my @cust_classnums = grep /^\d+$/, $cgi->param('cust_classnum');
-
my @items = ('netsales', 'cashflow');
my @params = ( [], [] );
my $setuprecur = '';
}
my @labels = ();
my @cross_params = ();
-my @custnames = ();
my $status = $cgi->param('status');
die "invalid status" unless $status =~ /^\w+|$/;
}
}
$search_hash{'classnum'} = [ $cgi->param('cust_classnum') ]
- if $cgi->param('cust_classnum');
+ if grep { $_ eq 'cust_classnum' } $cgi->param;
my $query = FS::cust_main::Search->search(\%search_hash);
-my @custs = qsearch($query);
-
-foreach my $cust_main ( @custs ) {
- # XXX should do this in the qsearch
- next unless ($status eq '' || $status eq $cust_main->status);
- next unless ($agentnum == 0 || $cust_main->agentnum eq $agentnum);
- next unless ($refnum == 0 || $cust_main->refnum eq $refnum);
-
- push @custnames, $cust_main->name;
+my @cust_main = qsearch($query);
+foreach my $cust_main (@cust_main) {
push @cross_params, [ ('custnum' => $cust_main->custnum) ];
}
# header row
$rows[0] = {};
$cells[0] = [
- { header => 1, rowspan => 2, colspan => ($setuprecur ? 2 : 1) },
+ { header => 1, rowspan => 2, colspan => ($setuprecur ? 4 : 3) },
($setuprecur ? '' : ()),
map {
{ header => 1, colspan => 2, value => time2str('%b %Y', $_) },
# use PDL; # ha ha, I just might.
my $row = 0;
-foreach my $name (@custnames) { # correspond to cross_params
+foreach my $cust_main (@cust_main) { # correspond to cross_params
my $skip = 1; # skip the customer iff ALL of their values are zero
for my $subrow (0..($setuprecur ? 1 : 0)) { # the setup/recur axis
push @rows, { class => $subrow ? 'shaded' : '' };
if ( $subrow == 0 ) {
# customer name
push @thisrow,
- { value => $name,
- header => 1,
- rowspan => ($setuprecur ? 2 : 1) };
+ { value => $cust_main->name,
+ header => 1,
+ rowspan => ($setuprecur ? 2 : 1),
+ },
+ { value => $cust_main->state, #cust_main->bill_location->state,
+ header => 1,
+ rowspan => ($setuprecur ? 2 : 1),
+ },
+ { value => $cust_main->salesnum ? $cust_main->sales->salesperson : '',
+ header => 1,
+ rowspan => ($setuprecur ? 2 : 1),
+ },
+ ;
} else {
push @thisrow, '';
}
push @thisrow,
{ value => mt('Total'),
header => 1,
+ colspan => 3,
rowspan => ($setuprecur ? 2 : 1), };
} else {
push @thisrow, '';