summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2012-12-20 02:45:10 -0800
committerIvan Kohler <ivan@freeside.biz>2012-12-20 02:45:10 -0800
commit163bc5b77d302447d3f1126185af9a798727562e (patch)
treef9718e5ff49dfa5b9c9dd80d65ea5203e4f0d438
parentddc6218aa921664c4a3baa7e0daa81b6fbeaa658 (diff)
use_carrierid now accepts multiple values, RT#20706
-rw-r--r--FS/FS/part_pkg/voip_cdr.pm8
1 files changed, 4 insertions, 4 deletions
diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm
index 08cf4a10a..cac58384c 100644
--- a/FS/FS/part_pkg/voip_cdr.pm
+++ b/FS/FS/part_pkg/voip_cdr.pm
@@ -144,7 +144,7 @@ tie my %unrateable_opts, 'Tie::IxHash',
'type' => 'checkbox',
},
- 'use_carrierid' => { 'name' => 'Only charge for CDRs where the Carrier ID is set to: ',
+ 'use_carrierid' => { 'name' => 'Only charge for CDRs where the Carrier ID is set to any of these (comma-separated) values: ',
},
'use_cdrtypenum' => { 'name' => 'Only charge for CDRs where the CDR Type is set to: ',
@@ -923,9 +923,9 @@ sub check_chargable {
if length($_) && substr($cdr->dst,0,length($_)) eq $_;
}
- return "carrierid != $opt{'use_carrierid'}"
- if length($opt{'use_carrierid'})
- && $cdr->carrierid ne $opt{'use_carrierid'} #ne otherwise 0 matches ''
+ return "carrierid NOT IN ( $opt{'use_carrierid'} )"
+ if $opt{'use_carrierid'} =~ /\S/
+ && !grep { $cdr->carrierid eq $_ } split(/\s*,\s*/, $opt{'use_carrierid'}) #eq otherwise 0 matches ''
&& ! $flags{'da_rewrote'};
# unlike everything else, use_cdrtypenum is applied in FS::svc_x::get_cdrs.