X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpay_batch.pm;h=6a27554945c9eb6d65e592360f060d34c4731e7a;hb=2a741b0b2555948fc38236eeb2cb2f4a0889baae;hp=c1262e097c8d2ecb67670c9c074a82f02e13a015;hpb=70253c9e1bf2287d144f0da44304190d64577300;p=freeside.git diff --git a/FS/FS/pay_batch.pm b/FS/FS/pay_batch.pm index c1262e097..6a2755494 100644 --- a/FS/FS/pay_batch.pm +++ b/FS/FS/pay_batch.pm @@ -202,6 +202,7 @@ sub import_results { my $begin_condition = $info->{'begin_condition'}; my $end_condition = $info->{'end_condition'}; my $end_hook = $info->{'end_hook'}; + my $skip_condition = $info->{'skip_condition'}; my $hook = $info->{'hook'}; my $approved_condition = $info->{'approved'}; my $declined_condition = $info->{'declined'}; @@ -271,11 +272,12 @@ sub import_results { }; push @all_values, [ $csv->fields(), $line ]; }elsif ($filetype eq 'fixed'){ - my @values = ( $line =~ /$formatre/, $line ); + my @values = ( $line =~ /$formatre/ ); unless (@values) { $dbh->rollback if $oldAutoCommit; return "can't parse: ". $line; }; + push @values, $line; push @all_values, \@values; }else{ $dbh->rollback if $oldAutoCommit; @@ -295,8 +297,13 @@ sub import_results { $hash{$field} = $value; } - if ( defined($begin_condition) and &{$begin_condition}(\%hash, $line)) { - undef $begin_condition; + if ( defined($begin_condition) ) { + if ( &{$begin_condition}(\%hash, $line) ) { + undef $begin_condition; + } + else { + next; + } } if ( defined($end_condition) and &{$end_condition}(\%hash, $line) ) { @@ -309,6 +316,10 @@ sub import_results { last; } + if ( defined($skip_condition) and &{$skip_condition}(\%hash, $line) ) { + next; + } + my $cust_pay_batch = qsearchs('cust_pay_batch', { 'paybatchnum' => $hash{'paybatchnum'}+0 } ); unless ( $cust_pay_batch ) { @@ -455,7 +466,7 @@ sub export_batch { if($cust_pay_batch) { # that is, it wasn't deleted $batchcount++; $batchtotal += $cust_pay_batch->amount; - $batch .= &{$info->{'row'}}($cust_pay_batch, $self) . "\n"; + $batch .= &{$info->{'row'}}($cust_pay_batch, $self, $batchcount, $batchtotal) . "\n"; } } my $f = $info->{'footer'};