summaryrefslogtreecommitdiff
path: root/FS/FS/cust_pay_batch.pm
diff options
context:
space:
mode:
authorjeff <jeff>2006-05-20 20:06:30 +0000
committerjeff <jeff>2006-05-20 20:06:30 +0000
commit50f25b285b2caf77d267ed66f03e56924ad7229f (patch)
tree492bbc92656fbcbdfdc6880d88639388e9226225 /FS/FS/cust_pay_batch.pm
parent64dc1bb0f70ccc0b828cc1d758cd82f040e0ec33 (diff)
first stab at BoM download
Diffstat (limited to 'FS/FS/cust_pay_batch.pm')
-rw-r--r--FS/FS/cust_pay_batch.pm40
1 files changed, 30 insertions, 10 deletions
diff --git a/FS/FS/cust_pay_batch.pm b/FS/FS/cust_pay_batch.pm
index 25b796b..117d725 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>) ) {