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
|
package FS::cdr::wip;
use strict;
use vars qw( @ISA %info );
use FS::cdr qw(_cdr_date_parser_maker);
@ISA = qw(FS::cdr);
%info = (
'name' => 'WIP',
'weight' => 100,
'header' => 1,
'type' => 'csv',
'sep_char' => ':',
'import_fields' => [
# All of these are based on the January 2010 version of the spec,
# except that we assume that before all the fields mentioned in the
# spec, there's a counter field.
skip(4), # counter, id, APCSJursID, RecordType
sub { my($cdr, $data, $conf, $param) = @_;
$param->{skiprow} = 1 if $data == 1;
$cdr->uniqueid($data);
}, # CDRID; is 1 for line charge records
skip(1), # AccountNumber; empty
'charged_party', # ServiceNumber
skip(1), # ServiceNumberType
'src', # PointOrigin
'dst', # PointTarget
'calltypenum', # Jurisdiction: need to remap
_cdr_date_parser_maker('startdate'), #TransactionDate
skip(3), # BillClass, TypeIDUsage, ElementID
'duration', # PrimaryUnits
skip(6), # CompletionStatus, Latitude, Longitude,
# OriginDescription, TargetDescription, RatePeriod
'billsec', # RatedUnits; seems to always be equal to PrimaryUnits
skip(6), #SecondsUnits, ThirdUnits, FileID, OriginalExtractSequenceNumber,
#RateClass, #ProviderClass
skip(8), #ProviderID, CurrencyCode, EquipmentTypeCode, ClassOfServiceCode,
#RateUnitsType, DistanceBandID, ZoneClass, CDRStatus
'upstream_price', # ISPBuy
skip(2), # EUBuy, CDRFromCarrier
],
);
sub skip { map {''} (1..$_[0]) }
1;
|