From daf3a82a700dce13a573c8aacab96b6bdfd5d656 Mon Sep 17 00:00:00 2001 From: Jeremy Davis Date: Wed, 19 Feb 2014 10:21:06 -0500 Subject: [PATCH] #26342 RBC fixes --- FS/FS/pay_batch/RBC.pm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/FS/FS/pay_batch/RBC.pm b/FS/FS/pay_batch/RBC.pm index 6ee5771fe..753626620 100644 --- a/FS/FS/pay_batch/RBC.pm +++ b/FS/FS/pay_batch/RBC.pm @@ -93,6 +93,15 @@ $name = 'RBC'; row => sub { my ($cust_pay_batch, $pay_batch) = @_; my ($account, $aba) = split('@', $cust_pay_batch->payinfo); + 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"; + } + $i++; sprintf("%06u", $i). 'D'. @@ -101,8 +110,9 @@ $name = 'RBC'; ' '. sprintf("%-19s", $cust_pay_batch->paybatchnum). '00'. - sprintf("%09u", $aba). - sprintf("%-18s", $account). + sprintf("%04u", $bankno). + sprintf("%05u", $branch). + sprintf("%-18u", $account). ' '. sprintf("%010.0f",$cust_pay_batch->amount*100). ' '. @@ -129,7 +139,7 @@ $name = 'RBC'; 'Z'. 'TRL'. sprintf("%10s", $client_num). - ' ' x 20 . + '0' x 20 . sprintf("%06u", $batchcount). sprintf("%014.0f", $batchtotal*100). '00' . -- 2.11.0