summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2015-10-08 23:46:58 -0700
committerMark Wells <mark@freeside.biz>2015-10-08 23:47:21 -0700
commit37b0f7bbb5737d02444dca82da5c3234be069f20 (patch)
treefe830177d9bea81eb3a0e6140621876e1a2d68c6
parentc729bf54b3e1dc6c63ee2e39843cd304aa825f0c (diff)
restore credit-date filtering on line item report so we can use it for #37088
-rw-r--r--httemplate/search/cust_bill_pkg.cgi25
-rw-r--r--httemplate/search/cust_credit_bill_pkg.html2
-rw-r--r--httemplate/search/report_tax.cgi33
3 files changed, 34 insertions, 26 deletions
diff --git a/httemplate/search/cust_bill_pkg.cgi b/httemplate/search/cust_bill_pkg.cgi
index 278382feb..4dc300d2f 100644
--- a/httemplate/search/cust_bill_pkg.cgi
+++ b/httemplate/search/cust_bill_pkg.cgi
@@ -705,9 +705,16 @@ my $pay_sub = "SELECT SUM(cust_bill_pay_pkg.amount)
";
push @select, "($pay_sub) AS pay_amount";
-#total credits
-my $credit_sub = 'SELECT SUM(amount) AS credit_amount, billpkgnum
- FROM cust_credit_bill_pkg GROUP BY billpkgnum';
+# showing credited amount, optionally with date filtering
+my $credit_where = '';
+if ( $cgi->param('credit_begin') or $cgi->param('credit_end') ) {
+ my($cr_begin, $cr_end) = FS::UI::Web::parse_beginning_ending($cgi, 'credit');
+ $credit_where = "WHERE cust_credit_bill._date >= $cr_begin " .
+ "AND cust_credit_bill._date <= $cr_end";
+}
+
+my $credit_sub = "SELECT SUM(amount) AS credit_amount, billpkgnum
+ FROM cust_credit_bill_pkg $credit_where GROUP BY billpkgnum";
$join_pkg .= " LEFT JOIN ($credit_sub) AS item_credit
ON (cust_bill_pkg.billpkgnum = item_credit.billpkgnum)";
@@ -737,6 +744,10 @@ if ( $cgi->param('salesnum') =~ /^(\d+)$/ ) {
$cgi->param('classnum', 0) unless $cgi->param('classnum');
}
+#credit flag (include only those that have credit(s) applied)
+if ( $cgi->param('credit') ) {
+ push @where, 'credit_amount > 0';
+}
my $where = join(' AND ', @where);
$where &&= "WHERE $where";
@@ -775,7 +786,13 @@ my $ilink = [ "${p}view/cust_bill.cgi?", 'invnum' ];
my $clink = [ "${p}view/cust_main.cgi?", 'custnum' ];
my $pay_link = ''; #[, 'billpkgnum', ];
-my $credit_link = [ "${p}search/cust_credit_bill_pkg.html?billpkgnum=", 'billpkgnum', ];
+my $credit_param = '';
+foreach ('credit_begin', 'credit_end') {
+ if ( $cgi->param($_) ) {
+ $credit_param .= "$_=" . $cgi->param($_) . ';';
+ }
+}
+my $credit_link = [ "${p}search/cust_credit_bill_pkg.html?${credit_param}billpkgnum=", 'billpkgnum', ];
warn "\n\nQUERY:\n".Dumper($query)."\n\nCOUNT_QUERY:\n$count_query\n\n"
if $cgi->param('debug');
diff --git a/httemplate/search/cust_credit_bill_pkg.html b/httemplate/search/cust_credit_bill_pkg.html
index 5e70c23bd..5facd4ab3 100644
--- a/httemplate/search/cust_credit_bill_pkg.html
+++ b/httemplate/search/cust_credit_bill_pkg.html
@@ -375,7 +375,7 @@ if ( $cgi->param('report_group') =~ /^(=|!=) (.*)$/ && $cgi->param('istax') ) {
}
-push @where, 'cust_bill_pkg.pkgnum != 0' if $cgi->param('nottax');
+push @where, '(cust_bill_pkg.pkgnum != 0 OR cust_bill_pkg.feepart is not null)' if $cgi->param('nottax');
push @where, 'cust_bill_pkg.pkgnum = 0' if $cgi->param('istax');
if ( $cgi->param('cust_tax') ) {
diff --git a/httemplate/search/report_tax.cgi b/httemplate/search/report_tax.cgi
index 2b531ea46..04bdf12ad 100644
--- a/httemplate/search/report_tax.cgi
+++ b/httemplate/search/report_tax.cgi
@@ -78,16 +78,17 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px }
% # cust_bill_pkg.cgi wants a list of specific taxnums (and package class)
% # cust_credit_bill_pkg.html wants a geographic scope (and package class)
% my $rowlink = ';taxnum=' . $row->{taxnums};
-% my $rowregion = ';country=' . $cgi->param('country');
-% foreach my $loc (qw(state county city district)) {
-% if ( $row->{$loc} ) {
-% $rowregion .= ";$loc=" . uri_escape($row->{$loc});
-% }
-% }
+% # DON'T EVER USE THIS
+% # my $rowregion = ';country=' . $cgi->param('country');
+% # foreach my $loc (qw(state county city district)) {
+% # if ( $row->{$loc} ) {
+% # $rowregion .= ";$loc=" . uri_escape($row->{$loc});
+% # }
+% # }
% # and also the package class, if we're limiting package class
% if ( $params{breakdown}->{pkgclass} ) {
% $rowlink .= ';classnum=' . ($row->{pkgclass} || 0);
-% $rowregion .= ';classnum=' . ($row->{pkgclass} || 0);
+% # $rowregion .= ';classnum=' . ($row->{pkgclass} || 0);
% }
%
% if ( $row->{total} ) {
@@ -122,7 +123,7 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px }
</TD>
% # credited sales
<TD>
- <A HREF="<% $salescreditlink . $rowregion %>">
+ <A HREF="<% $salescreditlink . $rowlink %>">
<% $money_sprintf->( $row->{sales_credited} ) %>
</A>
</TD>
@@ -220,16 +221,6 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px }
% } # if $row->{pkgclass} ne ...
% my $rowlink = ';taxnum=' . $row->{taxnums};
-% my $rowregion = ';country=' . $cgi->param('country');
-% foreach my $loc (qw(state county city district)) {
-% if ( $row->{$loc} ) {
-% $rowregion .= ";$loc=" . uri_escape($row->{$loc});
-% }
-% }
-% if ( $params{breakdown}->{pkgclass} ) {
-% $rowlink .= ';classnum=' . ($row->{pkgclass} || 0);
-% $rowregion .= ';classnum=' . ($row->{pkgclass} || 0);
-% }
%
% if ( $row->{total} ) {
</TBODY><TBODY CLASS="total">
@@ -242,13 +233,13 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px }
</TD>
% # Credits to taxable sales
<TD>
- <A HREF="<% $salescreditlink . $rowregion %>">
+ <A HREF="<% $salescreditlink . $rowlink %>">
<% $money_sprintf->( $row->{sales_credited} ) %>
</A>
</TD>
% # ... to exempt sales (link is the same, it shows both exempt and taxable)
<TD>
- <A HREF="<% $salescreditlink . $rowregion %>">
+ <A HREF="<% $salescreditlink . $rowlink %>">
<% $money_sprintf->( $row->{exempt_credited} ) %>
</A>
</TD>
@@ -324,7 +315,7 @@ if ( $params{agentnum} ) {
my $saleslink = $p. "search/cust_bill_pkg.cgi?$dateagentlink;nottax=1";
my $taxlink = $p. "search/cust_bill_pkg.cgi?$dateagentlink;istax=1";
my $exemptlink = $p. "search/cust_tax_exempt_pkg.cgi?$dateagentlink";
-my $salescreditlink = $p. "search/cust_credit_bill_pkg.html?$dateagentlink;nottax=1";
+my $salescreditlink = $p. "search/cust_bill_pkg.cgi?$dateagentlink;nottax=1;credit=1";
if ( $params{'credit_date'} eq 'cust_credit_bill' ) {
$salescreditlink =~ s/begin/credit_begin/;
$salescreditlink =~ s/end/credit_end/;