X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcdr.pm;h=0fdcbdf8d138ced2d71e0c645989c4f3115b86d2;hb=a0e00fa0547e99893c735ab3dbdacdb2bb054f5a;hp=b16cb8648caa07d28907fbbbc8c723b35d1a5744;hpb=e19de946a48c91ed05a9267b4425ff5dd98da1e5;p=freeside.git diff --git a/FS/FS/cdr.pm b/FS/FS/cdr.pm index b16cb8648..0fdcbdf8d 100644 --- a/FS/FS/cdr.pm +++ b/FS/FS/cdr.pm @@ -680,8 +680,19 @@ sub rate_prefix { # (or calling station id for toll free calls) ### + my $eff_ratenum = $self->is_tollfree('accountcode') + ? $part_pkg->option_cacheable('accountcode_tollfree_ratenum') + : ''; + my( $to_or_from, $column ); - if ( $self->is_tollfree && ! $part_pkg->option_cacheable('disable_tollfree') ) + if( + ( $self->is_tollfree + && ! $part_pkg->option_cacheable('disable_tollfree') + ) + or ( $eff_ratenum + && $part_pkg->option_cacheable('accountcode_tollfree_field') eq 'src' + ) + ) { #tollfree call $to_or_from = 'from'; $column = 'src'; @@ -702,10 +713,6 @@ sub rate_prefix { #asterisks here causes inserting the detail to barf, so: $pretty_dst =~ s/\*//g; - my $eff_ratenum = $self->is_tollfree('accountcode') - ? $part_pkg->option_cacheable('accountcode_tollfree_ratenum') - : ''; - my $ratename = ''; my $intrastate_ratenum = $part_pkg->option_cacheable('intrastate_ratenum'); if ( $intrastate_ratenum && !$self->is_tollfree ) { @@ -904,7 +911,7 @@ sub rate_prefix { #${$opt{region_group_included_min}} -= $minutes # if $region_group && $rate_detail->region_group; - if ( $included_min->{$regionnum}{$ratetimenum} > $minutes ) { + if ( $included_min->{$regionnum}{$ratetimenum} >= $minutes ) { $charge_sec = 0; $included_min->{$regionnum}{$ratetimenum} -= $minutes; } else { @@ -1144,6 +1151,8 @@ sub calltypename { =cut +# in the future, load this dynamically from detail_format classes + my %export_names = ( 'simple' => { 'name' => 'Simple', @@ -1162,6 +1171,10 @@ my %export_names = ( 'name' => 'Basic', 'invoice_header' => "Date/Time,Called Number,Min/Sec,Price", }, + 'basic_upstream_dst_regionname' => { + 'name' => 'Basic with upstream destination name', + 'invoice_header' => "Date/Time,Called Number,Destination,Min/Sec,Price", + }, 'default' => { 'name' => 'Default', 'invoice_header' => 'Date,Time,Number,Destination,Duration,Price', @@ -1650,9 +1663,15 @@ my %import_options = ( keys %cdr_info }, - 'format_row_callbacks' => { map { $_ => $cdr_info{$_}->{'row_callback'}; } - keys %cdr_info - }, + 'format_row_callbacks' => + { map { $_ => $cdr_info{$_}->{'row_callback'}; } + keys %cdr_info + }, + + 'format_parser_opts' => + { map { $_ => $cdr_info{$_}->{'parser_opt'}; } + keys %cdr_info + }, ); sub _import_options {