$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?
my $error =
$self->ut_numbern('acctid')
- #Usage = 1, S&E = 7, OC&C = 8
- || $self->ut_foreign_keyn('cdrtypenum', 'cdr_type', 'cdrtypenum' )
-
- #the big list in appendix 2
- || $self->ut_foreign_keyn('calltypenum', 'cdr_calltype', 'calltypenum' )
-
- # Telstra =1, Optus = 2, RSL COM = 3
- || $self->ut_foreign_keyn('carrierid', 'cdr_carrier', 'carrierid' )
+ #add a config option to turn these back on if someone needs 'em
+ #
+ # #Usage = 1, S&E = 7, OC&C = 8
+ # || $self->ut_foreign_keyn('cdrtypenum', 'cdr_type', 'cdrtypenum' )
+ #
+ # #the big list in appendix 2
+ # || $self->ut_foreign_keyn('calltypenum', 'cdr_calltype', 'calltypenum' )
+ #
+ # # Telstra =1, Optus = 2, RSL COM = 3
+ # || $self->ut_foreign_keyn('carrierid', 'cdr_carrier', 'carrierid' )
;
return $error if $error;
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 $@;