X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_event%2FAction%2Fsuspend.pm;h=6a8483680c3c351bf969e2245c0d9ced2e236fde;hp=ec440ffd22e44b0404f4844b06eea1cf930ea37e;hb=ffc8927ad1df5a565256bdb47210006afa4b2f78;hpb=eb4ff7f73c5d4bdf74a3472448b5a195598ff4cd diff --git a/FS/FS/part_event/Action/suspend.pm b/FS/FS/part_event/Action/suspend.pm index ec440ffd2..6a8483680 100644 --- a/FS/FS/part_event/Action/suspend.pm +++ b/FS/FS/part_event/Action/suspend.pm @@ -3,29 +3,41 @@ package FS::part_event::Action::suspend; use strict; use base qw( FS::part_event::Action ); -sub description { - 'Suspend'; -} +sub description { 'Suspend all of this customer\'s packages'; } sub option_fields { ( - 'reasonnum' => { 'label' => 'Reason', - 'type' => 'select-reason', - 'reason_class' => 'S', - }, + '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', + }, ); -}; - -sub default_weight { - 10; } +sub default_weight { 10; } + sub do_action { my( $self, $cust_object ) = @_; my $cust_main = $self->cust_main($cust_object); - my @err = $cust_main->suspend( 'reason' => $self->option('reasonnum') ); + my @err = $cust_main->suspend( + '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);