From: Ivan Kohler <ivan@freeside.biz>
Date: Tue, 10 Jan 2017 02:17:31 +0000 (-0800)
Subject: fix "unable to transfer all services" error when changing a package before it is... 
X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=133546cdadf999b58a43e8e1b8ceb5f493e187d6

fix "unable to transfer all services" error when changing a package before it is billed, RT#73377
---

diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm
index 819dadeb6..aedfe9c75 100644
--- a/FS/FS/cust_pkg.pm
+++ b/FS/FS/cust_pkg.pm
@@ -4358,8 +4358,10 @@ sub transfer {
     $target{$pkg_svc->svcpart} = $pkg_svc->quantity * ( $dest->quantity || 1 );
   }
 
-  foreach my $cust_svc ($dest->cust_svc) {
-    $target{$cust_svc->svcpart}--;
+  unless ( $self->pkgnum == $dest->pkgnum ) {
+    foreach my $cust_svc ($dest->cust_svc) {
+      $target{$cust_svc->svcpart}--;
+    }
   }
 
   my %svcpart2svcparts = ();