'table' => 'cust_main_county',
'hashref' => $hashref,
'order_by' =>
- 'ORDER BY country, state, county, taxclass',
+ 'ORDER BY country, state, county, city, taxclass',
},
'count_query' => $count_query,
'header' => \@header,
my %seen_country = ();
my %seen_state = ();
+my %seen_county = ();
my @fields = (
sub { my $country = shift->country;
return '' if $seen_country{$country}++;
code2country($country). " ($country)";
},
+
sub { my $label = $seen_state{$_[0]->country}->{$_[0]->state}++
? '' : state_label($_[0]->state, $_[0]->country);
+
my $countylinks = ( $_[0]->county && $label )
? ' '. add_link(
desc => 'Add more counties',
cgi => $cgi,
)
: '';
+
my $addlink =
( $_[0]->state
? ''
cgi => $cgi,
)
);
+
$label.$countylinks.$addlink;
},
- sub { $_[0]->county
- ? $_[0]->county. ' '.
- remove_link( col => 'county',
- label=> 'remove county',
- row => $_[0],
- cgi => $cgi,
- )
+
+ sub { my $label =
+ $seen_county{$_[0]->country}->{$_[0]->state}->{$_[0]->county}++
+ ? '' : $_[0]->county;
+
+ my $citylinks = '';
+ if ( $label ) {
+ $citylinks = $_[0]->city
+ ? ' '. add_link(
+ desc => 'Add more cities',
+ col => 'county',
+ label=> 'add more cities',
+ row => $_[0],
+ cgi => $cgi,
+ ).
+ ' '. collapse_link(
+ col => 'county',
+ label=> 'remove all cities',
+ row => $_[0],
+ cgi => $cgi,
+ )
+ : ' '. remove_link( col => 'county',
+ label=> 'remove county',
+ row => $_[0],
+ cgi => $cgi,
+ );
+ }
+
+ $_[0]->county
+ ? $label.$citylinks
: '(all) '.
expand_link( desc => 'Add Counties',
row => $_[0],
cgi => $cgi,
);
},
+
sub { $_[0]->city
? $_[0]->city. ' '.
- collapse_link( col => 'county',
- label=> 'remove cities',
- row => $_[0],
- cgi => $cgi,
- )
+ remove_link( col => 'city',
+ label=> 'remove city',
+ row => $_[0],
+ cgi => $cgi,
+ )
: '(all) '.
expand_link( desc => 'Add Cities',
row => $_[0],