[freeside-commits] branch master updated. af501d08494e5930d53da1cb1f02e65e2a6ebd07
Jeremy Davis
jeremyd at 420.am
Thu Nov 13 14:00:59 PST 2014
The branch, master has been updated
via af501d08494e5930d53da1cb1f02e65e2a6ebd07 (commit)
via 9184d33172400ebf4d6c6bec1b52a0d9f3319eea (commit)
from 395160f885a698dd557fd48d316c431789f4c47d (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 af501d08494e5930d53da1cb1f02e65e2a6ebd07
Merge: 9184d33 395160f
Author: Jeremy Davis <jeremyd at freeside.biz>
Date: Thu Nov 13 16:59:54 2014 -0500
Merge branch 'master' of git.freeside.biz:/home/git/freeside
commit 9184d33172400ebf4d6c6bec1b52a0d9f3319eea
Author: Jeremy Davis <jeremyd at freeside.biz>
Date: Thu Nov 13 16:58:55 2014 -0500
Ticket #31847 CIBC batch format
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index 77267cf..b1ef901 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -3729,7 +3729,7 @@ and customer address. Include units.',
'type' => 'select',
'select_enum' => [ 'NACHA', 'csv-td_canada_trust-merchant_pc_batch',
'csv-chase_canada-E-xactBatch', 'BoM', 'PAP',
- 'paymentech', 'ach-spiritone', 'RBC'
+ 'paymentech', 'ach-spiritone', 'RBC', 'CIBC',
]
},
@@ -3791,7 +3791,7 @@ and customer address. Include units.',
'type' => 'select',
'select_enum' => [ 'NACHA', 'csv-td_canada_trust-merchant_pc_batch', 'BoM',
'PAP', 'paymentech', 'ach-spiritone', 'RBC',
- 'td_eft1464', 'eft_canada'
+ 'td_eft1464', 'eft_canada', 'CIBC'
]
},
@@ -3809,6 +3809,13 @@ and customer address. Include units.',
'type' => 'textarea',
},
+{
+ 'key' => 'batchconfig-CIBC',
+ 'section' => 'billing',
+ 'description' => 'Configuration for Canadian Imperial Bank of Commerce, six lines: 1. Origin ID, 2. Datacenter, 3. Typecode, 4. Short name, 5. Bank, 6. Bank account',
+ 'type' => 'textarea',
+ },
+
{
'key' => 'batchconfig-PAP',
'section' => 'billing',
diff --git a/FS/FS/pay_batch/CIBC.pm b/FS/FS/pay_batch/CIBC.pm
new file mode 100644
index 0000000..2c72bef
--- /dev/null
+++ b/FS/FS/pay_batch/CIBC.pm
@@ -0,0 +1,87 @@
+package FS::pay_batch::CIBC;
+
+use strict;
+use vars qw(@ISA %import_info %export_info $name);
+use Date::Format 'time2str';
+use FS::Conf;
+
+my $conf;
+my ($origid, $datacenter, $transcode, $shortname, $mybank, $myacct);
+
+$name = 'CIBC';
+
+%import_info = (
+ 'filetype' => 'CSV',
+ 'fields' => [],
+ 'hook' => sub { die "Can't import CIBC" },
+ 'approved' => sub { 1 },
+ 'declined' => sub { 0 },
+);
+
+%export_info = (
+ init => sub {
+ $conf = shift;
+ ($origid,
+ $datacenter,
+ $transcode,
+ $shortname,
+ $mybank,
+ $myacct) = $conf->config("batchconfig-CIBC");
+ },
+ header => sub {
+ my $pay_batch = shift;
+ sprintf( "1%2s%05u%-5s%010u%6s%04u%1s%04u%5u%-12u%2s%-15s%1s%3s%4s \n", #80
+ '',
+ substr(0,5, $origid),
+ '',
+ $origid,
+ time2str('%y%m%d', $pay_batch->download),
+ $pay_batch->batchnum,
+ ' ',
+ '0010',
+ $mybank,
+ $myacct,
+ '',
+ $shortname,
+ ' ',
+ 'CAD',
+ '', ) .
+ sprintf( "5%46s%03u%-10s%6s%14s", #80
+ '',
+ $transcode,
+ ' ',
+ time2str('%y%m%d', $pay_batch->download),
+ ' ');
+ },
+ 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";
+ }
+ sprintf( "6%1s%1s%04u%05u%-12u%5u%10s%-13s%-22s%6s ", #80
+ 'D',
+ '',
+ $bankno,
+ $branch,
+ $account,
+ '',
+ $cust_pay_batch->amount * 100,
+ $cust_pay_batch->paybatchnum,
+ $cust_pay_batch->payname,
+ ' ',
+ );
+ },
+ footer => sub {
+ my ($pay_batch, $batchcount, $batchtotal) = @_;
+ sprintf( "7%03u%06f%010s%20s%012s%28s \n", $transcode, $batchcount,'0','',$batchtotal*100,''). #80
+ sprintf( "9%06s%06s%67s", 1, $batchcount,''); #80
+ },
+);
+
+1;
diff --git a/httemplate/search/elements/cust_pay_batch_top.html b/httemplate/search/elements/cust_pay_batch_top.html
index a773dd0..2dbf620 100644
--- a/httemplate/search/elements/cust_pay_batch_top.html
+++ b/httemplate/search/elements/cust_pay_batch_top.html
@@ -149,6 +149,7 @@ tie my %download_formats, 'Tie::IxHash', (
'RBC' => 'Royal Bank of Canada PDS batch',
'td_eft1464' => '1464 byte file for TD Commercial Banking EFT',
'eft_canada' => 'EFT Canada CSV batch',
+ 'CIBC' => '80 byte file for Canadian Imperial Bank of Commerce',
# insert new batch formats here
);
-----------------------------------------------------------------------
Summary of changes:
FS/FS/Conf.pm | 11 ++-
FS/FS/pay_batch/CIBC.pm | 87 ++++++++++++++++++++
httemplate/search/elements/cust_pay_batch_top.html | 1 +
3 files changed, 97 insertions(+), 2 deletions(-)
create mode 100644 FS/FS/pay_batch/CIBC.pm
More information about the freeside-commits
mailing list