echeck: add optional bank branch format, RT13360
[freeside.git] / httemplate / edit / cust_main / billing.html
index 3f3d801..5e97934 100644 (file)
       return true;
     }
 
+    function init_payauto_changed(){
+        var f = document.getElementById('CARD_payauto');
+        if(f != null) payauto_changed(f);
+        f = document.getElementById('CHEK_payauto');
+        if(f != null) payauto_changed(f);
+    }
+
+    function payauto_changed(payauto_field){
+        var span = (payauto_field.name == 'CARD_payauto') ? 'card_billday' : 'chek_billday';
+        var select = document.getElementById('select_'+span);
+        span = document.getElementById(span);
+        if (span == null || select == null) return;
+        if(payauto_field.checked) {
+            span.style.color = '#000000';
+            select.disabled = false;
+        }
+        else {
+            span.style.color = '#999999';
+            select.disabled = true;
+            select.selectedIndex = 0;
+        }
+    }
+
   </SCRIPT>
 
   <% include('/elements/init_overlib.html') %>
 %  my $payby = $cust_main->payby;
 %  my $paytype = $cust_main->paytype;
 %  my( $account, $aba ) = split('@', $payinfo);
+%  my $branch = '';
+%  ($branch,$aba) = split('\.',$aba) if $conf->exists('cust_main-require-bank-branch');
 %
 %  my $disabled = 'DISABLED style="background-color: #dddddd"';
 %  my $text_disabled = 'style="color: #999999"';
 %    $text_disabled = 'style="color: #000000";'
 %  }
 %
+%  my $disable_payauto = $conf->exists('disable_payauto_default');
+%  my $CARD_payauto_checked =   $payby eq 'DCRD' ? ''
+%                             : $payby eq 'CARD' ? 'CHECKED'
+%                             : $disable_payauto ? '' : 'CHECKED';
+%  my $CHEK_payauto_checked =   $payby eq 'DCHK' ? ''
+%                             : $payby eq 'CHEK' ? 'CHECKED'
+%                             : $disable_payauto ? '' : 'CHECKED';
+%
+%  sub billday_options {
+%   my $curr_value = shift;
+%   my $ret = '';
+%   for my $billday ( 1 .. 28 ) {
+%       my $sel = '';
+%       $sel = "SELECTED='SELECTED'" if $curr_value == $billday;
+%       $ret .= "<OPTION VALUE='$billday' $sel>$billday</OPTION>";
+%   }
+%   $ret;
+%  }
+%
+%  my $card_billday_style = $payby eq 'CARD' ? '' : 'style="color: #999999"';
+%  my $chek_billday_style = $payby eq 'CHEK' ? '' : 'style="color: #999999"';
+%  my $card_billday_select_disabled = $payby eq 'CARD' ? '' : 'DISABLED';
+%  my $chek_billday_select_disabled = $payby eq 'CHEK' ? '' : 'DISABLED';
+%
 %  my %payby = (
 %
 %    'CARD' =>
 %        qq!<TR><TD ALIGN="right" WIDTH="200">${r}Exact name on card </TD>!.
 %          qq!<TD WIDTH="408"><INPUT TYPE="text" NAME="CARD_payname" VALUE="!. ( $payby =~ /^(CARD|DCRD)$/ ? $cust_main->payname : '' ). qq!"></TD></TR>!.
 %
-%        qq!<TR><TD COLSPAN=2 WIDTH="608"><INPUT TYPE="checkbox" NAME="CARD_payauto" !. ( $payby eq 'DCRD' ? '' : 'CHECKED' ). '> Charge future payments to this card automatically</TD></TR>'.
+%        qq!<TR><TD COLSPAN=2 WIDTH="608">!.
+%           qq!<INPUT TYPE="checkbox" onchange="payauto_changed(this);" ID="CARD_payauto" NAME="CARD_payauto" $CARD_payauto_checked> !.
+%           qq!Charge future payments to this card automatically</TD></TR>!.
+%
+%      ( $conf->exists('cust_main-select-billday') ?
+%           qq!<TR><TD ALIGN="RIGHT" id="card_billday" $card_billday_style>
+%                       Charge on this day of each month</TD><TD> &nbsp; 
+%                       <SELECT id="select_card_billday" $card_billday_select_disabled NAME="billday">!
+%                . billday_options($cust_main->billday) . qq!</SELECT> </TD></TR>!
+%        : ''
+%      ).
 %
 %      '</TABLE>',
 %
 %        qq!<INPUT TYPE="hidden" NAME="CHEK_exp_month" VALUE="12">!.
 %        qq!<INPUT TYPE="hidden" NAME="CHEK_exp_year" VALUE="2037">!.
 %
+%        ( $conf->exists('cust_main-require-bank-branch') ? 
+%               qq!<TR><TD ALIGN="right">$r Branch number</TD><TD COLSPAN="3">
+%                   <INPUT TYPE="text" name="CHEK_payinfo3" VALUE=$branch></TD></TR>! : '' ).
+%
 %        qq!<TR><TD ALIGN="right" WIDTH="200">${r}Bank name </TD>!.
 %          qq!<TD COLSPAN="3" WIDTH="408"><INPUT TYPE="text" NAME="CHEK_payname" VALUE="!. ( $payby =~ /^(CHEK|DCHK)$/ ? $cust_main->payname : '' ). qq!"></TD></TR>!.
 %      ( $conf->exists('show_bankstate') ?
 %       ).
 %
 %
-%        qq!<TR><TD COLSPAN=4 WIDTH="608"><INPUT TYPE="checkbox" NAME="CHEK_payauto" !. ( $payby eq 'DCHK' ? '' : 'CHECKED' ). '> Charge future payments to this electronic check automatically</TD></TR>'.
+%        qq!<TR><TD COLSPAN=4 WIDTH="608">!.
+%           qq!<INPUT TYPE="checkbox" onchange="payauto_changed(this);" ID="CHEK_payauto" NAME="CHEK_payauto" $CHEK_payauto_checked> !.
+%              qq!Charge future payments to this electronic check automatically</TD></TR>!.
 %
-%        '<TR><TD>&nbsp;</TD></TR>'.
-%        '<TR><TD>&nbsp;</TD></TR>'.
-%        '<TR><TD>&nbsp;</TD></TR>'.
+%      ( $conf->exists('cust_main-select-billday') ?
+%           qq!<TR><TD ALIGN="RIGHT" id="chek_billday" $chek_billday_style>
+%                    Charge on this day of each month </TD><TD> &nbsp;
+%                   <SELECT id="select_chek_billday" $chek_billday_select_disabled NAME="billday">!
+%                . billday_options($cust_main->billday) . qq!</SELECT> </TD></TR>!
+%        : ''
+%      ).
 %
 %      '</TABLE>',
 %
 %        qq!<INPUT TYPE="hidden" NAME="BILL_exp_year" VALUE="2037">!.
 %
 %        qq!<TR><TD ALIGN="right" WIDTH="200">Attention </TD>!.
-%          qq!<TD WIDTH="408"><INPUT TYPE="text" NAME="BILL_payname" VALUE="!. ( $payby eq 'BILL' ? $cust_main->payname : '' ). qq!"></TD></TR>!.
+%          qq!<TD WIDTH="408"><INPUT TYPE="text" NAME="BILL_payname" VALUE="!. encode_entities( $payby eq 'BILL' ? $cust_main->payname : '' ). qq!"></TD></TR>!.
 %
 %        '<TR><TD>&nbsp;</TD></TR>'.
 %        '<TR><TD>&nbsp;</TD></TR>'.
                   'labels'     => \%allopt,
                   'html_between' => '</TD></TR></TABLE>',
                   'layer_callback' => sub { my $layer = shift; $payby{$layer}; },
+                  'onchange'    => 'init_payauto_changed();',
               )
     %>
 
 
 % }
 
+% unless ( $conf->exists('cust-email-high-visibility')) {
     <TR>
       <TD ALIGN="right" WIDTH="200">
         <% $conf->exists('cust_main-require_invoicing_list_email') ? $r : '' %>Email address(es)
       </TD>
       <TD WIDTH="408"><INPUT TYPE="text" NAME="invoicing_list" VALUE="<% join(', ', grep { $_ !~ /^(POST|FAX)$/ } @invoicing_list ) %>"></TD>
     </TR>
+% }
 
     <TR>
       <TD ALIGN="right" WIDTH="200">Invoice terms </TD>
       <TD WIDTH="408">
-        <SELECT NAME="invoice_terms">
-          <OPTION VALUE="">Default (<% $conf->config('invoice_default_terms') || 'Payable upon receipt' %>)
-%         foreach my $term ( 'Payable upon receipt',
-%                            ( map "Net $_", 0, 10, 15, 20, 30, 45, 60 ),
-%                          ) {
-            <OPTION VALUE="<% $term %>" <% $cust_main->invoice_terms eq $term ? ' SELECTED' : '' %>><% $term %>
-%         }
-        </SELECT>
+        <% include('/elements/select-terms.html',
+                     'curr_value' => $cust_main->invoice_terms,
+                  )
+        %>
+      </TD>
+    </TR>
+    <TR>
+      <TD ALIGN="right" WIDTH="200">Credit limit </TD>
+      <TD WIDTH="408">
+        <SCRIPT TYPE="text/javascript">
+function toggle(obj) {
+  obj.form.credit_limit.disabled = obj.checked;
+}
+        </SCRIPT>
+        <INPUT TYPE="text" NAME="credit_limit" VALUE=<% sprintf('"%.2f"', $cust_main->credit_limit) %><% length($cust_main->credit_limit) ? '' : ' DISABLED' %>>
+        <INPUT TYPE="checkbox" NAME="no_credit_limit" VALUE=1 onclick="toggle(this)"<% length($cust_main->credit_limit) ? '' : ' CHECKED'%>> Unlimited
       </TD>
     </TR>
 
 
 % if ( $conf->exists('voip-cust_cdr_squelch') ) { 
       <TR>
-       <TD COLSPAN="2"><INPUT TYPE="checkbox" NAME="squelch_cdr" VALUE="Y" <% $cust_main->squelch_cdr eq "Y" ? 'CHECKED' : '' %>> Omit CDRs from invoices</TD>
+       <TD COLSPAN="2"><INPUT TYPE="checkbox" NAME="squelch_cdr" VALUE="Y" <% $cust_main->squelch_cdr eq "Y" ? 'CHECKED' : '' %>> Omit CDRs from printed invoices</TD>
       </TR>
 % } else { 
       <INPUT TYPE="hidden" NAME="squelch_cdr" VALUE="<% $cust_main->squelch_cdr %>">
 % }
 
+% if ( $conf->exists('voip-cust_email_csv_cdr') ) { 
+      <TR>
+       <TD COLSPAN="2"><INPUT TYPE="checkbox" NAME="email_csv_cdr" VALUE="Y" <% $cust_main->email_csv_cdr eq "Y" ? 'CHECKED' : '' %>> Attach CDRs as CSV to emailed invoices</TD>
+      </TR>
+% } else { 
+      <INPUT TYPE="hidden" NAME="email_csv_cdr" VALUE="<% $cust_main->email_csv_cdr %>">
+% }
 
 % if ( $show_term || $cust_main->cdr_termination_percentage ) {
       <TR>
   <% $r %> required fields
 % } 
 
+<script type="text/javascript">
+    init_payauto_changed();
+</script>
+
 <%once>
 
 my $paystate_label = FS::Msgcat::_gettext('paystate');