From b85c4820c8050f2ed9843c9a4c72c0e5550a5b09 Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Wed, 11 Jun 2014 15:18:50 -0700 Subject: [PATCH] always pass the "time" parameter to join_conditions_sql, related to #28978 --- FS/FS/Cron/bill.pm | 3 ++- FS/FS/cust_main/Billing.pm | 9 ++++++--- FS/FS/part_event.pm | 4 +++- FS/FS/part_event_condition.pm | 9 +++++---- httemplate/browse/part_event.html | 2 +- 5 files changed, 17 insertions(+), 10 deletions(-) diff --git a/FS/FS/Cron/bill.pm b/FS/FS/Cron/bill.pm index d3f1eb42b..98f1c2e6f 100644 --- a/FS/FS/Cron/bill.pm +++ b/FS/FS/Cron/bill.pm @@ -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, ); diff --git a/FS/FS/cust_main/Billing.pm b/FS/FS/cust_main/Billing.pm index fff0cb076..dc923c139 100644 --- a/FS/FS/cust_main/Billing.pm +++ b/FS/FS/cust_main/Billing.pm @@ -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'} diff --git a/FS/FS/part_event.pm b/FS/FS/part_event.pm index a740bb836..69725b07e 100644 --- a/FS/FS/part_event.pm +++ b/FS/FS/part_event.pm @@ -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 ); diff --git a/FS/FS/part_event_condition.pm b/FS/FS/part_event_condition.pm index b51c6b901..ac2ee822c 100644 --- a/FS/FS/part_event_condition.pm +++ b/FS/FS/part_event_condition.pm @@ -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". Typically used in conjunction with -B. +B. 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 ) ); diff --git a/httemplate/browse/part_event.html b/httemplate/browse/part_event.html index 62e7ff0d9..ba036c8c6 100644 --- a/httemplate/browse/part_event.html +++ b/httemplate/browse/part_event.html @@ -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; -- 2.11.0