my $join = FS::part_event_condition->join_conditions_sql;
my $order = FS::part_event_condition->order_conditions_sql;
+ my $mine =
+ '( '
+ . join ( ' OR ' , map {
+ "( part_event.eventtable = " . dbh->quote($_)
+ . " AND tablenum IN( SELECT " . dbdef->table($_)->primary_key . " from $_ where custnum = " . dbh->quote( $self->custnum ) . "))" ;
+ } FS::part_event->eventtables)
+ . ') ';
#here is the agent virtualization
my $agent_virt = " ( part_event.agentnum IS NULL
'addl_from' => "LEFT JOIN part_event USING ( eventpart ) $join",
'hashref' => { 'status' => 'done' },
'extra_sql' => " AND statustext IS NOT NULL AND statustext != '' ".
- " AND $is_realtime_event AND $agent_virt $order" # LIMIT 1"
+ " AND $mine AND $is_realtime_event AND $agent_virt $order" # LIMIT 1"
});
my %seen_invnum = ();
LEFT JOIN part_event_option AS peo_agentnum
ON ( part_event.eventpart = peo_agentnum.eventpart
AND peo_agentnum.optionname = 'agentnum'
- AND peo_agentnum.optionvalue ~ '(^|,)agentnum(,|$)'
+ AND peo_agentnum.optionvalue ~ '(^|,)}. $agentnum. q{agentnum(,|$)'
)
LEFT JOIN part_event_option AS peo_cust_bill_age
ON ( part_event.eventpart = peo_cust_bill_age.eventpart
#'hashref' => { 'optionname' => $option },
'hashref' => { 'part_event_option.optionname' => $option },
'extra_sql' => " AND event = 'cust_bill_send_agent' ".
+ " AND disabled != 'Y' ".
" AND peo_agentnum.optionname = 'agentnum' ".
" AND agentnum IS NULL OR agentnum = $agentnum ".
" ORDER BY
}
+sub queued_bill {
+ ## actual sub, not a method, designed to be called from the queue.
+ ## sets up the customer, and calls the bill_and_collect
+ my (%args) = @_; #, ($time, $invoice_time, $check_freq, $resetup) = @_;
+ my $cust_main = qsearchs( 'cust_main', { custnum => $args{'custnum'} } );
+ $cust_main->bill_and_collect(
+ %args,
+ );
+}
+
=back
=head1 BUGS