summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2015-07-06 14:30:10 -0700
committerMark Wells <mark@freeside.biz>2015-07-06 14:34:19 -0700
commit10adcf87ec8dc7e17d7ef180a924e7cd8a1ff917 (patch)
treeda3efb6e21c1bf5a06de94a1c4695bbb1444e5e2
parent9d2acc3a9019235c3f091f16be24592443557d2b (diff)
optionally include discounts in daily cashflow report, #37123
-rw-r--r--FS/FS/Report/Table/Daily.pm23
-rw-r--r--httemplate/graph/money_time_daily.cgi31
-rw-r--r--httemplate/graph/report_money_time_daily.html12
3 files changed, 41 insertions, 25 deletions
diff --git a/FS/FS/Report/Table/Daily.pm b/FS/FS/Report/Table/Daily.pm
index 66739379d..8d623e766 100644
--- a/FS/FS/Report/Table/Daily.pm
+++ b/FS/FS/Report/Table/Daily.pm
@@ -121,16 +121,20 @@ sub data {
my @newdata = ();
my @newcolors = ();
my @newlinks = ();
+ my @indices = ();
foreach my $item ( @{$self->{'items'}} ) {
- if ( grep { $_ != 0 } @{$data{'data'}->[$col]} ) {
- push @newitems, $data{'items'}->[$col];
- push @newlabels, $data{'item_labels'}->[$col];
- push @newdata, $data{'data'}->[$col];
- push @newcolors, $data{'colors'}->[$col];
- push @newlinks, $data{'links'}->[$col];
- }
-
+ my $is_nonzero = scalar( grep { $_ != 0 } @{ $data{'data'}->[$col] });
+ next if ($self->{'remove_empty'} and $is_nonzero == 0);
+ # no daily reports can normalize yet
+ push @newitems, $data{'items'}->[$col];
+ push @newlabels, $data{'item_labels'}->[$col];
+ push @newdata, $data{'data'}->[$col];
+ push @newcolors, $data{'colors'}->[$col];
+ push @newlinks, $data{'links'}->[$col];
+ push @indices, $col;
+
+ } continue {
$col++;
}
@@ -139,7 +143,10 @@ sub data {
$data{'data'} = \@newdata;
$data{'colors'} = \@newcolors;
$data{'links'} = \@newlinks;
+ $data{'indices'} = \@indices;
+ } else { # not doing remove_empty; report back that all columns are included
+ $data{'indices'} = [ 0 .. scalar( @{$self->{'items'}} ) - 1 ];
}
\%data;
diff --git a/httemplate/graph/money_time_daily.cgi b/httemplate/graph/money_time_daily.cgi
index 9b2ca714b..00771d3d6 100644
--- a/httemplate/graph/money_time_daily.cgi
+++ b/httemplate/graph/money_time_daily.cgi
@@ -8,7 +8,6 @@
'links' => \%link,
'agentnum' => $agentnum,
'cust_classnum'=> \@classnums,
- 'nototal' => scalar($cgi->param('12mo')),
'daily' => 1,
'start_day' => $smday,
'start_month' => $smon+1,
@@ -44,19 +43,20 @@ my ($ssec,$smin,$shour,$smday,$smon,$syear,$swday,$syday,$sisdst)
my ($esec,$emin,$ehour,$emday,$emon,$eyear,$ewday,$eyday,$eisdst)
= localtime($ending);
-my @items = qw( invoiced netsales
+my @items = ($cgi->param('exclude_discount') ? 'invoiced' : 'gross');
+push @items,
+ qw( discounted netsales
credits netcredits
payments receipts
refunds netrefunds
cashflow netcashflow
);
-if ( $cgi->param('12mo') == 1 ) {
- @items = map $_.'_12mo', @items;
-}
my %label = (
- 'invoiced' => 'Gross Sales',
+ 'gross' => 'Gross Sales',
+ 'invoiced' => 'Invoiced Sales',
'netsales' => 'Net Sales',
+ 'discounted' => 'Discounts',
'credits' => 'Gross Credits',
'netcredits' => 'Net Credits',
'payments' => 'Gross Receipts',
@@ -68,8 +68,10 @@ my %label = (
);
my %graph_suffix = (
- 'invoiced' => ' (invoiced)',
+ 'gross' => ' (invoiced + discounts)',
+ 'invoiced' => '',
'netsales' => ' (invoiced - applied credits)',
+ 'discounted' => '',
'credits' => ' (credited)',
'netcredits' => ' (applied credits)',
'payments' => ' (payments)',
@@ -81,13 +83,8 @@ my %graph_suffix = (
);
my %graph_label = map { $_ => $label{$_}.$graph_suffix{$_} } keys %label;
-$label{$_.'_12mo'} = $label{$_}. " (prev 12 months)"
- foreach keys %label;
-
-$graph_label{$_.'_12mo'} = $graph_label{$_}. " (prev 12 months)"
- foreach keys %graph_label;
-
my %color = (
+ 'gross' => '9999ff', #light blue
'invoiced' => '9999ff', #light blue
'netsales' => '0000cc', #blue
'credits' => 'ff9999', #light red
@@ -98,12 +95,12 @@ my %color = (
'netrefunds' => 'ff9900', #orange
'cashflow' => '99cc33', #light olive
'netcashflow' => '339900', #olive
+ 'discounted' => 'cc33cc', #purple-ish?
);
-$color{$_.'_12mo'} = $color{$_}
- foreach keys %color;
my %link = (
- 'invoiced' => "${p}search/cust_bill.html?agentnum=$agentnum;",
+ 'gross' => "${p}search/cust_bill.html?agentnum=$agentnum;",
+ 'invoiced' => "${p}search/cust_bill.html?agentnum=$agentnum;invoiced=1;",
'netsales' => "${p}search/cust_bill.html?agentnum=$agentnum;net=1;",
'credits' => "${p}search/cust_credit.html?agentnum=$agentnum;",
'netcredits' => "${p}search/cust_credit_bill.html?agentnum=$agentnum;",
@@ -111,7 +108,7 @@ my %link = (
'receipts' => "${p}search/cust_bill_pay.html?agentnum=$agentnum;",
'refunds' => "${p}search/cust_refund.html?magic=_date;agentnum=$agentnum;",
'netrefunds' => "${p}search/cust_credit_refund.html?agentnum=$agentnum;",
+ 'discounted' => "${p}search/cust_bill_pkg_discount.html?agentnum=$agentnum;",
);
-# XXX link 12mo?
</%init>
diff --git a/httemplate/graph/report_money_time_daily.html b/httemplate/graph/report_money_time_daily.html
index e80f5862c..ca3d915f1 100644
--- a/httemplate/graph/report_money_time_daily.html
+++ b/httemplate/graph/report_money_time_daily.html
@@ -21,6 +21,18 @@
'multiple' => 1,
&>
+<tr>
+ <td />
+ <td>
+ <& /elements/checkbox.html,
+ field => 'exclude_discount',
+ value => 1,
+ curr_value => 0,
+ &>
+ <% emt('Exclude discounts from total sales') %>
+ </td>
+</TR>
+
</TABLE>
<BR><INPUT TYPE="submit" VALUE="Display">