1 package FS::pay_batch::CIBC;
4 use vars qw(@ISA %import_info %export_info $name);
5 use Date::Format 'time2str';
9 my ($origid, $datacenter, $transcode, $shortname, $mybank, $myacct);
16 'hook' => sub { die "Can't import CIBC" },
17 'approved' => sub { 1 },
18 'declined' => sub { 0 },
29 $myacct) = $conf->config("batchconfig-CIBC");
32 my $pay_batch = shift;
33 sprintf( "1%2s%05u%-5s%010u%6s%04u%1s%04u%5u%-12u%2s%-15s%1s%3s%4s \n", #80
38 time2str('%y%m%d', $pay_batch->download),
49 sprintf( "5%46s%03u%-10s%6s%14s", #80
53 time2str('%y%m%d', $pay_batch->download),
57 my ($cust_pay_batch, $pay_batch) = @_;
58 my ($account, $aba) = split('@', $cust_pay_batch->payinfo);
60 if ( $aba =~ /^0(\d{3})(\d{5})$/ ) { # standard format for Canadian bank ID
61 ($bankno, $branch) = ( $1, $2 );
62 } elsif ( $aba =~ /^(\d{5})\.(\d{3})$/ ) { #how we store branches
63 ($branch, $bankno) = ( $1, $2 );
65 die "invalid branch/routing number '$aba'\n";
67 sprintf( "6%1s%1s%04u%05u%-12u%5u%10s%-13s%-22s%6s ", #80
74 $cust_pay_batch->amount * 100,
75 $cust_pay_batch->paybatchnum,
76 $cust_pay_batch->payname,
81 my ($pay_batch, $batchcount, $batchtotal) = @_;
82 sprintf( "7%03u%06f%010s%20s%012s%28s \n", $transcode, $batchcount,'0','',$batchtotal*100,''). #80
83 sprintf( "9%06s%06s%67s", 1, $batchcount,''); #80