[freeside-commits] branch master updated. ed33058882b17e252dba3bd27051daeb0773f02b

Ivan ivan at 420.am
Tue Jan 31 18:37:09 PST 2017


The branch, master has been updated
       via  ed33058882b17e252dba3bd27051daeb0773f02b (commit)
      from  faa774764df03c6f3280177f6adfcd2214995a13 (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 ed33058882b17e252dba3bd27051daeb0773f02b
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 4409444..4c3681e 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