X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fvoip_cdr.pm;h=3e2082ba0d08c1197f95487b87b5cc98b75f2fc1;hp=587a8c5304d82260cb467c74f6464067a7b3c3ba;hb=121510b6337b7f75f25d583730a65f3fc63bbfbe;hpb=ed2d4de2ea785d30a54fb069b29f9618a40113c9 diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 587a8c530..3e2082ba0 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -4,6 +4,7 @@ use base qw( FS::part_pkg::recur_Common ); use strict; use vars qw( $DEBUG %info ); use Tie::IxHash; +use Date::Parse; use Date::Format; use Text::CSV_XS; use FS::Conf; @@ -25,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', @@ -165,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: ', @@ -294,6 +299,9 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', 'bill_only_pkg_dates' => { 'name' => 'Only bill CDRs with a date during the package billing period', 'type' => 'checkbox', }, + 'skip_old' => { 'name' => 'Do not charge for CDRs older than: ', + 'type' => 'date', + }, #XXX also have option for an external db? these days we suck them into ours # 'cdr_location' => { 'name' => 'CDR database location' @@ -355,7 +363,7 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', selfservice_format selfservice_inbound_format usage_mandate usage_section summarize_usage usage_showzero bill_every_call bill_inactive_svcs - bill_only_pkg_dates + bill_only_pkg_dates skip_old suspend_bill ) ], @@ -670,6 +678,10 @@ sub check_chargable { and length($cdr->max_callers) and $cdr->max_callers <= $self->option_cacheable('skip_max_callers'); + 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 ''; }