X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fcust_bill_pkg.cgi;h=b1086e3dc59b524b746edf9e5330fe1733c1d3a3;hb=84abddf4bf0bc90e4a8f6e8e546e3cf4ee2786a2;hp=440ab150cdb2a1deb7bbd565007dfea2ab3803e4;hpb=e9e0cf0989259b94d9758eceff448666a2e5a5cc;p=freeside.git diff --git a/httemplate/search/cust_bill_pkg.cgi b/httemplate/search/cust_bill_pkg.cgi index 440ab150c..b1086e3dc 100644 --- a/httemplate/search/cust_bill_pkg.cgi +++ b/httemplate/search/cust_bill_pkg.cgi @@ -23,10 +23,7 @@ ? $_[0]->get('pkgpart') : '' }, - sub { $_[0]->pkgnum > 0 - ? $_[0]->get('pkg') - : $_[0]->get('itemdesc') - }, + 'itemdesc', # is part_pkg.pkg if applicable @post_desc, #strikethrough or "N/A ($amount)" or something these when # they're not applicable to pkg_tax search @@ -246,6 +243,9 @@ if ( $conf->exists('enable_taxclasses') ) { $post_desc_align .= 'l'; } +# used in several places +my $itemdesc = 'COALESCE(part_fee.itemdesc, part_pkg.pkg, cust_bill_pkg.itemdesc)'; + # valid in both the tax and non-tax cases my $join_cust = " LEFT JOIN cust_bill ON (cust_bill_pkg.invnum = cust_bill.invnum)". @@ -326,7 +326,7 @@ push @select, "COALESCE($part_pkg.taxclass, part_fee.taxclass) AS taxclass" # the non-tax case if ( $cgi->param('nottax') ) { - push @select, "part_fee.itemdesc"; + push @select, "($itemdesc) AS itemdesc"; push @where, '(cust_bill_pkg.pkgnum > 0 OR cust_bill_pkg.feepart IS NOT NULL)'; @@ -509,14 +509,16 @@ if ( $cgi->param('nottax') ) { push @where, 'cust_bill_pkg.pkgnum = 0'; # tax location when using tax_rate_location - if ( scalar( grep( /locationtaxid/, $cgi->param ) ) ) { + if ( $cgi->param('vendortax') ) { $join_pkg .= ' LEFT JOIN cust_bill_pkg_tax_rate_location USING ( billpkgnum ) '. ' LEFT JOIN tax_rate_location USING ( taxratelocationnum )'; - push @where, FS::tax_rate_location->location_sql( - map { $_ => (scalar($cgi->param($_)) || '') } - qw( district city county state locationtaxid ) - ); + foreach (qw( state county city locationtaxid)) { + if ( scalar($cgi->param($_)) ) { + my $place = dbh->quote( $cgi->param($_) ); + push @where, "tax_rate_location.$_ = $place"; + } + } $total[1] = 'SUM( COALESCE(cust_bill_pkg_tax_rate_location.amount, @@ -575,17 +577,12 @@ if ( $cgi->param('nottax') ) { dbh->quote($cgi->param('taxname')); } - # specific taxnums - if ( $cgi->param('taxnum') =~ /^([\d,]+)$/) { - push @where, "cust_main_county.taxnum IN ($1)"; - } - - # itemdesc, for some reason + # itemdesc, for breakdown from the vendor tax report if ( $cgi->param('itemdesc') ) { if ( $cgi->param('itemdesc') eq 'Tax' ) { - push @where, "(itemdesc='Tax' OR itemdesc is null)"; + push @where, "($itemdesc = 'Tax' OR $itemdesc is null)"; } else { - push @where, 'itemdesc='. dbh->quote($cgi->param('itemdesc')); + push @where, "$itemdesc = ". dbh->quote($cgi->param('itemdesc')); } }