RT# 74435 - added check, to make sure batch format can handle refunds
authorChristopher Burger <burgerc@freeside.biz>
Mon, 16 Jul 2018 18:40:39 +0000 (14:40 -0400)
committerChristopher Burger <burgerc@freeside.biz>
Mon, 16 Jul 2018 18:40:39 +0000 (14:40 -0400)
FS/FS/pay_batch/RBC.pm
httemplate/misc/download-batch.cgi

index dea89cd..3d1d98b 100644 (file)
@@ -228,5 +228,10 @@ $name = 'RBC';
   },
 );
 
+## this format can handle credit transactions
+sub can_handle_credits {
+  1;
+}
+
 1;
 
index c4bc37e..c6a0b68 100644 (file)
@@ -20,9 +20,18 @@ elsif ( $cgi->param('format') =~ /^([\w\- ]+)$/ ) {
   $opt{'format'} = $1;
 }
 
-my $pay_batch = qsearchs('pay_batch', { batchnum => $batchnum } );
+my $credit_transactions = "EXISTS (SELECT 1 FROM cust_pay_batch WHERE batchnum = $batchnum AND paycode = 'C') AS arecredits";
+my $pay_batch = qsearchs({ 'select'    => "*, $credit_transactions",
+                           'table'     => 'pay_batch',
+                           'hashref'   => { batchnum => $batchnum },
+                         });
 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');
+}
+
 my $exporttext = $pay_batch->export_batch(%opt);
 unless ($exporttext) {
   http_header('Content-Type' => 'text/html' );