diff options
author | ivan <ivan> | 2006-08-21 17:45:31 +0000 |
---|---|---|
committer | ivan <ivan> | 2006-08-21 17:45:31 +0000 |
commit | d66c26814aef9280310671cd48e68ef82c387e99 (patch) | |
tree | d13b0b92f5ddfa60a8d35e02b9f6d22cd19dc5c1 | |
parent | 620cfcdb419e8bcdcbaecb2b011e5abd0ecc34e0 (diff) |
search for existing advertising sources before adding a new one
-rw-r--r-- | FS/FS/cust_main.pm | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index 9624180..9211832 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -4466,16 +4466,21 @@ sub batch_import { if ( $field eq 'refnum' && $columns[0] !~ /^\s*(\d+)\s*$/ ) { my $referral = $columns[0]; - my $part_referral = new FS::part_referral { - 'referral' => $referral, - 'agentnum' => $agentnum, - }; - - my $error = $part_referral->insert; - if ( $error ) { - $dbh->rollback if $oldAutoCommit; - return "can't auto-insert advertising source: $referral: $error"; + my %hash = ( 'referral' => $referral, + 'agentnum' => $agentnum, + ); + + my $part_referral = qsearchs('part_referral', \%hash ) + || new FS::part_referral \%hash; + + unless ( $part_referral->refnum ) { + my $error = $part_referral->insert; + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return "can't auto-insert advertising source: $referral: $error"; + } } + $columns[0] = $part_referral->refnum; } |