diff options
author | Mark Wells <mark@freeside.biz> | 2015-04-13 15:46:40 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2015-04-13 15:46:40 -0700 |
commit | f279524a0b3266ae4fb342ab8ee26d8918c86c75 (patch) | |
tree | c9e14759fdf9dac02bc41edf62ff4decab318b85 /FS | |
parent | 3599ddd6c7990976c7c7a902255fa81a58d2bbe0 (diff) |
during scheduled package changes, keep setup and bill dates, #30223
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/cust_pkg.pm | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm index 8153bcc22..6fbc2d6eb 100644 --- a/FS/FS/cust_pkg.pm +++ b/FS/FS/cust_pkg.pm @@ -2071,6 +2071,7 @@ 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 @@ -2131,6 +2132,15 @@ sub change { $cust_pkg->set("change_$_", $self->get($_)); } $cust_pkg->set('change_date', $time); + $cust_pkg->set('start_date', ''); # it's starting now + # if we are crediting unused time, then create the new package as a new + # package, charge its setup fee, etc. (same as an immediate change) + if (! $unused_credit) { + foreach my $date ( qw(setup bill last_bill susp adjourn resume + contract_end ) ) { + $cust_pkg->set($date, $self->getfield($date)); + } + } $error = $cust_pkg->replace; } else { |