Bug 18186 - Plack config: Amounts with decimal comma instead of decimal dot breaking payments
Summary: Plack config: Amounts with decimal comma instead of decimal dot breaking paym...
Status: In Discussion
Alias: None
Product: Koha
Classification: Unclassified
Component: Circulation (show other bugs)
Version: 3.22
Hardware: All All
: P5 - low major (vote)
Target Milestone: ---
Assignee: Bugs List
QA Contact: Testopia
Depends on:
Reported: 2017-03-01 11:16 UTC by Katrin Fischer
Modified: 2018-03-01 11:25 UTC (History)
7 users (show)

See Also:
Change sponsored?: ---
Patch complexity: ---
Bot Control: ---
When did the bot last check this:
Who signed the patch off:
Text to go in the release notes:


Note You need to log in before you can comment on or make changes to this bug.
Description Katrin Fischer 2017-03-01 11:16:05 UTC
In our current installations running under Plack, the amounts on the pay and paycollect pages suddenly started showing with a decimal comma instead of a decimal point. This causes quite a bit of trouble, as Koha expects a . and amounts entered didn't result in the expected payments. We got several reports about payments being broken in Koha.

Test plan:
- Add manual invoice
- View the "fines" tag
- Verify that individual fees and totals display with , instead of .
- Pay selected or any amount
- Verify that the input field for the amount is also showing the ,
- Verify that paying something like 1,10 doesn't work as expected.

The problem with the test plan is, that you might not see the ,. This appears only on our productions servers, but not in my development environment. 

We tested:
- different language settings in Koha
- different language settings in the browser
- verified that CurrencyFormat isn't used in the code on those page
- verified that all the formatting done was using the TT filter format('%.2f')

In the end the problem turned out to be related to Plack.
Comment 1 Ulrich Kleiber 2017-03-03 09:12:01 UTC
The 'comma problem' started on our production servers after we have enabled Plack. It seems that the CGI version is using locale C whereas Plack is using the default locale of the server. After we have chosen None as our default locale, the decimal point was back again (partly a reboot was required).
Apart from this, the default locale None is also recommended here: https://wiki.debian.org/Locale
Comment 2 Alex Buckley 2017-04-20 04:01:07 UTC
Hi Katrin 

I tried following your test plan doing the following, on the latest version of Koha

* Turning on plack
* Creating a manual invoice with the value 10.00
* Going to the fines tab and observed both the individual fine and the total were displayed with . i.e. 10.00 not a ,

Therefore I am unable to replicate this test plan
Comment 3 Katrin Fischer 2017-04-20 05:34:21 UTC
Hi Alex,
this is not easy to reproduce as it depends on the environment/Plack configuration (see comment from my coworker Ulrich). It's real, but not sure if a patch can be written to fix it. We thought it would be good to write up our finding in case another library runs into this.