-<%
-#
-# $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;
+<SCRIPT TYPE="text/javascript">
+ window.top.location.reload();
+</SCRIPT>
-$cgi = new CGI;
-&cgisuidsetup($cgi);
+</BODY>
+</HTML>
+<%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;
+}
-%>
+</%init>