From: Christopher Burger Date: Tue, 22 Jan 2019 02:37:38 +0000 (-0500) Subject: RT# 79352 - fixed so contact replace would not add duplicate cust_contacts. X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=438c813bf5a71dc6c09396acac85656b15139adf RT# 79352 - fixed so contact replace would not add duplicate cust_contacts. --- diff --git a/FS/FS/contact.pm b/FS/FS/contact.pm index 957f96cf8..f59fef927 100644 --- a/FS/FS/contact.pm +++ b/FS/FS/contact.pm @@ -449,7 +449,8 @@ sub replace { ## if found, just add that contact to cust_contact with link_hash credentials ## as email can not be tied to two contacts. my @contact_emails = (); - my @contact_nums = ($self->contactnum,); + my %contact_nums = (); + $contact_nums{$self->contactnum} = '1' if $self->contactnum; if ( $self->get('emailaddress') =~ /\S/ ) { foreach my $email ( split(/\s*,\s*/, $self->get('emailaddress') ) ) { @@ -462,7 +463,7 @@ sub replace { push @contact_emails, $email; } else { - push @contact_nums, $contact->contactnum; + $contact_nums{$contact->contactnum} = '1'; } } @@ -488,9 +489,9 @@ sub replace { # fields. if ( $custnum ) { - foreach my $contactnum (@contact_nums) { + foreach my $contactnum (keys %contact_nums) { - my %hash = ( 'contactnum' => $contactnum, #$self->contactnum, + my %hash = ( 'contactnum' => $contactnum, 'custnum' => $custnum, ); my $error;