X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fcust_bill_pkg.cgi;h=0ce141bbce4b00fb04464c522efa87b09e82f8c4;hb=3c6c53b4e50d076300544a0d8e2267d8119f0f7d;hp=fe16f3aa5d59fed9f01466490e196fff0a68c737;hpb=dbd79d059c9353da8d521fce4ee2ce8cc3349a54;p=freeside.git diff --git a/httemplate/search/cust_bill_pkg.cgi b/httemplate/search/cust_bill_pkg.cgi index fe16f3aa5..0ce141bbc 100644 --- a/httemplate/search/cust_bill_pkg.cgi +++ b/httemplate/search/cust_bill_pkg.cgi @@ -265,8 +265,7 @@ if ( $cgi->param('distribute') == 1 ) { push @where, "sdate <= $ending", "edate > $beginning", ; -} -else { +} else { push @where, "cust_bill._date >= $beginning", "cust_bill._date <= $ending"; } @@ -326,7 +325,7 @@ push @select, "COALESCE($part_pkg.taxclass, part_fee.taxclass) AS taxclass" # the non-tax case if ( $cgi->param('nottax') ) { - push @select, $itemdesc; + push @select, "($itemdesc) AS itemdesc"; push @where, '(cust_bill_pkg.pkgnum > 0 OR cust_bill_pkg.feepart IS NOT NULL)'; @@ -561,30 +560,36 @@ if ( $cgi->param('nottax') ) { ' )' if @classnums; } - } - # taxclass - if ( $cgi->param('taxclassNULL') ) { - push @where, 'cust_main_county.taxclass IS NULL'; - } + # taxclass + if ( $cgi->param('taxclassNULL') ) { + push @where, 'cust_main_county.taxclass IS NULL'; + } - # taxname - if ( $cgi->param('taxnameNULL') ) { - push @where, 'cust_main_county.taxname IS NULL OR '. - 'cust_main_county.taxname = \'Tax\''; - } elsif ( $cgi->param('taxname') ) { - push @where, 'cust_main_county.taxname = '. - dbh->quote($cgi->param('taxname')); - } + # taxname + if ( $cgi->param('taxnameNULL') ) { + push @where, 'cust_main_county.taxname IS NULL OR '. + 'cust_main_county.taxname = \'Tax\''; + } elsif ( $cgi->param('taxname') ) { + push @where, 'cust_main_county.taxname = '. + dbh->quote($cgi->param('taxname')); + } - # 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)"; - } else { - push @where, "$itemdesc = ". dbh->quote($cgi->param('itemdesc')); + # 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)"; + } else { + push @where, "$itemdesc = ". dbh->quote($cgi->param('itemdesc')); + } } - } + + # specific taxnums + if ( $cgi->param('taxnum') =~ /^([\d,]+)$/) { + push @where, "cust_main_county.taxnum IN ($1)"; + } + + } #end of "normal case" } # nottax / istax @@ -600,6 +605,12 @@ push @select, "($pay_sub) AS pay_amount"; # credit if ( $cgi->param('credit') ) { + my $credit_where; + + my($cr_begin, $cr_end) = FS::UI::Web::parse_beginning_ending($cgi, 'credit'); + $credit_where = "WHERE cust_credit_bill._date >= $cr_begin " . + "AND cust_credit_bill._date <= $cr_end"; + my $credit_sub; if ( $cgi->param('istax') ) { @@ -613,6 +624,7 @@ if ( $cgi->param('credit') ) { JOIN cust_credit USING (crednum) LEFT JOIN reason USING (reasonnum) LEFT JOIN access_user USING (usernum) + $credit_where GROUP BY billpkgnum, billpkgtaxlocationnum, reason.reason, access_user.username"; @@ -643,6 +655,7 @@ if ( $cgi->param('credit') ) { JOIN cust_credit USING (crednum) LEFT JOIN reason USING (reasonnum) LEFT JOIN access_user USING (usernum) + $credit_where GROUP BY billpkgnum, reason.reason, access_user.username"; $join_pkg .= " LEFT JOIN ($credit_sub) AS item_credit USING (billpkgnum)"; }