summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2014-05-15 19:16:11 -0700
committerMark Wells <mark@freeside.biz>2014-05-15 19:16:17 -0700
commit97ec2961fb6f1a284748034e324f4118d7ced574 (patch)
treea484ea0530a2f9470330419b838a0c89d30e70a1
parent26cd0bcebfd35aa805162718a2e27206ff65e4e4 (diff)
allow non-integer minutes in CDR usage pools, #5738, see also #28308
-rw-r--r--FS/FS/ClientAPI/MyAccount.pm2
-rw-r--r--FS/FS/Schema.pm6
-rw-r--r--FS/FS/cdr_cust_pkg_usage.pm2
-rw-r--r--FS/FS/cust_pkg.pm2
-rw-r--r--FS/FS/cust_pkg_usage.pm2
-rw-r--r--FS/FS/part_pkg_usage.pm2
-rw-r--r--httemplate/view/cust_main/packages/package.html2
7 files changed, 9 insertions, 9 deletions
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm
index 47f3bd88e..ad1f72fd5 100644
--- a/FS/FS/ClientAPI/MyAccount.pm
+++ b/FS/FS/ClientAPI/MyAccount.pm
@@ -1720,7 +1720,7 @@ sub list_svcs {
my $tag = $part->description . ($part->shared ? 1 : 0);
my $row = $usage_pools{$tag}
||= [ $part->description, 0, 0, $part->shared ? 1 : 0 ];
- $row->[1] += $_->minutes; # minutes remaining
+ $row->[1] += sprintf('%.1f', $_->minutes); # minutes remaining
$row->[2] += $part->minutes; # minutes total
}
diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm
index 9f30f804a..360a38223 100644
--- a/FS/FS/Schema.pm
+++ b/FS/FS/Schema.pm
@@ -1944,7 +1944,7 @@ sub tables_hashref {
'columns' => [
'pkgusagenum', 'serial', '', '', '', '',
'pkgnum', 'int', '', '', '', '',
- 'minutes', 'int', '', '', '', '',
+ 'minutes', 'double precision', '', '', '', '',
'pkgusagepart', 'int', '', '', '', '',
],
'primary_key' => 'pkgusagenum',
@@ -1957,7 +1957,7 @@ sub tables_hashref {
'cdrusagenum', 'bigserial', '', '', '', '',
'acctid', 'bigint', '', '', '', '',
'pkgusagenum', 'int', '', '', '', '',
- 'minutes', 'int', '', '', '', '',
+ 'minutes', 'double precision', '', '', '', '',
],
'primary_key' => 'cdrusagenum',
'unique' => [],
@@ -3285,7 +3285,7 @@ sub tables_hashref {
'columns' => [
'pkgusagepart', 'serial', '', '', '', '',
'pkgpart', 'int', '', '', '', '',
- 'minutes', 'int', '', '', '', '',
+ 'minutes', 'double precision', '', '', '', '',
'priority', 'int', 'NULL', '', '', '',
'shared', 'char', 'NULL', 1, '', '',
'rollover', 'char', 'NULL', 1, '', '',
diff --git a/FS/FS/cdr_cust_pkg_usage.pm b/FS/FS/cdr_cust_pkg_usage.pm
index 6ef7f2dea..8fa378ff3 100644
--- a/FS/FS/cdr_cust_pkg_usage.pm
+++ b/FS/FS/cdr_cust_pkg_usage.pm
@@ -87,7 +87,7 @@ sub check {
$self->ut_numbern('cdrusagenum')
|| $self->ut_foreign_key('acctid', 'cdr', 'acctid')
|| $self->ut_foreign_key('pkgusagenum', 'cust_pkg_usage', 'pkgusagenum')
- || $self->ut_number('minutes')
+ || $self->ut_float('minutes')
;
return $error if $error;
diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm
index 2a41bb668..a1f2cb1a5 100644
--- a/FS/FS/cust_pkg.pm
+++ b/FS/FS/cust_pkg.pm
@@ -4052,7 +4052,7 @@ sub apply_usage {
minutes => min($cust_pkg_usage->minutes, $minutes),
});
$cust_pkg_usage->set('minutes',
- sprintf('%.0f', $cust_pkg_usage->minutes - $cdr_cust_pkg_usage->minutes)
+ $cust_pkg_usage->minutes - $cdr_cust_pkg_usage->minutes
);
$error = $cust_pkg_usage->replace || $cdr_cust_pkg_usage->insert;
$minutes -= $cdr_cust_pkg_usage->minutes;
diff --git a/FS/FS/cust_pkg_usage.pm b/FS/FS/cust_pkg_usage.pm
index 0eefd7480..10fc2e923 100644
--- a/FS/FS/cust_pkg_usage.pm
+++ b/FS/FS/cust_pkg_usage.pm
@@ -119,7 +119,7 @@ sub check {
my $error =
$self->ut_numbern('pkgusagenum')
|| $self->ut_foreign_key('pkgnum', 'cust_pkg', 'pkgnum')
- || $self->ut_numbern('minutes')
+ || $self->ut_floatn('minutes')
|| $self->ut_foreign_key('pkgusagepart', 'part_pkg_usage', 'pkgusagepart')
;
return $error if $error;
diff --git a/FS/FS/part_pkg_usage.pm b/FS/FS/part_pkg_usage.pm
index 99014d398..5e6bcf457 100644
--- a/FS/FS/part_pkg_usage.pm
+++ b/FS/FS/part_pkg_usage.pm
@@ -117,7 +117,7 @@ sub check {
my $error =
$self->ut_numbern('pkgusagepart')
|| $self->ut_foreign_key('pkgpart', 'part_pkg', 'pkgpart')
- || $self->ut_number('minutes')
+ || $self->ut_float('minutes')
|| $self->ut_numbern('priority')
|| $self->ut_flag('shared')
|| $self->ut_flag('rollover')
diff --git a/httemplate/view/cust_main/packages/package.html b/httemplate/view/cust_main/packages/package.html
index 078402b7a..bc619f8a8 100644
--- a/httemplate/view/cust_main/packages/package.html
+++ b/httemplate/view/cust_main/packages/package.html
@@ -283,7 +283,7 @@
% $trstyle = ' CLASS="shared"' if $part->shared;
<TR<%$trstyle%>>
<TD ALIGN="right"><% $part->description %>: </TD>
- <TD <%$color%> ALIGN="right"><% $usage->minutes %></TD>
+ <TD <%$color%> ALIGN="right"><% sprintf('%.1f', $usage->minutes) %></TD>
<TD <%$color%>> / </TD>
<TD <%$color%>><% $part->minutes %></TD>
% if ( $part->shared ) {