diff options
author | ivan <ivan> | 2011-10-21 16:29:38 +0000 |
---|---|---|
committer | ivan <ivan> | 2011-10-21 16:29:38 +0000 |
commit | c44af9c50b752e059eaa1d446e038317258fd437 (patch) | |
tree | 017a8fbde29d12d8fa146ba719262f24a38afecd /FS/FS/pay_batch/eft_canada.pm | |
parent | b3928e4fe8aa594e8eba7f0ef5bce83335022614 (diff) |
fix for branch numbers, RT#14859
Diffstat (limited to 'FS/FS/pay_batch/eft_canada.pm')
-rw-r--r-- | FS/FS/pay_batch/eft_canada.pm | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/FS/FS/pay_batch/eft_canada.pm b/FS/FS/pay_batch/eft_canada.pm index 0e41610..23dcc2d 100644 --- a/FS/FS/pay_batch/eft_canada.pm +++ b/FS/FS/pay_batch/eft_canada.pm @@ -43,11 +43,16 @@ my ($trans_code, $process_date); $cust_pay_batch->first, $cust_pay_batch->last; } my ($account, $aba) = split('@', $cust_pay_batch->payinfo); - # standard format for Canadian bank ID - $aba =~ /^0(\d{3})(\d{5})$/ - or die "invalid routing number '$aba'\n"; - push @fields, sprintf('%05s', $2), - sprintf('%03s', $1), + my($bankno, $branch); + if ( $aba =~ /^0(\d{3})(\d{5})$/ ) { # standard format for Canadian bank ID + ($bankno, $branch) = ( $1, $2 ); + } elsif ( $aba =~ /^(\d{5})\.(\d{3})$/ ) { #how we store branches + ($branch, $bankno) = ( $1, $2 ); + } else { + die "invalid branch/routing number '$aba'\n"; + } + push @fields, sprintf('%05s', $branch), + sprintf('%03s', $bankno), sprintf('%012s', $account), sprintf('%.02f', $cust_pay_batch->amount); # DB = debit |