[freeside-commits] branch master updated. 4109791a9b80df968edaf2e71da8ebcfb8882be3

Mark Wells mark at 420.am
Fri Aug 9 12:05:57 PDT 2013


The branch, master has been updated
       via  4109791a9b80df968edaf2e71da8ebcfb8882be3 (commit)
      from  f5158f30ad19d8bc2dbd637610ff0460b9a514e7 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 4109791a9b80df968edaf2e71da8ebcfb8882be3
Author: Mark Wells <mark at freeside.biz>
Date:   Thu Aug 8 18:43:07 2013 -0700

    unearned revenue report: consider primary object dates, not application dates, #13289

diff --git a/FS/FS/cust_bill_pkg.pm b/FS/FS/cust_bill_pkg.pm
index 572fe79..f94bf9b 100644
--- a/FS/FS/cust_bill_pkg.pm
+++ b/FS/FS/cust_bill_pkg.pm
@@ -955,8 +955,8 @@ Returns an SQL expression for the sum of payments applied to this item.
 
 sub paid_sql {
   my ($class, $start, $end, %opt) = @_;
-  my $s = $start ? "AND cust_bill_pay._date <= $start" : '';
-  my $e = $end   ? "AND cust_bill_pay._date >  $end"   : '';
+  my $s = $start ? "AND cust_pay._date <= $start" : '';
+  my $e = $end   ? "AND cust_pay._date >  $end"   : '';
   my $setuprecur = 
     $opt{setuprecur} =~ /^s/ ? 'setup' :
     $opt{setuprecur} =~ /^r/ ? 'recur' :
@@ -965,6 +965,7 @@ sub paid_sql {
 
   my $paid = "( SELECT COALESCE(SUM(cust_bill_pay_pkg.amount),0)
      FROM cust_bill_pay_pkg JOIN cust_bill_pay USING (billpaynum)
+                            JOIN cust_pay      USING (paynum)
      WHERE cust_bill_pay_pkg.billpkgnum = cust_bill_pkg.billpkgnum
            $s $e $setuprecur )";
 
@@ -983,8 +984,8 @@ sub paid_sql {
 
 sub credited_sql {
   my ($class, $start, $end, %opt) = @_;
-  my $s = $start ? "AND cust_credit_bill._date <= $start" : '';
-  my $e = $end   ? "AND cust_credit_bill._date >  $end"   : '';
+  my $s = $start ? "AND cust_credit._date <= $start" : '';
+  my $e = $end   ? "AND cust_credit._date >  $end"   : '';
   my $setuprecur = 
     $opt{setuprecur} =~ /^s/ ? 'setup' :
     $opt{setuprecur} =~ /^r/ ? 'recur' :
@@ -993,6 +994,7 @@ sub credited_sql {
 
   my $credited = "( SELECT COALESCE(SUM(cust_credit_bill_pkg.amount),0)
      FROM cust_credit_bill_pkg JOIN cust_credit_bill USING (creditbillnum)
+                               JOIN cust_credit      USING (crednum)
      WHERE cust_credit_bill_pkg.billpkgnum = cust_bill_pkg.billpkgnum
            $s $e $setuprecur )";
 
diff --git a/httemplate/search/unearned_detail.html b/httemplate/search/unearned_detail.html
index 285fb50..b87a747 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";
 }

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/cust_bill_pkg.pm                 |   10 ++++++----
 httemplate/search/unearned_detail.html |   20 ++++++++++++++------
 2 files changed, 20 insertions(+), 10 deletions(-)




More information about the freeside-commits mailing list