From: ivan Date: Sat, 4 Sep 2004 10:02:51 +0000 (+0000) Subject: first try at duplicate checking on new export associations X-Git-Tag: BEFORE_FINAL_MASONIZE~959 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=47d18732ecb7f43fbed2c8f94226c509fe887a53 first try at duplicate checking on new export associations --- diff --git a/FS/FS/export_svc.pm b/FS/FS/export_svc.pm index 9a7178e6e..f610b3c79 100644 --- a/FS/FS/export_svc.pm +++ b/FS/FS/export_svc.pm @@ -86,6 +86,13 @@ sub insert { return $error if $error; #check for duplicates! +#TODO: +#- XXX here +# +#- have edit/process/part_svc.cgi redirect with error back to +#edit/part_svc.cgi rather than eidiot out +# +#- rewrite in SQL for efficiency my $label = ''; my $method = ''; @@ -105,11 +112,14 @@ sub insert { warn "WARNING: XXX fill in this warning"; } + #warn "$method\n"; if ( $method ) { my @current_svc = $self->part_export->svc_x; + #warn "current: ". scalar(@current_svc). " $current_svc[0]\n"; my @new_svc = $self->part_svc->svc_x; + #warn "new: ". scalar(@new_svc). " $new_svc[0]\n"; my %cur_svc = map { $_->$method() => 1 } @current_svc; - my @dup_svc = grep { $cur_svc{$_->method()} } @new_svc; + my @dup_svc = grep { $cur_svc{$_->$method()} } @new_svc; if ( @dup_svc ) { #aye, that's the rub #error out for now, eventually accept different options of adjustments @@ -117,10 +127,10 @@ sub insert { $dbh->rollback if $oldAutoCommit; return "Can't export ". $self->part_svc->svcpart.':'.$self->part_svc->svc. " service to ". - $self->part_export->exportnum.':'.$self->exporttype. - ' on '. $self->machine. - " : Duplicate $label: ". - join(', ', sort map { $_->method() } @dup_svc ); + $self->part_export->exportnum.':'.$self->part_export->exporttype. + ' on '. $self->part_export->machine. + ' : '. scalar(@dup_svc). " duplicate $label: ". + join(', ', sort map { $_->$method() } @dup_svc ); #XXX eventually a sort sub so usernames and domains are default alpha, username@domain is domain first then username, and uid is numeric } }