[freeside-commits] branch master updated. a6b56c331ccd2fa42c74c5f01555ff407c14e3cf
Mark Wells
mark at 420.am
Tue Aug 11 17:08:13 PDT 2015
The branch, master has been updated
via a6b56c331ccd2fa42c74c5f01555ff407c14e3cf (commit)
from 61dafd243f7a633ce75b709a96e86d0696ae625d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit a6b56c331ccd2fa42c74c5f01555ff407c14e3cf
Author: Mark Wells <mark at freeside.biz>
Date: Tue Aug 11 17:05:16 2015 -0700
throw an error during RBC batch import if the batch has the wrong account number, #37476
diff --git a/FS/FS/pay_batch/RBC.pm b/FS/FS/pay_batch/RBC.pm
index 53f8108..644c73c 100644
--- a/FS/FS/pay_batch/RBC.pm
+++ b/FS/FS/pay_batch/RBC.pm
@@ -5,6 +5,7 @@ use vars qw(@ISA %import_info %export_info $name);
use Date::Format 'time2str';
use FS::Conf;
use Encode 'encode';
+use feature 'state';
my $conf;
my ($client_num, $shortname, $longname, $trans_code, $testmode, $i, $declined, $totaloffset);
@@ -30,9 +31,10 @@ $name = 'RBC';
'filetype' => 'fixed',
#this only really applies to Debit Detail, but we otherwise only need first char
'formatre' =>
- '^(.).{18}(.{4}).{3}(.).{11}(.{19}).{6}(.{30}).{17}(.{9})(.{18}).{6}(.{14}).{23}(.).{9}\r?$',
+ '^(.).{3}(.{10}).{5}(.{4}).{3}(.).{11}(.{19}).{6}(.{30}).{17}(.{9})(.{18}).{6}(.{14}).{23}(.).{9}\r?$',
'fields' => [ qw(
recordtype
+ clientnum
batchnum
subtype
paybatchnum
@@ -43,11 +45,24 @@ $name = 'RBC';
status
) ],
'hook' => sub {
- my $hash = shift;
- $hash->{'paid'} = sprintf("%.2f", $hash->{'paid'} / 100 );
- $hash->{'_date'} = time;
- $hash->{'payinfo'} =~ s/^(\S+).*/$1/; # these often have trailing spaces
- $hash->{'payinfo'} = $hash->{'payinfo'} . '@' . $hash->{'bank'};
+ # pull client_num from config and check it against what's in the batch
+ state $clientnum ||= do {
+ my $conf = FS::Conf->new;
+ my @config = $conf->config("batchconfig-RBC");
+ $config[0];
+ };
+
+ my $hash = shift;
+ $hash->{'paid'} = sprintf("%.2f", $hash->{'paid'} / 100 );
+ $hash->{'_date'} = time;
+ $hash->{'payinfo'} =~ s/^(\S+).*/$1/; # these often have trailing spaces
+ $hash->{'payinfo'} = $hash->{'payinfo'} . '@' . $hash->{'bank'};
+
+ if ( $clientnum and $hash->{clientnum} ne $clientnum ) {
+ die "RBC client number in batch (".$hash->{clientnum}.") does not ".
+ "match configuration.\n";
+ }
+ '';
},
'approved' => sub {
my $hash = shift;
-----------------------------------------------------------------------
Summary of changes:
FS/FS/pay_batch/RBC.pm | 27 +++++++++++++++++++++------
1 file changed, 21 insertions(+), 6 deletions(-)
More information about the freeside-commits
mailing list