From 94d7e3f0d3431fc1a16afea163367a79ccc78d95 Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 17 Aug 2001 11:05:31 +0000 Subject: [PATCH] clean up tax rate editing: sort by country->state->county, add "collapse state" if the tax rates are the same statewide, redirect "expand state" to the browse, not edit screen --- httemplate/browse/cust_main_county.cgi | 94 ++++++++++++---------- httemplate/edit/cust_main_county.cgi | 15 +++- .../edit/process/cust_main_county-collapse.cgi | 49 +++++++++++ .../edit/process/cust_main_county-expand.cgi | 41 +--------- 4 files changed, 115 insertions(+), 84 deletions(-) create mode 100755 httemplate/edit/process/cust_main_county-collapse.cgi 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}; diff --git a/httemplate/edit/cust_main_county.cgi b/httemplate/edit/cust_main_county.cgi index 38e6d6877..1b8e76fc7 100755 --- a/httemplate/edit/cust_main_county.cgi +++ b/httemplate/edit/cust_main_county.cgi @@ -1,6 +1,6 @@ <% # -# $Id: cust_main_county.cgi,v 1.1 2001-07-30 07:36:04 ivan Exp $ +# $Id: cust_main_county.cgi,v 1.2 2001-08-17 11:05:31 ivan Exp $ # # ivan@sisd.com 97-dec-13-16 # @@ -11,7 +11,13 @@ # lose background, FS::CGI ivan@sisd.com 98-sep-2 # # $Log: cust_main_county.cgi,v $ -# Revision 1.1 2001-07-30 07:36:04 ivan +# Revision 1.2 2001-08-17 11:05:31 ivan +# clean up tax rate editing: +# sort by country->state->county, +# add "collapse state" if the tax rates are the same statewide, +# redirect "expand state" to the browse, not edit screen +# +# Revision 1.1 2001/07/30 07:36:04 ivan # templates!!! # # Revision 1.8 1999/04/09 04:22:34 ivan @@ -69,7 +75,10 @@ print qq!
$taxnum}) + or die ("Unknown taxnum!"); + +#really should do this in a .pm & start transaction + +foreach my $delete ( qsearch('cust_main_county', { + 'country' => $cust_main_county->country, + 'state' => $cust_main_county->state + } ) ) { +# unless ( qsearch('cust_main',{ +# 'state' => $cust_main_county->getfield('state'), +# 'county' => $cust_main_county->getfield('county'), +# 'country' => $cust_main_county->getfield('country'), +# } ) ) { + my $error = $delete->delete; + die $error if $error; +# } else { + #should really fix the $cust_main record +# } + +} + +$cust_main_county->taxnum(''); +$cust_main_county->county(''); +my $error = $cust_main_county->insert; +die $error if $error; + +print $cgi->redirect(popurl(3). "browse/cust_main_county.cgi"); + +%> diff --git a/httemplate/edit/process/cust_main_county-expand.cgi b/httemplate/edit/process/cust_main_county-expand.cgi index b7c4547f6..a0231b076 100755 --- a/httemplate/edit/process/cust_main_county-expand.cgi +++ b/httemplate/edit/process/cust_main_county-expand.cgi @@ -1,42 +1,5 @@ <% -# -# $Id: cust_main_county-expand.cgi,v 1.1 2001-07-30 07:36:04 ivan Exp $ -# -# ivan@sisd.com 97-dec-16 -# -# Changes to allow page to work at a relative position in server -# Added import of datasrc from UID.pm for Pg6.3 -# Default tax to 0.0 if using Pg6.3 -# bmccane@maxbaud.net 98-apr-3 -# -# lose background, FS::CGI -# undo default tax to 0.0 if using Pg6.3: comes from pre-expanded record -# for that state -# ivan@sisd.com 98-sep-2 -# -# $Log: cust_main_county-expand.cgi,v $ -# Revision 1.1 2001-07-30 07:36:04 ivan -# templates!!! -# -# Revision 1.7 2000/12/21 05:22:30 ivan -# perldoc -f split -# -# Revision 1.6 1999/01/25 12:19:07 ivan -# yet more mod_perl stuff -# -# Revision 1.5 1999/01/19 05:13:51 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 22:47:52 ivan -# s/create/new/g; and use fields('table_name') -# -# Revision 1.3 1998/12/17 08:40:20 ivan -# s/CGI::Request/CGI.pm/; etc -# -# Revision 1.2 1998/11/18 09:01:40 ivan -# i18n! i18n! -# +# use strict; use vars qw ( $cgi $taxnum $cust_main_county @expansion $expansion ); @@ -99,6 +62,6 @@ unless ( qsearch('cust_main',{ die $error if $error; } -print $cgi->redirect(popurl(3). "edit/cust_main_county.cgi"); +print $cgi->redirect(popurl(3). "browse/cust_main_county.cgi"); %> -- 2.11.0