summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorChristopher Burger <burgerc@freeside.biz>2019-03-10 19:12:20 -0400
committerChristopher Burger <burgerc@freeside.biz>2019-03-10 19:12:20 -0400
commitb48c02a92562395c84dbfe8c47db5c4ba14891a0 (patch)
treeb2fda5bb8a2ed969b702e7006be988e47ee920a5 /httemplate
parent765aac1902113738afd1bcaee8eb25b44ee92e63 (diff)
RT# 82988 - Fixed so only formats that can handle electronic refunds can download those files
Diffstat (limited to 'httemplate')
-rwxr-xr-xhttemplate/edit/process/cust_refund.cgi2
-rw-r--r--httemplate/search/elements/cust_pay_batch_top.html26
-rwxr-xr-xhttemplate/search/pay_batch.cgi8
-rw-r--r--httemplate/view/cust_main/menu.html3
-rw-r--r--httemplate/view/cust_main/payment_history/payment.html1
5 files changed, 19 insertions, 21 deletions
diff --git a/httemplate/edit/process/cust_refund.cgi b/httemplate/edit/process/cust_refund.cgi
index 9175eb136..25f6e00a1 100755
--- a/httemplate/edit/process/cust_refund.cgi
+++ b/httemplate/edit/process/cust_refund.cgi
@@ -39,6 +39,8 @@ $cgi->param('reasonnum') =~ /^(-?\d+)$/ or die "Illegal reasonnum";
my ($reasonnum, $error) = $m->comp('/misc/process/elements/reason');
$cgi->param('reasonnum', $reasonnum) unless $error;
+$error = "No batch download format configured that allows electronic refunds" unless (FS::pay_batch->can_handle_electronic_refunds && !$error);
+
if ( $error ) {
# do nothing
} elsif ( $payby =~ /^(CARD|CHEK)$/ ) {
diff --git a/httemplate/search/elements/cust_pay_batch_top.html b/httemplate/search/elements/cust_pay_batch_top.html
index 626d7c3ea..eee81dd5b 100644
--- a/httemplate/search/elements/cust_pay_batch_top.html
+++ b/httemplate/search/elements/cust_pay_batch_top.html
@@ -135,23 +135,7 @@ my $batchnum = $pay_batch->batchnum;
my $fixed = $conf->config("batch-fixed_format-$payby");
-tie my %download_formats, 'Tie::IxHash', (
- '' => 'Default batch mode',
- 'NACHA' => '94 byte NACHA',
- 'csv-td_canada_trust-merchant_pc_batch' =>
- 'CSV file for TD Canada Trust Merchant PC Batch',
- 'csv-chase_canada-E-xactBatch' =>
- 'CSV file for Chase Canada E-xactBatch',
- 'PAP' => '80 byte file for TD Canada Trust PAP Batch',
- 'BoM' => 'Bank of Montreal ECA batch',
- 'ach-spiritone' => 'Spiritone ACH batch',
- 'paymentech' => 'XML file for Chase Paymentech',
- 'RBC' => 'Royal Bank of Canada PDS batch',
- 'td_eft1464' => '1464 byte file for TD Commercial Banking EFT',
- 'eft_canada' => 'EFT Canada CSV batch',
- 'CIBC' => '80 byte file for Canadian Imperial Bank of Commerce',
-# insert new batch formats here
-);
+tie my %download_formats, 'Tie::IxHash', FS::pay_batch::batch_download_formats;
tie my %upload_formats, 'Tie::IxHash', (
%download_formats,
@@ -160,7 +144,13 @@ tie my %upload_formats, 'Tie::IxHash', (
'td_eftret' => 'TD EFT Returned Items',
);
delete $upload_formats{'td_eft1464'};
-$upload_formats{'PAP'} = '264 byte results for TD Canada Trust PAP Batch',
+$upload_formats{'PAP'} = '264 byte results for TD Canada Trust PAP Batch';
+
+if ($pay_batch->type eq "CREDIT") {
+ foreach my $key (keys %download_formats) {
+ delete $download_formats{$key} unless FS::pay_batch->can_handle_electronic_refunds($key);
+ }
+}
my %statustext = ( 'O' => 'open', 'I' => 'in transit', 'R' => 'resolved' );
diff --git a/httemplate/search/pay_batch.cgi b/httemplate/search/pay_batch.cgi
index 40df5aa56..8fe435132 100755
--- a/httemplate/search/pay_batch.cgi
+++ b/httemplate/search/pay_batch.cgi
@@ -33,9 +33,11 @@
],
'align' => 'rcllrrrrc',
'fields' => [ 'batchnum',
- sub {
- FS::payby->shortname(shift->payby);
- },
+ sub {
+ my $self = shift;
+ my $type = $self->type eq 'CREDIT' ? 'CREDIT' : '';
+ $type ." " . FS::payby->shortname($self->payby);
+ },
sub {
my $self = shift;
my $_date = $self->download;
diff --git a/httemplate/view/cust_main/menu.html b/httemplate/view/cust_main/menu.html
index cc9f1fc71..63d5c9abd 100644
--- a/httemplate/view/cust_main/menu.html
+++ b/httemplate/view/cust_main/menu.html
@@ -467,6 +467,9 @@ my @menu = (
actionlabel => 'Enter electronic check refund',
width => 440,
acl => ['Post refund' ],
+ condition => sub {
+ FS::pay_batch->can_handle_electronic_refunds
+ },
},
],
diff --git a/httemplate/view/cust_main/payment_history/payment.html b/httemplate/view/cust_main/payment_history/payment.html
index 6402383d8..eeddc47b1 100644
--- a/httemplate/view/cust_main/payment_history/payment.html
+++ b/httemplate/view/cust_main/payment_history/payment.html
@@ -178,6 +178,7 @@ if ( $cust_pay->closed !~ /^Y/i
qq! TITLE="! . $refundtitle
. '">' . emt('refund') . '</A>)';
}
+$refund = '' if ($cust_pay->batchnum && !FS::pay_batch->can_handle_electronic_refunds);
my $void = '';
my $voidmsg = $cust_pay->payby =~ /^(CARD|CHEK)$/