[freeside-commits] branch master updated. 7f97d2688290e99de6aecec08a32254dae365105

Jonathan Prykop jonathan at 420.am
Wed Jun 29 21:58:30 PDT 2016


The branch, master has been updated
       via  7f97d2688290e99de6aecec08a32254dae365105 (commit)
      from  74973314e229399b05723de7b0ac3fce7a09db07 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 7f97d2688290e99de6aecec08a32254dae365105
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Wed Jun 29 23:57:56 2016 -0500

    RT#33790: Proper handling for aborting a suspend/cancel

diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm
index 456847e..e3fb155 100644
--- a/FS/FS/cust_pkg.pm
+++ b/FS/FS/cust_pkg.pm
@@ -1400,14 +1400,15 @@ sub uncancel {
 
 =item unexpire
 
-Cancels any pending expiration (sets the expire field to null).
+Cancels any pending expiration (sets the expire field to null)
+for this package and any supplemental packages.
 
 If there is an error, returns the error, otherwise returns false.
 
 =cut
 
 sub unexpire {
-  my( $self, %options ) = @_;
+  my( $self ) = @_;
   my $error;
 
   my $oldAutoCommit = $FS::UID::AutoCommit;
@@ -1437,6 +1438,14 @@ sub unexpire {
     return $error;
   }
 
+  foreach my $supp_pkg ( $self->supplemental_pkgs ) {
+    $error = $supp_pkg->unexpire;
+    if ( $error ) {
+      $dbh->rollback if $oldAutoCommit;
+      return "unexpiring supplemental pkg#".$supp_pkg->pkgnum.": $error";
+    }
+  }
+
   $dbh->commit or die $dbh->errstr if $oldAutoCommit;
 
   ''; #no errors
@@ -2044,14 +2053,15 @@ sub unsuspend {
 
 =item unadjourn
 
-Cancels any pending suspension (sets the adjourn field to null).
+Cancels any pending suspension (sets the adjourn field to null)
+for this package and any supplemental packages.
 
 If there is an error, returns the error, otherwise returns false.
 
 =cut
 
 sub unadjourn {
-  my( $self, %options ) = @_;
+  my( $self ) = @_;
   my $error;
 
   my $oldAutoCommit = $FS::UID::AutoCommit;
@@ -2088,6 +2098,14 @@ sub unadjourn {
     return $error;
   }
 
+  foreach my $supp_pkg ( $self->supplemental_pkgs ) {
+    $error = $supp_pkg->unadjourn;
+    if ( $error ) {
+      $dbh->rollback if $oldAutoCommit;
+      return "unadjourning supplemental pkg#".$supp_pkg->pkgnum.": $error";
+    }
+  }
+
   $dbh->commit or die $dbh->errstr if $oldAutoCommit;
 
   ''; #no errors

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/cust_pkg.pm |   26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)




More information about the freeside-commits mailing list