X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fcust_pay_void.pm;h=f1193cd24878f6fa30d33d0ad90115a881450218;hp=3a30acbac7b81c3a3b007798d74c877ed06956f8;hb=395cc72629d31c8dcd138acf423e66d2d73d89d2;hpb=20083b23d487f90b27f228262171152e98c5d9fc diff --git a/FS/FS/cust_pay_void.pm b/FS/FS/cust_pay_void.pm index 3a30acbac..f1193cd24 100644 --- a/FS/FS/cust_pay_void.pm +++ b/FS/FS/cust_pay_void.pm @@ -207,11 +207,12 @@ sub check { $payinfo =~ s/\D//g; $self->payinfo($payinfo); if ( $self->payinfo ) { - $self->payinfo =~ /^(\d{13,16})$/ + $self->payinfo =~ /^(\d{13,16}|\d{8,9})$/ or return "Illegal (mistyped?) credit card number (payinfo)"; $self->payinfo($1); validate($self->payinfo) or return "Illegal credit card number"; - return "Unknown card type" if cardtype($self->payinfo) eq "Unknown"; + return "Unknown card type" if $self->payinfo !~ /^99\d{14}$/ #token + && cardtype($self->payinfo) eq "Unknown"; } else { $self->payinfo('N/A'); } @@ -258,7 +259,8 @@ sub _upgrade_data { # class method foreach my $cust_pay_void (qsearch('cust_pay_void', {'void_usernum' => ''})) { $sth->execute($cust_pay_void->paynum) or die $sth->errstr; - my $usernum = $sth->fetchrow_arrayref->[0] or next; + my $row = $sth->fetchrow_arrayref; + my $usernum = $row ? $row->[0] : ''; if ( $usernum ) { $cust_pay_void->void_usernum($usernum); my $error = $cust_pay_void->replace;