=item status
-=item payby
-
=back
=cut
push @search, $class->$method();
}
- #payby
- my @payby = ref($param->{'payby'})
- ? @{ $param->{'payby'} }
- : split(',', $param->{'payby'});
- @payby = grep /^([A-Z]{4})$/, @payby;
- if ( @payby ) {
- push @search, 'cust_main.payby IN ('. join(',', map "'$_'", @payby). ')';
- }
-
#here is the agent virtualization
push @search,
$FS::CurrentUser::CurrentUser->agentnums_sql( 'table' => 'cust_main' );
if ( $msgnum ) {
$msg_template = qsearchs('msg_template', { msgnum => $msgnum } )
or die "msgnum $msgnum not found\n";
+ } else {
+ $msg_template = FS::msg_template->new({
+ from_addr => $from,
+ msgname => $subject, # maybe a timestamp also?
+ disabled => 'D', # 'D'raft
+ # msgclass, maybe
+ });
+ $error = $msg_template->insert(
+ subject => $subject,
+ body => $html_body,
+ );
+ return "$error (when creating draft template)" if $error;
}
my $sql_query = $class->search($param->{'search'});
my %sent_to = ();
if ( !$msg_template ) {
- # XXX create on the fly
+ die "email_search_result now requires a msg_template";
}
#eventually order+limit magic to reduce memory use?
}
} # foreach $obj
+ # if the message template was created as "draft", change its status to
+ # "completed"
+ if ($msg_template->disabled eq 'D') {
+ $msg_template->set('disabled' => 'C');
+ my $error = $msg_template->replace;
+ warn "$error (setting draft message template status)" if $error;
+ }
+
if(@retry_jobs) {
# fail the job, but with a status message that makes it clear
# something was sent.
$param->{'search'} = thaw(decode_base64($param->{'search'}))
or die "process_email_search_result requires search params.\n";
-# $param->{'payby'} = [ split(/\0/, $param->{'payby'}) ]
-# unless ref($param->{'payby'});
-
my $table = $param->{'table'}
or die "process_email_search_result requires table.\n";