X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fvoip_cdr.pm;h=49e43e91545b4a2e0d8b25e17a4491421609f14b;hp=8085c1995585da87992d74304de0ccd968074001;hb=e2bb9577e6d6281f251f3a5b74319543429cc50f;hpb=cf98bcb1b302d553ef050c2ef1e4fe7b660705b1 diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 8085c1995..49e43e915 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; @@ -294,6 +295,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,11 +359,18 @@ 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 ) ], 'weight' => 41, + 'validate' => sub { + # Validation function for FS::part_pkg::check_options() + my $options = shift; + return "Please choose a Rate Plan for use with selected Rating Method" + if $options->{rating_method} eq 'prefix' && !$options->{ratenum}; + return; + }, ); sub price_info { @@ -663,6 +674,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 $self->option_cacheable('skip_old') + && $cdr->calldate_unix < str2time($self->option_cacheable('skip_old')); + #all right then, rate it ''; } @@ -724,4 +739,3 @@ sub hide_svc_detail { 1; -