mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-23 01:03:21 +00:00
Handle more cases with decimal/thousands separator
- ',' or '.' can be used as decimal separator (defined in the application configuration) - Remove thousands separator if it's detected as so (use regexp to match)
This commit is contained in:
@@ -6,11 +6,15 @@ angular.module("admin.utils").filter "unlocalizeCurrency", ()->
|
||||
# used decimal and thousands separators from currency configuration
|
||||
decimal_separator = I18n.toCurrency(.1, {precision: 1, unit: ''}).substring(1,2)
|
||||
thousands_separator = I18n.toCurrency(1000, {precision: 1, unit: ''}).substring(1,2)
|
||||
|
||||
# Replace comma used as a decimal separator and remplace by "."
|
||||
if (price.match(/^[0-9]*(,{1})[0-9]{1,2}$/g))
|
||||
price = price.replace(",", ".")
|
||||
|
||||
if (price.length > 4)
|
||||
# remove configured thousands separator if price is greater than 999
|
||||
# Remove configured thousands separator if it is actually a thousands separator
|
||||
if (new RegExp("^([0-9]*(" + thousands_separator + "{1})[0-9]{3}[0-9\.,]*)*$", "g").test(price))
|
||||
price = price.replaceAll(thousands_separator, '')
|
||||
|
||||
|
||||
if (decimal_separator == ",")
|
||||
price = price.replace(",", ".")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user