% foreach my $locationnum (@sorted) { % my $packages = $packages_in{$locationnum}; % my $loc = $locations{$locationnum}; % next if $loc->disabled and scalar(@$packages) == 0; % if (@$packages) { % my %sopt = %opt; % $sopt{'packages'} = $packages; <& packages/section.html, %sopt &> % }
<% $loc->location_label %> % if ( $loc->country eq 'US' ) { # only U.S. census tracts for now % if ( $loc->censustract ) {
<% $loc->censustract %> (<% $loc->censusyear %> census) % } elsif ( $conf->exists('cust_main-require_censustract') ) {
<% emt('Census tract unknown') %> % } % }
% if ( $locationnum && !$loc->disabled && ! $opt{no_links} ) { <% edit_location_link($locationnum) %> % } % if ( $locationnum && !$loc->disabled && !$active{$locationnum} && ! $opt{no_links} ) {  <% disable_location_link($locationnum) %> % }

% } #foreach $locationnum <%init> 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', 'hashref' => { 'custnum' => $cust_main->custnum }, 'order_by' => 'ORDER BY country, state, city, address1, locationnum', }); my @sections = keys %locations; my %packages_in = map { $_ => [] } (@sections); my %active = (); # groups with non-canceled packages foreach my $cust_pkg ( @$all_packages ) { my $key = $cust_pkg->locationnum; 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 = ( $cust_main->ship_locationnum, grep ( { $active{$_} && $_ != $cust_main->ship_locationnum } @sections), grep ( { !$active{$_} } @sections), ); sub 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'), ); } sub disable_location_link { my $locationnum = shift; include( '/elements/popup_link.html', 'action' => $p. "misc/disable-cust_location.cgi?locationnum=$locationnum", 'label' => '('.emt('Disable location').')', 'actionlabel' => emt('Disable'), ); }