projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e0aacf6
)
36503 Scalability issues with amcom CDRs
author
Jeremy Davis
<jeremyd@freeside.biz>
Sat, 31 Oct 2015 08:05:56 +0000
(
04:05
-0400)
committer
Jeremy Davis
<jeremyd@freeside.biz>
Sat, 31 Oct 2015 08:05:56 +0000
(
04:05
-0400)
FS/FS/cdr/amcom.pm
patch
|
blob
|
history
diff --git
a/FS/FS/cdr/amcom.pm
b/FS/FS/cdr/amcom.pm
index
fee81f7
..
697a682
100644
(file)
--- a/
FS/FS/cdr/amcom.pm
+++ b/
FS/FS/cdr/amcom.pm
@@
-2,9
+2,9
@@
package FS::cdr::amcom;
use strict;
use base qw( FS::cdr );
use strict;
use base qw( FS::cdr );
-use vars qw( %info );
+use vars qw( %info
%cdrtypes
);
use DateTime;
use DateTime;
-use FS::Record qw( qsearch
s
);
+use FS::Record qw( qsearch );
use FS::cdr_type;
my ($tmp_mday, $tmp_mon, $tmp_year);
use FS::cdr_type;
my ($tmp_mday, $tmp_mon, $tmp_year);
@@
-16,6
+16,12
@@
my ($tmp_mday, $tmp_mon, $tmp_year);
'type' => 'csv',
'sep_char' => ',',
'disabled' => 0,
'type' => 'csv',
'sep_char' => ',',
'disabled' => 0,
+ 'header_buffer' => sub {
+
+ %cdrtypes = ( map { $_->cdrtypename => $_->cdrtypenum }
+ qsearch('cdr_type', {})
+ );
+ },
#listref of what to do with each field from the CDR, in order
'import_fields' => [
#listref of what to do with each field from the CDR, in order
'import_fields' => [
@@
-37,9
+43,7
@@
my ($tmp_mday, $tmp_mon, $tmp_year);
sub { # 5. Call Category (LOCAL, NATIONAL, FREECALL, MOBILE)
my ($cdr, $data) = @_;
$data ||= 'none';
sub { # 5. Call Category (LOCAL, NATIONAL, FREECALL, MOBILE)
my ($cdr, $data) = @_;
$data ||= 'none';
-
- my $cdr_type = qsearchs('cdr_type', { 'cdrtypename' => $data } );
- $cdr->set('cdrtypenum', $cdr_type->cdrtypenum) if $cdr_type;
+ $cdr->cdrtypenum($cdrtypes{$data} || '');
$cdr->set('dcontext', $data);
},
sub { # 6. Start Date (DDMMYYYY
$cdr->set('dcontext', $data);
},
sub { # 6. Start Date (DDMMYYYY