Bugzilla – Attachment 108528 Details for
Bug 26239
Number::Format issues with large negative numbers
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 26239: Do not format large negative numbers
Bug-26239-Do-not-format-large-negative-numbers.patch (text/plain), 2.33 KB, created by
Nick Clemens (kidclamp)
on 2020-08-18 16:44:22 UTC
(
hide
)
Description:
Bug 26239: Do not format large negative numbers
Filename:
MIME Type:
Creator:
Nick Clemens (kidclamp)
Created:
2020-08-18 16:44:22 UTC
Size:
2.33 KB
patch
obsolete
>From 62d29fd9042639ed6cad2984575d2fd98978aaad Mon Sep 17 00:00:00 2001 >From: Nick Clemens <nick@bywatersolutions.com> >Date: Tue, 18 Aug 2020 16:41:09 +0000 >Subject: [PATCH] Bug 26239: Do not format large negative numbers > >At several places we got the following error if we use numbers too big >for Number::Format >Template process failed: undef error - round() overflow. Try smaller >precision or use Math::BigFloat at /home/koha/src/Koha/Number/Price.pm line 44 > >It make the app explodes. >The goal here is to handle these errors gracefully and easily. > >We fixed it for positive numbers in bug 15770, but we neglected the case of negative numbers > >Test plan: >- Add a manual credit to a patron of 100000000000000 >- ISE! >- Apply patch >- Restart all the things >- >--- > Koha/Number/Price.pm | 3 +-- > t/Number/Price.t | 3 ++- > 2 files changed, 3 insertions(+), 3 deletions(-) > >diff --git a/Koha/Number/Price.pm b/Koha/Number/Price.pm >index 7b0b826a14..e9a6aa748e 100644 >--- a/Koha/Number/Price.pm >+++ b/Koha/Number/Price.pm >@@ -40,11 +40,10 @@ sub format { > return unless defined $self->value; > > my $format_params = $self->_format_params( $params ); >- > # To avoid the system to crash, we will not format big number > # We divide per 100 because we want to keep the default DECIMAL_DIGITS (2) > # error - round() overflow. Try smaller precision or use Math::BigFloat >- return $self->value if $self->value > Number::Format::MAX_INT/100; >+ return $self->value if abs($self->value) > Number::Format::MAX_INT/100; > > return Number::Format->new(%$format_params)->format_price($self->value); > } >diff --git a/t/Number/Price.t b/t/Number/Price.t >index 141f00ffa2..ce607a83a1 100644 >--- a/t/Number/Price.t >+++ b/t/Number/Price.t >@@ -1,6 +1,6 @@ > use Modern::Perl; > >-use Test::More tests => 34; >+use Test::More tests => 35; > > use Test::MockModule; > use t::lib::Mocks; >@@ -37,6 +37,7 @@ is( Koha::Number::Price->new(1234567890)->format( $format ), > '1,234,567,890.00', 'US: format 1234567890' ); > > is( Koha::Number::Price->new(100000000000000)->format, '100000000000000', 'Numbers too big are not formatted'); >+is( Koha::Number::Price->new(-100000000000000)->format, '-100000000000000', 'Negative numbers too big are not formatted'); > > is( Koha::Number::Price->new->format( { %$format, with_symbol => 1 } ), > '$0.00', 'US: format 0 with symbol' ); >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 26239
:
108528
|
108530
|
108531
|
108560