X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fprocess%2Fcust_main_county-expand.cgi;h=a108276214a78e8160c96f90f4409f66b6272585;hb=c5e31619e5a3071506cff19578e9e377753a96f4;hp=b7c4547f695843d15afc473f67052600fccb3069;hpb=51984ac3d3da3006809c6866fdecd4ad83610731;p=freeside.git diff --git a/httemplate/edit/process/cust_main_county-expand.cgi b/httemplate/edit/process/cust_main_county-expand.cgi index b7c4547f6..a10827621 100755 --- a/httemplate/edit/process/cust_main_county-expand.cgi +++ b/httemplate/edit/process/cust_main_county-expand.cgi @@ -1,104 +1,83 @@ -<% -# -# $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! -# +<% include('/elements/header-popup.html', 'Addition successful' ) %> -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); + + +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); $cgi->param('taxnum') =~ /^(\d+)$/ or die "Illegal taxnum!"; -$taxnum = $1; -$cust_main_county = qsearchs('cust_main_county',{'taxnum'=>$taxnum}) +my $taxnum = $1; +my $cust_main_county = qsearchs('cust_main_county',{'taxnum'=>$taxnum}) or die ("Unknown taxnum!"); -if ( $cgi->param('delim') eq 'n' ) { - @expansion=split(/\n/,$cgi->param('expansion')); -} elsif ( $cgi->param('delim') eq 's' ) { - @expansion=split(' ',$cgi->param('expansion')); +my @expansion; +if ( $cgi->param('taxclass') ) { + my $sth = dbh->prepare('SELECT taxclass FROM part_pkg_taxclass') + or die dbh->errstr; + $sth->execute or die $sth->errstr; + @expansion = map $_->[0], @{$sth->fetchall_arrayref}; + errorpage "No taxclasses - add one first" unless @expansion; } else { - die "Illegal delim!"; -} + @expansion = split /[\n\r]{1,2}/, $cgi->param('expansion'); -@expansion=map { - unless ( /^\s*([\w\- ]+)\s*$/ ) { - $cgi->param('error', "Illegal item in expansion"); - print $cgi->redirect(popurl(2). "cust_main_county-expand.cgi?". $cgi->query_string ); - exit; - } - $1; -} @expansion; + #warn scalar(@expansion); + #warn "$_: $expansion[$_]\n" foreach (0..$#expansion); + + @expansion=map { + unless ( /^\s*([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/\=\[\]]+)\s*$/ ) { + $cgi->param('error', "Illegal item in expansion: $_"); + print $cgi->redirect(popurl(2). "cust_main_county-expand.cgi?". $cgi->query_string ); + myexit(); + } + $1; + } @expansion; + +} foreach ( @expansion) { my(%hash)=$cust_main_county->hash; my($new)=new FS::cust_main_county \%hash; $new->setfield('taxnum',''); - if ( ! $cust_main_county->state ) { + if ( $cgi->param('taxclass') ) { + $new->setfield('taxclass', $_); + } elsif ( ! $cust_main_county->state ) { $new->setfield('state',$_); - } else { + } elsif ( ! $cust_main_county->county ) { $new->setfield('county',$_); + } else { + #uppercase cities in the US to try and agree with USPS validation + $new->setfield('city', $new->country eq 'US' ? uc($_) : $_ ); } - #if (datasrc =~ m/Pg/) - #{ - # $new->setfield('tax',0.0); - #} - my($error)=$new->insert; + my $error = $new->insert; die $error if $error; } -unless ( qsearch('cust_main',{ - 'state' => $cust_main_county->getfield('state'), - 'county' => $cust_main_county->getfield('county'), - 'country' => $cust_main_county->getfield('country'), -} ) ) { - my($error)=($cust_main_county->delete); +unless ( qsearch( 'cust_main', { + 'city' => $cust_main_county->city, + 'county' => $cust_main_county->county, + 'state' => $cust_main_county->state, + 'country' => $cust_main_county->country, + } ) + || ! @expansion +) { + my $error = $cust_main_county->delete; die $error if $error; } -print $cgi->redirect(popurl(3). "edit/cust_main_county.cgi"); +if ( $cgi->param('taxclass') ) { + print $cgi->redirect(popurl(3). "browse/cust_main_county.cgi?". + 'city='. uri_escape($cust_main_county->city ).';'. + 'county='. uri_escape($cust_main_county->county ).';'. + 'state='. uri_escape($cust_main_county->state ).';'. + 'country='. uri_escape($cust_main_county->country) + ); + myexit; +} -%> +