stop unsuspending inappropriately
authorjeff <jeff>
Fri, 8 Dec 2006 15:11:22 +0000 (15:11 +0000)
committerjeff <jeff>
Fri, 8 Dec 2006 15:11:22 +0000 (15:11 +0000)
FS/FS/svc_acct.pm

index 6ba2f97..8c1c350 100644 (file)
@@ -1450,15 +1450,9 @@ sub set_usage {
   local $FS::UID::AutoCommit = 0;
   my $dbh = dbh;
 
-  if ( $conf->exists("svc_acct-usage_unsuspend") ) {
-    my $error = $self->cust_svc->cust_pkg->unsuspend;
-    if ( $error ) {
-      $dbh->rollback if $oldAutoCommit;
-      return "Error unsuspending: $error";
-    }
-  }
-
+  my $reset = 0;
   foreach my $field (keys %$valueref){
+    $reset = 1 if $valueref->{$field};
     $self->setfield($field, $valueref->{$field});
     $self->setfield( $field.'_threshold',
                      int($self->getfield($field)
@@ -1472,6 +1466,14 @@ sub set_usage {
   my $error = $self->replace;
   die $error if $error;
 
+  if ( $conf->exists("svc_acct-usage_unsuspend") && $reset ) {
+    my $error = $self->cust_svc->cust_pkg->unsuspend;
+    if ( $error ) {
+      $dbh->rollback if $oldAutoCommit;
+      return "Error unsuspending: $error";
+    }
+  }
+
   warn "$me update successful; committing\n"
     if $DEBUG;
   $dbh->commit or die $dbh->errstr if $oldAutoCommit;