X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcdr.pm;h=bd0ed57e90490095f00018acd2d14b203b91ca0a;hb=4b34c0c3dfc664793e5345c629e26c100e94aa22;hp=4de7aa35bd9b49b1d3c5ce1b235af69f95adc8d6;hpb=5901094b2c969be3a56d91f0341161868c583169;p=freeside.git diff --git a/FS/FS/cdr.pm b/FS/FS/cdr.pm index 4de7aa35b..bd0ed57e9 100644 --- a/FS/FS/cdr.pm +++ b/FS/FS/cdr.pm @@ -324,15 +324,19 @@ sub check { $self->SUPER::check; } -=item is_tollfree +=item is_tollfree [ COLUMN ] - Returns true when the cdr represents a toll free number and false otherwise. +Returns true when the cdr represents a toll free number and false otherwise. + +By default, inspects the dst field, but an optional column name can be passed +to inspect other field. =cut sub is_tollfree { my $self = shift; - ( $self->dst =~ /^(\+?1)?8(8|([02-7])\3)/ ) ? 1 : 0; + my $field = scalar(@_) ? shift : 'dst'; + ( $self->$field() =~ /^(\+?1)?8(8|([02-7])\3)/ ) ? 1 : 0; } =item set_charged_party @@ -361,6 +365,11 @@ sub set_charged_party { if $conf->exists('cdr-charged_party-accountcode-trim_leading_0s'); $self->charged_party( $charged_party ); + } elsif ( $conf->exists('cdr-charged_party-field') ) { + + my $field = $conf->config('cdr-charged_party-field'); + $self->charged_party( $self->$field() ); + } else { if ( $self->is_tollfree ) { @@ -764,6 +773,9 @@ sub _cdr_date_parse { } elsif ( $date =~ /^\s*(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d+\.\d+)(\D|$)/ ) { # broadsoft: 20081223201938.314 ($year, $mon, $day, $hour, $min, $sec) = ( $1, $2, $3, $4, $5, $6 ); + } elsif ( $date =~ /^\s*(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\d+(\D|$)/ ) { + # Taqua OM: 20050422203450943 + ($year, $mon, $day, $hour, $min, $sec) = ( $1, $2, $3, $4, $5, $6 ); } elsif ( $date =~ /^\s*(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/ ) { # WIP: 20100329121420 ($year, $mon, $day, $hour, $min, $sec) = ( $1, $2, $3, $4, $5, $6 ); @@ -833,6 +845,10 @@ my %import_options = ( { map { $_ => $cdr_info{$_}->{'fixedlength_format'}; } keys %cdr_info }, + + 'format_row_callbacks' => { map { $_ => $cdr_info{$_}->{'row_callback'}; } + keys %cdr_info + }, ); sub _import_options {