summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorivan <ivan>2010-09-17 17:28:47 +0000
committerivan <ivan>2010-09-17 17:28:47 +0000
commit853fca259ec006d4a5f3ce046e5334210412baac (patch)
treefae6d85349c2359314e9c2267c375dba95567c37 /FS
parent9bddb219a4ea74d65a5cf43359f2bb0471c98807 (diff)
when using src_dst_length_less, add option to charge for CDRs where accountcode is toll free anyway, RT#9683
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/part_pkg/voip_cdr.pm17
1 files changed, 13 insertions, 4 deletions
diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm
index 5fc1fb8cd..c66a3fd5b 100644
--- a/FS/FS/part_pkg/voip_cdr.pm
+++ b/FS/FS/part_pkg/voip_cdr.pm
@@ -161,7 +161,7 @@ tie my %granularity, 'Tie::IxHash', FS::rate_detail::granularities();
'skip_src_length_more' => { 'name' => 'Do not charge for CDRs where the source is more than this many digits:',
},
- 'noskip_src_length_accountcode_tollfree' => { 'name' => 'Do charge for CDRs where source is equal or greater than the specified digits and accountcode is toll free',
+ 'noskip_src_length_accountcode_tollfree' => { 'name' => 'Do charge for CDRs where source is equal or greater than the specified digits, when accountcode is toll free',
'type' => 'checkbox',
},
@@ -178,6 +178,10 @@ tie my %granularity, 'Tie::IxHash', FS::rate_detail::granularities();
'skip_dst_length_less' => { 'name' => 'Do not charge for CDRs where the destination is less than this many digits:',
},
+ 'noskip_dst_length_accountcode_tollfree' => { 'name' => 'Do charge for CDRs where dst is less than the specified digits, when accountcode is toll free',
+ 'type' => 'checkbox',
+ },
+
'skip_lastapp' => { 'name' => 'Do not charge for CDRs where the lastapp matches this value',
},
@@ -255,7 +259,9 @@ tie my %granularity, 'Tie::IxHash', FS::rate_detail::granularities();
skip_dstchannel_prefix skip_src_length_more
noskip_src_length_accountcode_tollfree
accountcode_tollfree_ratenum
- skip_dst_length_less skip_lastapp
+ skip_dst_length_less
+ noskip_dst_length_accountcode_tollfree
+ skip_lastapp
use_duration
411_rewrite
output_format usage_mandate summarize_usage usage_section
@@ -827,7 +833,7 @@ sub check_chargable {
skip_dcontext
skip_dstchannel_prefix
skip_src_length_more noskip_src_length_accountcode_tollfree
- skip_dst_length_less
+ skip_dst_length_less noskip_dst_length_accountcode_tollfree
skip_lastapp
);
foreach my $opt (grep !exists($flags{option_cache}->{$_}), @opt ) {
@@ -869,7 +875,10 @@ sub check_chargable {
my $dst_length = $opt{'skip_dst_length_less'};
return "destination less than $dst_length digits"
- if $dst_length && length($cdr->dst) < $dst_length;
+ if $dst_length && length($cdr->dst) < $dst_length
+ && ! ( $opt{'noskip_dst_length_accountcode_tollfree'}
+ && $cdr->is_tollfree
+ );
return "lastapp is $opt{'skip_lastapp'}"
if length($opt{'skip_lastapp'}) && $cdr->lastapp eq $opt{'skip_lastapp'};