summaryrefslogtreecommitdiff
path: root/FS/FS
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2012-08-07 18:39:05 -0700
committerMark Wells <mark@freeside.biz>2012-08-07 18:39:05 -0700
commit21254f0e0062b92c19530c49c6eacc9ce3e93827 (patch)
tree34115abe005a554f676e552f07575751865ef99e /FS/FS
parent21891ab9181cb54c36d78d6aacccadc1aaf910d7 (diff)
Business::BatchPayment fixes for TD EFT format, #17878
Diffstat (limited to 'FS/FS')
-rw-r--r--FS/FS/Cron/pay_batch.pm2
-rw-r--r--FS/FS/pay_batch.pm11
-rw-r--r--FS/FS/pay_batch/td_eft1464.pm9
3 files changed, 17 insertions, 5 deletions
diff --git a/FS/FS/Cron/pay_batch.pm b/FS/FS/Cron/pay_batch.pm
index c7cedaf..0ab37dd 100644
--- a/FS/FS/Cron/pay_batch.pm
+++ b/FS/FS/Cron/pay_batch.pm
@@ -103,7 +103,7 @@ sub batch_receive {
if ( $gateway->batch_processor->can('default_transport') ) {
warn "Importing results from '".$gateway->label."'\n" if $DEBUG;
$error = eval {
- FS::pay_batch->import_from_gateway( $gateway, debug => $DEBUG )
+ FS::pay_batch->import_from_gateway( gateway =>$gateway, debug => $DEBUG )
} || $@;
if ( $error ) {
# this we can roll back
diff --git a/FS/FS/pay_batch.pm b/FS/FS/pay_batch.pm
index 813d096..e98cf5a 100644
--- a/FS/FS/pay_batch.pm
+++ b/FS/FS/pay_batch.pm
@@ -807,8 +807,8 @@ sub try_to_resolve {
}
);
- if ( @unresolved ) {
- my $days = $conf->config('batch-auto_resolve_days') || '';
+ if ( @unresolved and $conf->exists('batch-auto_resolve_days') ) {
+ my $days = $conf->config('batch-auto_resolve_days'); # can be zero
# either 'approve' or 'decline'
my $action = $conf->config('batch-auto_resolve_status') || '';
return unless
@@ -861,6 +861,9 @@ sub prepare_for_export {
return "error updating pay_batch status: $error\n" if $error;
} elsif ($status eq 'I' && $curuser->access_right('Reprocess batches')) {
$first_download = 0;
+ } elsif ($status eq 'R' &&
+ $curuser->access_right('Redownload resolved batches')) {
+ $first_download = 0;
} else {
die "No pending batch.\n";
}
@@ -1080,7 +1083,7 @@ sub _upgrade_data {
for my $format (keys %export_info) {
my $mod = "FS::pay_batch::$format";
if ( $mod->can('_upgrade_gateway')
- and length( $conf->config("batchconfig-$format") ) ) {
+ and exists( $conf->config("batchconfig-$format") ) ) {
local $@;
my ($module, %gw_options) = $mod->_upgrade_gateway;
@@ -1109,7 +1112,7 @@ sub _upgrade_data {
# and if appropriate, make it the system default
for my $payby (qw(CARD CHEK)) {
- if ( $conf->config("batch-fixed_format-$payby") eq $format ) {
+ if ( ($conf->config("batch-fixed_format-$payby") || '') eq $format ) {
warn "Setting as default for $payby.\n";
$conf->set("batch-gateway-$payby", $gateway->gatewaynum);
$conf->delete("batch-fixed_format-$payby");
diff --git a/FS/FS/pay_batch/td_eft1464.pm b/FS/FS/pay_batch/td_eft1464.pm
index 3a6befe..93612f1 100644
--- a/FS/FS/pay_batch/td_eft1464.pm
+++ b/FS/FS/pay_batch/td_eft1464.pm
@@ -154,5 +154,14 @@ $name = 'td_eft1464';
},
);
+sub _upgrade_gateway {
+ my $conf = FS::Conf->new;
+ my @batchconfig = $conf->config('batchconfig-td_eft1464');
+ my %options;
+ @options{ qw(originator datacentre short_name long_name return_branch
+ return_account cpa_code) } = @batchconfig;
+ ( 'TD_EFT', %options );
+}
+
1;