add disable ability to conditions & disable cust_bill_has_service, so the condition...
[freeside.git] / FS / FS / part_event_condition.pm
index 1efd0f8..d13e849 100644 (file)
@@ -1,7 +1,7 @@
 package FS::part_event_condition;
 
 use strict;
-use vars qw( @ISA $DEBUG );
+use vars qw( @ISA $DEBUG @SKIP_CONDITION_SQL );
 use FS::UID qw(dbh);
 use FS::Record qw( qsearch qsearchs );
 use FS::option_Common;
@@ -10,6 +10,8 @@ use FS::part_event; #for order_conditions_sql...
 @ISA = qw( FS::option_Common ); # FS::Record );
 $DEBUG = 0;
 
+@SKIP_CONDITION_SQL = ();
+
 =head1 NAME
 
 FS::part_event_condition - Object methods for part_event_condition records
@@ -189,6 +191,10 @@ foreach my $INC ( @INC ) {
       #warn "error using $fullmod (skipping): $@\n" if $@;
       #next;
     }
+    if ( $fullmod->disabled ) {
+      warn "$fullmod is disabled; skipping\n";
+      next;
+    }
     #my $full_condition_sql = $fullmod. '::condition_sql';
     my $condition_sql_coderef = sub { $fullmod->condition_sql(@_) };
     my $order_sql_coderef = $fullmod->can('order_sql')
@@ -283,7 +289,10 @@ sub where_conditions_sql {
           die "$coderef is not a CODEREF" unless ref($coderef) eq 'CODE';
           "( cond_$conditionname.conditionname IS NULL OR $sql )";
         }
-        keys %conditions
+        grep { my $cond = $_;
+               ! grep { $_ eq $cond } @SKIP_CONDITION_SQL
+             }
+             keys %conditions
   );
 
   $where;