-<%
+<TABLE CLASS="fsinnerbox">
-my( $cust_main, $pre, $onchange, $disabled ) = @_;
-my $conf = new FS::Conf;
+<TR>
+ <TH ALIGN="right"><%$r%><% mt('Contact name (last, first)') |h %></TH>
+ <TD COLSPAN=7>
+ <INPUT TYPE="text" NAME="<%$pre%>last" VALUE="<% $cust_main->get($pre.'last') |h %>" onChange="<% $onchange %>" <%$disabled%> <%$style%>> ,
+ <INPUT TYPE="text" NAME="<%$pre%>first" VALUE="<% $cust_main->get($pre.'first') |h %>" onChange="<% $onchange %>" <%$disabled%> <%$style%>>
+ </TD>
+% if ( $conf->exists('show_ss') && !$pre ) {
-#false laziness with ship state
-my $countrydefault = $conf->config('countrydefault') || 'US';
-$cust_main->set($pre.'country', $countrydefault )
- unless $cust_main->get($pre.'country');
+ <TD ALIGN="right"><% mt('SS#') |h %></TD>
+ <TD><INPUT TYPE="text" NAME="ss" VALUE="<% $opt{ss} %>" SIZE=11></TD>
+% } elsif ( !$pre ) {
-my $statedefault = $conf->config('statedefault')
- || ($countrydefault eq 'US' ? 'CA' : '');
-$cust_main->set($pre.'state', $statedefault )
- unless $cust_main->get($pre.'state')
- || $cust_main->get($pre.'country') ne $countrydefault;
+ <TD><INPUT TYPE="hidden" NAME="ss" VALUE="<% $opt{ss} %>"></TD>
+% }
+</TR>
-my($county_html, $state_html, $country_html) =
- FS::cust_main_county::regionselector( $cust_main->get($pre.'county'),
- $cust_main->get($pre.'state'),
- $cust_main->get($pre.'country'),
- $pre,
- $onchange,
- $disabled,
- );
+% if ( $conf->exists('cust-email-high-visibility') && !$pre ) {
+ <TR>
+ <TD ALIGN="right" WIDTH="200">
+ <% $conf->exists('cust_main-require_invoicing_list_email', $agentnum)
+ ? $r : '' %>Email address(es)
+ </TD>
+ <TD bgcolor="#FFFF00">
+ <INPUT TYPE="text" NAME="invoicing_list" VALUE="<% join(', ', grep { $_ !~ /^(POST|FAX)$/ } @invoicing_list ) %>">
+ </TD>
+ </TR>
+% }
-my $daytime_label = FS::Msgcat::_gettext('daytime') || 'Day Phone';
-my $night_label = FS::Msgcat::_gettext('night') || 'Night Phone';
+% unless ( $conf->exists('cust-edit-alt-field-order') ) { #standard order
-my $r = qq!<font color="#ff0000">*</font> !;
+ <& company &>
+ <& location &>
+ <& phones &>
+ <& fax &>
-%>
+% } else { #alternate field order
-<%= &ntable("#cccccc") %>
+ <& phones &>
+ <& location &>
+ <& fax &>
+ <& company &>
-<TR>
- <TH ALIGN="right"><%=$r%>Contact name<BR>(last, first)</TH>
- <TD COLSPAN=3>
- <INPUT TYPE="text" NAME="<%=$pre%>last" VALUE="<%= $cust_main->get($pre.'last') %>" onChange="<%= $onchange %>" <%=$disabled%>> ,
- <INPUT TYPE="text" NAME="<%=$pre%>first" VALUE="<%= $cust_main->get($pre.'first') %>" onChange="<%= $onchange %>" <%=$disabled%>>
- </TD>
+% }
-<% if ( $conf->exists('show_ss') && !$pre ) { %>
- <TD ALIGN="right">SS#</TD>
- <TD><INPUT TYPE="text" NAME="ss" VALUE="<%= $cust_main->ss %>" SIZE=11></TD>
-<% } elsif ( !$pre ) { %>
- <TD><INPUT TYPE="hidden" NAME="ss" VALUE="<%= $cust_main->ss %>"></TD>
-<% } %>
-
-</TR>
+% if ( $conf->exists('show_stateid') && !$pre ) {
<TR>
- <TD ALIGN="right">Company</TD>
- <TD COLSPAN=5>
- <INPUT TYPE="text" NAME="<%=$pre%>company" VALUE="<%= $cust_main->get($pre.'company') %>" SIZE=70 onChange="<%= $onchange %>" <%=$disabled%>>
+ <TD ALIGN="right"><% $stateid_label %></TD>
+ <TD><INPUT TYPE="text" NAME="stateid" VALUE="<% $opt{stateid} %>" SIZE=12 onChange="<% $onchange %>" <%$disabled%> <%$style%>></TD>
+ <TD ALIGN="right"><% $stateid_state_label %></TD>
+ <TD><& /elements/select-state.html,
+ 'state' => $cust_main->stateid_state,
+ 'country' => $cust_main->country,
+ 'prefix' => 'stateid_',
+ 'onchange' => $onchange,
+ 'disabled' => $disabled,
+ 'style' => \@style,
+ &>
</TD>
</TR>
+% } elsif ( !$pre ) {
-<TR>
- <TH ALIGN="right"><%=$r%>Address</TH>
- <TD COLSPAN=5>
- <INPUT TYPE="text" NAME="<%=$pre%>address1" VALUE="<%= $cust_main->get($pre.'address1') %>" SIZE=70 onChange="<%= $onchange %>" <%=$disabled%>>
- </TD>
-</TR>
+ <TD><INPUT TYPE="hidden" NAME="stateid" VALUE="<% $opt{stateid} %>"></TD>
+ <TD><INPUT TYPE="hidden" NAME="stateid_state" VALUE="<% $cust_main->stateid_state %>"></TD>
+% }
-<TR>
- <TD ALIGN="right"> </TD>
- <TD COLSPAN=5>
- <INPUT TYPE="text" NAME="<%=$pre%>address2" VALUE="<%= $cust_main->get($pre.'address2') %>" SIZE=70 onChange="<%= $onchange %>" <%=$disabled%>>
- </TD>
-</TR>
+</TABLE>
+<%$r%><% mt('required fields') |h %><BR>
+
+<%def company>
+% my $display = ($cust_main->residential_commercial eq 'Commercial')
+% ? '' : 'none';
+ <TR ID="<%$pre%>company_row" STYLE="display:<%$display%>">
+ <TD ALIGN="right"><% mt('Company') |h %></TD>
+ <TD COLSPAN=7>
+ <INPUT TYPE="text" NAME="<%$pre%>company" ID="<%$pre%>company" VALUE="<% $cust_main->get($pre.'company') |h %>" SIZE=60 onChange="<% $onchange %>" <%$disabled%> <%$style%>>
+ </TD>
+ </TR>
+</%def>
+
+<%def location>
+ <& /elements/location.html,
+ 'prefix' => $pre,
+ 'object' => $cust_main,
+ 'onchange' => $onchange,
+ 'disabled' => $disabled,
+ 'style' => \@style,
+ 'same_checked' => $opt{'same_checked'},
+ 'geocode' => $opt{'geocode'},
+ 'censustract' => $opt{'censustract'},
+ &>
+</%def>
+
+<%def phones>
+ <& /elements/tr-cust_main-phones.html,
+ 'prefix' => $pre,
+ 'cust_main' => $cust_main,
+ 'onchange' => $onchange,
+ 'disabled' => $disabled,
+ 'style' => $style,
+ &>
+</%def>
+
+<%def fax>
+ <TR>
+ <TD ALIGN="right"><% mt('Fax') |h %></TD>
+ <TD COLSPAN=5>
+ <INPUT TYPE="text" NAME="<%$pre%>fax" VALUE="<% $cust_main->get($pre.'fax') %>" SIZE=12 onChange="<% $onchange %>" <%$disabled%> <%$style%>>
+ </TD>
+ </TR>
+</%def>
+
+<%once>
-<TR>
- <TH ALIGN="right"><%=$r%>City</TH>
- <TD>
- <INPUT TYPE="text" NAME="<%=$pre%>city" VALUE="<%= $cust_main->get($pre.'city') %>" onChange="<%= $onchange %>" <%=$disabled%>>
- </TD>
- <TH ALIGN="right"><%=$r%>State</TH>
- <TD><%= $county_html. $state_html %></TD>
- <TH><%=$r%>Zip</TH>
- <TD>
- <INPUT TYPE="text" NAME="<%=$pre%>zip" VALUE="<%= $cust_main->get($pre.'zip') %>" SIZE=10 onChange="<%= $onchange %>" <%=$disabled%>>
- </TD>
-</TR>
+my $r = qq!<font color="#ff0000">*</font> !;
-<TR>
- <TH ALIGN="right"><%=$r%>Country</TH>
- <TD><%= $country_html %></TD>
-</TR>
+</%once>
+<%shared>
-<TR>
- <TD ALIGN="right"><%= $daytime_label %></TD>
- <TD COLSPAN=5>
- <INPUT TYPE="text" NAME="<%=$pre%>daytime" VALUE="<%= $cust_main->get($pre.'daytime') %>" SIZE=18 onChange="<%= $onchange %>" <%=$disabled%>>
- </TD>
-</TR>
+my( %opt, $cust_main, $pre, $onchange, $disabled, @style, $style );
-<TR>
- <TD ALIGN="right"><%= $night_label %></TD>
- <TD COLSPAN=5>
- <INPUT TYPE="text" NAME="<%=$pre%>night" VALUE="<%= $cust_main->get($pre.'night') %>" SIZE=18 onChange="<%= $onchange %>" <%=$disabled%>>
- </TD>
-</TR>
+</%shared>
+<%init>
-<TR>
- <TD ALIGN="right">Fax</TD>
- <TD COLSPAN=5>
- <INPUT TYPE="text" NAME="<%=$pre%>fax" VALUE="<%= $cust_main->get($pre.'fax') %>" SIZE=12 onChange="<%= $onchange %>" <%=$disabled%>>
- </TD>
-</TR>
+%opt = @_;
+$cust_main = $opt{'cust_main'};
+$pre = $opt{'pre'};
+$onchange = $opt{'onchange'};
+$disabled = $opt{'disabled'};
+@style = ( $opt{'style'} ? @{ $opt{'style'} } : () );
-</TABLE>
-<%=$r%>required fields<BR>
+$style = scalar(@style) ? 'STYLE="'. join(';', @style). '"' : '';
+
+my $conf = new FS::Conf;
+
+foreach (qw(ss stateid)) {
+ $opt{$_} = $cust_main->masked($_) unless exists $opt{$_};
+}
+
+#false laziness with ship state
+my $countrydefault = $conf->config('countrydefault') || 'US';
+$cust_main->set($pre.'country', $countrydefault )
+ unless $cust_main->get($pre.'country');
+
+my $statedefault = $conf->config('statedefault')
+ || ($countrydefault eq 'US' ? 'CA' : '');
+$cust_main->set($pre.'state', $statedefault )
+ unless $cust_main->get($pre.'state')
+ || $cust_main->get($pre.'country') ne $countrydefault;
+
+$cust_main->set('stateid_state', $cust_main->state )
+ unless $pre || $cust_main->get('stateid_state');
+
+$opt{geocode} ||= $cust_main->get('geocode');
+
+$opt{censustract} ||= $cust_main->censustract;
+
+my $stateid_label = FS::Msgcat::_gettext('stateid') =~ /^(stateid)?$/
+ ? 'Driver’s License'
+ : FS::Msgcat::_gettext('stateid') || 'Driver’s License';
+my $stateid_state_label = FS::Msgcat::_gettext('stateid_state') =~ /^(stateid_state)?$/
+ ? 'Driver’s License State'
+ : FS::Msgcat::_gettext('stateid_state') || 'Driver’s License State';
+
+my @invoicing_list = $cust_main->invoicing_list;
+
+my $agentnum = $cust_main->agentnum if $cust_main->custnum;
+</%init>