[freeside-commits] branch master updated. 93a716370d8a53ec1a301115ae543eed5961e0c0

Christopher Burger burgerc at freeside.biz
Tue May 15 10:33:54 PDT 2018


The branch, master has been updated
       via  93a716370d8a53ec1a301115ae543eed5961e0c0 (commit)
      from  60c34bd328a404008313d4ab78d25152ebdb9226 (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 93a716370d8a53ec1a301115ae543eed5961e0c0
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Tue May 15 13:32:46 2018 -0400

    RT78131 - Created new method to send message receipts so code does not have to be duplicated.

diff --git a/FS/FS/cust_pay.pm b/FS/FS/cust_pay.pm
index 5031793ff..b0a1e4b12 100644
--- a/FS/FS/cust_pay.pm
+++ b/FS/FS/cust_pay.pm
@@ -662,53 +662,72 @@ sub send_receipt {
        || ! $cust_bill
      )
   {
-    my $msgnum = $conf->config('payment_receipt_msgnum', $cust_main->agentnum);
-    if ( $msgnum ) {
-
-      my %substitutions = ();
-      $substitutions{invnum} = $opt->{cust_bill}->invnum if $opt->{cust_bill};
-
-      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',
+      $error = $self->send_message_receipt(
+        'cust_main' => $cust_main,
+        'cust_bill' => $opt->{cust_bill},
+        'msgnum'    => $conf->config('payment_receipt_msgnum', $cust_main->agentnum)
       );
-      $error = $cust_msg ? $cust_msg->insert : 'error preparing msg_template';
-      if ($error) {
-        warn "send_receipt: $error";
-        return;
-      }
+  #not manual and no noemail flag (here or on the customer)
+  } elsif ( ! $opt->{'noemail'} && ! $cust_main->invoice_noemail ) {
 
+    # check to see if they want to send specific message template as receipt for auto payments
+    if ( $conf->config('payment_receipt_msgnum_auto', $cust_main->agentnum) ) {
+      $error = $self->send_message_receipt(
+        'cust_main' => $cust_main,
+        'cust_bill' => $opt->{cust_bill},
+        'msgnum'    => $conf->config('payment_receipt_msgnum_auto', $cust_main->agentnum),
+      );
+    }
+    else {
       my $queue = new FS::queue {
-        'job'     => 'FS::cust_msg::process_send',
+        'job'     => 'FS::cust_bill::queueable_email',
         'paynum'  => $self->paynum,
         'custnum' => $cust_main->custnum,
       };
-      $error = $queue->insert( $cust_msg->custmsgnum );
 
-    } else {
+      my %opt = (
+        'invnum'      => $cust_bill->invnum,
+        'no_coupon'   => 1,
+      );
 
-      warn "payment_receipt is on, but no payment_receipt_msgnum\n";
+      if ( my $mode = $conf->config('payment_receipt_statement_mode') ) {
+        $opt{'mode'} = $mode;
+      } else {
+        # backward compatibility, no good fix for this yet as some people may
+        # still have "invoice_latex_statement" and such options
+        $opt{'template'} = 'statement';
+        $opt{'notice_name'} = 'Statement';
+      }
 
+      $error = $queue->insert(%opt);
     }
 
-  #not manual and no noemail flag (here or on the customer)
-  } elsif ( ! $opt->{'noemail'} && ! $cust_main->invoice_noemail ) {
 
-    # check to see if they want to send specific message template as receipt for auto payments
-    my $msgnum = $conf->config('payment_receipt_msgnum_auto', $cust_main->agentnum);
+
+  }
+
+  warn "send_receipt: $error\n" if $error;
+}
+
+=item send_message_receipt
+
+sends out a message receipt.
+send_message_receipt($cust_main, $msgnum);
+
+=cut
+
+sub send_message_receipt {
+  my ($self, %opt) = @_;
+  my $cust_main = $opt{'cust_main'};
+  my $cust_bill = $opt{'cust_bill'};
+  my $msgnum = $opt{'msgnum'};
+  my $error = '';
+
     if ( $msgnum ) {
 
       my %substitutions = ();
-      $substitutions{invnum} = $opt->{cust_bill}->invnum if $opt->{cust_bill};
+      $substitutions{invnum} = $cust_bill->invnum if $cust_bill;
+#      $substitutions{invnum} = $opt->{cust_bill}->invnum if $opt->{cust_bill};
 
       my $msg_template = qsearchs('msg_template',{ msgnum => $msgnum});
       unless ($msg_template) {
@@ -726,7 +745,7 @@ sub send_receipt {
       $error = $cust_msg ? $cust_msg->insert : 'error preparing msg_template';
       if ($error) {
         warn "send_receipt: $error";
-        return;
+        return $error;
       }
 
       my $queue = new FS::queue {
@@ -736,36 +755,12 @@ sub send_receipt {
       };
       $error = $queue->insert( $cust_msg->custmsgnum );
 
-    }
-    else {
-      my $queue = new FS::queue {
-        'job'     => 'FS::cust_bill::queueable_email',
-        'paynum'  => $self->paynum,
-        'custnum' => $cust_main->custnum,
-      };
-
-      my %opt = (
-        'invnum'      => $cust_bill->invnum,
-        'no_coupon'   => 1,
-      );
-
-      if ( my $mode = $conf->config('payment_receipt_statement_mode') ) {
-        $opt{'mode'} = $mode;
-      } else {
-        # backward compatibility, no good fix for this yet as some people may
-        # still have "invoice_latex_statement" and such options
-        $opt{'template'} = 'statement';
-        $opt{'notice_name'} = 'Statement';
-      }
-
-      $error = $queue->insert(%opt);
+    } else {
+      warn "payment_receipt is on, but no payment_receipt_msgnum\n";
+      $error = "payment_receipt is on, but no payment_receipt_msgnum";
     }
 
-
-
-  }
-  
-  warn "send_receipt: $error\n" if $error;
+  return $error;
 }
 
 =item cust_bill_pay

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

Summary of changes:
 FS/FS/cust_pay.pm | 117 ++++++++++++++++++++++++++----------------------------
 1 file changed, 56 insertions(+), 61 deletions(-)




More information about the freeside-commits mailing list