From be2a6e7068337aa57b04bd7fa88090002d79a64b Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Fri, 5 Dec 2014 08:07:28 -0800 Subject: [PATCH] fix invoice viewing --- FS/FS/Template_Mixin.pm | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/FS/FS/Template_Mixin.pm b/FS/FS/Template_Mixin.pm index b153d3114..346e78167 100644 --- a/FS/FS/Template_Mixin.pm +++ b/FS/FS/Template_Mixin.pm @@ -702,12 +702,13 @@ sub print_generic { # "balance_date_range" unfortunately is unsuitable for this, since it # cares about application dates. We want to know the sum of all # _top-level transactions_ dated before the last invoice. - my @sql = ( - "SELECT COALESCE( SUM(charged), 0 ) FROM cust_bill", - "SELECT -1 * COALESCE( SUM(amount), 0 ) FROM cust_credit", - "SELECT -1 * COALESCE( SUM(paid), 0 ) FROM cust_pay", - "SELECT COALESCE( SUM(refund), 0 ) FROM cust_refund", - ); + my @sql = + map "$_ WHERE _date <= ? AND custnum = ?", ( + "SELECT COALESCE( SUM(charged), 0 ) FROM cust_bill", + "SELECT -1 * COALESCE( SUM(amount), 0 ) FROM cust_credit", + "SELECT -1 * COALESCE( SUM(paid), 0 ) FROM cust_pay", + "SELECT COALESCE( SUM(refund), 0 ) FROM cust_refund", + ); # the customer's current balance immediately after generating the last # bill @@ -715,7 +716,7 @@ sub print_generic { my $last_bill_balance = $last_bill->charged; foreach (@sql) { my $delta = FS::Record->scalar_sql( - "$_ WHERE _date <= ? AND custnum = ?", + $_, $last_bill->_date - 1, $self->custnum, ); @@ -737,13 +738,11 @@ sub print_generic { # to immediately before this one my $before_this_bill_balance = 0; foreach (@sql) { - #warn "$_\n"; my $delta = FS::Record->scalar_sql( $_, $self->_date - 1, $self->custnum, ); - #warn "$delta\n"; $before_this_bill_balance += $delta; } $invoice_data{'balance_adjustments'} = -- 2.11.0