TEMPLATENAME, if specified, is the name of a suffix for alternate invoices.
AGENTNUM, if specified, means that this invoice will only be sent for customers
-of the specified agent.
+of the specified agent or agent(s). AGENTNUM can be a scalar agentnum (for a
+single agent) or an arrayref of agentnums.
INVOICE_FROM, if specified, overrides the default email invoice From: address.
sub send {
my $self = shift;
my $template = scalar(@_) ? shift : '';
- return 'N/A' if scalar(@_) && $_[0] && $self->cust_main->agentnum != shift;
+ if ( scalar(@_) && $_[0] ) {
+ my $agentnums = ref($_[0]) ? shift : [ shift ];
+ return 'N/A' unless grep { $_ == $self->cust_main->agentnum } @$agentnums;
+ }
my $invoice_from =
scalar(@_)
my @invoicing_list = $self->cust_main->invoicing_list;
- $self->send_email($template, $invoice_from)
+ $self->email($template, $invoice_from)
if grep { $_ !~ /^(POST|FAX)$/ } @invoicing_list or !@invoicing_list;
- $self->send_print($template)
+ $self->print($template)
if grep { $_ eq 'POST' } @invoicing_list; #postal
- $self->send_fax($template)
+ $self->fax($template)
if grep { $_ eq 'FAX' } @invoicing_list; #fax
'';
}
my $returnaddress;
- if ( $conf->exists('invoice_latexreturnaddress')
- && length($conf->exists('invoice_latexreturnaddress'))
- )
- {
- $returnaddress = join("\n", $conf->config('invoice_latexreturnaddress') );
+ if ( length($conf->config_orbase('invoice_latexreturnaddress', $template) ) {
+ $returnaddress = join("\n",
+ $conf->config_orbase('invoice_latexreturnaddress', $template)
+ );
} else {
$returnaddress = '~';
}
# 'conf_dir' => "$FS::UID::conf_dir/conf.$FS::UID::datasrc",
);
- $invoice_data{'returnaddress'} = $conf->exists('invoice_htmlreturnaddress')
- ? join("\n", $conf->config('invoice_htmlreturnaddress') )
- : join("\n", map {
- s/~/ /g;
- s/\\\\\*?\s*$/<BR>/;
- s/\\hyphenation\{[\w\s\-]+\}//;
- $_;
- }
- $conf->config('invoice_latexreturnaddress')
- );
+ $invoice_data{'returnaddress'} =
+ length( $conf->config_orbase('invoice_htmlreturnaddress', $template) )
+ ? join("\n", $conf->config('invoice_htmlreturnaddress', $template) )
+ : join("\n", map {
+ s/~/ /g;
+ s/\\\\\*?\s*$/<BR>/;
+ s/\\hyphenation\{[\w\s\-]+\}//;
+ $_;
+ }
+ $conf->config_orbase('invoice_latexreturnaddress', $template)
+ );
my $countrydefault = $conf->config('countrydefault') || 'US';
if ( $cust_main->country eq $countrydefault ) {