diff options
author | Mark Wells <mark@freeside.biz> | 2016-04-08 15:20:05 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2016-04-08 15:20:15 -0700 |
commit | 46b8fda3ffb17a2aabf7c9cbee68e988400d6273 (patch) | |
tree | 8b7cde23192087231f926e24ee1971e7b0dbadea /FS/FS/cust_pkg.pm | |
parent | 31cbce8b195f2aa5b52f066f9d3959fd8d5321cb (diff) |
prevent package change from starting the new package on hold, #38564
Diffstat (limited to 'FS/FS/cust_pkg.pm')
-rw-r--r-- | FS/FS/cust_pkg.pm | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm index f2bf644..31f2e82 100644 --- a/FS/FS/cust_pkg.pm +++ b/FS/FS/cust_pkg.pm @@ -2139,7 +2139,7 @@ sub change { my $time = time; - $hash{'setup'} = $time if $self->setup; + $hash{'setup'} = $time if $self->get('setup'); $hash{'change_date'} = $time; $hash{"change_$_"} = $self->$_() @@ -2160,16 +2160,18 @@ sub change { my $unused_credit = 0; my $keep_dates = $opt->{'keep_dates'}; - # Special case. If the pkgpart is changing, and the customer is - # going to be credited for remaining time, don't keep setup, bill, - # or last_bill dates, and DO pass the flag to cancel() to credit - # the customer. + # Special case. If the pkgpart is changing, and the customer is going to be + # credited for remaining time, don't keep setup, bill, or last_bill dates, + # and DO pass the flag to cancel() to credit the customer. If the old + # package had a setup date, set the new package's setup to the package + # change date so that it has the same status as before. if ( $opt->{'pkgpart'} and $opt->{'pkgpart'} != $self->pkgpart and $self->part_pkg->option('unused_credit_change', 1) ) { $unused_credit = 1; $keep_dates = 0; - $hash{$_} = '' foreach qw(setup bill last_bill); + $hash{'last_bill'} = ''; + $hash{'bill'} = ''; } if ( $keep_dates ) { |