default to a session cookie instead of setting an explicit timeout, weird timezone...
[freeside.git] / httemplate / edit / process / rate_region.cgi
index 8036f73..1b27102 100755 (executable)
@@ -1,6 +1,8 @@
 %if ( $error ) {
 %  $cgi->param('error', $error);
 <% $cgi->redirect(popurl(2). "rate_region.cgi?". $cgi->query_string ) %>
+%} elsif ( $action eq 'Add' ) {
+<% $cgi->redirect(popurl(2). "rate_region.cgi?regionnum=$regionnum") %>
 %} else { 
 <% $cgi->redirect(popurl(3). "browse/rate_region.html") %>
 %}
@@ -11,6 +13,7 @@ die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
 
 my $regionnum = $cgi->param('regionnum');
+my $action = $regionnum ? 'Edit' : 'Add';
 
 my $old = qsearchs('rate_region', { 'regionnum' => $regionnum } ) if $regionnum;
 
@@ -22,6 +25,8 @@ my $new = new FS::rate_region ( {
 
 my $countrycode = $cgi->param('countrycode');
 my @npa = split(/\s*,\s*/, $cgi->param('npa'));
+my %npa = map { $_, 1 } @npa; #removing duplicates
+@npa = sort keys %npa;
 $npa[0] = '' unless @npa;
 my @rate_prefix = map {
                         #my($npa,$nxx) = split('-', $_);
@@ -33,24 +38,12 @@ my @rate_prefix = map {
                           'npa'         => $_,
                         }
                       } @npa;
-
-my @dest_detail = map {
-  my $ratenum = $_->ratenum;
-  new FS::rate_detail {
-    'ratenum'  => $ratenum,
-    map { $_ => $cgi->param("$_$ratenum") }
-        qw( min_included conn_charge conn_sec min_charge sec_granularity classnum )
-  };
-} qsearch('rate', {} );
-
-
+# we no longer process dest_detail records here
 my $error;
 if ( $regionnum ) {
-  $error = $new->replace($old, 'rate_prefix' => \@rate_prefix,
-                               'dest_detail' => \@dest_detail, );
+  $error = $new->replace($old, 'rate_prefix' => \@rate_prefix );
 } else {
-  $error = $new->insert( 'rate_prefix' => \@rate_prefix,
-                         'dest_detail' => \@dest_detail, );
+  $error = $new->insert( 'rate_prefix' => \@rate_prefix );
   $regionnum = $new->getfield('regionnum');
 }