[freeside-commits] branch FREESIDE_3_BRANCH updated. 9d55843fddd22f64ad0f6b890181c6918aebbf6d

Ivan Kohler ivan at freeside.biz
Thu Sep 13 15:27:43 PDT 2018


The branch, FREESIDE_3_BRANCH has been updated
       via  9d55843fddd22f64ad0f6b890181c6918aebbf6d (commit)
       via  e3a8fd7def19db7b5acd6171a828b1bc39094186 (commit)
      from  167c830485a305064fb18bb7d91322857e5b5182 (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 9d55843fddd22f64ad0f6b890181c6918aebbf6d
Merge: e3a8fd7de 167c83048
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Thu Sep 13 15:27:39 2018 -0700

    Merge branch 'FREESIDE_3_BRANCH' of git.freeside.biz:/home/git/freeside into FREESIDE_3_BRANCH


commit e3a8fd7def19db7b5acd6171a828b1bc39094186
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Tue Jan 31 18:37:06 2017 -0800

    add condition_sql optimization to "Customer has a referring customer with uncancelled specific package(s)" condition, RT#74456

diff --git a/FS/FS/part_event/Condition/has_referral_pkgpart.pm b/FS/FS/part_event/Condition/has_referral_pkgpart.pm
index 44094449c..4c3681e26 100644
--- a/FS/FS/part_event/Condition/has_referral_pkgpart.pm
+++ b/FS/FS/part_event/Condition/has_referral_pkgpart.pm
@@ -18,6 +18,8 @@ sub option_fields {
   );
 }
 
+#lots of falze laziness w/has_pkgpart..
+
 sub condition {
   my($self, $object, %opt) = @_;
 
@@ -27,14 +29,23 @@ sub condition {
 
   my $if_pkgpart = $self->option('if_pkgpart') || {};
   grep $if_pkgpart->{ $_->pkgpart },
-    $cust_main->referral_custnum_cust_main->ncancelled_pkgs;
+    $cust_main->referral_custnum_cust_main->ncancelled_pkgs( 'skip_label_sort'=> 1);
                                             #maybe billing_pkgs
 }
 
-#XXX 
-#sub condition_sql {
-#
-#}
+sub condition_sql {
+  my( $self, $table ) = @_;
+
+  'ARRAY'. $self->condition_sql_option_option_integer('if_pkgpart').
+  ' && '. #overlap (have elements in common)
+  'ARRAY( SELECT pkgpart FROM cust_pkg AS has_referral_pkgpart_cust_pkg
+            WHERE has_referral_pkgpart_cust_pkg.custnum = cust_main.referral_custnum
+              AND (    has_referral_pkgpart_cust_pkg.cancel IS NULL
+                    OR has_referral_pkgpart_cust_pkg.cancel = 0
+                  )
+        )
+  ';
+}
 
 1;
 

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

Summary of changes:
 FS/FS/part_event/Condition/has_referral_pkgpart.pm | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)




More information about the freeside-commits mailing list