summaryrefslogtreecommitdiff
path: root/FS/FS
diff options
context:
space:
mode:
authorJonathan Prykop <jonathan@freeside.biz>2015-09-25 17:06:44 -0500
committerMark Wells <mark@freeside.biz>2015-11-09 16:51:05 -0800
commitdc9b5a11c48ebdbcf907b6c009fb3f2a36847b05 (patch)
tree3799dac16fff113eb728624d6e5f375e9a30edeb /FS/FS
parent7133b592b4bd28a9aa887f716cd7dc67a8bbdc7a (diff)
RT#37908: Convert existing email-sending code to use common interface [switched jobs to use cust_msg::process_send, bug fix to http]
Diffstat (limited to 'FS/FS')
-rw-r--r--FS/FS/Conf.pm7
-rw-r--r--FS/FS/Misc.pm28
-rw-r--r--FS/FS/contact.pm8
-rw-r--r--FS/FS/cust_pay.pm69
-rw-r--r--FS/FS/msg_template/http.pm2
5 files changed, 21 insertions, 93 deletions
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index ba670a1..990f2a3 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -1663,13 +1663,6 @@ and customer address. Include units.',
},
{
- 'key' => 'payment_receipt_email',
- 'section' => 'deprecated',
- 'description' => 'Template file for payment receipts. Payment receipts are sent to the customer email invoice destination(s) when a payment is received.',
- 'type' => [qw( checkbox textarea )],
- },
-
- {
'key' => 'payment_receipt-trigger',
'section' => 'notification',
'description' => 'When payment receipts are triggered. Defaults to when payment is made.',
diff --git a/FS/FS/Misc.pm b/FS/FS/Misc.pm
index cbf4495..18cb275 100644
--- a/FS/FS/Misc.pm
+++ b/FS/FS/Misc.pm
@@ -414,34 +414,6 @@ sub generate_email {
}
-=item process_send_email OPTION => VALUE ...
-
-Takes arguments as per generate_email() and sends the message. This
-will die on any error and can be used in the job queue.
-
-=cut
-
-sub process_send_email {
- my %message = @_;
- my $error = send_email(generate_email(%message));
- die "$error\n" if $error;
- '';
-}
-
-=item process_send_generated_email OPTION => VALUE ...
-
-Takes arguments as per send_email() and sends the message. This
-will die on any error and can be used in the job queue.
-
-=cut
-
-sub process_send_generated_email {
- my %args = @_;
- my $error = send_email(%args);
- die "$error\n" if $error;
- '';
-}
-
=item send_fax OPTION => VALUE ...
Options:
diff --git a/FS/FS/contact.pm b/FS/FS/contact.pm
index 38b7fd7..6120480 100644
--- a/FS/FS/contact.pm
+++ b/FS/FS/contact.pm
@@ -837,6 +837,7 @@ sub send_reset_email {
#die "selfservice-password_reset_msgnum unset" unless $msgnum;
return { 'error' => "selfservice-password_reset_msgnum unset" } unless $msgnum;
my $msg_template = qsearchs('msg_template', { msgnum => $msgnum } );
+ return { 'error' => "selfservice-password_reset_msgnum cannot be loaded" } unless $msg_template;
my %msg_template = (
'to' => join(',', map $_->emailaddress, @contact_email ),
'cust_main' => $cust_main,
@@ -846,11 +847,14 @@ sub send_reset_email {
if ( $opt{'queue'} ) { #or should queueing just be the default?
+ my $cust_msg = $msg_template->prepare( %msg_template );
+ my $error = $cust_msg->insert;
+ return { 'error' => $error } if $error;
my $queue = new FS::queue {
- 'job' => 'FS::Misc::process_send_email',
+ 'job' => 'FS::cust_msg::process_send',
'custnum' => $cust_main ? $cust_main->custnum : '',
};
- $queue->insert( $msg_template->prepare( %msg_template ) );
+ $queue->insert( $cust_msg->custmsgnum );
} else {
diff --git a/FS/FS/cust_pay.pm b/FS/FS/cust_pay.pm
index e34e3b2..4d06862 100644
--- a/FS/FS/cust_pay.pm
+++ b/FS/FS/cust_pay.pm
@@ -672,72 +672,31 @@ sub send_receipt {
my %substitutions = ();
$substitutions{invnum} = $opt->{cust_bill}->invnum if $opt->{cust_bill};
- my $queue = new FS::queue {
- 'job' => 'FS::Misc::process_send_email',
- 'paynum' => $self->paynum,
- 'custnum' => $cust_main->custnum,
- };
- $error = $queue->insert(
- FS::msg_template->by_key($msgnum)->prepare(
+ my $msg_template = qsearchs('msg_template',{ msgnum => $msgnum});
+ unless ($msg_template) {
+ warn "send_receipt could not load msg_template";
+ return;
+ }
+
+ my $cust_msg = $msg_template->prepare(
'cust_main' => $cust_main,
'object' => $self,
'from_config' => 'payment_receipt_from',
'substitutions' => \%substitutions,
- ),
- 'msgtype' => 'receipt', # override msg_template's default
- );
-
- } elsif ( $conf->exists('payment_receipt_email') ) {
-
- my $receipt_template = new Text::Template (
- TYPE => 'ARRAY',
- SOURCE => [ map "$_\n", $conf->config('payment_receipt_email') ],
- ) or do {
- warn "can't create payment receipt template: $Text::Template::ERROR";
- return '';
- };
-
- my $payby = $self->payby;
- my $payinfo = $self->payinfo;
- $payby =~ s/^BILL$/Check/ if $payinfo;
- if ( $payby eq 'CARD' || $payby eq 'CHEK' ) {
- $payinfo = $self->paymask
- } else {
- $payinfo = $self->decrypt($payinfo);
- }
- $payby =~ s/^CHEK$/Electronic check/;
-
- my %fill_in = (
- 'date' => time2str("%a %B %o, %Y", $self->_date),
- 'name' => $cust_main->name,
- 'paynum' => $self->paynum,
- 'paid' => sprintf("%.2f", $self->paid),
- 'payby' => ucfirst(lc($payby)),
- 'payinfo' => $payinfo,
- 'balance' => $cust_main->balance,
- 'company_name' => $conf->config('company_name', $cust_main->agentnum),
+ 'msgtype' => 'receipt',
);
-
- $fill_in{'invnum'} = $opt->{cust_bill}->invnum if $opt->{cust_bill};
-
- if ( $opt->{'cust_pkg'} ) {
- $fill_in{'pkg'} = $opt->{'cust_pkg'}->part_pkg->pkg;
- #setup date, other things?
+ $error = $cust_msg ? $cust_msg->insert : 'error preparing msg_template';
+ if ($error) {
+ warn "send_receipt: $error";
+ return;
}
my $queue = new FS::queue {
- 'job' => 'FS::Misc::process_send_generated_email',
+ 'job' => 'FS::cust_msg::process_send',
'paynum' => $self->paynum,
'custnum' => $cust_main->custnum,
- 'msgtype' => 'receipt',
};
- $error = $queue->insert(
- 'from' => $conf->invoice_from_full( $cust_main->agentnum ),
- #invoice_from??? well as good as any
- 'to' => \@invoicing_list,
- 'subject' => 'Payment receipt',
- 'body' => [ $receipt_template->fill_in( HASH => \%fill_in ) ],
- );
+ $error = $queue->insert( $cust_msg->custmsgnum );
} else {
diff --git a/FS/FS/msg_template/http.pm b/FS/FS/msg_template/http.pm
index a2b0986..9c4e68b 100644
--- a/FS/FS/msg_template/http.pm
+++ b/FS/FS/msg_template/http.pm
@@ -61,7 +61,7 @@ sub prepare {
};
# put override content _somewhere_ so it can be used
if ( $opt{'override_content'} ) {
- $document{'content'} = $opt{'override_content'};
+ $document->{'content'} = $opt{'override_content'};
}
my $request_content = $json->encode($document);