summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorJonathan Prykop <jonathan@freeside.biz>2015-07-15 22:07:27 -0500
committerJonathan Prykop <jonathan@freeside.biz>2015-07-20 19:28:24 -0500
commit078454a5494f6611eef48f8ad06c1a5a5c719e00 (patch)
treeec3822ee2e4c34afe3aac4ba6ced3f67db8dbac8 /httemplate
parent3c8b1c8f6953ed8b7af5cdfbb47d7a4d04b2f7b5 (diff)
RT#37125: Include discounts in report: customer accounting summary
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/search/customer_accounting_summary.html46
-rwxr-xr-xhttemplate/search/report_customer_accounting_summary.html5
2 files changed, 40 insertions, 11 deletions
diff --git a/httemplate/search/customer_accounting_summary.html b/httemplate/search/customer_accounting_summary.html
index 0dab7cecf..744b313f9 100644
--- a/httemplate/search/customer_accounting_summary.html
+++ b/httemplate/search/customer_accounting_summary.html
@@ -141,9 +141,20 @@ $title .= 'Customer Accounting Summary Report';
my @items = ('netsales', 'cashflow');
my @params = ( [], [] );
-my $setuprecur = '';
-if ( $cgi->param('setuprecur') ) {
- $setuprecur = 1;
+my $grossdiscount = $cgi->param('grossdiscount');
+my $setuprecur = $cgi->param('setuprecur');
+if ($setuprecur && $grossdiscount) {
+ #see blocks below for more details on each option
+ @items = ('gross', 'discounted', 'receipts', 'gross', 'discounted', 'receipts');
+ @params = (
+ [ setuprecur => 'setup' ],
+ [ setuprecur => 'setup' ],
+ [ setuprecur => 'setup' ],
+ [ setuprecur => 'recur' ],
+ [ setuprecur => 'recur' ],
+ [ setuprecur => 'recur' ],
+ );
+} elsif ($setuprecur) {
# instead of 'cashflow' (payments - refunds), use 'receipts'
# (applied payments), because it's divisible into setup and recur.
@items = ('netsales', 'receipts', 'netsales', 'receipts');
@@ -153,7 +164,14 @@ if ( $cgi->param('setuprecur') ) {
[ setuprecur => 'recur' ],
[ setuprecur => 'recur' ],
);
+} elsif ($grossdiscount) {
+ # instead of 'netsales' (invoiced - netcredits)
+ # use 'gross' (invoiced + discounted) and 'discounted' (sum of discounts on invoices)
+ @items = ('gross', 'discounted', 'cashflow');
+ @params = ( [], [], [] );
}
+
+
my @labels = ();
my @cross_params = ();
@@ -208,7 +226,7 @@ $cells[0] = [
{ header => 1, rowspan => 2, colspan => ($setuprecur ? 4 : 3) },
($setuprecur ? '' : ()),
map {
- { header => 1, colspan => 2, value => time2str('%b %Y', $_) },
+ { header => 1, colspan => ($grossdiscount ? 3 : 2), value => time2str('%b %Y', $_) },
''
} @{ $data->{speriod} }
];
@@ -218,8 +236,14 @@ $rows[1] = {};
$cells[1] = [ '',
($setuprecur ? '' : ()),
map {
- ( { header => 1, value => mt('Billed') },
- { header => 1, value => mt('Paid') }
+ ( ($grossdiscount
+ ? (
+ { header => 1, value => mt('Gross') },
+ { header => 1, value => mt('Discount') }
+ )
+ : { header => 1, value => mt('Billed') }
+ ),
+ { header => 1, value => mt('Paid') },
) } (1..$ncols)
];
@@ -256,12 +280,12 @@ foreach my $cust_main (@cust_main) { # correspond to cross_params
header => 1 };
}
for my $col (0..$ncols-1) { # the month
- for my $subcol (0..1) { # the billed/paid axis
- my $item = $subrow * 2 + $subcol;
+ for my $subcol (0..($grossdiscount ? 2 : 1)) { # the billed/paid or gross/discount/paid axis
+ my $item = $subrow * ($grossdiscount ? 3 : 2) + $subcol;
my $value = $data->{data}[$item][$col][$row];
$skip = 0 if abs($value) > 0.005;
push @thisrow, { value => sprintf('%0.2f', $value), format => 'money' };
- $total[( ($ncols * $subrow) + $col ) * 2 + $subcol] += $value;
+ $total[( ($ncols * $subrow) + $col ) * ($grossdiscount ? 3 : 2) + $subcol] += $value;
} #subcol
} #col
push @cells, \@thisrow;
@@ -294,8 +318,8 @@ for my $subrow (0..($setuprecur ? 1 : 0)) {
{ value => $subrow ? mt('recurring') : mt('setup'),
header => 1 };
}
- for my $col (0..($ncols * 2)-1) { # month and billed/paid axis
- my $value = $total[($subrow * $ncols * 2) + $col];
+ for my $col (0..($ncols * ($grossdiscount ? 3 : 2))-1) { # month and billed/paid or gross/discount/paid axis
+ my $value = $total[($subrow * $ncols * ($grossdiscount ? 3 : 2)) + $col];
push @thisrow, { value => sprintf('%0.2f', $value), format => 'money' };
}
push @cells, \@thisrow;
diff --git a/httemplate/search/report_customer_accounting_summary.html b/httemplate/search/report_customer_accounting_summary.html
index 8206f34ca..bdcdbccd1 100755
--- a/httemplate/search/report_customer_accounting_summary.html
+++ b/httemplate/search/report_customer_accounting_summary.html
@@ -37,6 +37,11 @@
'value' => 1,
&>
+ <& /elements/tr-checkbox.html,
+ 'label' => 'Show Gross &amp; Discounted',
+ 'field' => 'grossdiscount',
+ 'value' => 1,
+ &>
</TABLE>