fix TeleAPI import (what kind of crack was Christopher smoking that he couldn't fix...
[freeside.git] / FS / FS / cdr / zintel.pm
1 package FS::cdr::zintel;
2
3 use strict;
4 use vars qw( @ISA %info $tmp_mon $tmp_mday $tmp_year );
5 use Time::Local;
6 use FS::cdr qw(_cdr_date_parser_maker);
7 use Date::Parse;
8
9 @ISA = qw(FS::cdr);
10
11 %info = (
12   'name'          => 'Zintel',
13   'weight'        => 123,
14   'header'        => 1,
15   'import_fields' => [
16
17         'accountcode',  #customer
18         'src',          #anumber
19                  sub { my ($cdr, $dst) = @_; # Handling cosolidated local calls in the CDR formats
20
21                         my $src = $cdr->src;
22
23                         if ($dst =~ /^64\/U$/) {
24                         $cdr->set('dst', $src);
25                         } else {
26                         $cdr->set('dst', $dst);
27                         }
28                         }, #bnumber
29
30                  sub { my ($cdr, $calldate) = @_;
31                         $cdr->set('calldate', $calldate);
32
33                         $calldate =~ /^(\d{2})\/(\d{2})\/(\d{4})\s*(\d{2}):(\d{2}):(\d{2})$/
34                                 or die "unparseable date: $calldate";
35                         my $tmp_date = "$2/$1/$3 $4:$5:$6";
36
37                         $tmp_date = str2time($tmp_date);
38                         $cdr->set('startdate', $tmp_date);
39
40                   },    #DateTime
41         'billsec',      #duration
42         skip(3),        #calltype
43                         #status
44                         #product
45         'upstream_price',#sellprice
46         skip(1),        #fromregion
47         'upstream_src_regionname',              #fromarea
48         skip(2),        #fromc2city
49                         #toregion
50         'upstream_dst_regionname',              #toarea
51         skip(2),        #toc2city
52                         #group_label
53   ],
54 );
55
56 sub skip { map {''} (1..$_[0]) }
57
58 1;
59