1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
package FS::pay_batch::BoM;
use strict;
use vars qw(@ISA %import_info %export_info $name);
use Time::Local 'timelocal';
use FS::Conf;
my $conf;
my ($origid, $datacenter, $typecode, $shortname, $longname, $mybank, $myacct);
$name = 'BoM';
%import_info = (
'filetype' => 'CSV',
'fields' => [],
'hook' => sub { die "Can't import BoM" },
'approved' => sub { 1 },
'declined' => sub { 0 },
);
%export_info = (
init => sub {
$conf = shift;
($origid,
$datacenter,
$typecode,
$shortname,
$longname,
$mybank,
$myacct) = $conf->config("batchconfig-BoM");
},
header => sub {
my $pay_batch = shift;
sprintf( "A%10s%04u%06u%05u%53s\n", #80
$origid,
$pay_batch->batchnum,
jdate($pay_batch->download),
$datacenter,
"") .
sprintf( "XD%03u%06u%-15s%-30s%09u%-12s ", #80
$typecode,
jdate($pay_batch->download),
$shortname,
$longname,
$mybank,
$myacct);
},
row => sub {
my ($cust_pay_batch, $pay_batch) = @_;
my ($account, $aba) = split('@', $cust_pay_batch->payinfo);
sprintf( "D%010.0f%09u%-12s%-29s%-18s ", #80
$cust_pay_batch->amount * 100,
$aba,
$account,
$cust_pay_batch->payname,
$cust_pay_batch->paybatchnum
);
},
footer => sub {
my ($pay_batch, $batchcount, $batchtotal) = @_;
sprintf( "YD%08u%014.0f%55s\n", $batchcount, $batchtotal*100, ""). #80
sprintf( "Z%014.0f%05u%014u%05u%40s", #80 now
$batchtotal*100, $batchcount, "0", "0", "");
},
);
sub jdate {
my (@date) = localtime(shift);
sprintf("%03d%03d", $date[5] % 100, $date[7] + 1);
}
1;
|