[freeside-commits] branch master updated. 1cfc3ea3efb8c75388ad344ea9481f6f8df072b9

Jonathan Prykop jonathan at 420.am
Fri Sep 25 15:29:25 PDT 2015


The branch, master has been updated
       via  1cfc3ea3efb8c75388ad344ea9481f6f8df072b9 (commit)
      from  c34a48fd2107adbc7ea08cf3aae007d70ec60b61 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 1cfc3ea3efb8c75388ad344ea9481f6f8df072b9
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Fri Sep 25 17:06:44 2015 -0500

    RT#37908: Convert existing email-sending code to use common interface [switched jobs to use cust_msg::process_send, bug fix to http]

diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index db7dbd0..26dbbcd 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 e1f654c..d06653e 100644
--- a/FS/FS/Misc.pm
+++ b/FS/FS/Misc.pm
@@ -413,34 +413,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 cb39d43..89bb193 100644
--- a/FS/FS/cust_pay.pm
+++ b/FS/FS/cust_pay.pm
@@ -661,72 +661,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);

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/Conf.pm              |    7 -----
 FS/FS/Misc.pm              |   28 ------------------
 FS/FS/contact.pm           |    8 +++--
 FS/FS/cust_pay.pm          |   69 +++++++++-----------------------------------
 FS/FS/msg_template/http.pm |    2 +-
 5 files changed, 21 insertions(+), 93 deletions(-)




More information about the freeside-commits mailing list