add cust_event.no_action flag for events that conditionally execute, #36741
[freeside.git] / FS / FS / part_event / Action / cust_bill_print.pm
index b94e882..e6a27a3 100644 (file)
@@ -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;