vpopmail restart export option
[freeside.git] / FS / FS / svc_domain.pm
index a9a2fd0..0d71b27 100644 (file)
@@ -251,10 +251,6 @@ sub delete {
   return "Can't delete a domain which has accounts!"
     if qsearch( 'svc_acct', { 'domsvc' => $self->svcnum } );
 
-  return "Can't delete a domain with (svc_acct_sm) mail aliases!"
-    if defined( $FS::Record::dbdef->table('svc_acct_sm') )
-       && qsearch('svc_acct_sm', { 'domsvc' => $self->svcnum } );
-
   #return "Can't delete a domain with (domain_record) zone entries!"
   #  if qsearch('domain_record', { 'svcnum' => $self->svcnum } );
 
@@ -269,12 +265,6 @@ sub delete {
   local $FS::UID::AutoCommit = 0;
   my $dbh = dbh;
 
-  my $error = $self->SUPER::delete;
-  if ( $error ) {
-    $dbh->rollback if $oldAutoCommit;
-    return $error;
-  }
-
   foreach my $domain_record ( reverse $self->domain_record ) {
     my $error = $domain_record->delete;
     if ( $error ) {
@@ -282,6 +272,14 @@ sub delete {
       return $error;
     }
   }
+
+  my $error = $self->SUPER::delete;
+  if ( $error ) {
+    $dbh->rollback if $oldAutoCommit;
+    return $error;
+  }
+
+  $dbh->commit or die $dbh->errstr if $oldAutoCommit;
 }
 
 =item replace OLD_RECORD
@@ -293,13 +291,12 @@ returns the error, otherwise returns false.
 
 sub replace {
   my ( $new, $old ) = ( shift, shift );
-  my $error;
 
   return "Can't change domain - reorder."
     if $old->getfield('domain') ne $new->getfield('domain'); 
 
-  $new->SUPER::replace($old);
-
+  my $error = $new->SUPER::replace($old);
+  return $error if $error;
 }
 
 =item suspend
@@ -448,10 +445,6 @@ sub submit_internic {
 
 =back
 
-=head1 VERSION
-
-$Id: svc_domain.pm,v 1.29 2002-05-22 18:44:01 ivan Exp $
-
 =head1 BUGS
 
 All BIND/DNS fields should be included (and exported).