summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2001-08-17 11:05:31 +0000
committerivan <ivan>2001-08-17 11:05:31 +0000
commit94d7e3f0d3431fc1a16afea163367a79ccc78d95 (patch)
treeeaf2544ba973628f7e35a96c91810680785fabe4
parent55b29dc1d28b0c27e7f8271e7fe382a36d75d268 (diff)
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
-rwxr-xr-xhttemplate/browse/cust_main_county.cgi94
-rwxr-xr-xhttemplate/edit/cust_main_county.cgi15
-rwxr-xr-xhttemplate/edit/process/cust_main_county-collapse.cgi49
-rwxr-xr-xhttemplate/edit/process/cust_main_county-expand.cgi41
4 files changed, 115 insertions, 84 deletions
diff --git a/httemplate/browse/cust_main_county.cgi b/httemplate/browse/cust_main_county.cgi
index 9654150..9cce67d 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!
-#
+#<!-- $Id: cust_main_county.cgi,v 1.2 2001-08-17 11:05:31 ivan Exp $ -->
use strict;
use vars qw( $cgi $p $cust_main_county );
@@ -66,18 +33,61 @@ print &table(), <<END;
</TR>
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 <<END;
<TR>
<TD>$hashref->{country}</TD>
END
- print "<TD>", $hashref->{state}
- ? $hashref->{state}
- : qq!(ALL) <FONT SIZE=-1>!.
- qq!<A HREF="${p}edit/cust_main_county-expand.cgi?!. $hashref->{taxnum}.
- qq!">expand country</A></FONT>!
- , "</TD>";
+
+ 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 "<TD ROWSPAN=$j>", $hashref->{state}
+ ? $hashref->{state}
+ : qq!(ALL) <FONT SIZE=-1>!.
+ qq!<A HREF="${p}edit/cust_main_county-expand.cgi?!. $hashref->{taxnum}.
+ qq!">expand country</A></FONT>!;
+
+ print qq! <FONT SIZE=-1><A HREF="${p}edit/process/cust_main_county-collapse.cgi?!. $hashref->{taxnum}. qq!">collapse state</A></FONT>! if $j>1;
+
+ print "</TD>";
+ }
+
+# $sup=$newsup;
+
print "<TD>";
if ( $hashref->{county} ) {
print $hashref->{county};
diff --git a/httemplate/edit/cust_main_county.cgi b/httemplate/edit/cust_main_county.cgi
index 38e6d68..1b8e76f 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!<FORM ACTION="!, popurl(1),
</TR>
END
-foreach $cust_main_county ( qsearch('cust_main_county',{}) ) {
+foreach $cust_main_county ( sort { $a->country cmp $b->country
+ or $a->state cmp $b->state
+ or $a->county cmp $b->county
+ } qsearch('cust_main_county',{}) ) {
my($hashref)=$cust_main_county->hashref;
print <<END;
<TR>
diff --git a/httemplate/edit/process/cust_main_county-collapse.cgi b/httemplate/edit/process/cust_main_county-collapse.cgi
new file mode 100755
index 0000000..62c2ba7
--- /dev/null
+++ b/httemplate/edit/process/cust_main_county-collapse.cgi
@@ -0,0 +1,49 @@
+<%
+# <!-- $Id: cust_main_county-collapse.cgi,v 1.1 2001-08-17 11:05:31 ivan Exp $ -->
+
+use strict;
+use vars qw ( $cgi $taxnum $cust_main_county @expansion $expansion );
+use CGI;
+use CGI::Carp qw(fatalsToBrowser);
+use FS::UID qw(cgisuidsetup datasrc);
+use FS::Record qw(qsearch qsearchs);
+use FS::CGI qw(popurl);
+use FS::cust_main_county;
+use FS::cust_main;
+
+$cgi = new CGI;
+&cgisuidsetup($cgi);
+
+my($query) = $cgi->keywords;
+$query =~ /^(\d+)$/ or die "Illegal taxnum!";
+$taxnum = $1;
+$cust_main_county = qsearchs('cust_main_county',{'taxnum'=>$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 b7c4547..a0231b0 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!
-#
+# <!-- $Id: cust_main_county-expand.cgi,v 1.2 2001-08-17 11:05:31 ivan Exp $ -->
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");
%>