summaryrefslogtreecommitdiff
path: root/FS/FS/cdr/infinite.pm
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2012-06-15 15:04:07 -0700
committerMark Wells <mark@freeside.biz>2012-06-15 15:04:07 -0700
commit3d47e3bf888aeb6d44d5bd7bc1011f4b402da249 (patch)
treedd1b0ba386f4be6b708f7d4bdccb3eba1267f3ef /FS/FS/cdr/infinite.pm
parent066e98cee28189c95a839815caafea62b6af718d (diff)
timezone and field assignment changes in Infinite CDR format, #17888
Diffstat (limited to 'FS/FS/cdr/infinite.pm')
-rw-r--r--FS/FS/cdr/infinite.pm46
1 files changed, 30 insertions, 16 deletions
diff --git a/FS/FS/cdr/infinite.pm b/FS/FS/cdr/infinite.pm
index 90560c8c7..02ff9df6f 100644
--- a/FS/FS/cdr/infinite.pm
+++ b/FS/FS/cdr/infinite.pm
@@ -6,6 +6,8 @@ use FS::cdr qw(_cdr_date_parser_maker);
@ISA = qw(FS::cdr);
+my $date_parser = _cdr_date_parser_maker('startdate');
+
%info = (
'name' => 'Infinite Conferencing',
'weight' => 520,
@@ -13,26 +15,38 @@ use FS::cdr qw(_cdr_date_parser_maker);
'type' => 'csv',
'sep_char' => ',',
'import_fields' => [
- 'uniqueid', # billid
- skip(3), # confid, invoicenum, acctgrpid
- 'accountcode', # accountid ("Room Confirmation Number")
- skip(2), # billingcode ("Room Billingcode"), confname
- skip(1), # participant_type
- 'startdate', # starttime_t
- skip(2), # startdate, starttime
+ 'uniqueid', # A. billid
+ skip(3), # B-D. confid, invoicenum, acctgrpid
+ skip(1), # E. accountid ("Room Confirmation Number")
+ skip(2), # F-G. billingcode ("Room Billingcode"), confname
+ skip(1), # H. participant_type
+ skip(1), # I. starttime_t - timezone is unreliable
+ sub { # J. startdate
+ my ($cdr, $data, $conf, $param) = @_;
+ $param->{'date_part'} = $data; # stash this and combine with the time
+ '';
+ },
+ sub { # K. starttime
+ my ($cdr, $data, $conf, $param) = @_;
+ my $datestring = delete($param->{'date_part'}) . ' ' . $data;
+ &{ $date_parser }($cdr, $datestring);
+ },
sub { my($cdr, $data, $conf, $param) = @_;
$cdr->duration($data * 60);
$cdr->billsec( $data * 60);
- }, # minutes
- 'dst', # dnis
- 'src', # ani
- skip(8), # calltype, calltype_text, confstart_t, confstartdate,
+ }, # L. minutes
+ skip(1), # M. dnis
+ 'src', # N. ani
+ 'dst', # O. calltype
+ skip(7), # P-V. calltype_text, confstart_t, confstartdate,
# confstarttime, confminutes, conflegs, ppm
- 'upstream_price', # callcost
- skip(13), # confcost, rppm, rcallcost, rconfcost,
- # auxdata[1..4], ldval, sysname, username, cec, pec
- 'userfield', # unnamed field
- ],
+ 'upstream_price', # W. callcost
+ skip(11), # X-AH. confcost, rppm, rcallcost, rconfcost,
+ # auxdata[1..4], ldval, sysname, username
+ 'accountcode', # AI. Chairperson Entry Code
+ skip(1), # AJ. Participant Entry Code
+ 'description', # AK. contact name
+ ],
);