summaryrefslogtreecommitdiff
path: root/FS/FS/cust_main_Mixin.pm
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2015-10-07 14:18:15 -0700
committerMark Wells <mark@freeside.biz>2015-10-07 14:18:45 -0700
commit6b8c46fa00f08da19bf0c4899776d3f82ef524c6 (patch)
tree5aadbdf2744278de8c87a8f97583e8c9c822d108 /FS/FS/cust_main_Mixin.pm
parent8b80447169366e4d586955abd8e72a7bcbad122d (diff)
#37098: convert one-shot email notices to use message templates
Diffstat (limited to 'FS/FS/cust_main_Mixin.pm')
-rw-r--r--FS/FS/cust_main_Mixin.pm22
1 files changed, 21 insertions, 1 deletions
diff --git a/FS/FS/cust_main_Mixin.pm b/FS/FS/cust_main_Mixin.pm
index 3d05f84..867d43e 100644
--- a/FS/FS/cust_main_Mixin.pm
+++ b/FS/FS/cust_main_Mixin.pm
@@ -426,6 +426,18 @@ sub email_search_result {
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'});
@@ -446,7 +458,7 @@ sub email_search_result {
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?
@@ -516,6 +528,14 @@ sub email_search_result {
}
} # 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.