From 206ae45f19e24886aa203f66a732f69632693cfb Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Mon, 12 Nov 2018 19:00:51 -0800 Subject: [PATCH] Option to ignore old CDRs, RT#81480 --- FS/FS/part_pkg/voip_cdr.pm | 10 +++++++++- httemplate/edit/part_pkg.cgi | 8 ++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 7947a143d..1a052366b 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; @@ -301,6 +302,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', + }, 'count_available_phones' => { 'name' => 'Consider for tax purposes the number of lines to be svc_phones that may be provisioned rather than those that actually are.', 'type' => 'checkbox', @@ -366,7 +370,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 count_available_phones suspend_bill ) ], @@ -682,6 +686,10 @@ 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')); + #all right then, rate it ''; } diff --git a/httemplate/edit/part_pkg.cgi b/httemplate/edit/part_pkg.cgi index f9cfee807..c6a442b15 100755 --- a/httemplate/edit/part_pkg.cgi +++ b/httemplate/edit/part_pkg.cgi @@ -9,6 +9,7 @@ #'viewall_dir' => 'browse', 'viewall_url' => $p.'browse/part_pkg.cgi', 'html_init' => include('/elements/init_overlib.html'). + include('/elements/init_calendar.html'). $javascript, 'html_bottom' => $html_bottom, 'body_etc' => @@ -880,6 +881,13 @@ my $html_bottom = sub { : '' ). '>'; + } elsif ( $href->{$field}{'type'} eq 'date' ) { + + $html .= include('/elements/input-date-field.html', { + 'name' => $layer.'__'.$field, + 'value' => $options{$field}, + }); + } elsif ( $href->{$field}{'type'} =~ /^select-rt-/ ) { $html .= include('/elements/'.$href->{$field}{'type'}.'.html', -- 2.11.0