<% include('elements/monthly.html',
- #Dumper(
'title' => $title,
'graph_type' => $graph_type,
'items' => \@items,
my $use_usage = $cgi->param('use_usage') || 0;
my $use_setup = $cgi->param('use_setup') || 0;
my $use_discount = $cgi->param('use_discount') || 2;
+my $use_taxes = $cgi->param('use_taxes') || 0;
my $use_override = $cgi->param('use_override') ? 1 : 0;
my $average_per_cust_pkg = $cgi->param('average_per_cust_pkg') ? 1 : 0;
'R' => 'recurring',
'U' => 'usage',
'D' => 'discount',
+ 'T' => 'taxes',
);
#XXX or virtual
push @components, 'D';
} # else leave discounts off entirely; never combine them with setup/recur
+# could in theory combine with setup/recur/usage,
+# but would require reverse engineering the tax calculation
+if ( $use_taxes == 1 ) {
+ push @components, 'T';
+}
+
# Categorization of line items goes
-# Agent -> Referral -> Package class -> Component (setup/recur/usage)
+# Agent -> Referral -> Package class -> Component (setup/recur/usage/discount/taxes)
# If per-agent totals are enabled, they go under the Agent level.
# There aren't any other kinds of subtotals.
if ( $component eq 'D' ) {
# discounts ignore 'charges' and 'distribute'
$row_link = "${p}search/cust_bill_pkg_discount.html?";
+ } elsif ( $component eq 'T' ) {
+ $row_link = "${p}search/cust_bill_pkg.cgi?istax=1;";
}
$row_link .= ($all_agent ? '' : "agentnum=$row_agentnum;").
if ( $component eq 'D' ) {
# discounts ignore 'charges' and 'distribute'
$row_link ="${p}search/cust_bill_pkg_discount.html?";
+ } elsif ( $component eq 'T' ) {
+ $row_link = "${p}search/cust_bill_pkg.cgi?istax=1;";
}
$row_link .= ($all_agent ? '' : "agentnum=$row_agentnum;").
$anum++;
-}
+} # foreach $agent
-#use Data::Dumper;
if ( $cgi->param('debug') == 1 ) {
$FS::Report::Table::DEBUG = 1;
}