From 726ceca7c0810b7f9c1e888a7880fd1dfb749c2e Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Thu, 15 May 2014 19:16:43 -0700 Subject: [PATCH] allow non-integer minutes in CDR usage pools, #5738, see also #28308 --- FS/FS/ClientAPI/MyAccount.pm | 2 +- FS/FS/Schema.pm | 6 +++--- FS/FS/cdr_cust_pkg_usage.pm | 2 +- FS/FS/cust_pkg.pm | 2 +- FS/FS/cust_pkg_usage.pm | 2 +- FS/FS/part_pkg_usage.pm | 2 +- httemplate/view/cust_main/packages/package.html | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index e5078f960..6619eb181 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 416587d8a..12064afe2 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 7de876413..5d68d668d 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 b1cdf45d4..cabecd6bb 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 d29584290..84ba66ecd 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 008a2a933..b19c63d07 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 d83bab4b4..9f6169c1e 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; > <% $part->description %>: - ALIGN="right"><% $usage->minutes %> + ALIGN="right"><% sprintf('%.1f', $usage->minutes) %> > / ><% $part->minutes %> % if ( $part->shared ) { -- 2.11.0