make cust-email-high-visibility non-optional, and improve display of invoice delivery...
authorMark Wells <mark@freeside.biz>
Mon, 30 Nov 2015 23:35:32 +0000 (15:35 -0800)
committerMark Wells <mark@freeside.biz>
Mon, 30 Nov 2015 23:39:25 +0000 (15:39 -0800)
FS/FS/Conf.pm
httemplate/elements/freeside.css
httemplate/view/cust_main/billing.html
httemplate/view/cust_main/contacts.html

index 641f925..eec719a 100644 (file)
@@ -5537,13 +5537,6 @@ and customer address. Include units.',
   },
   
   {
-    'key'         => 'cust-email-high-visibility',
-    'section'     => 'UI',
-    'description' => 'Move the invoicing e-mail address field to the top of the billing address section and highlight it.',
-    'type'        => 'checkbox',
-  },
-  
-  {
     'key'         => 'cust-edit-alt-field-order',
     'section'     => 'UI',
     'description' => 'An alternate ordering of fields for the New Customer and Edit Customer screens.',
index dbd27cb..7bf374c 100644 (file)
@@ -319,6 +319,12 @@ td.label {
   color: #ff0000;
 }
 
+table .error {
+  font-weight: bold;
+  font-size: medium;
+  color: #ff0000;
+}
+
 div#overDiv {
   box-shadow: #333333 1px 1px 2px;
 }
index 0c9f74a..97b4baf 100644 (file)
@@ -1,6 +1,8 @@
 <FONT CLASS="fsinnerbox-title"><% mt('Billing information') |h %></FONT>
 % my $yes = emt('yes');
 % my $no = emt('no');
+% my $allowed = emt('allowed');
+% my $refused = emt('refused');
 
 <TABLE CLASS="fsinnerbox">
 
 % }
 <TR>
   <TH ALIGN="right"><% mt('Postal mail invoices') |h %></TH>
-  <TD>
-    <% ( grep { $_ eq 'POST' } @invoicing_list )
-         ? $yes. ( $cust_main->invoice_attn
+% if ( $cust_main->postal_invoice ) {
+  <TD><% $yes .  ( $cust_main->invoice_attn
                      ? ', attn: '. $cust_main->invoice_attn
                      : ''
-                 )
-         : $no
-    %>
+                 ) %>
+  </TD>
+% } elsif ( $cust_main->invoice_noemail
+%           or scalar(@invoicing_list) == 0 ) {
+%   # alert the user that this customer has no way to receive an invoice
+  <TD CLASS="error"><% $no %></TD>
+% } else {
+  <TD><% $no %></TD>
+% }
   </TD>
 </TR>
 <TR>
   <TH ALIGN="right"><% mt('Email invoices') |h %></TH>
-  <TD>
-    <% $cust_main->invoice_noemail ? $no : $yes %>
-  </TD>
+% if ( $cust_main->invoice_noemail and ! $cust_main->postal_invoice ) {
+%   # as above, warn if the customer refuses both email and postal invoices
+  <TD CLASS="error"><% $refused %></TD>
+% } else {
+  <TD><% $cust_main->invoice_noemail ? $refused : $allowed %></TD>
+% }
 </TR>
-% unless ( $conf->exists('cust-email-high-visibility')) {
 <TR>
-  <TH ALIGN="right"><% mt('Email address(es)') |h %></TH>
+  <TH ALIGN="right"><% mt('Other email notices') |h %></TH>
   <TD>
-    <% join(', ', grep { $_ !~ /^(POST|FAX)$/ } @invoicing_list ) || $no %>
-%   if ( $cust_main->message_noemail ) {
-    <BR>
-    <SPAN STYLE="font-size: small"><% emt('(do not send notices)') %></SPAN>
-%   }
+    <% $cust_main->message_noemail ? $refused : $allowed %>
   </TD>
 </TR>
-% }
 <TR>
   <TH ALIGN="right"><% mt('Invoice terms') |h %></TH>
   <TD>
 <%init>
 
 my( $cust_main ) = @_;
-my @invoicing_list = $cust_main->invoicing_list;
+my @invoicing_list = $cust_main->invoicing_list_emailonly;
 my $conf = new FS::Conf;
 my $money_char = $conf->config('money_char') || '$';
 
index e3d5d63..a41a483 100644 (file)
                     $cust_main->spouse_last, $cust_main->spouse_first) %>
     </TD>
   </TR>
-% }
-%   if ( $conf->exists('cust-email-high-visibility') ) {
+%   }
+%
+%   # invoicing email
+%   if ( scalar(@invoicing_list) == 1 ) { # typical individual user; show here
   <TR>
-    <TH ALIGN="right"><% mt('Email address(es)') |h %></TH>
-    <TD BGCOLOR="#ffff00">
-      <% $cust_main->invoicing_list_emailonly_scalar || $no %>
+    <TH ALIGN="right"><% mt('Email address') |h %></TH>
+    <TD>
+      <% $invoicing_list[0] %>
     </TD>
   </TR>
-%   }
+%   } elsif ( scalar(@invoicing_list) > 1 ) {
+%   # business customer with a contact list
+%   # show nothing here
+%
+%   } else { # there is no invoice email for them
+  <TR>
+    <TH ALIGN="right"><% mt('Email address') |h %></TH>
+%     if ( !$cust_main->postal_invoice or
+%          $conf->exists('cust_main-require_invoicing_list_email',
+%                        $cust_main->agentnum)
+%     ) {
+%       # we need a contact email for this customer (either because that's
+%       # policy, or because otherwise they won't receive invoices) but we
+%       # don't have one.
+    <TD CLASS="error"><% emt('none') %></TD>
+%     } else {
+    <TD><% emt('no') %></TD>
+%     }
+%   } # end of invoicing email
 %   if ( $cust_main->company ) {
   <TR>
     <TH ALIGN="right"><% mt('Company') |h %></TH>
@@ -195,8 +216,6 @@ my $stateid_state_label = FS::Msgcat::_gettext('stateid_state') =~ /^(stateid_st
 
 my $cust_main = shift;
 my $conf = new FS::Conf;
-my @invoicing_list = $cust_main->invoicing_list;
-my $no = emt('no');
+my @invoicing_list = $cust_main->invoicing_list_emailonly;
 
 </%init>
-