fix TeleAPI import (what kind of crack was Christopher smoking that he couldn't fix...
[freeside.git] / FS / FS / cdr / enswitch.pm
index 64518af..8026293 100644 (file)
@@ -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,36 @@ 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
+
+    sub { my ($cdr, $dst) = @_; 
+        $dst =~ s/\*//g;
+       $cdr->set('dst', $dst);
+    },              #Called number
+
+    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,
+    sub { my ($cdr, $data) = @_;
+       $data ||= 'none';
+
+       my $cdr_type = qsearchs('cdr_type', { 'cdrtypename' => $data } );
+       $cdr->set('cdrtypenum', $cdr_type->cdrtypenum) if $cdr_type; 
+                } , #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 +50,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
   ],