[freeside-commits] freeside/FS/FS pay_batch.pm,1.26.2.8,1.26.2.9

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-serv11347

Modified Files:
      Tag: FREESIDE_2_1_BRANCH
	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.26.2.8
retrieving revision 1.26.2.9
diff -u -w -d -r1.26.2.8 -r1.26.2.9
--- pay_batch.pm	12 Apr 2011 01:25:23 -0000	1.26.2.8
+++ pay_batch.pm	16 Aug 2011 04:49:43 -0000	1.26.2.9
@@ -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