X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_event_condition.pm;h=32f19a3aead0db1ae516354fd08f8ff7f0de6e4b;hb=dafdfc24616b04a5ff594da31e2cdd03f58634b6;hp=1efd0f8793c801cef36efd23007dd13fc8b1598e;hpb=9509e5bfb7f9331303153cac24d7bfecbe2ea9f1;p=freeside.git diff --git a/FS/FS/part_event_condition.pm b/FS/FS/part_event_condition.pm index 1efd0f879..32f19a3ae 100644 --- a/FS/FS/part_event_condition.pm +++ b/FS/FS/part_event_condition.pm @@ -1,8 +1,8 @@ package FS::part_event_condition; use strict; -use vars qw( @ISA $DEBUG ); -use FS::UID qw(dbh); +use vars qw( @ISA $DEBUG @SKIP_CONDITION_SQL ); +use FS::UID qw( dbh driver_name ); use FS::Record qw( qsearch qsearchs ); use FS::option_Common; use FS::part_event; #for order_conditions_sql... @@ -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') @@ -279,11 +285,16 @@ sub where_conditions_sql { map { my $conditionname = $_; my $coderef = $conditions{$conditionname}->{condition_sql}; - my $sql = &$coderef( $eventtable, 'time'=>$time ); + my $sql = &$coderef( $eventtable, 'time' => $time, + 'driver_name' => driver_name(), + ); 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;