diff options
author | Mark Wells <mark@freeside.biz> | 2015-09-19 10:56:59 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2015-09-20 10:00:12 -1000 |
commit | 01698260f2624212ab71be26bb4c644c0aeea2e4 (patch) | |
tree | 7ff93555dd9d94467e80335aed9025f2f671788b /httemplate | |
parent | c0c5709fb022b83a482d0b35f7094505766d5868 (diff) |
add credited sales column to tax report, #37088
Diffstat (limited to 'httemplate')
-rw-r--r-- | httemplate/search/cust_credit_bill_pkg.html | 24 | ||||
-rw-r--r-- | httemplate/search/report_tax.cgi | 31 |
2 files changed, 44 insertions, 11 deletions
diff --git a/httemplate/search/cust_credit_bill_pkg.html b/httemplate/search/cust_credit_bill_pkg.html index 63d70c27e..b5a0ee9f6 100644 --- a/httemplate/search/cust_credit_bill_pkg.html +++ b/httemplate/search/cust_credit_bill_pkg.html @@ -203,6 +203,7 @@ if ( $cgi->param('taxclass') my @loc_param = qw( district city county state country ); if ( $cgi->param('out') ) { + # probably don't need this part my ( $loc_sql, @param ) = FS::cust_pkg->location_sql( 'ornull' => 1 ); while ( $loc_sql =~ /\?/ ) { #easier to do our own substitution @@ -242,6 +243,8 @@ if ( $cgi->param('out') ) { #hacky, could be more efficient. care if it is ever used for more than the # tax-report_groups filtering kludge + # (does that even still exist? if so, correct this (or location_sql itself) + # to work with modern cust_location links) my $locs_sql = ' ( '. join(' OR ', map { @@ -266,15 +269,24 @@ if ( $cgi->param('out') ) { } else { - my %ph = map { $_ => dbh->quote( scalar($cgi->param($_)) ) } @loc_param; - - my ( $loc_sql, @param ) = FS::cust_pkg->location_sql; - while ( $loc_sql =~ /\?/ ) { #easier to do our own substitution - $loc_sql =~ s/\?/$ph{shift(@param)}/e; + my @loc_where; + foreach (@loc_param) { + if ( length($cgi->param($_)) ) { + my $quoted = dbh->quote($cgi->param($_)); + push @loc_where, "(COALESCE(cust_location.$_, '') = $quoted)"; + } } + my $loc_sql = join(' AND ', @loc_where); - push @where, $loc_sql; + #my %ph = map { $_ => dbh->quote( scalar($cgi->param($_)) ) } @loc_param; + # + #my ( $loc_sql, @param ) = FS::cust_pkg->location_sql; + #while ( $loc_sql =~ /\?/ ) { #easier to do our own substitution + # $loc_sql =~ s/\?/$ph{shift(@param)}/e; + #} + push @where, $loc_sql; +warn $loc_sql; } my($title, $name); diff --git a/httemplate/search/report_tax.cgi b/httemplate/search/report_tax.cgi index 1d906473e..6d0e95d2a 100644 --- a/httemplate/search/report_tax.cgi +++ b/httemplate/search/report_tax.cgi @@ -22,7 +22,7 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px } <THEAD> <TR> <TH ROWSPAN=3></TH> - <TH COLSPAN=5>Sales</TH> + <TH COLSPAN=6>Sales</TH> <TH ROWSPAN=3></TH> <TH ROWSPAN=3>Rate</TH> <TH ROWSPAN=3></TH> @@ -41,6 +41,7 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px } <TH ROWSPAN=1>Non-taxable</TH> <TH ROWSPAN=1>Non-taxable</TH> <TH ROWSPAN=1>Non-taxable</TH> + <TH ROWSPAN=2>Credited</TH> <TH ROWSPAN=2>Taxable</TH> </TR> @@ -73,10 +74,19 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px } % } # if $row->{pkgclass} ne ... % # construct base links that limit to the tax rates described by this row +% # 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 = ''; +% 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); % } % % if ( $row->{total} ) { @@ -109,14 +119,20 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px } <% $money_sprintf->( $row->{exempt_monthly} ) %> </A> </TD> +% # credited sales + <TD> + <A HREF="<% $salescreditlink . $rowregion %>"> + <% $money_sprintf->( $row->{sales_credited} ) %> + </A> + </TD> + <TD CLASS="bigmath"> × </TD> + <TD><% $row->{rate} %></TD> % # taxable sales <TD> <A HREF="<% $saleslink . $rowlink . ";taxable=1" %>"> <% $money_sprintf->( $row->{taxable} ) %> </A> </TD> - <TD CLASS="bigmath"> × </TD> - <TD><% $row->{rate} %></TD> % # estimated tax <TD CLASS="bigmath"> = </TD> <TD> @@ -134,12 +150,12 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px } <TD CLASS="bigmath"> − </TD> <TD> %# <A HREF="<% $creditlink . $rowlink %>"> currently broken - <% $money_sprintf->( $row->{credit} ) %> + <% $money_sprintf->( $row->{tax_credited} ) %> %# </A> </TD> % # net tax due <TD CLASS="bigmath"> = </TD> - <TD><% $money_sprintf->( $row->{tax} - $row->{credit} ) %></TD> + <TD><% $money_sprintf->( $row->{tax} - $row->{tax_credited} ) %></TD> % # tax collected <TD> </TD> <TD><% $money_sprintf->( $row->{tax_paid} ) %></TD> @@ -223,6 +239,11 @@ 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"; +if ( $params{'credit_date'} eq 'cust_credit_bill' ) { + $salescreditlink =~ s/begin/credit_begin/; + $salescreditlink =~ s/end/credit_end/; +} #my $creditlink = $p. "search/cust_bill_pkg.cgi?$dateagentlink;credit=1;istax=1"; #if ( $params{'credit_date'} eq 'cust_credit_bill' ) { # $creditlink =~ s/begin/credit_begin/; |