invoice configurations, #24723
[freeside.git] / FS / FS / part_event / Action / cust_bill_send_agent.pm
index 670a32c..bbb757b 100644 (file)
@@ -7,6 +7,9 @@ sub description {
   'Send invoice (email/print/fax) with alternate template, for specific agents';
 }
 
+# this event is just cust_bill_send_alternate + an implicit (and inefficient)
+# 'agent' condition
+
 sub eventtable_hashref {
   { 'cust_bill' => 1 };
 }
@@ -17,6 +20,9 @@ sub option_fields {
                               type     => 'select-agent',
                               multiple => 1
                             },
+    'modenum' => {  label => 'Invoice mode',
+                    type  => 'select-invoice_mode',
+                 },
     'agent_templatename' => { label    => 'Template',
                               type     => 'select-invoice_template',
                             },
@@ -32,10 +38,15 @@ sub do_action {
   #my $cust_main = $self->cust_main($cust_bill);
   my $cust_main = $cust_bill->cust_main;
 
+  my %agentnums = map { $_=>1 } split(/\s*,\s*/, $self->option('agentnum'));
+  if (keys(%agentnums) and !exists($agentnums{$cust_main->agentnum})) {
+    return;
+  }
+
+  $cust_bill->set('mode' => $self->option('modenum'));
   $cust_bill->send(
-    $self->option('agent_templatename'),
-    [ split(/\s*,\s*/, $self->option('agentnum') ) ],
-    $self->option('agent_invoice_from'),
+    'template'      => $self->option('agent_templatename'),
+    'invoice_from'  => $self->option('agent_invoice_from'),
   );
 }