default to a session cookie instead of setting an explicit timeout, weird timezone...
[freeside.git] / httemplate / view / cust_main / locations.html
index c95850b..0a2e5ec 100755 (executable)
@@ -1,40 +1,66 @@
 <STYLE>
-span.loclabel {
+div.loclabel {
+  display: inline-block;
   padding-left: 4px; 
   padding-right: 4px; 
   background-color: #cccccc;
-  border: 1px solid black
+  border: 1px solid black;
+  border-bottom: 0px;
+  border-radius: 4px 4px 0 0; 
+}
+div.disabled {
+  font-style: italic;
+  color: #808080;
+}
+table.location {
+  width: 100%;
+  padding: 1px;
+  border-spacing: 0px;
+}
+.location-head th {
+  padding-bottom: 0px; 
+  padding-left: 0px; 
+  border-bottom: 1px solid black;
+  vertical-align: bottom;
+  text-align: left;
+  width: 100%;
 }
 </STYLE>
 % foreach my $locationnum (@sorted) {
 %   my $packages = $packages_in{$locationnum};
 %   my $loc = $locations{$locationnum};
 %   next if $loc->disabled and scalar(@$packages) == 0;
-<& /elements/table-grid.html &>
-<TR><TH COLSPAN=3 ALIGN="left" VALIGN="bottom" 
-STYLE="padding-bottom: 0px; 
-  padding-left: 0px; 
-  border-bottom-style: solid;
-  border-bottom-color: black;
-  border-bottom-width: 1px;">
-<SPAN CLASS="loclabel">
-%   if (! $locationnum) {
-Default service location: 
-%   }
-%   elsif ( $loc->disabled ) {
-<FONT COLOR="#808080"><I>
+<TABLE CLASS="grid location">
+<TR CLASS="location-head">
+<TH COLSPAN=5>
+<DIV CLASS="<% $loc->disabled ? 'loclabel disabled' : 'loclabel' %>">
+<% $loc->location_label %>
+%   if ( $loc->country eq 'US' ) { # only U.S. census tracts for now
+%     if ( $loc->censustract ) {
+          <BR>
+          <FONT SIZE=-1>
+          <% $loc->censustract %> (<% $loc->censusyear %> census)
+          </FONT>
+%     } elsif ( $conf->exists('cust_main-require_censustract') ) {
+          <BR>
+          <FONT SIZE=-1 COLOR="#ee3300">
+          <% emt('Census tract unknown') %>
+          </FONT>
+%     }
 %   }
-<% $loc->location_label %></SPAN>
-<SPAN STYLE="float:right;">
-% if ( $locationnum and !$loc->disabled ) {
+</DIV>
+<DIV STYLE="display: inline; float:right;">
+% if ( $locationnum && !$loc->disabled && ! $opt{no_links} ) {
 <% edit_location_link($locationnum) %>
 % }
-% if ( $locationnum and !$loc->disabled and !$active{$locationnum} ) {
+% if ( $locationnum && !$loc->disabled && !$active{$locationnum} && ! $opt{no_links} ) {
 &nbsp;<% disable_location_link($locationnum) %>
 % }
-</SPAN></TH></TR>
+</DIV></TH></TR>
 %   if (@$packages) {
-<& packages/section.html, 'packages' => $packages &>
+%     my %sopt = %opt;
+%     $sopt{'packages'} = $packages;
+      <& packages/section.html, %sopt &>
 %   }
 </TABLE><BR>
 % } #foreach $locationnum
@@ -42,6 +68,7 @@ Default service location:
 my %opt = @_;
 my $cust_main = $opt{'cust_main'};
 my $all_packages = $opt{'packages'};
+my $conf = FS::Conf->new;
 
 my %locations = map { $_->locationnum => $_ } qsearch({
     'table'     => 'cust_location',
@@ -49,8 +76,7 @@ my %locations = map { $_->locationnum => $_ } qsearch({
     'order_by'  => 'ORDER BY country, state, city, address1, locationnum',
   });
 my @sections = keys %locations;
-$locations{''} = $cust_main;
-my %packages_in = map { $_ => [] } ('', @sections);
+my %packages_in = map { $_ => [] } (@sections);
 
 my %active = (); # groups with non-canceled packages
 foreach my $cust_pkg ( @$all_packages ) {
@@ -58,10 +84,13 @@ foreach my $cust_pkg ( @$all_packages ) {
   push @{ $packages_in{$key} }, $cust_pkg;
   $active{$key} = 1 if !$cust_pkg->getfield('cancel');
 }
+# prevent disabling these
+$active{$cust_main->ship_locationnum} = 1;
+$active{$cust_main->bill_locationnum} = 1;
 
 my @sorted = (
-  '',
-  grep ( { $active{$_} } @sections),
+  $cust_main->ship_locationnum,
+  grep ( { $active{$_} && $_ != $cust_main->ship_locationnum } @sections),
   grep ( { !$active{$_} } @sections),
 );
 
@@ -69,8 +98,8 @@ sub edit_location_link {
   my $locationnum = shift;
   include( '/elements/popup_link.html',
     'action'      => $p. "edit/cust_location.cgi?locationnum=$locationnum",
-    'label'       => '('.mt('Edit location').')',
-    'actionlabel' => mt('Edit'),
+    'label'       => '('.emt('Edit location').')',
+    'actionlabel' => emt('Edit'),
   );
 }
 
@@ -78,8 +107,8 @@ sub disable_location_link {
   my $locationnum = shift;
   include( '/elements/popup_link.html',
     'action'      => $p. "misc/disable-cust_location.cgi?locationnum=$locationnum",
-    'label'       => '('.mt('Disable location').')',
-    'actionlabel' => mt('Disable'),
+    'label'       => '('.emt('Disable location').')',
+    'actionlabel' => emt('Disable'),
   );
 }