<BR><FONT CLASS="fsinnerbox-title"><% mt('Billing information') |h %></FONT>
- <% &ntable("#cccccc") %>
+ <TABLE CLASS="fsinnerbox">
% my $curuser = $FS::CurrentUser::CurrentUser;
+
+% ###
+% # complimentry flag
+% ###
+
+% if ( $curuser->access_right('Complimentary customer') ) {
+
+ <& /elements/tr-checkbox.html,
+ field => 'complimentary',
+ label => emt('Complimentary customer'),
+ value => 'Y',
+ curr_value => $cust_main->complimentary,
+ box_first => 1,
+ &>
+
+% } else {
+
+ <INPUT TYPE="hidden" NAME="complimentary" VALUE="<% $cust_main->complimentary eq 'Y' ? 'Y' : '' %>">
+
+% }
+
+% ###
+% # tax exemptions
+% ###
+
% my @exempt_groups = grep /\S/, $conf->config('tax-cust_exempt-groups');
% if ( $conf->exists('cust_class-tax_exempt')
% || $conf->exists('tax-cust_exempt-groups-require_individual_nums')
% } else {
- <TR>
- <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>
+ <& /elements/tr-checkbox.html,
+ field => 'tax',
+ label => emt('Tax Exempt' . (scalar(@exempt_groups) ? '(all taxes)' : '') ),
+ value => 'Y',
+ curr_value => $cust_main->tax,
+ box_first => 1,
+ &>
% }
% #escape $exempt_group for NAME etc.
% my $checked = ($cust_main_exemption || $cgi->param("tax_$exempt_group"));
<TR>
- <TD> <INPUT TYPE="checkbox" NAME="tax_<% $exempt_group %>" ID="tax_<% $exempt_group %>" VALUE="Y" <% $checked ? 'CHECKED' : '' %> onChange="tax_changed(this)"> Tax Exempt (<% $exempt_group %> taxes)</TD>
+ <TD STYLE="white-space:nowrap"> <INPUT TYPE="checkbox" NAME="tax_<% $exempt_group %>" ID="tax_<% $exempt_group %>" VALUE="Y" <% $checked ? 'CHECKED' : '' %> onChange="tax_changed(this)"> Tax Exempt (<% $exempt_group %> taxes)</TD>
<TD> - Exemption number <INPUT TYPE="text" NAME="tax_<% $exempt_group %>_num" ID="tax_<% $exempt_group %>_num" VALUE="<% $cgi->param("tax_$exempt_group".'_num') || ( $cust_main_exemption ? $cust_main_exemption->exempt_number : '' ) |h %>" <% $checked ? '' : 'DISABLED' %>></TD>
</TR>
-% }
+% } #"
% }
-% unless ( $conf->exists('emailinvoiceonly') ) {
-
- <TR>
- <TD WIDTH="608" COLSPAN="2"><INPUT TYPE="checkbox" NAME="invoicing_list_POST" VALUE="POST" <%
+% ###
+% # postal invoices
+% ###
- ( grep { $_ eq 'POST' } @invoicing_list )
-
- ? 'CHECKED'
- : ''
-
- %>> <% mt('Postal mail invoices') |h %>
+% unless ( $conf->exists('emailinvoiceonly') ) {
- </TD>
- </TR>
+ <& /elements/tr-checkbox.html,
+ field => 'postal_invoice',
+ label => emt('Postal mail invoices'),
+ value => 'Y',
+ curr_value => $cust_main->postal_invoice,
+ box_first => 1,
+ &>
% }
- <TR>
- <TD WIDTH="608" COLSPAN="2"><INPUT TYPE="checkbox" NAME="invoice_email" VALUE="Y" <%
-
- ( $cust_main->invoice_noemail eq 'Y' )
- ? ''
- : 'CHECKED'
+% ###
+% # email invoices
+% ###
- %>> <% mt('Email invoices') |h %>
+ <& /elements/tr-checkbox.html,
+ field => 'invoice_noemail',
+ label => emt('Do not send email invoices'),
+ value => 'Y',
+ curr_value => $cust_main->invoice_noemail,
+ box_first => 1,
+ &>
- </TD>
- </TR>
+ <& /elements/tr-checkbox.html,
+ field => 'message_noemail',
+ label => emt('Do not send other email notices'),
+ value => 'Y',
+ curr_value => $cust_main->message_noemail,
+ box_first => 1,
+ &>
-% 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)
- </TD>
- <TD WIDTH="408"><INPUT TYPE="text" NAME="invoicing_list" VALUE="<% join(', ', grep { $_ !~ /^(POST|FAX)$/ } @invoicing_list ) %>">
- <INPUT TYPE="checkbox" NAME="message_noemail" VALUE="Y" <%
- ( $cust_main->message_noemail eq 'Y' )
- ? 'CHECKED'
- : ''
- %>> <% emt('Do not send notices') %>
- </TD>
- </TR>
-% }
+% ###
+% # prorate_day
+% ###
% if ( $conf->exists('cust_main-select-prorate_day') ) {
<TR>
- <TD ALIGN="right" WIDTH="200"><% mt('Prorate day (1-28)') |h %> </TD>
+ <TH ALIGN="right" WIDTH="200"><% mt('Prorate day') |h %> </TD>
<TD>
- <INPUT TYPE="text" NAME="prorate_day" VALUE="<% $cust_main->prorate_day %>" SIZE=3 MAXLENGTH=2>
+ <SELECT NAME="prorate_day">
+ <% prorate_day_options($cust_main->prorate_day) %>
+ </SELECT>
</TD>
</TR>
+
+% sub prorate_day_options {
+% my $curr_value = shift;
+% my $ret = '';
+% for my $prorate_day ( 1 .. 28 ) {
+% my $sel = '';
+% $sel = "SELECTED='SELECTED'" if $curr_value == $prorate_day;
+% $ret .= "<OPTION VALUE='$prorate_day' $sel>$prorate_day</OPTION>";
+% }
+% $ret;
+% }
+
% } else {
<INPUT TYPE="hidden" NAME="prorate_day" VALUE="<% $cust_main->prorate_day %>">
% }
+% ###
+% # billday
+% ###
+
<TR>
- <TD ALIGN="right" WIDTH="200"><% mt('Charge card/e-check on this day of the month') |h %> </TD>
+ <TH ALIGN="right" WIDTH="200"><% mt('Charge card/e-check on this day of the month') |h %> </TD>
<TD>
<SELECT NAME="billday">
<% billday_options($cust_main->billday) %>
% $ret;
% }
+% ###
+% # invoice_terms
+% ###
+
<TR>
- <TD ALIGN="right" WIDTH="200"><% mt('Invoice terms') |h %> </TD>
+ <TH ALIGN="right" WIDTH="200"><% mt('Invoice terms') |h %> </TD>
<TD WIDTH="408">
<& /elements/select-terms.html,
'curr_value' => $cust_main->invoice_terms,
</TD>
</TR>
+% ###
+% # credit_limit
+% ###
+
<TR>
- <TD ALIGN="right" WIDTH="200"><% mt('Credit limit') |h %> </TD>
+ <TH ALIGN="right" WIDTH="200"><% mt('Credit limit') |h %> </TD>
<TD WIDTH="408">
<SCRIPT TYPE="text/javascript">
function toggle(obj) {
VALUE = 1
onClick="toggle(this)"
<% length($cust_main->credit_limit) ? '' : ' CHECKED'%>
- > <% $default_credit_limit
+ > <FONT SIZE="-1" COLOR="#333333">
+ <% $default_credit_limit
? "Default ($money_char". sprintf("%.2f", $default_credit_limit).
")"
: mt('Unlimited')
|h
- %>
+ %>
+ </FONT>
</TD>
</TR>
+% ###
+% # CDR flags / options
+% ###
+
% if ( $conf->exists('voip-cust_cdr_spools') ) {
<TR>
<TD COLSPAN="2"><INPUT TYPE="checkbox" NAME="spool_cdr" VALUE="Y" <% $cust_main->spool_cdr eq "Y" ? 'CHECKED' : '' %>> <% mt('Spool CDRs') |h %></TD>
<INPUT TYPE="hidden" NAME="squelch_cdr" VALUE="<% $cust_main->squelch_cdr %>">
% }
-% if ( $conf->exists('voip-cust_email_csv_cdr') ) {
+% if ( $conf->config('voip-cdr_email_attach') ) {
<TR>
<TD COLSPAN="2"><INPUT TYPE="checkbox" NAME="email_csv_cdr" VALUE="Y" <% $cust_main->email_csv_cdr eq "Y" ? 'CHECKED' : '' %>> <% mt('Attach CDRs as CSV to emailed invoices') |h %></TD>
</TR>
% if ( $show_term || $cust_main->cdr_termination_percentage ) {
<TR>
- <TD ALIGN="right"><% mt('CDR termination settlement') |h %></TD>
+ <TH ALIGN="right"><% mt('CDR termination settlement') |h %></TD>
<TD><INPUT TYPE = "text"
NAME = "cdr_termination_percentage"
SIZE = 6
<INPUT TYPE="hidden" NAME="cdr_termination_percentage" VALUE="<% $cust_main->cdr_termination_percentage %>">
% }
+% ###
+% # Invoicing currency
+% ###
+
%my @currencies = $conf->config('currencies');
%if ( scalar(@currencies) ) {
% unshift @currencies, ''; #default
&>
% }
+% ###
+% # Invoicing locale
+% ###
%my @available_locales = $conf->config('available-locales');
%if ( scalar(@available_locales) ) {
my( $cust_main, %options ) = @_;
my @invoicing_list = @{ $options{'invoicing_list'} };
-my $payinfo = $options{'payinfo'};
my $conf = new FS::Conf;
my $money_char = $conf->config('money_char') || '$';
-my @payby = grep /\w/, $conf->config('payby');
-#@payby = (qw( CARD DCRD CHEK DCHK BILL CASH WEST COMP ))
-@payby = (qw( CARD DCRD CHEK DCHK BILL CASH COMP ))
- unless @payby;
-
my $show_term = '';
if ( $cust_main->custnum ) {
#false laziness w/view/cust_main/billing.html