-% my %which = (
-% '' => 'Billing',
-% 'ship_' => 'Service',
-% );
-% foreach my $which ( '', 'ship_' ) {
-% my $pre = $cust_main->get("${which}last") ? $which : '';
-
-<% $which{$which} %> address
-<% ntable("#cccccc") %><TR><TD><% ntable("#cccccc",2) %>
-<TR>
- <TD ALIGN="right">Contact name</TD>
- <TD COLSPAN=5 BGCOLOR="#ffffff">
- <% $cust_main->get("${pre}last"). ', '. $cust_main->get("${pre}first") %>
- </TD>
-% if ( $which eq '' && $conf->exists('show_ss') ) {
- <TD ALIGN="right">SS#</TD>
- <TD BGCOLOR="#ffffff"><% $cust_main->masked('ss') || ' ' %></TD>
-% }
-</TR>
-<TR>
- <TD ALIGN="right">Company</TD>
- <TD COLSPAN=7 BGCOLOR="#ffffff"><% $cust_main->get("${pre}company") %></TD>
-</TR>
+% my %addr_label = ('bill' => 'Billing address', 'ship' => 'Service address');
+
+%# Locations (possibly break this out)
+% my @which = ('bill', 'ship');
+% while (@which) {
+% my $this = shift @which;
+% my $method = $this.'_location';
+% my $location = $cust_main->$method;
+<FONT CLASS="fsinnerbox-title"><% mt( $addr_label{$this} ) |h %>
+% if ( $this eq 'ship' and
+% $cust_main->bill_locationnum == $cust_main->ship_locationnum )
+% {
+ (<% emt('same as billing') %>)
+% }
+</FONT>
+% if (
+% ($this eq 'ship')
+% && $cust_main->invoice_ship_address
+% && !$conf->exists('invoice-ship_address') #it's always on, so hide per-cust config
+% ) {
+<SPAN STYLE="padding-left: .25em;">(<% emt('included on invoices') %>)</SPAN>
+% }
+<TABLE CLASS="fsinnerbox">
+
+% if ( $this eq 'bill' ) {
+% #billing contact fields
+ <TR>
+ <TH ALIGN="right"><% mt('Contact name') |h %></TH>
+ <TD COLSPAN=5><% $cust_main->contact |h %></TD>
+% if ( $conf->exists('show_ss') ) {
+ <TH ALIGN="right"><% mt('SS#') |h %></TH>
+ <TD>
+ <span id="ss_span" style="white-space:nowrap;">
+ <% $cust_main->masked('ss') || ' ' %>
+% if (
+% $cust_main->ss
+% && $FS::CurrentUser::CurrentUser->access_right('Unmask customer SSN')
+% ) {
+ <& /elements/link-replace_element_text.html, {
+ target_id => 'ss_span',
+ replace_text => $cust_main->ss,
+ element_type => 'span'
+ } &>
+% }
+ </span>
+ </TD>
+% }
+ </TR>
+% if ( $conf->exists('cust_main-enable_spouse') and
+% ($cust_main->spouse_last or $cust_main->spouse_first) ) {
+ <TR>
+ <TH ALIGN="right"><% mt('Spouse') |h %></TH>
+ <TD COLSPAN=5>
+ <% join(', ', grep $_,
+ $cust_main->spouse_last, $cust_main->spouse_first) %>
+ </TD>
+ </TR>
+% }
+%
+% # invoicing email
+% if ( scalar(@invoicing_list) == 1 ) { # typical individual user; show here
+ <TR>
+ <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>
+ <TD COLSPAN=7><% $cust_main->company |h %></TD>
+ </TR>
+% }
+% } elsif ( $this eq 'ship' ) {
+% if ( $cust_main->ship_company ) { # mostly obsolete these days...
+ <TR>
+ <TH ALIGN="right"><% mt('Company') |h %></TH>
+ <TD COLSPAN=7><% $cust_main->ship_company |h %></TD>
+ </TR>
+% }
+% }
+
+
+% if ( $location ) { # now the actual address
+
+% if ( $location->locationname ) {
+ <TR>
+ <TH ALIGN="right"><% mt('Location ID') |h %></TH>
+ <TD COLSPAN=7><% $location->locationname |h %></TD>
+ </TR>
+% }
+