From: Mark Wells Date: Tue, 20 May 2014 05:12:14 +0000 (-0700) Subject: option to handle credited tax date range differently, #28497 X-Git-Url: http://git.freeside.biz/gitweb/?a=commitdiff_plain;ds=sidebyside;h=d81ba2cb27849831d3946d408e9f39697f66702b;p=freeside.git option to handle credited tax date range differently, #28497 --- diff --git a/httemplate/search/cust_bill_pkg.cgi b/httemplate/search/cust_bill_pkg.cgi index 6cda34a7f..6bb09d7d9 100644 --- a/httemplate/search/cust_bill_pkg.cgi +++ b/httemplate/search/cust_bill_pkg.cgi @@ -241,8 +241,7 @@ if ( $cgi->param('distribute') == 1 ) { push @where, "sdate <= $ending", "edate > $beginning", ; -} -else { +} else { push @where, "cust_bill._date >= $beginning", "cust_bill._date <= $ending"; } @@ -602,6 +601,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') ) { @@ -615,6 +620,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"; @@ -645,6 +651,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 1841903e0..9926133be 100755 --- a/httemplate/search/report_tax.cgi +++ b/httemplate/search/report_tax.cgi @@ -324,7 +324,7 @@ my $pkg_tax = "SELECT SUM(amount) as tax_amount, taxnum, ". my $pkg_tax_exempt = "SELECT SUM(amount) AS exempt_charged, billpkgnum, taxnum ". "FROM cust_tax_exempt_pkg EXEMPT_WHERE GROUP BY billpkgnum, taxnum"; -my $where = "WHERE _date >= $beginning AND _date <= $ending "; +my $where = "WHERE cust_bill._date >= $beginning AND cust_bill._date <= $ending "; # SELECT/GROUP clauses for first-level queries # classnum is a placeholder; they all go in one class in this case. my $select = "SELECT NULL AS classnum, cust_main_county.taxnum, "; @@ -470,9 +470,18 @@ $all_sql{tax} = "$select_all SUM(cust_bill_pkg.setup) # ($creditfrom includes join of taxable item to part_pkg if with_pkgclass # is on) my $creditfrom = $taxfrom . - ' JOIN cust_credit_bill_pkg USING (billpkgtaxlocationnum)'; + ' JOIN cust_credit_bill_pkg USING (billpkgtaxlocationnum)' . + ' JOIN cust_credit_bill USING (creditbillnum)'; my $creditwhere = $where . - ' AND billpkgtaxratelocationnum IS NULL'; + ' AND billpkgtaxratelocationnum IS NULL'; +my $creditwhere_all = $where; + +# if the credit_date option is set to application date, change +# $creditwhere accordingly +if ( $cgi->param('credit_date') eq 'cust_credit_bill' ) { + $creditwhere =~ s/cust_bill._date/cust_credit_bill._date/g; + $creditwhere_all =~ s/cust_bill._date/cust_credit_bill._date/g; +} $sql{credit} = "$select SUM(cust_credit_bill_pkg.amount) $creditfrom @@ -483,9 +492,10 @@ $all_sql{credit} = "$select_all SUM(cust_credit_bill_pkg.amount) FROM cust_credit_bill_pkg JOIN cust_bill_pkg USING (billpkgnum) $join_cust - $where AND $istax + JOIN cust_credit_bill USING (creditbillnum) + $creditwhere_all AND $istax $group_all"; - +warn "\n\n$all_sql{credit}\n\n"; if ( $with_pkgclass ) { # the slightly more complicated version, with lots of joins that are # unnecessary if you're not breaking down by package class @@ -496,7 +506,7 @@ if ( $with_pkgclass ) { $all_sql{credit} = "$select_all SUM(cust_credit_bill_pkg.amount) $creditfrom - $creditwhere AND $istax + $creditwhere_all AND $istax $group_all"; } @@ -795,6 +805,13 @@ $dateagentlink .= ';agentnum='. $cgi->param('agentnum') if length($agentname); my $baselink = $p. "search/cust_bill_pkg.cgi?$dateagentlink"; my $exemptlink = $p. "search/cust_tax_exempt_pkg.cgi?$dateagentlink"; -my $creditlink = $p. "search/cust_bill_pkg.cgi?$dateagentlink;credit=1"; + +my $creditlink = $baselink . ";credit=1"; +if ( $cgi->param('credit_date') eq 'cust_credit_bill' ) { + $creditlink =~ s/begin/credit_begin/; + $creditlink =~ s/end/credit_end/; +} +warn $creditlink; + diff --git a/httemplate/search/report_tax.html b/httemplate/search/report_tax.html index 8a207aafb..00cb3e827 100755 --- a/httemplate/search/report_tax.html +++ b/httemplate/search/report_tax.html @@ -65,6 +65,15 @@ Show package classes % } + + + Deduct credited tax if it was + + +