[freeside-commits] freeside/FS/FS pay_batch.pm,1.34,1.35
Ivan,,,
ivan at wavetail.420.am
Mon Aug 15 21:49:45 PDT 2011
Update of /home/cvs/cvsroot/freeside/FS/FS
In directory wavetail.420.am:/tmp/cvs-serv11344
Modified Files:
pay_batch.pm
Log Message:
fix paymentech batch download, RT#7905
Index: pay_batch.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/pay_batch.pm,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -w -d -r1.34 -r1.35
--- pay_batch.pm 12 Apr 2011 01:25:14 -0000 1.34
+++ pay_batch.pm 16 Aug 2011 04:49:43 -0000 1.35
@@ -477,18 +477,11 @@
}
}
- my $delim = exists($info->{'delimiter'}) ? $info->{'delimiter'} : "\n";
+ if ($first_download) { #remove or reduce entries if customer's balance changed
- my $h = $info->{'header'};
- if(ref($h) eq 'CODE') {
- $batch .= &$h($self, \@cust_pay_batch) . $delim;
- }
- else {
- $batch .= $h . $delim;
- }
+ my @new = ();
foreach my $cust_pay_batch (@cust_pay_batch) {
- if ($first_download) {
my $balance = $cust_pay_batch->cust_main->balance;
if ($balance <= 0) { # then don't charge this customer
my $error = $cust_pay_batch->delete;
@@ -507,19 +500,34 @@
}
}
# else $balance >= $cust_pay_batch->amount
+
+ push @new, $cust_pay_batch;
+ }
+ @cust_pay_batch = @new;
+
+ }
+
+ my $delim = exists($info->{'delimiter'}) ? $info->{'delimiter'} : "\n";
+
+ my $h = $info->{'header'};
+ if (ref($h) eq 'CODE') {
+ $batch .= &$h($self, \@cust_pay_batch). $delim;
+ } else {
+ $batch .= $h. $delim;
}
+ foreach my $cust_pay_batch (@cust_pay_batch) {
$batchcount++;
$batchtotal += $cust_pay_batch->amount;
- $batch .= &{$info->{'row'}}($cust_pay_batch, $self, $batchcount, $batchtotal) . $delim;
-
+ $batch .=
+ &{$info->{'row'}}($cust_pay_batch, $self, $batchcount, $batchtotal).
+ $delim;
}
my $f = $info->{'footer'};
if(ref($f) eq 'CODE') {
$batch .= &$f($self, $batchcount, $batchtotal) . $delim;
- }
- else {
+ } else {
$batch .= $f . $delim;
}
More information about the freeside-commits
mailing list