RT# 74435 - added check, to make sure batch format can handle refunds
[freeside.git] / FS / FS / pay_batch / td_eft1464.pm
index afdc1be..3c60035 100644 (file)
@@ -101,11 +101,19 @@ $name = 'td_eft1464';
   row => sub {
     my ($cust_pay_batch, $pay_batch) = @_;
     my ($account, $aba) = split('@', $cust_pay_batch->payinfo);
+    if ( $aba =~ /^(\d+)\.(\d+)$/ ) {  #branch.route
+      $aba = $2.$1; #routebranch
+    }
     $i++;
     # The 1464 byte format supports up to 5 payments per line,
     # but we're only going to send 1.
+
+    ## set to D for debit by default, then override to what cust_pay_batch has as payments may not have paycode.
+    my $debitorcredit = 'D';
+    $debitorcredit = $cust_pay_batch->paycode unless !$cust_pay_batch->paycode;
+
     my $control = join('',
-      'D',                  # for 'debit'
+      $debitorcredit,       # D for 'debit' or C for Credit
       sprintf("%09u", $i),  #record number
       $opt{'origid'},
       $opt{'fcn'},
@@ -151,5 +159,14 @@ $name = 'td_eft1464';
   },
 );
 
+sub _upgrade_gateway {
+  my $conf = FS::Conf->new;
+  my @batchconfig = $conf->config('batchconfig-td_eft1464');
+  my %options;
+  @options{ qw(originator datacentre short_name long_name return_branch 
+               return_account cpa_code) } = @batchconfig;
+  ( 'TD_EFT', %options );
+}
+
 1;