diff options
author | Christopher Burger <burgerc@freeside.biz> | 2019-01-21 21:37:38 -0500 |
---|---|---|
committer | Christopher Burger <burgerc@freeside.biz> | 2019-01-21 21:37:38 -0500 |
commit | 438c813bf5a71dc6c09396acac85656b15139adf (patch) | |
tree | e85515fcccd8c4b044668b3393e498d50fbedf5a | |
parent | 8994fc466c8ef3e7ba30d0a4e54cdf77be667e05 (diff) |
RT# 79352 - fixed so contact replace would not add duplicate cust_contacts.
-rw-r--r-- | FS/FS/contact.pm | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/FS/FS/contact.pm b/FS/FS/contact.pm index 957f96c..f59fef9 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; |