RT# 79352 - fixed insert error where new contacts not tied to customer on insert.
[freeside.git] / FS / FS / contact.pm
index f59fef9..9775e7f 100644 (file)
@@ -168,7 +168,6 @@ sub insert {
   my $existing_contact = '';
   my @contact_emails = ();
   my %contact_nums = ();
-  $contact_nums{$self->contactnum} = '1' if $self->contactnum;
 
   if ( $self->get('emailaddress') =~ /\S/ ) {
 
@@ -202,6 +201,8 @@ sub insert {
     return $error;
   }
 
+  $contact_nums{$self->contactnum} = '1' if $self->contactnum;
+
   my $cust_contact = '';
   # if $self->custnum was set, then the customer-specific properties
   # (custnum, classnum, invoice_dest, selfservice_access, comment) are in
@@ -468,6 +469,13 @@ sub replace {
 
     }
 
+    ## were all emails duplicates?  if so reset original emails
+    if (scalar @contact_emails < 1 && scalar (keys %contact_nums) > 1) {
+      foreach (qsearch('contact_email', {'contactnum' => $self->contactnum})) {
+        push @contact_emails, $_->emailaddress;
+      }
+    }
+
     my $emails = join(' , ', @contact_emails);
     $self->emailaddress($emails);