From 36f08ea69b42f3b998a98feb04a5edb1ec81b82b Mon Sep 17 00:00:00 2001 From: ivan Date: Tue, 8 Jul 2008 02:01:41 +0000 Subject: fix line-item reports on taxclass-less regions --- httemplate/search/report_tax.cgi | 36 +++++++----------------------------- 1 file changed, 7 insertions(+), 29 deletions(-) (limited to 'httemplate/search/report_tax.cgi') diff --git a/httemplate/search/report_tax.cgi b/httemplate/search/report_tax.cgi index 05c272349..3d37c47e4 100755 --- a/httemplate/search/report_tax.cgi +++ b/httemplate/search/report_tax.cgi @@ -311,25 +311,12 @@ foreach my $r (qsearch('cust_main_county', {}, '', $gotcust) ) { } else { - my $same_query = 'SELECT taxclass FROM cust_main_county '. - ' WHERE taxnum != ? AND country = ?'; - my @same_param = ( 'taxnum', 'country' ); - foreach my $opt_field (qw( state county )) { - if ( $r->$opt_field() ) { - $same_query .= " AND $opt_field = ?"; - push @same_param, $opt_field; - } else { - $same_query .= " AND $opt_field IS NULL"; - } - } - - my @taxclasses = list_sql( $r, \@same_param, $same_query ); - - if ( scalar(@taxclasses) ) { - $mywhere .= ' AND '. join(' AND ', map ' taxclass != ? ', @taxclasses ); - push @param, map \$_, @taxclasses; - } - + $regions{$label}->{'url_param'} .= ';taxclassNULL=1' + if $cgi->param('show_taxclasses'); + + my $same_sql = $r->sql_taxclass_sameregion; + $mywhere .= " AND $same_sql" if $same_sql; + } my $fromwhere = $from_join_cust. $join_pkg. $mywhere. " AND payby != 'COMP' "; @@ -556,21 +543,12 @@ sub getlabel { #false laziness w/FS::Report::Table::Monthly (sub should probably be moved up #to FS::Report or FS::Record or who the fuck knows where) sub scalar_sql { - my( $r, $param, $sql ) = @_; - #warn "$sql\n"; - my $sth = dbh->prepare($sql) or die dbh->errstr; - $sth->execute( map { ref($_) ? ${$_} : $r->$_() } @$param ) - or die "Unexpected error executing statement $sql: ". $sth->errstr; - $sth->fetchrow_arrayref->[0] || 0; -} - -sub list_sql { my( $r, $param, $sql ) = @_; #warn "$sql\n"; my $sth = dbh->prepare($sql) or die dbh->errstr; $sth->execute( map $r->$_(), @$param ) or die "Unexpected error executing statement $sql: ". $sth->errstr; - map $_->[0], @{ $sth->fetchall_arrayref }; + $sth->fetchrow_arrayref->[0] || 0; } my $dateagentlink = "begin=$beginning;end=$ending"; -- cgit v1.2.1