[freeside-commits] branch master updated. 0feb608d2333f8709e02af8aa68f2da3e5deb581

Mark Wells mark at 420.am
Sat Dec 6 13:01:14 PST 2014


The branch, master has been updated
       via  0feb608d2333f8709e02af8aa68f2da3e5deb581 (commit)
      from  0eedfd553057f9fd8d69197675f33dbc893e6c51 (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 0feb608d2333f8709e02af8aa68f2da3e5deb581
Author: Mark Wells <mark at freeside.biz>
Date:   Sat Dec 6 13:01:09 2014 -0800

    avoid double-counting package-classed fees on the sales report, #32472

diff --git a/FS/FS/Report/Table.pm b/FS/FS/Report/Table.pm
index 934287a..69686df 100644
--- a/FS/FS/Report/Table.pm
+++ b/FS/FS/Report/Table.pm
@@ -886,14 +886,24 @@ sub with_classnum {
   @$classnum = grep /^\d+$/, @$classnum;
   my $in = 'IN ('. join(',', @$classnum). ')';
 
-  my $expr = "
-         ( COALESCE(part_pkg.classnum, 0) $in AND pkgpart_override IS NULL)
-      OR ( COALESCE(part_fee.classnum, 0) $in AND feepart IS NOT NULL )";
   if ( $use_override ) {
-    $expr .= "
-      OR ( COALESCE(override.classnum, 0) $in AND pkgpart_override IS NOT NULL )";
+    # then include packages if their base package is in the set and they are 
+    # not overridden,
+    # or if they are overridden and their override package is in the set,
+    # or fees if they are in the set
+    return "(
+         ( COALESCE(part_pkg.classnum, 0) $in AND cust_pkg.pkgpart IS NOT NULL AND pkgpart_override IS NULL )
+      OR ( COALESCE(override.classnum, 0) $in AND pkgpart_override IS NOT NULL )
+      OR ( COALESCE(part_fee.classnum, 0) $in AND cust_bill_pkg.feepart IS NOT NULL )
+    )";
+  } else {
+    # include packages if their base package is in the set,
+    # or fees if they are in the set
+    return "(
+         ( COALESCE(part_pkg.classnum, 0) $in AND cust_pkg.pkgpart IS NOT NULL )
+      OR ( COALESCE(part_fee.classnum, 0) $in AND cust_bill_pkg.feepart IS NOT NULL )
+    )";
   }
-  "( $expr )";
 }
 
 sub with_usageclass {

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

Summary of changes:
 FS/FS/Report/Table.pm |   22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)




More information about the freeside-commits mailing list