don't look up or display census tracts for non-U.S. addresses, #32249
[freeside.git] / httemplate / view / cust_main / packages / location.html
index 6664629..99d91e5 100644 (file)
@@ -1,49 +1,84 @@
-<TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
-
-% unless ( $cust_pkg->locationnum ) {
-  <I><FONT SIZE=-1>(default service address)</FONT><BR>
-% }
-
-  <% $loc->address1 |h %><BR>
-
-% if ( $loc->address2 !~ /^\s*$/ ) {
-    <% $loc->address2 |h %><BR>
-% }
+% if ( $cust_pkg->change_from_pkg
+%      and $cust_pkg->change_from_pkg->locationnum == $cust_pkg->locationnum)
+% {
+% # don't show the location
+% } else {
+%   if ( !$opt{'cust_pkg-group_by_location'} ) {
+%     if ( $default ) {
+        <DIV STYLE="font-style: italic; font-size: small">
+%     }
 
-  <% $loc->city |h %><% $loc->county ? ' ('.$loc->county.' county)' : '' |h %>,
-  <% $loc->state |h %> &nbsp; <% $loc->zip |h %><BR>
+      <% $loc->location_label( 'join_string'     => '<BR>',
+                               'double_space'    => ' &nbsp; ',
+                               'escape_function' => \&encode_entities,
+                               'countrydefault'  => $countrydefault,
+                               'cust_main'       => $opt{'cust_main'},
+                             )
+      %>
 
-% if ( $loc->country ne $countrydefault ) {
-  <% code2country( $loc->country ) %>
-% }
+%     if ( $loc->latitude && $loc->longitude ) {
+          <BR>
+          <FONT SIZE=-1>
+          <% $loc->latitude %>, <% $loc->longitude %>
+          <& /elements/coord-links.html, {
+               'latitude'        => $loc->latitude,
+               'longitude'       => $loc->longitude,
+               'name'            => $opt{'cust_main'}->name_short.
+                                      ': '. $opt{'part_pkg'}->pkg,
+               'company_address' => $opt{'company_address'},
+             }
+          &>
+          </FONT>
+%     }
+%     if ( $loc->country eq 'US' ) {
+%       if ( $loc->censustract ) {
+           <BR>
+           <FONT SIZE=-1>
+           <% $loc->censustract %> (<% $loc->censusyear %> census)
+           </FONT>
+%       } elsif ( $opt{'cust_main-require_censustract'} ) {
+            <BR>
+            <FONT SIZE=-1 COLOR="#ee3300">
+            <% emt('Census tract unknown') %>
+            </FONT>
+%       }
+%     }
 
-  </I>
+%     if ( $default ) {
+      </DIV>
+%     }
+%   } # all of this is hidden if packages are grouped by location, because
+%     # it's in the top banner
 
-% if ( ! $cust_pkg->get('cancel')
+%   if ( ! $cust_pkg->get('cancel')
 %      && $FS::CurrentUser::CurrentUser->access_right('Change customer package')
-%    )
-% {
+%     )
+%   {
+  <BR>
   <FONT SIZE=-1>
-    (&nbsp;<%pkg_change_location_link($cust_pkg)%>&nbsp;)
+%     unless ( $opt{no_links} or $opt{'change_from'} ) {
+      (&nbsp;<%pkg_change_location_link($cust_pkg)%>&nbsp;)
+%     }
+%     if ( $cust_pkg->locationnum && ! $opt{no_links} ) {
+        (&nbsp;<%pkg_edit_location_link($cust_pkg->locationnum)%>&nbsp;)
+%     }
   </FONT>
-% } 
-
-</TD>
+%   } 
+% } # if the package is a scheduled future package change without location
+%   # change, then don't show any of this at all.  It's all implied by the
+%   # preceding package.
 <%init>
 
 my %opt = @_;
 
-my $conf = new FS::Conf;
-
-my $bgcolor        = $opt{'bgcolor'};
 my $cust_pkg       = $opt{'cust_pkg'};
-my $part_pkg       = $opt{'part_pkg'};
-my $conf           = new FS::Conf;
-my $countrydefault = $conf->config('countrydefault') || 'US';
-my $statedefault   = $conf->config('statedefault')
+my $countrydefault = $opt{'countrydefault'} || 'US';
+my $statedefault   = $opt{'statedefault'}
                      || ($countrydefault eq 'US' ? 'CA' : '');
 
-my $loc = $cust_pkg->cust_location_or_main;
+my $loc = $cust_pkg->cust_location_or_main('_cache'=>$opt{cust_location_cache});
+# dubious--they should all have a location now
+my $default = $cust_pkg->locationnum == $opt{'cust_main'}->ship_locationnum;
 
 sub pkg_change_location_link {
   my $cust_pkg = shift;
@@ -52,10 +87,23 @@ sub pkg_change_location_link {
     'action'      => $p. "misc/change_pkg.cgi?locationnum=-1;pkgpart=$pkgpart;".
                      "address1=;address2=;city=;county=;state=$statedefault;".
                      "zip=;country=$countrydefault",
-    'label'       => 'Change&nbsp;location',
-    'actionlabel' => 'Change',
+    'label'       => emt('Change location'),
+    'actionlabel' => emt('Change'),
     'cust_pkg'    => $cust_pkg,
+    'width'       => 960,
+    'height'      => 490,
   );
 }
 
+sub pkg_edit_location_link {
+  my $locationnum = shift;
+  include( '/elements/popup_link.html',
+    'action'      => $p. "edit/cust_location.cgi?locationnum=$locationnum",
+    'label'       => emt('Edit location'),
+    'actionlabel' => emt('Edit'),
+    'width'       => 700,
+    'height'      => 355,
+   );
+}
+
 </%init>