X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fbrowse%2Fcust_main_county.cgi;h=9cce67da2ce32a709081c731985b393597866c3f;hp=96541502c1330edc93d2e484ac814650790a3b11;hb=94d7e3f0d3431fc1a16afea163367a79ccc78d95;hpb=55b29dc1d28b0c27e7f8271e7fe382a36d75d268 diff --git a/httemplate/browse/cust_main_county.cgi b/httemplate/browse/cust_main_county.cgi index 96541502c..9cce67da2 100755 --- a/httemplate/browse/cust_main_county.cgi +++ b/httemplate/browse/cust_main_county.cgi @@ -1,38 +1,5 @@ <% -# -# $Id: cust_main_county.cgi,v 1.1 2001-07-30 07:36:03 ivan Exp $ -# -# ivan@sisd.com 97-dec-13 -# -# Changes to allow page to work at a relative position in server -# bmccane@maxbaud.net 98-apr-3 -# -# lose background, FS::CGI ivan@sisd.com 98-sep-2 -# -# $Log: cust_main_county.cgi,v $ -# Revision 1.1 2001-07-30 07:36:03 ivan -# templates!!! -# -# Revision 1.7 1999/04/09 04:22:34 ivan -# also table() -# -# Revision 1.6 1999/04/09 03:52:55 ivan -# explicit & for table/itable/ntable -# -# Revision 1.5 1999/01/19 05:13:26 ivan -# for mod_perl: no more top-level my() variables; use vars instead -# also the last s/create/new/; -# -# Revision 1.4 1999/01/18 09:41:16 ivan -# all $cgi->header calls now include ( '-expires' => 'now' ) for mod_perl -# (good idea anyway) -# -# Revision 1.3 1998/12/17 05:25:18 ivan -# fix visual and other bugs -# -# Revision 1.2 1998/11/18 09:01:34 ivan -# i18n! i18n! -# +# use strict; use vars qw( $cgi $p $cust_main_county ); @@ -66,18 +33,61 @@ print &table(), < END -foreach $cust_main_county ( qsearch('cust_main_county',{}) ) { - my($hashref)=$cust_main_county->hashref; +my @regions = sort { $a->country cmp $b->country + or $a->state cmp $b->state + or $a->county cmp $b->county + } qsearch('cust_main_county',{}); + +my $sup=0; +#foreach $cust_main_county ( @regions ) { +for ( my $i=0; $i<@regions; $i++ ) { + my $cust_main_county = $regions[$i]; + my $hashref = $cust_main_county->hashref; print < $hashref->{country} END - print "", $hashref->{state} - ? $hashref->{state} - : qq!(ALL) !. - qq!expand country! - , ""; + + my $j; + if ( $sup ) { + $sup--; + } else { + + #lookahead + for ( $j=1; $i+$j<@regions; $j++ ) { + last if $hashref->{country} ne $regions[$i+$j]->country + || $hashref->{state} ne $regions[$i+$j]->state + || $hashref->{tax} != $regions[$i+$j]->tax; + } + + my $newsup=0; + if ( $j>1 && $i+$j+1 < @regions + && ( $hashref->{state} ne $regions[$i+$j+1]->state + || $hashref->{country} ne $regions[$i+$j+1]->country + ) + && ( ! $i + || $hashref->{state} ne $regions[$i-1]->state + || $hashref->{country} ne $regions[$i-1]->country + ) + ) { + $sup = $j-1; + } else { + $j = 1; + } + + print "", $hashref->{state} + ? $hashref->{state} + : qq!(ALL) !. + qq!expand country!; + + print qq! collapse state! if $j>1; + + print ""; + } + +# $sup=$newsup; + print ""; if ( $hashref->{county} ) { print $hashref->{county};