X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=FS%2FFS%2Fcdr.pm;h=34243fae98ece6b3a09ee3be497615e50783cc54;hb=e6820a61a43c840ef08a11bdda41507dac2a9ff7;hp=4de7aa35bd9b49b1d3c5ce1b235af69f95adc8d6;hpb=5901094b2c969be3a56d91f0341161868c583169;p=freeside.git diff --git a/FS/FS/cdr.pm b/FS/FS/cdr.pm index 4de7aa35b..34243fae9 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 ) {