summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2016-05-26 15:43:55 -0700
committerMark Wells <mark@freeside.biz>2016-05-26 15:43:55 -0700
commitf072dc42c97981167acae2e987a4e4e6a6a4d403 (patch)
tree9cdb8fb3b818cacf8da891267cff1f8cb506c167
parentdd82a27357402466390044d001824657f6617626 (diff)
in rated CDR packages, multiply included minutes by package quantity, #71003
-rw-r--r--FS/FS/cdr.pm6
-rw-r--r--FS/FS/part_pkg/voip_cdr.pm5
-rw-r--r--FS/FS/part_pkg/voip_inbound.pm1
-rw-r--r--FS/FS/part_pkg/voip_sqlradacct.pm3
-rw-r--r--FS/FS/part_pkg/voip_tiered.pm1
5 files changed, 12 insertions, 4 deletions
diff --git a/FS/FS/cdr.pm b/FS/FS/cdr.pm
index b3cceb4aa..df16c7fda 100644
--- a/FS/FS/cdr.pm
+++ b/FS/FS/cdr.pm
@@ -927,8 +927,10 @@ sub rate_prefix {
# by default, set the included minutes for this region/time to
# what's in the rate_detail
- $included_min->{$regionnum}{$ratetimenum} = $rate_detail->min_included
- unless exists $included_min->{$regionnum}{$ratetimenum};
+ if (!exists( $included_min->{$regionnum}{$ratetimenum} )) {
+ $included_min->{$regionnum}{$ratetimenum} =
+ ($rate_detail->min_included * $cust_pkg->quantity || 1);
+ }
if ( $included_min->{$regionnum}{$ratetimenum} >= $minutes ) {
$charge_sec = 0;
diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm
index be2d15b23..24c4cf041 100644
--- a/FS/FS/part_pkg/voip_cdr.pm
+++ b/FS/FS/part_pkg/voip_cdr.pm
@@ -401,8 +401,10 @@ sub calc_usage {
my $included_min = $self->option('min_included', 1) || 0;
#single price rating
#or region group
+ $included_min *= ($cust_pkg->quantity || 1);
my $included_calls = $self->option('calls_included', 1) || 0;
+ $included_calls *= ($cust_pkg->quantity || 1);
my $cdr_svc_method = $self->option('cdr_svc_method',1)||'svc_phone.phonenum';
my $rating_method = $self->option('rating_method') || 'prefix';
@@ -664,7 +666,8 @@ sub reset_usage {
FS::cust_pkg_usage->new({
'pkgnum' => $cust_pkg->pkgnum,
'pkgusagepart' => $part,
- 'minutes' => $part_pkg_usage->minutes,
+ 'minutes' => $part_pkg_usage->minutes *
+ ($cust_pkg->quantity || 1),
});
foreach my $cdr_usage (
qsearch('cdr_cust_pkg_usage', {'cdrusagenum' => $usage->cdrusagenum})
diff --git a/FS/FS/part_pkg/voip_inbound.pm b/FS/FS/part_pkg/voip_inbound.pm
index 052bb7f9f..81f276500 100644
--- a/FS/FS/part_pkg/voip_inbound.pm
+++ b/FS/FS/part_pkg/voip_inbound.pm
@@ -214,6 +214,7 @@ sub calc_usage {
# my $downstream_cdr = '';
my $included_min = $self->option('min_included', 1) || 0;
+ $included_min *= ($cust_pkg->quantity || 1);
my $use_duration = $self->option('use_duration');
my $output_format = $self->option('output_format', 1) || 'default';
diff --git a/FS/FS/part_pkg/voip_sqlradacct.pm b/FS/FS/part_pkg/voip_sqlradacct.pm
index a205f9fe6..299d5c1d0 100644
--- a/FS/FS/part_pkg/voip_sqlradacct.pm
+++ b/FS/FS/part_pkg/voip_sqlradacct.pm
@@ -131,7 +131,8 @@ sub calc_recur {
# find the price and add detail to the invoice
###
- $included_min{$regionnum} = $rate_detail->min_included
+ $included_min{$regionnum} =
+ ($rate_detail->min_included * $cust_pkg->quantity || 1)
unless exists $included_min{$regionnum};
my $granularity = $rate_detail->sec_granularity;
diff --git a/FS/FS/part_pkg/voip_tiered.pm b/FS/FS/part_pkg/voip_tiered.pm
index d8d74c13f..0ad0ff6bf 100644
--- a/FS/FS/part_pkg/voip_tiered.pm
+++ b/FS/FS/part_pkg/voip_tiered.pm
@@ -81,6 +81,7 @@ sub calc_usage {
&& ( $last_bill eq '' || $last_bill == 0 );
my $included_min = $self->option('min_included', 1) || 0;
+ $included_min *= ($cust_pkg->quantity || 1);
my $cdr_svc_method = $self->option('cdr_svc_method',1)||'svc_phone.phonenum';
my $cdr_inout = ($cdr_svc_method eq 'svc_phone.phonenum')
&& $self->option('cdr_inout',1)