taqua accountcode billing, part 1 of 2, RT12181
[freeside.git] / httemplate / edit / cust_main / billing.html
index 353f2b9..884d770 100644 (file)
       return true;
     }
 
+    function payauto_changed(payauto_field){
+        var f = (payauto_field.name == 'CARD_payauto') ? 'card_billday' : 'chek_billday';
+        f = document.getElementById(f);
+        if ( f == null) return;
+        if(payauto_field.checked) f.style.display = 'inline';
+        else f.style.display = 'none';
+    }
+
   </SCRIPT>
 
   <% include('/elements/init_overlib.html') %>
 %    $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 = '<OPTION></OPTION>';
+%   for my $billday ( 1 .. 28 ) {
+%       my $sel = '';
+%       $sel = "SELECTED='SELECTED'" if $curr_value == $billday;
+%       $ret .= "<OPTION VALUE='$billday' $sel>$billday</OPTION>";
+%   }
+%   $ret;
+%  }
+%  my $billday_card_display = $payby eq 'CARD' ? 'inline' : 'none';
+%  my $billday_chek_display = $payby eq 'CHEK' ? 'inline' : 'none';
+%
 %  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"><INPUT TYPE="checkbox" onchange="payauto_changed(this);" NAME="CARD_payauto" $CARD_payauto_checked> Charge future payments to this card automatically</TD></TR>!.
+%
+%      ( $conf->exists('cust_main-select-billday') ?
+%        qq!<TR><TD COLSPAN=2 WIDTH="608" id="card_billday" style="display: $billday_card_display">
+%                    Charge on the <SELECT NAME="billday">!
+%                . billday_options($cust_main->billday) . qq!</SELECT> day of each month</TD></TR>!
+%        : ''
+%      ).
 %
 %      '</TABLE>',
 %
 %       ).
 %
 %
-%        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"><INPUT TYPE="checkbox" onchange="payauto_changed(this);" NAME="CHEK_payauto" $CHEK_payauto_checked> Charge future payments to this electronic check automatically</TD></TR>!.
+%
+%      ( $conf->exists('cust_main-select-billday') ?
+%        qq!<TR><TD COLSPAN=2 WIDTH="608" id="chek_billday" style="display: $billday_chek_display">
+%                    Charge on the <SELECT NAME="billday">!
+%                . billday_options($cust_main->billday) . qq!</SELECT> day of each month</TD></TR>!
+%        : ''
+%      ).
 %
 %        '<TR><TD>&nbsp;</TD></TR>'.
 %        '<TR><TD>&nbsp;</TD></TR>'.
 %        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>'.
 
     <TR><TD>&nbsp;</TD></TR>
 
+%   my @exempt_groups = grep /\S/, $conf->config('tax-cust_exempt-groups');
+
     <TR>
-      <TD WIDTH="608" COLSPAN="2"><INPUT TYPE="checkbox" NAME="tax" VALUE="Y" <% $cust_main->tax eq "Y" ? 'CHECKED' : '' %>> Tax Exempt</TD>
+      <TD WIDTH="608" COLSPAN="2"><INPUT TYPE="checkbox" NAME="tax" VALUE="Y" <% $cust_main->tax eq "Y" ? 'CHECKED' : '' %>> Tax Exempt<% @exempt_groups ? ' (all taxes)' : '' %></TD>
     </TR>
 
+%   foreach my $exempt_group ( @exempt_groups ) {
+%     #escape $exempt_group for NAME
+      <TR>
+        <TD WIDTH="608" COLSPAN="2">&nbsp;&nbsp;<INPUT TYPE="checkbox" NAME="tax_<% $exempt_group %>" VALUE="Y" <% $cust_main->tax_exemption($exempt_group) ? 'CHECKED' : '' %>> Tax Exempt (<% $exempt_group %> taxes)<TD>
+      </TR>
+%   }
+
 % unless ( $conf->exists('emailinvoiceonly') ) {
 
     <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>
+
+% if ( $conf->exists('voip-cust_accountcode_cdr') ) { 
+       <TR>
+        <TD COLSPAN="2">
+            <INPUT TYPE="checkbox" 
+                   NAME="accountcode_cdr" 
+                   VALUE="Y" 
+                   <% $cust_main->accountcode_cdr eq "Y" ? 'CHECKED' : '' %>
+            > Breakdown CDRs by accountcode</TD>
+       </TR>
+% } else { 
+       <INPUT TYPE="hidden" NAME="accountcode_cdr" VALUE="<% $cust_main->accountcode_cdr %>">
+% }
+
+    <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>
 
        <TD COLSPAN="2"><INPUT TYPE="checkbox" NAME="spool_cdr" VALUE="Y" <% $cust_main->spool_cdr eq "Y" ? 'CHECKED' : '' %>> Spool CDRs</TD>
       </TR>
 % } else { 
-
       <INPUT TYPE="hidden" NAME="spool_cdr" VALUE="<% $cust_main->spool_cdr %>">
-% } 
+% }
 
 % 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>
       </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>
+       <TD ALIGN="right">CDR termination settlement</TD>
+       <TD><INPUT TYPE  = "text"
+                  NAME  = "cdr_termination_percentage"
+                  SIZE  = 6
+                  VALUE = "<% $cust_main->cdr_termination_percentage %>"
+                  STYLE = "text-align:right;"
+        ><B>%</B></TD>
+      </TR>
+% } else {
+      <INPUT TYPE="hidden" NAME="cdr_termination_percentage" VALUE="<% $cust_main->cdr_termination_percentage %>">
+% }
 
   </TABLE>
 
@@ -455,4 +549,13 @@ my @payby = grep /\w/, $conf->config('payby');
 @payby = (qw( CARD DCRD CHEK DCHK LECB BILL CASH COMP ))
   unless @payby;
 
+my $show_term = '';
+if ( $cust_main->custnum ) {
+  #false laziness w/view/cust_main/billing.html
+  my $term_sql = "SELECT COUNT(*) FROM cust_pkg LEFT JOIN part_pkg USING ( pkgpart ) WHERE custnum = ? AND plan = 'cdr_termination' LIMIT 1";
+  my $term_sth = dbh->prepare($term_sql)  or die dbh->errstr;
+  $term_sth->execute($cust_main->custnum) or die $term_sth->errstr;
+  $show_term = $term_sth->fetchrow_arrayref->[0];
+}
+
 </%init>