package FS::cust_bill;
use strict;
-use vars qw( @ISA $conf $invoice_template $money_char );
+use vars qw( @ISA $conf $money_char );
use vars qw( $lpr $invoice_from $smtpmachine );
use vars qw( $processor );
use vars qw( $xaction $E_NoErr );
$money_char = $conf->config('money_char') || '$';
- my @invoice_template = $conf->config('invoice_template')
- or die "cannot load config file invoice_template";
- $invoice_lines = 0;
- foreach ( grep /invoice_lines\(\d+\)/, @invoice_template ) { #kludgy
- /invoice_lines\((\d+)\)/;
- $invoice_lines += $1;
- }
- die "no invoice_lines() functions in template?" unless $invoice_lines;
- $invoice_template = new Text::Template (
- TYPE => 'ARRAY',
- SOURCE => [ map "$_\n", @invoice_template ],
- ) or die "can't create new Text::Template object: $Text::Template::ERROR";
- $invoice_template->compile()
- or die "can't compile template: $Text::Template::ERROR";
-
$lpr = $conf->config('lpr');
$invoice_from = $conf->config('invoice_from');
$smtpmachine = $conf->config('smtpmachine');
=cut
sub send {
- my $self = shift;
+ my($self,$template) = @_;
#my @print_text = $cust_bill->print_text; #( date )
my @invoicing_list = $self->cust_main->invoicing_list;
if ( grep { $_ ne 'POST' } @invoicing_list ) { #email invoice
+ #false laziness w/FS::cust_pay::delete & fs_signup_server
#$ENV{SMTPHOSTS} = $smtpmachine;
$ENV{MAILADDRESS} = $invoice_from;
my $header = new Mail::Header ( [
] );
my $message = new Mail::Internet (
'Header' => $header,
- 'Body' => [ $self->print_text ], #( date)
- #'Debug' => 1,
+ 'Body' => [ $self->print_text('', $template) ], #( date)
);
$!=0;
$message->smtpsend( Host => $smtpmachine )
my $email = $invoicing_list[0];
my( $action1, $action2 ) = split(/\s*\,\s*/, $bop_action );
+
+ my $description = 'Internet Services';
+ if ( $conf->exists('business-onlinepayment-description') ) {
+ my $dtempl = $conf->config('business-onlinepayment-description');
+
+ my $agent = $self->cust_main->agent->agent;
+ my $pkgs = join(', ',
+ map { $_->cust_pkg->part_pkg->pkg }
+ grep { $_->pkgnum } $self->cust_bill_pkg
+ );
+ $description = eval qq("$dtempl");
+
+ }
my $transaction =
new Business::OnlinePayment( $bop_processor, @bop_options );
'login' => $bop_login,
'password' => $bop_password,
'action' => $action1,
- 'description' => 'Internet Services',
+ 'description' => $description,
'amount' => $amount,
'invoice_number' => $self->invnum,
'customer_id' => $self->custnum,
order_number => $ordernum,
amount => $amount,
authorization => $auth,
- description => 'Internet Services',
+ description => $description,
);
$capture->submit();
sub print_text {
- my( $self, $today ) = ( shift, shift );
+ my( $self, $today, $template ) = @_;
$today ||= time;
# my $invnum = $self->invnum;
my $cust_main = qsearchs('cust_main', { 'custnum', $self->custnum } );
push @buf,['Balance Due', $money_char.
sprintf("%10.2f", $balance_due ) ];
+ #create the template
+ my $templatefile = 'invoice_template';
+ $templatefile .= "_$template" if $template;
+ my @invoice_template = $conf->config($templatefile)
+ or die "cannot load config file $templatefile";
+ $invoice_lines = 0;
+ foreach ( grep /invoice_lines\(\d+\)/, @invoice_template ) { #kludgy
+ /invoice_lines\((\d+)\)/;
+ $invoice_lines += $1;
+ }
+ die "no invoice_lines() functions in template?" unless $invoice_lines;
+ my $invoice_template = new Text::Template (
+ TYPE => 'ARRAY',
+ SOURCE => [ map "$_\n", @invoice_template ],
+ ) or die "can't create new Text::Template object: $Text::Template::ERROR";
+ $invoice_template->compile()
+ or die "can't compile template: $Text::Template::ERROR";
+
#setup template variables
-
package FS::cust_bill::_template; #!
use vars qw( $invnum $date $page $total_pages @address $overdue @buf );
$FS::cust_bill::_template::address[$l++] = $cust_main->country
unless $cust_main->country eq 'US';
- #overdue? (variable for the template)
- $FS::cust_bill::_template::overdue = (
- $balance_due > 0
- && $today > $self->_date
-# && $self->printed > 1
- && $self->printed > 0
- );
+ # #overdue? (variable for the template)
+ # $FS::cust_bill::_template::overdue = (
+ # $balance_due > 0
+ # && $today > $self->_date
+ ## && $self->printed > 1
+ # && $self->printed > 0
+ # );
#and subroutine for the template
}
( 1 .. $lines );
}
-
+
+
+ #and fill it in
$FS::cust_bill::_template::page = 1;
my $lines;
my @collect;
=head1 VERSION
-$Id: cust_bill.pm,v 1.21 2002-03-07 14:10:10 ivan Exp $
+$Id: cust_bill.pm,v 1.26 2002-04-07 06:23:29 ivan Exp $
=head1 BUGS