[freeside-commits] branch master updated. 5214a5560240667a3a914c45df046b420926a5ec

Ivan ivan at 420.am
Mon May 14 15:13:25 PDT 2012


The branch, master has been updated
       via  5214a5560240667a3a914c45df046b420926a5ec (commit)
      from  8d159e2eda65f2e7b327872580502f37d006c7f8 (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 5214a5560240667a3a914c45df046b420926a5ec
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon May 14 15:13:12 2012 -0700

    option to keep an email address but not email it invoices, RT#17676

diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm
index e3f34a4..2968903 100644
--- a/FS/FS/Schema.pm
+++ b/FS/FS/Schema.pm
@@ -928,6 +928,7 @@ sub tables_hashref {
         'edit_subject', 'char', 'NULL', 1, '', '',
         'locale', 'varchar', 'NULL', 16, '', '', 
         'calling_list_exempt', 'char', 'NULL', 1, '', '',
+        'invoice_noemail', 'char', 'NULL', 1, '', '',
       ],
       'primary_key' => 'custnum',
       'unique' => [ [ 'agentnum', 'agent_custid' ] ],
diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm
index a76170a..1f4943a 100644
--- a/FS/FS/cust_bill.pm
+++ b/FS/FS/cust_bill.pm
@@ -1314,14 +1314,16 @@ sub send {
     $balance_over = shift if scalar(@_) && $_[0] !~ /^\s*$/;
   }
 
+  my $cust_main = $self->cust_main;
+
   return 'N/A' unless ! $agentnums
-                   or grep { $_ == $self->cust_main->agentnum } @$agentnums;
+                   or grep { $_ == $cust_main->agentnum } @$agentnums;
 
   return ''
-    unless $self->cust_main->total_owed_date($self->_date) > $balance_over;
+    unless $cust_main->total_owed_date($self->_date) > $balance_over;
 
   $invoice_from ||= $self->_agent_invoice_from ||    #XXX should go away
-                    $conf->config('invoice_from', $self->cust_main->agentnum );
+                    $conf->config('invoice_from', $cust_main->agentnum );
 
   my %opt = (
     'template'     => $template,
@@ -1329,11 +1331,12 @@ sub send {
     'notice_name'  => ( $notice_name || 'Invoice' ),
   );
 
-  my @invoicing_list = $self->cust_main->invoicing_list;
+  my @invoicing_list = $cust_main->invoicing_list;
 
   #$self->email_invoice(\%opt)
   $self->email(\%opt)
-    if grep { $_ !~ /^(POST|FAX)$/ } @invoicing_list or !@invoicing_list;
+    if ( grep { $_ !~ /^(POST|FAX)$/ } @invoicing_list or !@invoicing_list )
+    && ! $self->invoice_noemail;
 
   #$self->print_invoice(\%opt)
   $self->print(\%opt)
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm
index 6f4a4d7..9766579 100644
--- a/FS/FS/cust_main.pm
+++ b/FS/FS/cust_main.pm
@@ -1800,6 +1800,7 @@ sub check {
     || $self->ut_numbern('billday')
     || $self->ut_enum('edit_subject', [ '', 'Y' ] )
     || $self->ut_enum('calling_list_exempt', [ '', 'Y' ] )
+    || $self->ut_enum('invoice_noemail', [ '', 'Y' ] )
     || $self->ut_enum('locale', [ '', FS::Locales->locales ])
   ;
 
diff --git a/FS/FS/part_event/Action/cust_bill_email.pm b/FS/FS/part_event/Action/cust_bill_email.pm
index a5cd861..1a3bca4 100644
--- a/FS/FS/part_event/Action/cust_bill_email.pm
+++ b/FS/FS/part_event/Action/cust_bill_email.pm
@@ -17,7 +17,7 @@ sub do_action {
   #my $cust_main = $self->cust_main($cust_bill);
   my $cust_main = $cust_bill->cust_main;
 
-  $cust_bill->email;
+  $cust_bill->email unless $cust_main->invoice_noemail;
 }
 
 1;
diff --git a/httemplate/edit/cust_main/billing.html b/httemplate/edit/cust_main/billing.html
index 3f87317..d7082f2 100644
--- a/httemplate/edit/cust_main/billing.html
+++ b/httemplate/edit/cust_main/billing.html
@@ -481,7 +481,7 @@
           ? 'CHECKED'
           : ''
 
-        %>> <% mt('Postal mail invoice') |h %> 
+        %>> <% mt('Postal mail invoices') |h %> 
 
       </TD>
     </TR>
@@ -493,15 +493,27 @@
           ? 'CHECKED'
           : ''
 
-        %>> <% mt('Fax invoice') |h %> 
+        %>> <% mt('Fax invoices') |h %> 
 
       </TD>
     </TR>
 
 % }
 
-% unless ( $conf->exists('cust-email-high-visibility')) {
     <TR>
+      <TD WIDTH="608" COLSPAN="2"><INPUT TYPE="checkbox" NAME="invoice_email" VALUE="Y" <%
+
+        ( $cust_main->invoice_noemail eq 'Y' )
+          ? ''
+          : 'CHECKED'
+
+        %>> <% mt('Email invoices') |h %> 
+
+      </TD>
+    </TR>
+
+% unless ( $conf->exists('cust-email-high-visibility')) {
+   <TR>
       <TD ALIGN="right" WIDTH="200">
         <% $conf->exists('cust_main-require_invoicing_list_email', $agentnum) 
             ? $r : '' %>Email address(es)
diff --git a/httemplate/edit/process/cust_main.cgi b/httemplate/edit/process/cust_main.cgi
index 1cf7a3e..3f5e19e 100755
--- a/httemplate/edit/process/cust_main.cgi
+++ b/httemplate/edit/process/cust_main.cgi
@@ -66,6 +66,8 @@ my $new = new FS::cust_main ( {
   } fields('cust_main')
 } );
 
+$new->invoice_noemail( ($cgi->param('invoice_email') eq 'Y') ? '' : 'Y' );
+
 $cgi->param('duplicate_of_custnum') =~ /^(\d+)$/;
 my $duplicate_of = $1;
 if ( $duplicate_of ) {
diff --git a/httemplate/view/cust_main/billing.html b/httemplate/view/cust_main/billing.html
index ba60e13..2547ec1 100644
--- a/httemplate/view/cust_main/billing.html
+++ b/httemplate/view/cust_main/billing.html
@@ -217,21 +217,27 @@
 </TR>
 % }
 <TR>
-  <TD ALIGN="right"><% mt('Postal invoices') |h %></TD>
+  <TD ALIGN="right"><% mt('Postal mail invoices') |h %></TD>
   <TD BGCOLOR="#ffffff">
     <% ( grep { $_ eq 'POST' } @invoicing_list ) ? $yes : $no %>
   </TD>
 </TR>
 <TR>
-  <TD ALIGN="right"><% mt('FAX invoices') |h %></TD>
+  <TD ALIGN="right"><% mt('Fax invoices') |h %></TD>
   <TD BGCOLOR="#ffffff">
     <% ( grep { $_ eq 'FAX' } @invoicing_list ) ? $yes : $no %>
   </TD>
 </TR>
-% unless ( $conf->exists('cust-email-high-visibility')) {
 <TR>
   <TD ALIGN="right"><% mt('Email invoices') |h %></TD>
   <TD BGCOLOR="#ffffff">
+    <% $cust_main->invoice_noemail ? $no : $yes %>
+  </TD>
+</TR>
+% unless ( $conf->exists('cust-email-high-visibility')) {
+<TR>
+  <TD ALIGN="right"><% mt('Email address(es)') |h %></TD>
+  <TD BGCOLOR="#ffffff">
     <% join(', ', grep { $_ !~ /^(POST|FAX)$/ } @invoicing_list ) || $no %>
   </TD>
 </TR>
diff --git a/httemplate/view/cust_main/contacts.html b/httemplate/view/cust_main/contacts.html
index b3e52b5..12b9391 100644
--- a/httemplate/view/cust_main/contacts.html
+++ b/httemplate/view/cust_main/contacts.html
@@ -20,7 +20,7 @@
 
 % if ( $conf->exists('cust-email-high-visibility') && $which eq '') {
   <TR>
-    <TD ALIGN="right"><% mt('Email invoices') |h %></TD>
+    <TD ALIGN="right"><% mt('Email address(es)') |h %></TD>
     <TD BGCOLOR="#ffff00">
       <% join(', ', grep { $_ !~ /^(POST|FAX)$/ } @invoicing_list ) || $no %>
     </TD>

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

Summary of changes:
 FS/FS/Schema.pm                            |    1 +
 FS/FS/cust_bill.pm                         |   13 ++++++++-----
 FS/FS/cust_main.pm                         |    1 +
 FS/FS/part_event/Action/cust_bill_email.pm |    2 +-
 httemplate/edit/cust_main/billing.html     |   18 +++++++++++++++---
 httemplate/edit/process/cust_main.cgi      |    2 ++
 httemplate/view/cust_main/billing.html     |   12 +++++++++---
 httemplate/view/cust_main/contacts.html    |    2 +-
 8 files changed, 38 insertions(+), 13 deletions(-)




More information about the freeside-commits mailing list