From: Christopher Burger Date: Tue, 12 Mar 2019 21:02:07 +0000 (-0400) Subject: RT# 82988 - added check for batch payment upload scripts to make sure they can handle... X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=a05f74b064576abc0848248fd136048f95afabe0;hp=b8b3ab121c9ced04b140eab79c6cea97fb4b126d RT# 82988 - added check for batch payment upload scripts to make sure they can handle credit batches. --- diff --git a/FS/bin/freeside-eftca-upload b/FS/bin/freeside-eftca-upload index 18656c97a..321b969d3 100755 --- a/FS/bin/freeside-eftca-upload +++ b/FS/bin/freeside-eftca-upload @@ -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; diff --git a/FS/bin/freeside-paymentech-upload b/FS/bin/freeside-paymentech-upload index 8ec8a5dd4..9903dd4aa 100755 --- a/FS/bin/freeside-paymentech-upload +++ b/FS/bin/freeside-paymentech-upload @@ -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; diff --git a/FS/bin/freeside-rbc-upload b/FS/bin/freeside-rbc-upload index 8f67a6e4f..5c0ebdd2e 100755 --- a/FS/bin/freeside-rbc-upload +++ b/FS/bin/freeside-rbc-upload @@ -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; diff --git a/httemplate/misc/download-batch.cgi b/httemplate/misc/download-batch.cgi index c6a0b68c3..e4882d1e8 100644 --- a/httemplate/misc/download-batch.cgi +++ b/httemplate/misc/download-batch.cgi @@ -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);