diff options
author | Mark Wells <mark@freeside.biz> | 2013-08-08 18:42:57 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2013-08-09 12:04:58 -0700 |
commit | 2feef99c412039a2b718e5f3889f2c25dc1bcf73 (patch) | |
tree | c96730a1279cd17e97a483881dff064a703c8137 /httemplate | |
parent | 7d8eccbe9fe50eb5f69ed9bf426623110d2cf960 (diff) |
unearned revenue report: consider primary object dates, not application dates, #13289
Diffstat (limited to 'httemplate')
-rw-r--r-- | httemplate/search/unearned_detail.html | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/httemplate/search/unearned_detail.html b/httemplate/search/unearned_detail.html index 285fb50a7..b87a7477e 100644 --- a/httemplate/search/unearned_detail.html +++ b/httemplate/search/unearned_detail.html @@ -105,6 +105,10 @@ my $agentnums_sql = my @where = ( $agentnums_sql ); +if ( $cgi->param('agentnum') =~ /^(\d+)$/ ) { + push @where, "cust_main.agentnum = $1"; +} + my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi); if ( $cgi->param('status') =~ /^([a-z]+)$/ ) { @@ -191,12 +195,16 @@ push @select, "$unearned_sql AS unearned_revenue"; # last payment/credit date my %t = (pay => 'cust_bill_pay', credit => 'cust_credit_bill'); foreach my $x (qw(pay credit)) { - my $table = $t{$x}; - my $link = $table.'_pkg'; - my $pkey = dbdef->table($table)->primary_key; - my $last_date_sql = "SELECT MAX(_date) - FROM $table JOIN $link USING ($pkey) - WHERE $link.billpkgnum = cust_bill_pkg.billpkgnum + my $table = "cust_$x"; + my $link_bill = $t{$x}; + my $link_pkg = $link_bill.'_pkg'; + my %pkey = map { $_ => dbdef->table($_)->primary_key } + ( $table, $link_bill ); + + my $last_date_sql = "SELECT MAX($table._date) + FROM $table JOIN $link_bill USING ($pkey{$table}) + JOIN $link_pkg USING ($pkey{$link_bill}) + WHERE $link_pkg.billpkgnum = cust_bill_pkg.billpkgnum AND $table._date <= $unearned"; push @select, "($last_date_sql) AS last_$x"; } |