improve tax edit UI: add more counties & remove individual counties, RT#11144
[freeside.git] / httemplate / edit / process / cust_main_county-add.cgi
diff --git a/httemplate/edit/process/cust_main_county-add.cgi b/httemplate/edit/process/cust_main_county-add.cgi
new file mode 100755 (executable)
index 0000000..352c612
--- /dev/null
@@ -0,0 +1,48 @@
+<% include('/elements/header-popup.html', 'Addition successful' ) %>
+
+<SCRIPT TYPE="text/javascript">
+  window.top.location.reload();
+</SCRIPT>
+
+</BODY>
+</HTML>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+$cgi->param('taxnum') =~ /^(\d+)$/ or die "Illegal taxnum!";
+my $taxnum = $1;
+my $cust_main_county = qsearchs('cust_main_county',{'taxnum'=>$taxnum})
+  or die ("Unknown taxnum!");
+
+my @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 );
+    myexit();
+  }
+  $1;
+} @expansion;
+
+foreach ( @expansion ) {
+  my(%hash)=$cust_main_county->hash;
+  my($new)=new FS::cust_main_county \%hash;
+  $new->setfield('taxnum','');
+  if ( $cgi->param('what') eq 'state' ) { #??
+    $new->setfield('state',$_);
+  } elsif ( $cgi->param('what') eq 'county' ) {
+    $new->setfield('county',$_);
+  } elsif ( $cgi->param('what') eq 'city' ) {
+    #uppercase cities in the US to try and agree with USPS validation
+    $new->setfield('city', $new->country eq 'US' ? uc($_) : $_ );
+  } else { #???
+    die 'unknown what '. $cgi->param('what');
+  }
+  my $error = $new->insert;
+  die $error if $error;
+}
+
+</%init>