X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcdr%2Fenswitch.pm;h=1ef884c3f76764d3c305ba215a46d9af7e86d2f8;hb=fe1596e131a981a57391eb60bb175bb6f95374e4;hp=64518af6d354c007e2301f7de9c41fcea65994bd;hpb=b5c4237a34aef94976bc343c8d9e138664fc3984;p=freeside.git diff --git a/FS/FS/cdr/enswitch.pm b/FS/FS/cdr/enswitch.pm index 64518af6d..1ef884c3f 100644 --- a/FS/FS/cdr/enswitch.pm +++ b/FS/FS/cdr/enswitch.pm @@ -1,11 +1,10 @@ package FS::cdr::enswitch; +use base qw( FS::cdr ); use strict; -use vars qw( @ISA %info $tmp_mon $tmp_mday $tmp_year ); -use Time::Local; -use FS::cdr qw(_cdr_min_parser_maker); - -@ISA = qw(FS::cdr); +use vars qw( %info $tmp_mon $tmp_mday $tmp_year ); +use FS::Record qw( qsearchs ); +use FS::cdr_type; %info = ( 'name' => 'Enswitch', @@ -13,23 +12,25 @@ use FS::cdr qw(_cdr_min_parser_maker); 'header' => 2, 'type' => 'csv', 'import_fields' => [ - 'disposition', #Status + 'dcontext', #Status 'startdate', #Start, already a unix timestamp skip(2), #Start date, Start time 'enddate', #End skip(4), #End date, End time #Calling customer, Calling type - 'src', #Calling number - 'clid', #Calling name + 'src', #Calling number skip(1), #Called type 'dst', #Called number - skip(23), #Destination customer, Destination type + skip(14), #Destination customer, Destination type #Destination number #Destination group ID, Destination group name, - #Inbound calling type, Inbound calling number, - #Inbound called type, Inbound called number, + #Inbound calling type, + #Inbound calling number, + #Inbound called type, + #Inbound called number, #Inbound destination type, Inbound destination number, - #Outbound calling type, Outbound calling number, + 'disposition', #Outbound calling type, + skip(11), #Outbound calling number, #Outbound called type, Outbound called number, #Outbound destination type, Outbound destination number, #Internal calling type, Internal calling number, @@ -38,7 +39,8 @@ use FS::cdr qw(_cdr_min_parser_maker); 'duration', #Total seconds skip(1), #Ring seconds 'billsec', #Billable seconds - 'upstream_price', #Cost + skip(2), #Cost + #Cost including taxes 'accountcode', #Billing customer skip(3), #Billing customer name, Billing type, Billing reference ], @@ -46,4 +48,23 @@ use FS::cdr qw(_cdr_min_parser_maker); sub skip { map {''} (1..$_[0]) } +#create CDR types with names matching in_calling_type valuesj - 'none' +# (without the quotes) for blank +our %cdr_type = (); +sub in_calling_type { + my ($record, $data) = @_; + + $data ||= 'none'; + + my $cdr_type = exists($cdr_type{$data}) + ? $cdr_type{$data} + : qsearchs('cdr_type', { 'cdrtypename' => $data } ); + + $cdr_type{$data} = $cdr_type; + + $record->set('in_calling_type', $data); #for below + $record->set('cdrtypenum', $cdr_type->cdrtypenum) if $cdr_type; + +} + 1;