X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcdr.pm;h=fce7a14caf50d0d33e8a73186dd1d1356c562ba2;hb=5db92cf346acf4205aa96f58843a0a1d065f3988;hp=0771a7b32781bdccb50ea70a8c2b54c1c9853949;hpb=033547be1c5a0ba76c5f578fd7d656735e12a9bd;p=freeside.git diff --git a/FS/FS/cdr.pm b/FS/FS/cdr.pm index 0771a7b32..fce7a14ca 100644 --- a/FS/FS/cdr.pm +++ b/FS/FS/cdr.pm @@ -368,7 +368,14 @@ to inspect other field. sub is_tollfree { my $self = shift; my $field = scalar(@_) ? shift : 'dst'; - ( $self->$field() =~ /^(\+?1)?8(8|([02-7])\3)/ ) ? 1 : 0; + my $country = $conf->config('tollfree-country') || ''; + if ( $country eq 'AU' ) { + ( $self->$field() =~ /^(\+?61)?1800/ ) ? 1 : 0; + } elsif ( $country eq 'NZ' ) { + ( $self->$field() =~ /^(\+?64)?(800|508)/ ) ? 1 : 0; + } else { #NANPA (US/Canaada) + ( $self->$field() =~ /^(\+?1)?8(8|([02-7])\3)/ ) ? 1 : 0; + } } =item set_charged_party @@ -820,9 +827,10 @@ sub rate_prefix { # We don't round _anything_ (except granularizing) # until the final $charge = sprintf("%.2f"...). - my $seconds_left = $part_pkg->option_cacheable('use_duration') - ? $self->duration - : $self->billsec; + my $rated_seconds = $part_pkg->option_cacheable('use_duration') + ? $self->duration + : $self->billsec; + my $seconds_left = $rated_seconds; #no, do this later so it respects (group) included minutes # # charge for the first (conn_sec) seconds @@ -830,7 +838,7 @@ sub rate_prefix { # $seconds_left -= $seconds; # $weektime += $seconds; # my $charge = $rate_detail->conn_charge; - my $seconds = 0; + #my $seconds = 0; my $charge = 0; my $connection_charged = 0; @@ -888,7 +896,7 @@ sub rate_prefix { $seconds_left = 0; } - $seconds += $charge_sec; + #$seconds += $charge_sec; if ( $rate_detail->min_included ) { # the old, kind of deprecated way to do this: @@ -982,7 +990,7 @@ sub rate_prefix { $opt{'svcnum'}, 'rated_pretty_dst' => $pretty_dst, 'rated_regionname' => $rate_region->regionname, - 'rated_seconds' => $seconds, + 'rated_seconds' => $rated_seconds, #$seconds, 'rated_granularity' => $rate_detail->sec_granularity, #$granularity 'rated_ratedetailnum' => $rate_detail->ratedetailnum, 'rated_classnum' => $rate_detail->classnum, #rated_ratedetailnum? @@ -1250,7 +1258,7 @@ sub export_formats { my $conf = new FS::Conf; my $date_format = $conf->config('date_format') || '%m/%d/%Y'; - # call duration in the largest units that accurately reflect the granularity + # call duration in the largest units that accurately reflect the granularity my $duration_sub = sub { my($cdr, %opt) = @_; my $sec = $opt{seconds} || $cdr->billsec;