X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fcust_pay_batch.pm;h=117d72561f5a20593f49057d63256681d5c6fb07;hp=25b796ba91f57a9500502bced5d958084df50f65;hb=50f25b285b2caf77d267ed66f03e56924ad7229f;hpb=64dc1bb0f70ccc0b828cc1d758cd82f040e0ec33 diff --git a/FS/FS/cust_pay_batch.pm b/FS/FS/cust_pay_batch.pm index 25b796ba9..117d72561 100644 --- a/FS/FS/cust_pay_batch.pm +++ b/FS/FS/cust_pay_batch.pm @@ -37,7 +37,7 @@ following fields are currently supported: =item paybatchnum - primary key (automatically assigned) -=item cardnum +=item payinfo =item exp - card expiration @@ -119,7 +119,7 @@ sub check { my $error = $self->ut_numbern('paybatchnum') || $self->ut_numbern('trancode') #depriciated - || $self->ut_number('cardnum') + || $self->ut_number('payinfo') || $self->ut_money('amount') || $self->ut_number('invnum') || $self->ut_number('custnum') @@ -137,14 +137,19 @@ sub check { $self->first =~ /^([\w \,\.\-\']+)$/ or return "Illegal first name"; $self->first($1); - my $cardnum = $self->cardnum; - $cardnum =~ s/\D//g; - $cardnum =~ /^(\d{13,16})$/ - or return "Illegal credit card number"; - $cardnum = $1; - $self->cardnum($cardnum); - validate($cardnum) or return "Illegal credit card number"; - return "Unknown card type" if cardtype($cardnum) eq "Unknown"; + # FIXME + # there is no point in false laziness here + # we will effectively set "check_payinfo to 0" + # we can change that when we finish the refactor + + #my $cardnum = $self->cardnum; + #$cardnum =~ s/\D//g; + #$cardnum =~ /^(\d{13,16})$/ + # or return "Illegal credit card number"; + #$cardnum = $1; + #$self->cardnum($cardnum); + #validate($cardnum) or return "Illegal credit card number"; + #return "Unknown card type" if cardtype($cardnum) eq "Unknown"; if ( $self->exp eq '' ) { return "Expiration date required"; #unless @@ -305,6 +310,21 @@ sub import_results { local $FS::UID::AutoCommit = 0; my $dbh = dbh; + my $pay_batch = qsearchs('pay_batch',{'batchnum'=> $paybatch}); + unless ($pay_batch && $pay_batch->status eq 'I') { + $dbh->rollback if $oldAutoCommit; + return "batch $paybatch is not in transit"; + }; + + my %batchhash = $pay_batch->hash; + $batchhash{'status'} = 'R'; # Resolved + my $newbatch = new FS::pay_batch ( \%batchhash ); + my $error = $newbatch->replace($paybatch); + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return $error + } + my $total = 0; my $line; while ( defined($line=<$fh>) ) {