RT# 79497 - Changed email address check to all emails to be seperated by a space...
[freeside.git] / httemplate / edit / process / cust_main.cgi
index 715e873..ed285ca 100755 (executable)
@@ -1,11 +1,28 @@
 % 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" ) %>
 %
 % } else { 
 %
-<% $cgi->redirect(popurl(3). "view/cust_main.cgi?". $new->custnum) %>
+<% $cgi->redirect( -uri    => popurl(3). "view/cust_main.cgi?". $new->custnum,
+                   -cookie => CGI::Cookie->new(
+                     -name    => 'freeside_status',
+                     -value   => mt($freeside_status),
+                     -expires => '+5m',
+                   ),
+   )
+%>
 %
 % }
 <%once>
@@ -59,12 +76,6 @@ if ( $conf->exists('agent-ship_address', $cgi->param('agentnum')) ) {
 my %locations;
 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 %hash;
   foreach ( FS::cust_main->location_fields ) {
     $hash{$_} = scalar($cgi->param($pre.'_'.$_));
@@ -105,7 +116,12 @@ if ( $cgi->param('no_credit_limit') ) {
   $new->setfield('credit_limit', '');
 }
 
-$new->tagnum( [ $cgi->param('tagnum') ] );
+#$new->tagnum( [ $cgi->param('tagnum') ] );
+my $params = $cgi->Vars;
+$new->tagnum( [
+  map { /^tagnum(\d+)/ && $1 }
+    grep { /^tagnum(\d+)/ && $cgi->param($_) } keys %$params
+] );
 
 $error ||= $new->set_national_id_from_cgi( $cgi );
 
@@ -171,7 +187,10 @@ if ( $cgi->param('residential_commercial') eq 'Residential' ) {
     $error = 'Email address required';
   }
 
-  $options{'invoicing_list'} = [ split(/\s*,\s*/, $email) ];
+  #$email =~ s/\s+/\, /g;
+  #$options{'invoicing_list'} = [ split(/\s*,\s*/, $email) ];
+  $options{'invoicing_list'} = [ split(/[,\s]+/, $email) ];
+  #[:,\s\/]+
   # XXX really should include the phone numbers in here also
 
 } else {
@@ -204,8 +223,11 @@ if ( $vendor eq 'avalara' or $vendor eq 'suretax' ) {
 }
 
 #perhaps this stuff should go to cust_main.pm
+my $freeside_status = '';
 if ( $new->custnum eq '' or $duplicate_of ) {
 
+  $freeside_status = 'Customer added';
+
   my $cust_pkg = '';
   my $svc;
 
@@ -327,6 +349,8 @@ if ( $new->custnum eq '' or $duplicate_of ) {
   
 } else { #create old record object
 
+  $freeside_status = 'Customer edited';
+
   my $old = qsearchs( 'cust_main', { 'custnum' => $new->custnum } ); 
   $error ||= "Old record not found!" unless $old;