RT#71518: Bug in the address editor [fixed query cleanup]
[freeside.git] / httemplate / edit / process / cust_main.cgi
index 82ec50c..4b89939 100755 (executable)
@@ -1,5 +1,15 @@
 % if ( $error ) {
 %   $cgi->param('error', $error);
+%   # workaround for create_uri_query's mangling of unicode characters,
+%   # false laziness with FS::Record::ut_coord
+%   use charnames ':full';
+%   for my $pre (qw(bill ship)) {
+%     foreach (qw( latitude longitude)) {
+%       my $coord = $cgi->param($pre.'_'.$_);
+%       $coord =~ s/\N{DEGREE SIGN}\s*$//;
+%       $cgi->param($pre.'_'.$_, $coord);
+%     }
+%   }
 %   my $query = $m->scomp('/elements/create_uri_query', 'secure'=>1);
 <% $cgi->redirect(popurl(2). "cust_main.cgi?$query" ) %>
 %
@@ -97,8 +107,8 @@ if ( ($cgi->param('same') || '') eq 'Y' ) {
 # but explicitly avoid setting ship_ fields
 
 my $new = new FS::cust_main ( {
-  map { ( $_, scalar($cgi->param($_)) ) } (fields('cust_main')),
-  map { ( "ship_$_", '' ) } (FS::cust_main->location_fields)
+  (map { ( $_, scalar($cgi->param($_)) ) } (fields('cust_main'))),
+  (map { ( "ship_$_", '' ) } (FS::cust_main->location_fields))
 } );
 
 $new->invoice_noemail( ($cgi->param('invoice_email') eq 'Y') ? '' : 'Y' );