From: ivan Date: Mon, 21 Aug 2006 17:45:31 +0000 (+0000) Subject: search for existing advertising sources before adding a new one X-Git-Tag: BEFORE_FINAL_MASONIZE~9 X-Git-Url: http://git.freeside.biz/gitweb/?a=commitdiff_plain;h=d66c26814aef9280310671cd48e68ef82c387e99;p=freeside.git search for existing advertising sources before adding a new one --- diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index 96241801e..921183216 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; }