work around missing id, RT#83146
[freeside.git] / FS / bin / freeside-eftca-upload
index 503c7a3..321b969 100755 (executable)
@@ -32,8 +32,12 @@ my @batches;
 
 if($opt_a) {
   local $@;
+
+  my %criteria= ( 'status' => 'O', 'payby' => 'CHEK' );
+  $criteria{'type'} = 'DEBIT' unless FS::pay_batch->can_handle_electronic_refunds('eft_canada');
+
   eval {
-    @batches = qsearch('pay_batch', { 'status' => 'O', 'payby' => 'CHEK' })
+    @batches = qsearch('pay_batch', \%criteria)
   };
   log_error_and_die ("Fatal database error: $@")
     if $@;
@@ -51,6 +55,12 @@ else {
     if $@;
 
   log_error_and_die( "Can't find payment batch '$batchnum'\n" ) if !@batches;
+
+  if ($batches[0]->type eq "CREDIT") {
+    warn "running credit\n";
+    log_error_and_die( "Batch number $batchnum is a credit (batch refund) batch, and this format can not handle batch refunds.\n" )
+      unless FS::pay_batch->can_handle_electronic_refunds('eft_canada');
+  }
 }
 
 my $conf = new FS::Conf;