projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix discounts vs. quantities for prorate packages, RT#23530
[freeside.git]
/
FS
/
FS
/
part_pkg
/
voip_cdr.pm
diff --git
a/FS/FS/part_pkg/voip_cdr.pm
b/FS/FS/part_pkg/voip_cdr.pm
index
21c6a8a
..
1a97186
100644
(file)
--- a/
FS/FS/part_pkg/voip_cdr.pm
+++ b/
FS/FS/part_pkg/voip_cdr.pm
@@
-31,6
+31,11
@@
tie my %rating_method, 'Tie::IxHash',
'single_price' => 'A single price per minute for all calls.',
;
'single_price' => 'A single price per minute for all calls.',
;
+tie my %rounding, 'Tie::IxHash',
+ '2' => 'Two decimal places (cent)',
+ '4' => 'Four decimal places (100th of a cent)',
+;
+
#tie my %cdr_location, 'Tie::IxHash',
# 'internal' => 'Internal: CDR records imported into the internal CDR table',
# 'external' => 'External: CDR records queried directly from an external '.
#tie my %cdr_location, 'Tie::IxHash',
# 'internal' => 'Internal: CDR records imported into the internal CDR table',
# 'external' => 'External: CDR records queried directly from an external '.
@@
-92,6
+97,11
@@
tie my %detail_formats, 'Tie::IxHash',
'options' => \%rating_method,
},
'options' => \%rating_method,
},
+ 'rounding' => { 'name' => 'Rounding for destination prefix rating',
+ 'type' => 'select',
+ 'select_options' => \%rounding,
+ },
+
'ratenum' => { 'name' => 'Rate plan',
'type' => 'select',
'select_table' => 'rate',
'ratenum' => { 'name' => 'Rate plan',
'type' => 'select',
'select_table' => 'rate',
@@
-304,7
+314,7
@@
tie my %detail_formats, 'Tie::IxHash',
FS::part_pkg::prorate_Mixin::fieldorder,
qw(
cdr_svc_method
FS::part_pkg::prorate_Mixin::fieldorder,
qw(
cdr_svc_method
- rating_method ratenum intrastate_ratenum
+ rating_method r
ounding r
atenum intrastate_ratenum
calls_included
min_charge min_included sec_granularity
ignore_unrateable
calls_included
min_charge min_included sec_granularity
ignore_unrateable
@@
-352,7
+362,7
@@
sub calc_recur {
my $charges = 0;
$charges += $self->calc_usage(@_);
my $charges = 0;
$charges += $self->calc_usage(@_);
- $charges += $self->calc_recur_Common(@_);
+ $charges +=
($cust_pkg->quantity || 1) *
$self->calc_recur_Common(@_);
$charges;
$charges;
@@
-423,6
+433,11
@@
sub calc_usage {
$svc_x = $cust_svc->svc_x;
}
$svc_x = $cust_svc->svc_x;
}
+ unless ( $svc_x ) {
+ my $h = $self->option('bill_inactive_svcs',1) ? 'h_' : '';
+ warn "WARNING: no $h$svc_table for svcnum ". $cust_svc->svcnum. "\n";
+ }
+
my %options = (
'disable_src' => $self->option('disable_src'),
'default_prefix' => $self->option('default_prefix'),
my %options = (
'disable_src' => $self->option('disable_src'),
'default_prefix' => $self->option('default_prefix'),