default to a session cookie instead of setting an explicit timeout, weird timezone...
[freeside.git] / httemplate / edit / process / cust_main_county-expand.cgi
index 04533a5..42e4673 100755 (executable)
@@ -1,7 +1,7 @@
 <% include('/elements/header-popup.html', 'Addition successful' ) %>
 
 <SCRIPT TYPE="text/javascript">
-  window.top.location.reload();
+  topreload();
 </SCRIPT>
 
 </BODY>
@@ -22,7 +22,7 @@ if ( $cgi->param('taxclass') ) {
     or die dbh->errstr;
   $sth->execute or die $sth->errstr;
   @expansion = map $_->[0], @{$sth->fetchall_arrayref};
-  die "no taxclasses - add one first" unless @expansion;#XXX better err handling
+  errorpage "No taxclasses - add one first" unless @expansion;
 } else {
   @expansion = split /[\n\r]{1,2}/, $cgi->param('expansion');
 
@@ -48,17 +48,21 @@ foreach ( @expansion) {
     $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($_) : $_ );
   }
   my $error = $new->insert;
   die $error if $error;
 }
 
 unless ( qsearch( 'cust_main', {
-                                 'state'  => $cust_main_county->state,
-                                 'county' => $cust_main_county->county,
-                                 'country' =>  $cust_main_county->country,
+                                 'city'    => $cust_main_county->city,
+                                 'county'  => $cust_main_county->county,
+                                 'state'   => $cust_main_county->state,
+                                 'country' => $cust_main_county->country,
                                } )
          || ! @expansion
 ) {
@@ -68,8 +72,9 @@ unless ( qsearch( 'cust_main', {
 
 if ( $cgi->param('taxclass') ) {
   print $cgi->redirect(popurl(3). "browse/cust_main_county.cgi?".
-                         'state='.   uri_escape($cust_main_county->state  ).';'.
+                         '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;