852c2f60febf4b0684efb5ab6c848dd77d443bb8
[freeside.git] / FS / FS / cdr / conexiant.pm
1 package FS::cdr::conexiant;
2 use base qw( FS::cdr );
3
4 use strict;
5 use vars qw( %info );
6 use FS::Record qw( qsearchs );
7 use FS::cdr qw( _cdr_date_parser_maker _cdr_min_parser_maker );
8
9 %info = (
10   'name'          => 'Conexiant',
11   'weight'        => 600,
12   'header'        => 1,
13   'type'          => 'csv',
14   'import_fields' => [
15     skip(3),               #LookupError,Direction,LegType
16     sub {                  #CallId
17       my($cdr,$value,$conf,$param) = @_;
18       if (qsearchs('cdr',{'uniqueid' => $value})) {
19         $param->{'skiprow'} = 1;
20         $param->{'empty_ok'} = 1;
21       } else {
22         $cdr->uniqueid($value);
23       }
24     },
25     'upstream_rateplanid', #ClientRateSheetId
26     skip(1),               #ClientRouteId
27     'src',                 #SourceNumber
28     skip(1),               #RawNumber
29     'dst',                 #DestNumber
30     skip(1),               #DestLRN
31     _cdr_date_parser_maker('startdate'),  #CreatedOn
32     _cdr_date_parser_maker('answerdate'), #AnsweredOn
33     _cdr_date_parser_maker('enddate'),    #HangupOn
34     skip(4),               #CallCause,SipCode,Price,USFCharge
35     'upstream_price',      #TotalPrice
36     _cdr_min_parser_maker('billsec'),     #PriceDurationMins
37     skip(2),               #SipEndpointId, SipEndpointName
38   ],
39 );
40
41 sub skip { map {''} (1..$_[0]) }
42
43 1;