From 74624f65353a505fa5d1c812ed657a3e46308596 Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 15 Apr 2011 22:33:11 +0000 Subject: [PATCH] link new tax report to cust_credit_bill_pkg for credits, RT#12332 --- FS/FS/tax_rate.pm | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/FS/FS/tax_rate.pm b/FS/FS/tax_rate.pm index 334c31e95..05aae20ac 100644 --- a/FS/FS/tax_rate.pm +++ b/FS/FS/tax_rate.pm @@ -1843,12 +1843,9 @@ sub generate_liability_report { $where .= ' AND cust_main.agentnum = '. $agent->agentnum; } - # my ( $location_sql, @location_param ) = FS::cust_pkg->location_sql; - # $where .= " AND $location_sql"; - #my @taxparam = ( 'itemdesc', @location_param ); - # now something along the lines of geocode matching ? - #$where .= FS::cust_pkg->_location_sql_where('cust_tax_location');; - my @taxparam = ( 'itemdesc', 'tax_rate_location.state', 'tax_rate_location.county', 'tax_rate_location.city', 'cust_bill_pkg_tax_rate_location.locationtaxid' ); + #my @taxparam = ( 'itemdesc', 'tax_rate_location.state', 'tax_rate_location.county', 'tax_rate_location.city', 'cust_bill_pkg_tax_rate_location.locationtaxid' ); + my @taxparams = qw( city county state locationtaxid ); + my @params = ('itemdesc', @taxparams); my $select = 'DISTINCT itemdesc,locationtaxid,tax_rate_location.state,tax_rate_location.county,tax_rate_location.city'; @@ -1879,13 +1876,13 @@ sub generate_liability_report { if ( $args{job} ) { if ( time - $min_sec > $last ) { $args{job}->update_statustext( int( 100 * $calculated / $count ). - ",Calculated" + ",Calculating" ); $last = time; } } - my @params = map { my $f = $_; $f =~ s/.*\.//; $f } @taxparam; + #my @params = map { my $f = $_; $f =~ s/.*\.//; $f } @taxparam; my $label = join('~', map { $t->$_ } @params); $label = 'Tax'. $label if $label =~ /^~/; unless ( exists( $taxes{$label} ) ) { @@ -1896,23 +1893,27 @@ sub generate_liability_report { join(';', map { "$_=". uri_escape($t->$_) } @params); my $taxwhere = "FROM cust_bill_pkg $addl_from $where AND payby != 'COMP' ". - "AND ". join( ' AND ', map { "( $_ = ? OR ? = '' AND $_ IS NULL)" } @taxparam ); + "AND ". FS::tax_rate_location->location_sql( map { $_ => $t->$_ } + @taxparams + ); my $sql = "SELECT SUM(amount) $taxwhere AND cust_bill_pkg.pkgnum = 0"; - my $x = &{$scalar_sql}($t, [ map { $_, $_ } @params ], $sql ); + my $x = &{$scalar_sql}($t, [], $sql ); $tax += $x; $taxes{$label}->{'tax'} += $x; my $creditfrom = " JOIN cust_credit_bill_pkg USING (billpkgnum,billpkgtaxratelocationnum) "; my $creditwhere = "FROM cust_bill_pkg $addl_from $creditfrom $where ". "AND payby != 'COMP' ". - "AND ". join( ' AND ', map { "( $_ = ? OR ? = '' AND $_ IS NULL)" } @taxparam ); + "AND ". FS::tax_rate_location->location_sql( map { $_ => $t->$_ } + @taxparams + ); $sql = "SELECT SUM(cust_credit_bill_pkg.amount) ". " $creditwhere AND cust_bill_pkg.pkgnum = 0"; - my $y = &{$scalar_sql}($t, [ map { $_, $_ } @params ], $sql ); + my $y = &{$scalar_sql}($t, [], $sql ); $credit += $y; $taxes{$label}->{'credit'} += $y; @@ -1972,7 +1973,7 @@ sub generate_liability_report { $dateagentlink .= ';agentnum='. $args{agentnum} if length($agentname); my $baselink = $args{p}. "search/cust_bill_pkg.cgi?$dateagentlink"; - + my $creditlink = $p. "search/cust_credit_bill_pkg.html?$dateagentlink"; print $report < - Tax collected + Tax invoiced      Tax credited @@ -2040,7 +2041,7 @@ EOF <% ($tax->{base}) ? qq!! : '' %> - <% '$money_char' %><% sprintf('%.2f', $tax->{'credit'} ) %> + <% '$money_char' %><% sprintf('%.2f', $tax->{'credit'} ) %> <% !($tax->{base}) ? qq!! : '' %> -- 2.11.0