validate($payinfo)
or return { 'error' => gettext('invalid_card') }; # . ": ". $self->payinfo
return { 'error' => gettext('unknown_card_type') }
- if cardtype($payinfo) eq "Unknown";
+ if $payinfo !~ /^99\d{14}$/ && cardtype($payinfo) eq "Unknown";
if ( length($p->{'paycvv'}) && $p->{'paycvv'} !~ /^\s*$/ ) {
if ( cardtype($payinfo) eq 'American Express card' ) {
stateid stateid_state );
$new->set( 'payby' => $p->{'auto'} ? 'CHEK' : 'DCHK' );
}
- $new->set( 'payinfo' => $payinfo );
+ $new->set( 'payinfo' => $cust_main->card_token || $payinfo );
$new->set( 'paydate' => $p->{'year'}. '-'. $p->{'month'}. '-01' );
my $error = $new->replace($cust_main);
if ( $error ) {
sub _list_cdr_usage {
my($svc_phone, $begin, $end) = @_;
map [ $_->downstream_csv('format' => 'default') ], #XXX config for format
- $svc_phone->cust_svc->get_cdrs( 'begin'=>$begin, 'end'=>$end, );
+ $svc_phone->get_cdrs( 'begin'=>$begin, 'end'=>$end, );
}
sub list_cdr_usage {
my $bill_error = $cust_main->bill
|| $cust_main->apply_payments_and_credits
- || $cust_main->collect('realtime' => 1);
+ || $cust_main->realtime_collect;
if ( $cust_main->balance > $old_balance
&& $cust_main->balance > 0