add per-agent invoice templates, add per-package suspend invoice events, fix automati...
[freeside.git] / FS / FS / part_bill_event.pm
index 70c8a56..4774b8d 100644 (file)
@@ -37,7 +37,7 @@ FS::Record.  The following fields are currently supported:
 
 =item eventpart - primary key
 
 
 =item eventpart - primary key
 
-=item payby - CARD, BILL, or COMP
+=item payby - CARD, DCRD, CHEK, DCHK, LECB, BILL, or COMP
 
 =item event - event name
 
 
 =item event - event name
 
@@ -124,7 +124,9 @@ sub check {
 
     $c =~ /^\s*\$cust_main\->(suspend|cancel|invoicing_list_addpost|bill|collect)\(\);\s*("";)?\s*$/
 
 
     $c =~ /^\s*\$cust_main\->(suspend|cancel|invoicing_list_addpost|bill|collect)\(\);\s*("";)?\s*$/
 
-      or $c =~ /^\s*\$cust_bill\->(comp|realtime_card|realtime_card_cybercash|batch_card|send)\(\);\s*$/
+      or $c =~ /^\s*\$cust_bill\->(comp|realtime_(card|ach|lec)|realtime_card_cybercash|batch_card|send)\(\);\s*$/
+
+      or $c =~ /^\s*\$cust_bill\->send\(\'\w+\'\);\s*$/
 
       or $c =~ /^\s*\$cust_main\->apply_payments; \$cust_main->apply_credits; "";\s*$/
 
 
       or $c =~ /^\s*\$cust_main\->apply_payments; \$cust_main->apply_credits; "";\s*$/
 
@@ -137,8 +139,8 @@ sub check {
 
   }
 
 
   }
 
-  $self->ut_numbern('eventpart')
-    || $self->ut_enum('payby', [qw( CARD BILL COMP )] )
+  my $error = $self->ut_numbern('eventpart')
+    || $self->ut_enum('payby', [qw( CARD DCRD CHEK DCHK LECB BILL COMP )] )
     || $self->ut_text('event')
     || $self->ut_anything('eventcode')
     || $self->ut_number('seconds')
     || $self->ut_text('event')
     || $self->ut_anything('eventcode')
     || $self->ut_number('seconds')
@@ -147,6 +149,24 @@ sub check {
     || $self->ut_textn('plan')
     || $self->ut_anything('plandata')
   ;
     || $self->ut_textn('plan')
     || $self->ut_anything('plandata')
   ;
+    #|| $self->ut_snumber('seconds')
+  return $error if $error;
+
+  #quelle kludge
+  if ( $self->plandata =~ /^(agent_)?templatename\s+(.*)$/m ) {
+    my $name= $2;
+
+    foreach my $file (qw( template latex latexnotes )) {
+      unless ( $conf->exists("invoice_${file}_$name") ) {
+        $conf->set(
+          "invoice_${file}_$name" =>
+            join("\n", $conf->config("invoice_$file") )
+        );
+      }
+    }
+  }
+
+  $self->SUPER::check;
 }
 
 =back
 }
 
 =back