=item new HASHREF
-Creates a new invoice event definition. To add the example to the database,
-see L<"insert">.
+Creates a new invoice event definition. To add the invoice event definition to
+the database, see L<"insert">.
Note that this stores the hash reference, not a distinct copy of the hash it
points to. You can ask the object for a copy with the I<hash> method.
or $c =~ /^\s*\$cust_bill\->(comp|realtime_(card|ach|lec)|batch_card|send)\(\);\s*$/
- or $c =~ /^\s*\$cust_bill\->send(_if_newest)?\(\'[\w\-\s]+\'\s*(,\s*\d+\s*,\s*'[\w\@\.\-\+]*'\s*)?\);\s*$/
+ or $c =~ /^\s*\$cust_bill\->send(_if_newest)?\(\'[\w\-\s]+\'\s*(,\s*(\d+|\[\s*\d+(,\s*\d+)*\s*\])\s*,\s*'[\w\@\.\-\+]*'\s*)?\);\s*$/
or $c =~ /^\s*\$cust_main\->apply_payments; \$cust_main->apply_credits; "";\s*$/
or $c =~ /^\s*\$cust_main\->suspend_(if|unless)_pkgpart\([\d\,\s]*\);\s*$/
+ or $c =~ /^\s*\$cust_bill\->cust_suspend_if_balance_over\([\d\.\s]*\);\s*$/
+
or do {
#log
return "illegal eventcode: $c";
if ( $self->plandata =~ /^(agent_)?templatename\s+(.*)$/m ) {
my $name= $2;
- foreach my $file (qw( template latex latexnotes html htmlnotes )) {
+ foreach my $file (qw( template
+ latex latexnotes latexreturnaddress latexfooter
+ latexsmallfooter
+ html htmlnotes htmlreturnaddress htmlfooter
+ ))
+ {
unless ( $conf->exists("invoice_${file}_$name") ) {
$conf->set(
"invoice_${file}_$name" =>
$self->SUPER::check;
}
+=item templatename
+
+Returns the alternate invoice template name, if any, or false if there is
+no alternate template for this invoice event.
+
+=cut
+
+sub templatename {
+ my $self = shift;
+ if ( $self->plan =~ /^send_(alternate|agent)$/
+ && $self->plandata =~ /^(agent_)?templatename (.*)$/m
+ )
+ {
+ $2;
+ } else {
+ '';
+ }
+}
+
+
=back
=head1 BUGS
-Alas.
+The whole "eventcode" idea is bunk. This should be refactored with subclasses
+like part_pkg/ and part_export/
=head1 SEE ALSO