summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2018-11-12 19:00:36 -0800
committerIvan Kohler <ivan@freeside.biz>2018-11-12 19:00:36 -0800
commitb71b1576c68bc40ad26592b354feace37a029f0e (patch)
tree27416592957a15ca40d5d998f85dd266c07a57cb
parentbfba4dcd1478d5ace640464b3e2e05531f3db5e0 (diff)
Option to ignore old CDRs, RT#81480
-rw-r--r--FS/FS/part_pkg/voip_cdr.pm10
-rwxr-xr-xhttemplate/edit/part_pkg.cgi8
2 files changed, 17 insertions, 1 deletions
diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm
index 587a8c530..522e4aa6f 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,7 +359,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 +674,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 a6a2a89c5..dd8cb13a2 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' =>
@@ -1003,6 +1004,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',