[freeside-commits] freeside/install/rpm freeside-1.5.7.emailsubject.patch, NONE, 1.1.2.1

Richard Siddall rsiddall at wavetail.420.am
Wed Jun 27 19:39:55 PDT 2007


Update of /home/cvs/cvsroot/freeside/install/rpm
In directory wavetail:/tmp/cvs-serv11629

Added Files:
      Tag: FREESIDE_1_5_BRANCH
	freeside-1.5.7.emailsubject.patch 
Log Message:
Patch to Freeside 1.5.7 to make e-mail subject lines configurable text templates

--- NEW FILE: freeside-1.5.7.emailsubject.patch ---
diff -Naur freeside-1.5.7.orig/FS/bin/freeside-expiration-alerter freeside-1.5.7/FS/bin/freeside-expiration-alerter
--- freeside-1.5.7.orig/FS/bin/freeside-expiration-alerter	2003-04-21 16:53:57.000000000 -0400
+++ freeside-1.5.7/FS/bin/freeside-expiration-alerter	2005-08-29 19:11:41.220781694 -0400
@@ -29,6 +29,7 @@
 my $urgent_time = 15 * 24 * 60 * 60;
 my $panic_time = 5 * 24 * 60 * 60;
 my $window_time = 24 * 60 * 60;
+my $subject = "Unnotified Billing Arrangement Expirations";
 
 &untaint_argv;	#what it sounds like  (eww)
 
@@ -51,6 +52,8 @@
   if $conf->exists('invoice_from');
 $failure_recipient = $conf->config('invoice_from')
   if $conf->exists('invoice_from');
+$subject = $conf->config('alerter_email-subject')
+  if $conf->exists('alerter-email_subject');
 
 
 my(@customers)=qsearch('cust_main',{});
@@ -61,13 +64,16 @@
 
 # Prepare for sending email
 
+my $subject_template = new Text::Template (TYPE => 'STRING', SOURCE => $subject);
+my $mail_subject = $subject_template->fill_in(HASH => { ispname => $conf->config('company_name') });
+
 $ENV{MAILADDRESS} = $mail_sender;
 my $header = new Mail::Header ( [
   "From: Account Processor",
   "To: $failure_recipient",
   "Sender: $mail_sender",
   "Reply-To: $mail_sender",
-  "Subject: Unnotified Billing Arrangement Expirations",
+  "Subject: $mail_subject",
 ] );
 
 my @alerter_template = $conf->config('alerter_template')
diff -Naur freeside-1.5.7.orig/FS/FS/Conf.pm freeside-1.5.7/FS/FS/Conf.pm
--- freeside-1.5.7.orig/FS/FS/Conf.pm	2005-06-30 09:20:33.000000000 -0400
+++ freeside-1.5.7/FS/FS/Conf.pm	2005-08-28 12:18:03.000000000 -0400
@@ -300,6 +300,13 @@
   },
 
   {
+    'key'         => 'alerter_email-subject',
+    'section'     => 'billing',
+    'description' => 'Template for the subject lines of billing method expiration alerts.  See the <a href="../docs/billing.html#invoice_template">billing documentation</a> for details.',
+    'type'        => 'text',
+  },
+
+  {
     'key'         => 'apacheroot',
     'section'     => 'deprecated',
     'description' => '<b>DEPRECATED</b>, add a <i>www_shellcommands</i> <a href="../browse/part_export.cgi">export</a> instead.  The directory containing Apache virtual hosts',
@@ -674,6 +681,13 @@
   },
 
   {
+    'key'         => 'invoice_email-subject',
+    'section'     => 'billing',
+    'description' => 'Template for the e-mail subject of invoices.',
+    'type'        => 'text',
+  },
+
+  {
     'key'         => 'payment_receipt_email',
     'section'     => 'billing',
     'description' => 'Template file for payment receipts.',
@@ -681,6 +695,13 @@
   },
 
   {
+    'key'         => 'receipt_email-subject',
+    'section'     => 'billing',
+    'description' => 'Template for the e-mail subject line of payment receipts.',
+    'type'        => 'text',
+  },
+
+  {
     'key'         => 'lpr',
     'section'     => 'required',
     'description' => 'Print command for paper invoices, for example `lpr -h\'',
@@ -1209,6 +1230,13 @@
   },
 
   {
+    'key'         => 'decline_email-subject',
+    'section'     => 'billing',
+    'description' => 'Template for the subject line of credit card decline emails.',
+    'type'        => 'text',
+  },
+
+  {
     'key'         => 'emaildecline',
     'section'     => 'billing',
     'description' => 'Enable emailing of credit card decline notices.',
diff -Naur freeside-1.5.7.orig/FS/FS/cust_bill.pm freeside-1.5.7/FS/FS/cust_bill.pm
--- freeside-1.5.7.orig/FS/FS/cust_bill.pm	2005-07-09 11:41:18.000000000 -0400
+++ freeside-1.5.7/FS/FS/cust_bill.pm	2005-08-29 17:23:32.000000000 -0400
@@ -356,9 +356,23 @@
 
   my $me = '[FS::cust_bill::generate_email]';
 
+  my $subject = $conf->config('invoice_email-subject');
+  $subject = 'Invoice' if !$subject;
+
+  my $subject_template = new Text::Template(TYPE => 'STRING', SOURCE => $subject);
+  my $templ_hash = {
+    ispname => $conf->config('company_name'),
+    invnum => $self->invnum,
+    date => $self->_date,
+    money_char => $conf->config('money_char') || '$',
+  };
+  foreach (qw/first last company address1 address2 city state zip country/) {
+    $$templ_hash{$_} = $self->cust_main->getfield($_);
+  }
+
   my %return = (
     'from'      => $args{'from'},
-    'subject'   => (($args{'subject'}) ? $args{'subject'} : 'Invoice'),
+    'subject'   => (($args{'subject'}) ? $args{'subject'} : $subject_template->fill_in(HASH => $templ_hash)),
   );
 
   if (ref($args{'to'} eq 'ARRAY')) {
diff -Naur freeside-1.5.7.orig/FS/FS/cust_main.pm freeside-1.5.7/FS/FS/cust_main.pm
--- freeside-1.5.7.orig/FS/FS/cust_main.pm	2005-06-30 08:44:46.000000000 -0400
+++ freeside-1.5.7/FS/FS/cust_main.pm	2005-08-29 19:20:57.241357962 -0400
@@ -2278,12 +2278,24 @@
       $template->compile()
         or return "($perror) can't compile template: $Text::Template::ERROR";
 
-      my $templ_hash = { error => $transaction->error_message };
+      my $subject = $conf->config('decline_email-subject');
+      $subject = 'Your payment could not be processed' if !$subject;
+      my $subject_template = new Text::Template(TYPE => 'STRING', SOURCE => $subject);
+
+      my $templ_hash = {
+        error => $transaction->error_message,
+        ispname => $conf->config('company_name'),
+        money_char => $conf->config('money_char') || '$',
+        name => $self->name,
+      };
+      foreach (qw/first last company address1 address2 city state zip country/) {
+	$$templ_hash{$_} = $self->getfield($_);
+      }
 
       my $error = send_email(
         'from'    => $conf->config('invoice_from'),
         'to'      => [ grep { $_ ne 'POST' } $self->invoicing_list ],
-        'subject' => 'Your payment could not be processed',
+        'subject' => $subject_template->fill_in(HASH => $templ_hash),
         'body'    => [ $template->fill_in(HASH => $templ_hash) ],
       );
 
diff -Naur freeside-1.5.7.orig/FS/FS/cust_pay.pm freeside-1.5.7/FS/FS/cust_pay.pm
--- freeside-1.5.7.orig/FS/FS/cust_pay.pm	2005-06-08 20:18:35.000000000 -0400
+++ freeside-1.5.7/FS/FS/cust_pay.pm	2005-08-29 17:08:10.000000000 -0400
@@ -185,6 +185,10 @@
       return '';
     };
 
+    my $subject = $conf->config('receipt_email-subject');
+    $subject = 'Payment receipt' if !$subject;
+    my $subject_template = new Text::Template(TYPE => 'STRING', SOURCE => $subject);
+
     my @invoicing_list = grep { $_ !~ /^(POST|FAX)$/ } $cust_main->invoicing_list;
 
     my $payby = $self->payby;
@@ -193,11 +197,7 @@
     $payinfo = $self->payinfo_masked if $payby eq 'CARD' || $payby eq 'CHEK';
     $payby =~ s/^CHEK$/Electronic check/;
 
-    my $error = send_email(
-      'from'    => $conf->config('invoice_from'), #??? well as good as any
-      'to'      => \@invoicing_list,
-      'subject' => 'Payment receipt',
-      'body'    => [ $receipt_template->fill_in( HASH => {
+    my $templ_hash = {
                        'date'    => time2str("%a %B %o, %Y", $self->_date),
                        'name'    => $cust_main->name,
                        'paynum'  => $self->paynum,
@@ -205,7 +205,18 @@
                        'payby'   => ucfirst(lc($payby)),
                        'payinfo' => $payinfo,
                        'balance' => $cust_main->balance,
-                   } ) ],
+                       'ispname' => $conf->config('company_name'),
+                       'money_char' => $conf->config('money_char') || '$',
+                   };
+    foreach (qw/first last company address1 address2 city state zip country/) {
+      $$templ_hash{$_} = $self->cust_main->getfield($_);
+    }
+
+    my $error = send_email(
+      'from'    => $conf->config('invoice_from'), #??? well as good as any
+      'to'      => \@invoicing_list,
+      'subject' => $subject_template->fill_in( HASH => $templ_hash ),
+      'body'    => [ $receipt_template->fill_in( HASH => $templ_hash ) ],
     );
     if ( $error ) {
       warn "can't send payment receipt: $error";
diff -Naur freeside-1.5.7.orig/FS/FS/cust_pkg.pm freeside-1.5.7/FS/FS/cust_pkg.pm
--- freeside-1.5.7.orig/FS/FS/cust_pkg.pm	2005-03-21 17:13:36.000000000 -0500
+++ freeside-1.5.7/FS/FS/cust_pkg.pm	2005-08-29 17:29:38.747520156 -0400
@@ -425,7 +425,7 @@
   my $conf = new FS::Conf;
   my @invoicing_list = grep { $_ !~ /^(POST|FAX)$/ } $self->cust_main->invoicing_list;
   if ( !$options{'quiet'} && $conf->exists('emailcancel') && @invoicing_list ) {
-    my $conf = new FS::Conf;
+#    my $conf = new FS::Conf;
     my $error = send_email(
       'from'    => $conf->config('invoice_from'),
       'to'      => \@invoicing_list,
diff -Naur freeside-1.5.7.orig/FS/FS/svc_acct.pm freeside-1.5.7/FS/FS/svc_acct.pm
--- freeside-1.5.7.orig/FS/FS/svc_acct.pm	2005-06-30 09:20:33.000000000 -0400
+++ freeside-1.5.7/FS/FS/svc_acct.pm	2005-08-29 17:10:03.000000000 -0400
@@ -304,19 +304,27 @@
           'svcnum' => $self->svcnum,
           'job'    => 'FS::svc_acct::send_email'
         };
-        my $error = $wqueue->insert(
-          'to'       => $to,
-          'from'     => $welcome_from,
-          'subject'  => $welcome_subject,
-          'mimetype' => $welcome_mimetype,
-          'body'     => $welcome_template->fill_in( HASH => {
+        my $subject_template = new Text::Template(TYPE => 'STRING', SOURCE => $welcome_subject);
+        my $templ_hash = {
                           'custnum'  => $self->custnum,
                           'username' => $self->username,
                           'password' => $self->_password,
-                          'first'    => $cust_main->first,
-                          'last'     => $cust_main->getfield('last'),
+#                          'first'    => $cust_main->first,
+#                          'last'     => $cust_main->getfield('last'),
                           'pkg'      => $cust_pkg->part_pkg->pkg,
-                        } ),
+                          'ispname'  => $conf->config('company_name'),
+                          'money_char' => $conf->config('money_char') || '$',
+                        };
+        foreach (qw/first last company address1 address2 city state zip country/) {
+          $$templ_hash{$_} = $cust_main->getfield($_);
+        }
+
+        my $error = $wqueue->insert(
+          'to'       => $to,
+          'from'     => $welcome_from,
+          'subject'  => $subject_template->fill_in( HASH => $templ_hash ),
+          'mimetype' => $welcome_mimetype,
+          'body'     => $welcome_template->fill_in( HASH => $templ_hash ),
         );
         if ( $error ) {
           $dbh->rollback if $oldAutoCommit;



More information about the freeside-commits mailing list