clarify CDR skipping options only work with prefix rating, RT#81480
[freeside.git] / FS / FS / part_pkg / voip_cdr.pm
index 522e4aa..3e2082b 100644 (file)
@@ -26,8 +26,8 @@ tie my %cdr_svc_method, 'Tie::IxHash',
 tie my %rating_method, 'Tie::IxHash',
   'prefix' => 'Rate calls by using destination prefix to look up a region and rate according to the internal prefix and rate tables',
 #  'upstream' => 'Rate calls based on upstream data: If the call type is "1", map the upstream rate ID directly to an internal rate (rate_detail), otherwise, pass the upstream price through directly.',
-  'upstream_simple' => 'Simply pass through and charge the "upstream_price" amount.',
-  'single_price' => 'A single price per minute for all calls.',
+  'upstream_simple' => 'Simply pass through and charge the "upstream_price" amount (ignoring all options to skip calls).',
+  'single_price' => 'A single price per minute for all calls (ignoring all options to skip calls).',
 ;
 
 tie my %rounding, 'Tie::IxHash',
@@ -166,9 +166,13 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash',
                          },
 
     'use_cdrtypenum' => { 'name' => 'Only charge for CDRs where the CDR Type is set to this cdrtypenum: ',
+                          'validate' => \&FS::part_pkg::validate_number_blank,
+                          'js_validate' => 'digits: true',
                          },
     
     'ignore_cdrtypenum' => { 'name' => 'Do not charge for CDRs where the CDR Type is set to this cdrtypenum: ',
+                             'validate' => \&FS::part_pkg::validate_number_blank,
+                             'js_validate' => 'digits: true',
                          },
 
     'use_calltypenum' => { 'name' => 'Only charge for CDRs where the CDR Call Type is set to this calltypenum: ',
@@ -674,9 +678,9 @@ sub check_chargable {
       and length($cdr->max_callers)
       and $cdr->max_callers <= $self->option_cacheable('skip_max_callers');
 
-  return "calldate < ". str2time($self->option_cacheable('skip_old'))
-    if $self->option_cacheable('skip_old')
-    && $self->calldate_unix < str2time($self->option_cacheable('skip_old')); 
+  return "calldate < ". $self->option_cacheable('skip_old')
+    if length($self->option_cacheable('skip_old'))
+    && $cdr->calldate_unix < str2time($self->option_cacheable('skip_old')); 
 
   #all right then, rate it
   '';