$self->calldate( $self->startdate_sql )
if !$self->calldate && $self->startdate;
+ my $conf = new FS::Conf;
+
unless ( $self->charged_party ) {
- if ( $self->dst =~ /^(\+?1)?8[02-8]{2}/ ) {
- $self->charged_party($self->dst);
+
+ if ( $conf->exists('cdr-charged_party-accountcode') && $self->accountcode ){
+
+ $self->charged_party( $self->accountcode );
+
} else {
- $self->charged_party($self->src);
+
+ if ( $self->dst =~ /^(\+?1)?8[02-8]{2}/ ) {
+ $self->charged_party($self->dst);
+ } else {
+ $self->charged_party($self->src);
+ }
+
}
+
}
#check the foreign keys even?
sub _cdr_min_parser_maker {
my $field = shift;
my @fields = ref($field) ? @$field : ($field);
- @fields = qw( billsec duration ) unless scalar(@fields);
+ @fields = qw( billsec duration ) unless scalar(@fields) && $fields[0];
return sub {
my( $cdr, $min ) = @_;
my $sec = eval { _cdr_min_parse($min) };
if ( $type eq 'csv' ) {
eval "use Text::CSV_XS;";
die $@ if $@;
- $parser = new Text::CSV_XS;
+ my %attr = ();
+ foreach ( grep exists($info->{$_}), qw( sep_char ) ) {
+ $attr{$_} = $info->{$_};
+ }
+ $parser = new Text::CSV_XS \%attr;
} elsif ( $type eq 'fixedlength' ) {
eval "use Parse::FixedLength;";
die $@ if $@;