summaryrefslogtreecommitdiff
path: root/FS/FS/cdr/wip.pm
blob: 19c45c680ac076c0a3fdcda6cd18a6becff26f5e (plain)
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;