diff options
author | Mark Wells <mark@freeside.biz> | 2014-05-20 09:38:38 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2014-05-20 09:39:05 -0700 |
commit | 48ddc2a473201e09daaff99b3dd22d56ebe8f939 (patch) | |
tree | 6d3e414183c5a2556d487e20a79d3b2da75716db /httemplate/search | |
parent | 2aca98d97a5ac486880c677a7b518db91628a695 (diff) |
option to handle credited tax date range differently, #28497
Diffstat (limited to 'httemplate/search')
-rw-r--r-- | httemplate/search/cust_bill_pkg.cgi | 57 | ||||
-rwxr-xr-x | httemplate/search/report_tax.cgi | 11 | ||||
-rwxr-xr-x | httemplate/search/report_tax.html | 10 |
3 files changed, 56 insertions, 22 deletions
diff --git a/httemplate/search/cust_bill_pkg.cgi b/httemplate/search/cust_bill_pkg.cgi index b1086e3dc..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"; } @@ -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)"; } diff --git a/httemplate/search/report_tax.cgi b/httemplate/search/report_tax.cgi index 08f255fe4..124e5d819 100755 --- a/httemplate/search/report_tax.cgi +++ b/httemplate/search/report_tax.cgi @@ -176,6 +176,12 @@ if ( $cgi->param('taxname') =~ /^([\w ]+)$/ ) { die "taxname required"; } +if ( $cgi->param('credit_date') eq 'cust_credit_bill' ) { + $params{credit_date} = 'cust_credit_bill'; +} else { + $params{credit_date} = 'cust_bill'; +} + warn "PARAMS:\n".Dumper(\%params)."\n\n" if $DEBUG; my $report = FS::Report::Tax->report_internal(%params); @@ -193,6 +199,11 @@ my $taxlink = $p. "search/cust_bill_pkg.cgi?$dateagentlink;istax=1"; my $exemptlink = $p. "search/cust_tax_exempt_pkg.cgi?$dateagentlink"; my $creditlink = $p. "search/cust_bill_pkg.cgi?$dateagentlink;credit=1;istax=1"; +if ( $params{'credit_date'} eq 'cust_credit_bill' ) { + $creditlink =~ s/begin/credit_begin/; + $creditlink =~ s/end/credit_end/; +} + my %pkgclass_name = map { $_->classnum, $_->classname } qsearch('pkg_class'); $pkgclass_name{''} = 'Unclassified'; diff --git a/httemplate/search/report_tax.html b/httemplate/search/report_tax.html index ee25f62e7..8d8d1084c 100755 --- a/httemplate/search/report_tax.html +++ b/httemplate/search/report_tax.html @@ -33,6 +33,16 @@ district => 'District', }, &> + <TR> + <TD></TD> + <TD>Deduct credited tax if it was + <SELECT NAME="credit_date"> + <OPTION VALUE="cust_bill" SELECTED>invoiced in this period</OPTION> + <OPTION VALUE="cust_credit_bill">credited in this period</OPTION> + </SELECT> + </TD> + </TR> + </TABLE> <BR><INPUT TYPE="submit" VALUE="Get Report"> |