summaryrefslogtreecommitdiff
path: root/FS/FS/part_event/Action
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2016-04-06 14:09:42 -0700
committerMark Wells <mark@freeside.biz>2016-04-06 14:10:50 -0700
commit4fcc2ecff984d1032cef03b7345c460024a345c9 (patch)
treecab771f97f82c0be433ccdfa9f980b39a79f7a02 /FS/FS/part_event/Action
parent26e430087cb3edc1ea2d4a7e6ee2d7a3214a017e (diff)
add cust_event.no_action flag for events that conditionally execute, #36741
Diffstat (limited to 'FS/FS/part_event/Action')
-rw-r--r--FS/FS/part_event/Action/cust_bill_email.pm10
-rw-r--r--FS/FS/part_event/Action/cust_bill_print.pm14
2 files changed, 19 insertions, 5 deletions
diff --git a/FS/FS/part_event/Action/cust_bill_email.pm b/FS/FS/part_event/Action/cust_bill_email.pm
index 3331a4c..80bcaa1 100644
--- a/FS/FS/part_event/Action/cust_bill_email.pm
+++ b/FS/FS/part_event/Action/cust_bill_email.pm
@@ -20,12 +20,18 @@ sub option_fields {
sub default_weight { 51; }
sub do_action {
- my( $self, $cust_bill ) = @_;
+ my( $self, $cust_bill, $cust_event ) = @_;
my $cust_main = $cust_bill->cust_main;
$cust_bill->set('mode' => $self->option('modenum'));
- $cust_bill->email unless $cust_main->invoice_noemail;
+ if ( $cust_main->invoice_noemail ) {
+ # what about if the customer has no email dest?
+ $cust_event->set('no_action', 'Y');
+ return "customer has invoice_noemail flag";
+ } else {
+ $cust_bill->email;
+ }
}
1;
diff --git a/FS/FS/part_event/Action/cust_bill_print.pm b/FS/FS/part_event/Action/cust_bill_print.pm
index b94e882..e6a27a3 100644
--- a/FS/FS/part_event/Action/cust_bill_print.pm
+++ b/FS/FS/part_event/Action/cust_bill_print.pm
@@ -24,14 +24,22 @@ sub option_fields {
sub default_weight { 51; }
sub do_action {
- my( $self, $cust_bill ) = @_;
+ my( $self, $cust_bill, $cust_event ) = @_;
#my $cust_main = $self->cust_main($cust_bill);
my $cust_main = $cust_bill->cust_main;
$cust_bill->set('mode' => $self->option('modenum'));
- $cust_bill->print unless $self->option('skip_nopost')
- && ! grep { $_ eq 'POST' } $cust_main->invoicing_list;
+ if ( $self->option('skip_nopost')
+ && ! grep { $_ eq 'POST' } $cust_main->invoicing_list
+ ) {
+ # then skip customers
+ $cust_event->set('no_action', 'Y');
+ return "customer doesn't receive postal invoices"; # as statustext
+
+ } else {
+ $cust_bill->print;
+ }
}
1;