oops, that's better
[freeside.git] / FS / FS / svc_acct.pm
index ddd6aa9..28ef949 100644 (file)
@@ -237,7 +237,7 @@ sub insert {
     $self->svcpart($cust_svc->svcpart);
   }
 
-  my $error = $self->_check_duplicate;
+  $error = $self->_check_duplicate;
   if ( $error ) {
     $dbh->rollback if $oldAutoCommit;
     return $error;
@@ -863,12 +863,12 @@ sub _check_duplicate {
 
   my $global_unique = $conf->config('global_unique-username');
 
-  my @dup_user = grep { $svcpart != $_->svcpart }
+  my @dup_user = grep { !$self->svcnum || $_->svcnum != $self->svcnum }
                  qsearch( 'svc_acct', { 'username' => $self->username } );
   return gettext('username_in_use')
     if $global_unique eq 'username' && @dup_user;
 
-  my @dup_userdomain = grep { $svcpart != $_->svcpart }
+  my @dup_userdomain = grep { !$self->svcnum || $_->svcnum != $self->svcnum }
                        qsearch( 'svc_acct', { 'username' => $self->username,
                                               'domsvc'   => $self->domsvc } );
   return gettext('username_in_use')