sub realtime_ach {
my $self = shift;
$self->realtime_bop(
- 'CHECK',
+ 'ECHECK',
$ach_processor,
$ach_login,
$ach_password,
=cut
-sub realtime_ach {
+sub realtime_lec {
my $self = shift;
$self->realtime_bop(
'LEC',
$address .= ", ". $cust_main->address2 if $cust_main->address2;
my($payname, $payfirst, $paylast);
- if ( $cust_main->payname && $method ne 'CHECK' ) {
+ if ( $cust_main->payname && $method ne 'ECHECK' ) {
$payname = $cust_main->payname;
$payname =~ /^\s*([\w \,\.\-\']*)?\s+([\w\,\.\-\']+)\s*$/
or do {
$content{card_number} = $cust_main->payinfo;
$cust_main->paydate =~ /^\d{2}(\d{2})[\/\-](\d+)[\/\-]\d+$/;
$content{expiration} = "$2/$1";
- } elsif ( $method eq 'CHECK' ) {
+ } elsif ( $method eq 'ECHECK' ) {
my($account_number,$routing_code) = $cust_main->payinfo;
( $content{account_number}, $content{routing_code} ) =
split('@', $cust_main->payinfo);
if ( $transaction->is_success() ) {
my %method2payby = (
- 'CC' => 'CARD',
- 'CHECK' => 'CHEK',
- 'LEC' => 'LECB',
+ 'CC' => 'CARD',
+ 'ECHECK' => 'CHEK',
+ 'LEC' => 'LECB',
);
my $cust_pay = new FS::cust_pay ( {
or die "cannot load config file $templatefile";
$invoice_lines = 0;
my $wasfunc = 0;
- foreach ( grep /invoice_lines\(\d+\)/, @invoice_template ) { #kludgy
- /invoice_lines\((\d+)\)/;
- $invoice_lines += $1;
+ foreach ( grep /invoice_lines\(\d*\)/, @invoice_template ) { #kludgy
+ /invoice_lines\((\d*)\)/;
+ $invoice_lines += $1 || scalar(@buf);
$wasfunc=1;
}
die "no invoice_lines() functions in template?" unless $wasfunc;
# );
#and subroutine for the template
-
sub FS::cust_bill::_template::invoice_lines {
- my $lines = shift or return @buf;
+ my $lines = shift || scalar(@buf);
map {
scalar(@buf) ? shift @buf : [ '', '' ];
}
( 1 .. $lines );
}
-
#and fill it in
$FS::cust_bill::_template::page = 1;
my $lines;
=head1 VERSION
-$Id: cust_bill.pm,v 1.52 2002-11-19 09:51:58 ivan Exp $
+$Id: cust_bill.pm,v 1.57 2002-12-17 21:31:20 ivan Exp $
=head1 BUGS