summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Burger <burgerc@freeside.biz>2019-01-21 21:37:38 -0500
committerChristopher Burger <burgerc@freeside.biz>2019-01-21 21:37:38 -0500
commit438c813bf5a71dc6c09396acac85656b15139adf (patch)
treee85515fcccd8c4b044668b3393e498d50fbedf5a
parent8994fc466c8ef3e7ba30d0a4e54cdf77be667e05 (diff)
RT# 79352 - fixed so contact replace would not add duplicate cust_contacts.
-rw-r--r--FS/FS/contact.pm9
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;