+my($rate, $error);
+
+if ( $cgi->param('magic') eq 'process' ) {
+
+ my $ratenum = $cgi->param('ratenum');
+
+ my $old = qsearchs('rate', { 'ratenum' => $ratenum } ) if $ratenum;
+
+ my @rate_detail = map {
+ my $regionnum = $_->regionnum;
+ if ( $cgi->param("sec_granularity$regionnum") ) {
+ new FS::rate_detail {
+ 'dest_regionnum' => $regionnum,
+ map { $_ => scalar($cgi->param("$_$regionnum")) }
+ qw( min_included min_charge sec_granularity )
+ };
+ } else {
+ new FS::rate_detail {
+ 'dest_regionnum' => $regionnum,
+ 'min_included' => 0,
+ 'min_charge' => 0,
+ 'sec_granularity' => '60'
+ };
+ }
+ } qsearch('rate_region', {} );
+