fix batch payment recording again
[freeside.git] / FS / FS / pay_batch.pm
index 5cd40cd..5ccad5b 100644 (file)
@@ -352,13 +352,16 @@ sub import_results {
     my $custnum = $cust_pay_batch->custnum,
     my $payby = $cust_pay_batch->payby,
 
-    my $new_cust_pay_batch = new FS::cust_pay_batch { $cust_pay_batch->hash };
-
     &{$hook}(\%hash, $cust_pay_batch->hashref);
 
+    my $new_cust_pay_batch = new FS::cust_pay_batch { $cust_pay_batch->hash };
+
     my $error = '';
     if ( &{$approved_condition}(\%hash) ) {
 
+      foreach ('paid', '_date', 'payinfo') {
+        $new_cust_pay_batch->$_($hash{$_}) if $hash{$_};
+      }
       $error = $new_cust_pay_batch->approve($hash{'paybatch'} || $self->batchnum);
       $total += $hash{'paid'};
 
@@ -471,12 +474,15 @@ sub export_batch {
       $_->setfield('expmmyy', sprintf('%02u%02u', $mon+1, $year % 100));
     }
   }
+
+  my $delim = exists($info->{'delimiter'}) ? $info->{'delimiter'} : "\n";
+
   my $h = $info->{'header'};
   if(ref($h) eq 'CODE') {
-    $batch .= &$h($self, \@cust_pay_batch) . "\n";
+    $batch .= &$h($self, \@cust_pay_batch) . $delim;
   }
   else {
-    $batch .= $h . "\n";
+    $batch .= $h . $delim;
   }
   foreach my $cust_pay_batch (@cust_pay_batch) {
 
@@ -503,16 +509,16 @@ sub export_batch {
 
     $batchcount++;
     $batchtotal += $cust_pay_batch->amount;
-    $batch .= &{$info->{'row'}}($cust_pay_batch, $self, $batchcount, $batchtotal) . "\n";
+    $batch .= &{$info->{'row'}}($cust_pay_batch, $self, $batchcount, $batchtotal) . $delim;
 
   }
 
   my $f = $info->{'footer'};
   if(ref($f) eq 'CODE') {
-    $batch .= &$f($self, $batchcount, $batchtotal) . "\n";
+    $batch .= &$f($self, $batchcount, $batchtotal) . $delim;
   }
   else {
-    $batch .= $f . "\n";
+    $batch .= $f . $delim;
   }
 
   if ($info->{'autopost'}) {