RT# 82988 - added check for batch payment upload scripts to make sure they can handle...
authorChristopher Burger <burgerc@freeside.biz>
Tue, 12 Mar 2019 21:02:07 +0000 (17:02 -0400)
committerChristopher Burger <burgerc@freeside.biz>
Tue, 12 Mar 2019 21:02:07 +0000 (17:02 -0400)
FS/bin/freeside-eftca-upload
FS/bin/freeside-paymentech-upload
FS/bin/freeside-rbc-upload
httemplate/misc/download-batch.cgi

index 18656c9..321b969 100755 (executable)
@@ -55,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;
index 8ec8a5d..9903dd4 100755 (executable)
@@ -51,6 +51,12 @@ else {
   log_and_die("batchnum not passed\n".&usage) if !$batchnum;
   @batches = qsearchs('pay_batch', { batchnum => $batchnum } );
   log_and_die("Can't find payment batch '$batchnum'\n") if !@batches;
+
+  if ($batches[0]->type eq "CREDIT") {
+    warn "running credit\n";
+    log_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('paymentech');
+  }
 }
 
 my $conf = new FS::Conf;
index 8f67a6e..5c0ebdd 100755 (executable)
@@ -43,6 +43,11 @@ else {
   die &usage if !$batchnum;
   @batches = qsearchs('pay_batch', { batchnum => $batchnum } );
   die "Can't find payment batch '$batchnum'\n" if !@batches;
+  if ($batches[0]->type eq "CREDIT") {
+    warn "running credit\n";
+    log_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('RBC');
+  }
 }
 
 my $conf = new FS::Conf;
index c6a0b68..e4882d1 100644 (file)
@@ -4,6 +4,7 @@
 http_header('Content-Type' => 'text/plain' ); # not necessarily correct...
 
 my $batchnum;
+
 if ( $cgi->param('batchnum') =~ /^(\d+)$/ ) {
   $batchnum = $1;
 } else {
@@ -29,7 +30,7 @@ die "Batch not found: '$batchnum'" if !$pay_batch;
 
 if ($pay_batch->{Hash}->{arecredits}) {
   my $export_format = "FS::pay_batch::".$opt{'format'};
-    die "This format can not handle refunds." unless $export_format->can('can_handle_credits');
+  die "You are trying to download a credit (batch refund) batch and The format ".$opt{'format'}." can not handle refunds.\n" unless $export_format->can('can_handle_credits');
 }
 
 my $exporttext = $pay_batch->export_batch(%opt);