From 8c85724700a39832d0e0c97a942dc5cc564d2282 Mon Sep 17 00:00:00 2001 From: Fridolin Somers Date: Thu, 6 Jul 2017 08:48:18 +0200 Subject: [PATCH] Bug 18900: wrong number format in receiving order Bug 18471 added number formating in order receive. I found a bug generated by this. Koha::Number::Price defines methods to (un)format price depending on CurrencyFormat syspref. The bug is that for CurrencyFormat US, some params are not defined in this module so there are retrieved from system locale. If system locale is not en_US, the params will be wrong. For example fr_FR will define ',' as decimal and so saved unit price is divided by 1000. To recreate: - On a server with locale 'fr_FR' - With Plack mode - Set CurrencyFormat on 'US' - Open a basket - Place an order for an item - Close basket - Receive order with changing 'Actual Cost' to '1,234' - Note the 'Actual Cost' is now '1.23' - Run unit test t/Number/Price.t without and with patch Signed-off-by: Katrin Fischer Signed-off-by: Tomas Cohen Arazi --- Koha/Number/Price.pm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Koha/Number/Price.pm b/Koha/Number/Price.pm index 331e3c33e8..669d908bdd 100644 --- a/Koha/Number/Price.pm +++ b/Koha/Number/Price.pm @@ -87,8 +87,11 @@ sub _format_params { my $int_curr_symbol = q||; my %format_params = ( + decimal_fill => '2', + decimal_point => '.', int_curr_symbol => $int_curr_symbol, mon_thousands_sep => ',', + thousands_sep => ',', mon_decimal_point => '.' ); -- 2.39.5