summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2014-05-15 19:16:43 -0700
committerMark Wells <mark@freeside.biz>2014-05-15 19:16:43 -0700
commit726ceca7c0810b7f9c1e888a7880fd1dfb749c2e (patch)
treeb657d1a4c81d3f7c30e7c0e4d84bdb030dd64669
parentcd5882bb376d0e46f97d760072311b912f921e26 (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 e5078f9..6619eb1 100644
--- a/FS/FS/ClientAPI/MyAccount.pm
+++ b/FS/FS/ClientAPI/MyAccount.pm
@@ -1724,7 +1724,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 416587d..12064af 100644
--- a/FS/FS/Schema.pm
+++ b/FS/FS/Schema.pm
@@ -2735,7 +2735,7 @@ sub tables_hashref {
'columns' => [
'pkgusagenum', 'serial', '', '', '', '',
'pkgnum', 'int', '', '', '', '',
- 'minutes', 'int', '', '', '', '',
+ 'minutes', 'double precision', '', '', '', '',
'pkgusagepart', 'int', '', '', '', '',
],
'primary_key' => 'pkgusagenum',
@@ -2756,7 +2756,7 @@ sub tables_hashref {
'cdrusagenum', 'bigserial', '', '', '', '',
'acctid', 'bigint', '', '', '', '',
'pkgusagenum', 'int', '', '', '', '',
- 'minutes', 'int', '', '', '', '',
+ 'minutes', 'double precision', '', '', '', '',
],
'primary_key' => 'cdrusagenum',
'unique' => [],
@@ -4713,7 +4713,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 7de8764..5d68d66 100644
--- a/FS/FS/cdr_cust_pkg_usage.pm
+++ b/FS/FS/cdr_cust_pkg_usage.pm
@@ -86,7 +86,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 b1cdf45..cabecd6 100644
--- a/FS/FS/cust_pkg.pm
+++ b/FS/FS/cust_pkg.pm
@@ -4015,7 +4015,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 d295842..84ba66e 100644
--- a/FS/FS/cust_pkg_usage.pm
+++ b/FS/FS/cust_pkg_usage.pm
@@ -117,7 +117,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 008a2a9..b19c63d 100644
--- a/FS/FS/part_pkg_usage.pm
+++ b/FS/FS/part_pkg_usage.pm
@@ -116,7 +116,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 d83bab4..9f6169c 100644
--- a/httemplate/view/cust_main/packages/package.html
+++ b/httemplate/view/cust_main/packages/package.html
@@ -277,7 +277,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 ) {