From: Ivan Kohler Date: Mon, 23 May 2022 21:42:23 +0000 (-0700) Subject: add noskip_dcontext_tollfree option, RT#86028, RT#81941 X-Git-Url: http://git.freeside.biz/gitweb/?a=commitdiff_plain;h=627a78fce919b543df70ca06fb910bfe0b3a1f12;hp=572f9f1d1c57c6eadffae68760c1dfe3a50c87d2;p=freeside.git add noskip_dcontext_tollfree option, RT#86028, RT#81941 --- diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 0906e9ac4..b56f552b0 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -203,6 +203,10 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', 'skip_dcontext' => { 'name' => 'Do not charge for CDRs where dcontext is set to any of these (comma-separated) values: ', }, + 'noskip_dcontext_tollfree' => { 'name' => 'Do charge for CDRs where dcontext is set to any of the specified values, if the CDR is tollfree', + 'type' => 'checkbox', + }, + 'skip_dcontext_prefix' => { 'name' => 'Do not charge for CDRs where dcontext starts with: ', }, @@ -362,7 +366,8 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', use_cdrtypenum ignore_cdrtypenum use_calltypenum ignore_calltypenum ignore_disposition disposition_in disposition_prefix - skip_dcontext skip_dcontext_prefix skip_dcontext_suffix + skip_dcontext noskip_dcontext_tollfree + skip_dcontext_prefix skip_dcontext_suffix skip_dst_prefix skip_dstchannel_prefix skip_src_length_more noskip_src_length_accountcode_tollfree @@ -639,7 +644,10 @@ sub check_chargable { return "dcontext IN ( ". $self->option_cacheable('skip_dcontext'). " )" if $self->option_cacheable('skip_dcontext') =~ /\S/ - && grep { $cdr->dcontext eq $_ } split(/\s*,\s*/, $self->option_cacheable('skip_dcontext')); + && grep { $cdr->dcontext eq $_ } split(/\s*,\s*/, $self->option_cacheable('skip_dcontext')) + && ! ( $self->option_cacheable('noskip_dcontext_tollfree') + && $cdr->is_tollfree + ); my $len_dcontext_prefix = length($self->option_cacheable('skip_dcontext_prefix'));