[freeside-commits] branch master updated. ffc8927ad1df5a565256bdb47210006afa4b2f78
Ivan Kohler
ivan at freeside.biz
Thu Oct 24 19:57:33 PDT 2019
The branch, master has been updated
via ffc8927ad1df5a565256bdb47210006afa4b2f78 (commit)
from 3d9bb75680d19cb00307e57f4df2ac1c3514cd85 (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 ffc8927ad1df5a565256bdb47210006afa4b2f78
Author: Ivan Kohler <ivan at freeside.biz>
Date: Thu Oct 24 19:55:37 2019 -0700
suspend event option to skip packages with a start_date, RT#83847
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm
index 57d598a74..9e305c72a 100644
--- a/FS/FS/cust_main.pm
+++ b/FS/FS/cust_main.pm
@@ -2075,8 +2075,14 @@ Returns a list: an empty list on success or a list of errors.
=cut
sub suspend {
- my $self = shift;
- grep { $_->suspend(@_) } $self->unsuspended_pkgs;
+ my($self, %opt) = @_;
+
+ my @pkgs = $self->unsuspended_pkgs;
+
+ @pkgs = grep { ! $_->get('start_date') } @pkgs
+ if $opt{skip_future_startdate};
+
+ grep { $_->suspend(%opt) } @pkgs;
}
=item suspend_if_pkgpart HASHREF | PKGPART [ , PKGPART ... ]
diff --git a/FS/FS/part_event/Action/suspend.pm b/FS/FS/part_event/Action/suspend.pm
index 84a710158..6a8483680 100644
--- a/FS/FS/part_event/Action/suspend.pm
+++ b/FS/FS/part_event/Action/suspend.pm
@@ -7,14 +7,21 @@ sub description { 'Suspend all of this customer\'s packages'; }
sub option_fields {
(
- 'reasonnum' => { 'label' => 'Reason',
- 'type' => 'select-reason',
- 'reason_class' => 'S',
- },
- 'suspend_bill' => { 'label' => 'Continue recurring billing while suspended',
- 'type' => 'checkbox',
- 'value' => 'Y',
- },
+ 'reasonnum' => {
+ 'label' => 'Reason',
+ 'type' => 'select-reason',
+ 'reason_class' => 'S',
+ },
+ 'suspend_bill' => {
+ 'label' => 'Continue recurring billing while suspended',
+ 'type' => 'checkbox',
+ 'value' => 'Y',
+ },
+ 'skip_future_startdate' => {
+ 'label' => "Don't suspend packages with a future start date",
+ 'type' => 'checkbox',
+ 'value' => 'Y',
+ },
);
}
@@ -26,8 +33,10 @@ sub do_action {
my $cust_main = $self->cust_main($cust_object);
my @err = $cust_main->suspend(
- 'reason' => $self->option('reasonnum'),
- 'options' => { 'suspend_bill' => $self->option('suspend_bill') },
+ 'skip_future_startdate' => $self->option('skip_future_startdate'),
+ 'reason' => $self->option('reasonnum'),
+ 'options' => { 'suspend_bill' => $self->option('suspend_bill')
+ },
);
die join(' / ', @err) if scalar(@err);
-----------------------------------------------------------------------
Summary of changes:
FS/FS/cust_main.pm | 10 ++++++++--
FS/FS/part_event/Action/suspend.pm | 29 +++++++++++++++++++----------
2 files changed, 27 insertions(+), 12 deletions(-)
More information about the freeside-commits
mailing list