From 01fbb8674cee73686d3e847565fd21b71eaeb983 Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Wed, 30 Jul 2014 13:56:10 -0700 Subject: [PATCH] add uncollected E911 fees to summary report, #26320 --- httemplate/search/e911.html | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/httemplate/search/e911.html b/httemplate/search/e911.html index 6a9dd0a16..e2283f873 100644 --- a/httemplate/search/e911.html +++ b/httemplate/search/e911.html @@ -14,7 +14,11 @@ table.grid TD { font-weight: bold; <% $row->{quantity} || 0 %> - Total fees collected: + Total fees charged: + <% $money_char.sprintf('%.2f', $row->{charged_amount}) %> + + + Fee payments collected: <% $money_char.sprintf('%.2f', $row->{paid_amount}) %> @@ -53,18 +57,19 @@ my $agentnum = $1; # bazillion scalar_sql queries. Use a properly grouped aggregate query. my $select = 'SELECT cust_bill_pkg.billpkgnum, cust_bill_pkg.quantity, '. -'SUM(cust_bill_pay_pkg.amount) AS paid_amount'; +'cust_bill_pkg.setup, SUM(cust_bill_pay_pkg.amount) AS paid_amount'; my $from = 'FROM cust_pkg JOIN cust_bill_pkg USING (pkgnum) JOIN cust_bill USING (invnum) - JOIN cust_bill_pay_pkg USING (billpkgnum) - JOIN cust_bill_pay USING (billpaynum) + LEFT JOIN cust_bill_pay_pkg USING (billpkgnum) + LEFT JOIN cust_bill_pay USING (billpaynum) '; # going by payment application date here, which should be # max(invoice date, payment date) my $where = "WHERE cust_pkg.pkgpart = $pkgpart -AND cust_bill_pay._date >= $begin AND cust_bill_pay._date < $end"; +AND ( (cust_bill_pay._date >= $begin AND cust_bill_pay._date < $end) + OR cust_bill_pay.paynum IS NULL )"; if ( $agentnum ) { $from .= ' JOIN cust_main ON (cust_pkg.custnum = cust_main.custnum)'; @@ -73,13 +78,14 @@ if ( $agentnum ) { my $subquery = "$select $from $where GROUP BY cust_bill_pkg.billpkgnum, cust_bill_pkg.quantity"; +warn $subquery; # This has one row for each E911 line item that has any payments applied. # Fields are the billpkgnum of the item (currently unused), the number of # E911 charges, and the total amount paid (always > 0). # now sum those rows. -my $sql = "SELECT SUM(quantity) AS quantity, SUM(paid_amount) AS paid_amount -FROM ($subquery) AS paid_fees"; # no grouping +my $sql = "SELECT SUM(quantity) AS quantity, SUM(setup) AS charged_amount, +SUM(paid_amount) AS paid_amount FROM ($subquery) AS paid_fees"; # no grouping my $sth = dbh->prepare($sql); $sth->execute; -- 2.11.0