always pass the "time" parameter to join_conditions_sql, related to #28978
authorMark Wells <mark@freeside.biz>
Wed, 11 Jun 2014 22:18:50 +0000 (15:18 -0700)
committerMark Wells <mark@freeside.biz>
Wed, 11 Jun 2014 22:18:50 +0000 (15:18 -0700)
FS/FS/Cron/bill.pm
FS/FS/cust_main/Billing.pm
FS/FS/part_event.pm
FS/FS/part_event_condition.pm
httemplate/browse/part_event.html

index d3f1eb4..98f1c2e 100644 (file)
@@ -236,7 +236,8 @@ END
     my $eventtable = $_;
 
     # joins and where clauses to test event conditions
-    my $join  = FS::part_event_condition->join_conditions_sql(  $eventtable );
+    my $join  = FS::part_event_condition->join_conditions_sql(  $eventtable,
+                                                                'time'=>$time );
     my $where = FS::part_event_condition->where_conditions_sql( $eventtable,
                                                                 'time'=>$time,
                                                               );
index fff0cb0..dc923c1 100644 (file)
@@ -1765,7 +1765,8 @@ sub retry_realtime {
 
   #a little false laziness w/due_cust_event (not too bad, really)
 
-  my $join = FS::part_event_condition->join_conditions_sql;
+  # I guess this is always as of now?
+  my $join = FS::part_event_condition->join_conditions_sql('', 'time' => time);
   my $order = FS::part_event_condition->order_conditions_sql;
   my $mine = 
   '( '
@@ -2078,7 +2079,8 @@ sub due_cust_event {
 
       #some false laziness w/Cron::bill bill_where
 
-      my $join  = FS::part_event_condition->join_conditions_sql( $eventtable);
+      my $join  = FS::part_event_condition->join_conditions_sql( $eventtable,
+        'time' => $opt{'time'});
       my $where = FS::part_event_condition->where_conditions_sql($eventtable,
         'time'=>$opt{'time'},
       );
@@ -2117,7 +2119,8 @@ sub due_cust_event {
       my $pkey = $object->primary_key;
       $cross_where = "$eventtable.$pkey = ". $object->$pkey();
 
-      my $join = FS::part_event_condition->join_conditions_sql( $eventtable );
+      my $join = FS::part_event_condition->join_conditions_sql( $eventtable,
+        'time' => $opt{'time'});
       my $extra_sql =
         FS::part_event_condition->where_conditions_sql( $eventtable,
                                                         'time'=>$opt{'time'}
index a740bb8..69725b0 100644 (file)
@@ -285,7 +285,9 @@ sub targets {
   }
 
   # this is the 'event' side
-  my $join = FS::part_event_condition->join_conditions_sql( $eventtable );
+  my $join = FS::part_event_condition->join_conditions_sql( $eventtable,
+    'time' => $time
+  );
   my $where = FS::part_event_condition->where_conditions_sql( $eventtable,
     'time' => $time
   );
index b51c6b9..ac2ee82 100644 (file)
@@ -243,16 +243,17 @@ sub all_conditionnames {
        keys %conditions
 }
 
-=item join_conditions_sql [ EVENTTABLE ]
+=item join_conditions_sql [ EVENTTABLE [, OPTIONS ] ]
 
 Returns an SQL fragment selecting joining all condition options for an event as
 tables titled "cond_I<conditionname>".  Typically used in conjunction with
-B<where_conditions_sql>.
+B<where_conditions_sql>.  OPTIONS should include 'time', the time to use
+in testing event conditions.
 
 =cut
 
 sub join_conditions_sql {
-  my ( $class, $eventtable ) = @_;
+  my ( $class, $eventtable, %options ) = @_;
 
   join(' ',
     map {
@@ -261,7 +262,7 @@ sub join_conditions_sql {
           "       AND cond_$_.conditionname = ". dbh->quote($_).
           "     )";
         }
-      map $_->[0], $class->_where_conditions( $eventtable ) #, %options )
+      map $_->[0], $class->_where_conditions( $eventtable, %options )
 
   );
 
index 62e7ff0..ba036c8 100644 (file)
@@ -188,7 +188,7 @@ my $count_query = 'SELECT COUNT(*) FROM part_event WHERE '.
                     'viewall_right' => 'None',
                   );
 
-my $join_conditions  = FS::part_event_condition->join_conditions_sql;
+my $join_conditions  = FS::part_event_condition->join_conditions_sql('', 'time' => time);
 my $order_conditions = FS::part_event_condition->order_conditions_sql;
 
 </%init>