X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fsearch%2Fcust_tax_exempt_pkg.cgi;h=7b4a6d0cde86aa5d87e6436f189433248f2ef836;hp=40b9ed78fdc978045746f27015e0bf73b8aa0228;hb=1fc8addc56f8daf12397da568eb1ac1b27fd3984;hpb=3d0a1bb06b895c5be6e3f0517d355442a6b1e125 diff --git a/httemplate/search/cust_tax_exempt_pkg.cgi b/httemplate/search/cust_tax_exempt_pkg.cgi index 40b9ed78f..7b4a6d0cd 100644 --- a/httemplate/search/cust_tax_exempt_pkg.cgi +++ b/httemplate/search/cust_tax_exempt_pkg.cgi @@ -101,13 +101,12 @@ my $join = " die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('View customer tax exemptions'); -my @where = ("exempt_monthly = 'Y'"); +my @where = ( "exempt_monthly = 'Y'" ); my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi); if ( $beginning || $ending ) { push @where, "_date >= $beginning", "_date <= $ending"; - #"payby != 'COMP'; } if ( $cgi->param('agentnum') =~ /^(\d+)$/ ) { @@ -118,28 +117,7 @@ if ( $cgi->param('custnum') =~ /^(\d+)$/ ) { push @where, "cust_main.custnum = $1"; } -if ( $cgi->param('out') ) { - # wtf? how would you ever get exemptions on a non-taxable package location? - - push @where, " - 0 = ( - SELECT COUNT(*) FROM cust_main_county AS county_out - WHERE ( county_out.county = cust_main.county - OR ( county_out.county IS NULL AND cust_main.county = '' ) - OR ( county_out.county = '' AND cust_main.county IS NULL) - OR ( county_out.county IS NULL AND cust_main.county IS NULL) - ) - AND ( county_out.state = cust_main.state - OR ( county_out.state IS NULL AND cust_main.state = '' ) - OR ( county_out.state = '' AND cust_main.state IS NULL ) - OR ( county_out.state IS NULL AND cust_main.state IS NULL ) - ) - AND county_out.country = cust_main.country - AND county_out.tax > 0 - ) - "; - -} elsif ( $cgi->param('country' ) ) { +if ( $cgi->param('country' ) ) { my $county = dbh->quote( $cgi->param('county') ); my $state = dbh->quote( $cgi->param('state') ); @@ -150,13 +128,25 @@ if ( $cgi->param('out') ) { push @where, 'taxclass = '. dbh->quote( $cgi->param('taxclass') ) if $cgi->param('taxclass'); -} elsif ( $cgi->param('taxnum') ) { +} + +if ( $cgi->param('taxnum') ) { - my $taxnum_in = join(',', grep /^\d+$/, $cgi->param('taxnum') ); - push @where, "taxnum IN ($taxnum_in)" if $taxnum_in; + my @taxnums = grep /^\d+$/, map { split(',', $_) } $cgi->param('taxnum'); + if ( $cgi->param('taxnum') =~ /^([\d,]+)$/) { + push @where, "cust_tax_exempt_pkg.taxnum IN ($1)"; + } } +if ( $cgi->param('classnum') =~ /^(\d+)$/ ) { + push @where, "COALESCE(part_pkg.classnum,0) = $1"; +} + +# no reason ever to show the negative exemptions created by credits. +# they'll just confuse people. +push @where, "creditbillpkgnum IS NULL"; + my $where = scalar(@where) ? 'WHERE '.join(' AND ', @where) : ''; my $count_query = "SELECT COUNT(*), SUM(amount)".