Ticket #34769 different enswitch format
authorJeremy Davis <jeremyd@freeside.biz>
Mon, 15 Jun 2015 16:36:02 +0000 (12:36 -0400)
committerJeremy Davis <jeremyd@freeside.biz>
Mon, 15 Jun 2015 16:36:02 +0000 (12:36 -0400)
FS/FS/cdr/enswitch_calling_name.pm [new file with mode: 0644]

diff --git a/FS/FS/cdr/enswitch_calling_name.pm b/FS/FS/cdr/enswitch_calling_name.pm
new file mode 100644 (file)
index 0000000..c5564d3
--- /dev/null
@@ -0,0 +1,62 @@
+package FS::cdr::enswitch_calling_name;
+use base qw( FS::cdr );
+
+use strict;
+use vars qw( %info $tmp_mon $tmp_mday $tmp_year );
+use FS::Record qw( qsearchs );
+use FS::cdr_type;
+
+%info = (
+  'name'          => 'Enswitch with calling name',
+  'weight'        => 515,
+  'header'        => 2,
+  'type'          => 'csv',
+  'import_fields' => [
+    'dcontext',     #Status
+    'startdate',    #Start, already a unix timestamp
+    skip(2),        #Start date, Start time
+    'enddate',      #End
+    skip(6),        #End date, End time
+                    #Calling customer, Calling type
+    'src',          #Calling number     
+    skip(1),        #Called 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 destination type, Inbound destination 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,
+                    #Internal called type, Internal called number,
+                    #Internal destination type, Internal destination number
+    'duration',     #Total seconds
+    skip(1),        #Ring seconds
+    'billsec',      #Billable seconds
+    skip(2),        #Cost
+                   #Cost including taxes
+    'accountcode',  #Billing customer
+    skip(3),        #Billing customer name, Billing type, Billing reference
+  ],
+);
+
+sub skip { map {''} (1..$_[0]) }
+
+1;