if ( $payby ) {
if ( $payby eq 'CHEK' || $payby eq 'DCHK' ) {
- $cgi->param('payinfo',
- $cgi->param('payinfo1'). '@'. $cgi->param('payinfo2') );
+ my $payinfo = $cgi->param('payinfo1'). '@';
+ $payinfo .= $cgi->param('payinfo3').'.'
+ if $conf->config('echeck-country') eq 'CA';
+ $payinfo .= $cgi->param('payinfo2');
+ $cgi->param('payinfo',$payinfo);
}
$cgi->param('paydate',
$cgi->param( 'exp_month' ). '-'. $cgi->param( 'exp_year' ) );
my $new = new FS::cust_main ( {
map {
$_, scalar($cgi->param($_))
-# } qw(custnum agentnum last first ss company address1 address2 city county
-# state zip daytime night fax payby payinfo paydate payname tax
-# otaker refnum)
} fields('cust_main')
} );
if ( $dt ) {
$parsed = $dt->epoch;
} else {
- # $error ||= $cgi->param('birthdate') . " is an invalid birthdate:" . $parser->errmsg;
$error ||= "Invalid $dfield: $value";
}
'pkgpart' => $pkgpart,
'locationnum' => scalar($cgi->param('locationnum')),
} );
- #$error ||= $cust_pkg->check;
- #$cust_svc = new FS::cust_svc ( { 'svcpart' => $svcpart } );
-
- #$error ||= $cust_svc->check;
my $part_svc = qsearchs('part_svc', { 'svcpart' => $svcpart } );
my $svcdb = $part_svc->svcdb;
die "$svcdb not handled on new customer yet";
}
- #$error ||= $svc_acct->check;
-
}
use Tie::RefHash;
if ($new->stateid =~ /^xxx/) {
$new->stateid($old->stateid);
}
- if ($new->payby =~ /^(CARD|DCRD)$/ && $new->payinfo =~ /xx/) {
+ if ( $new->payby =~ /^(CARD|DCRD)$/
+ && ( $new->payinfo =~ /xx/
+ || $new->payinfo =~ /^\s*N\/A\s+\(tokenized\)\s*$/
+ )
+ )
+ {
$new->payinfo($old->payinfo);
- } elsif ($new->payby =~ /^(CHEK|DCHK)$/ && $new->payinfo =~ /xx/) {
+
+ } elsif ( $new->payby =~ /^(CHEK|DCHK)$/ && $new->payinfo =~ /xx/ ) {
#fix for #3085 "edit of customer's routing code only surprisingly causes
#nothing to happen...
# this probably won't do the right thing when we don't have the