details:   https://code.tryton.org/tryton/commit/441544568c30
branch:    7.0
user:      Cédric Krier <[email protected]>
date:      Wed Apr 08 14:31:55 2026 +0200
description:
        Always remove spaces when converting value to number in domain parser

        Closes #14753
        (grafted from 7c1f80fc2322fc6c47fc61990f3c7f64e9e86147)
diffstat:

 sao/src/common.js                     |  1 +
 tryton/tryton/common/domain_parser.py |  6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diffs (39 lines):

diff -r e05227475188 -r 441544568c30 sao/src/common.js
--- a/sao/src/common.js Wed Apr 08 12:12:54 2026 +0200
+++ b/sao/src/common.js Wed Apr 08 14:31:55 2026 +0200
@@ -2074,6 +2074,7 @@
                 let [, thousandSeparator] = /^10(.)?000/.exec(format(10000));
                 let [, decimalSign] = /^0(.)1$/.exec(format(0.1));
                 return Number(string
+                    .replace(new RegExp(' ', 'g'), '')
                     .replace(new RegExp(thousandSeparator, 'g'), '')
                     .replace(decimalSign, '.'));
             }
diff -r e05227475188 -r 441544568c30 tryton/tryton/common/domain_parser.py
--- a/tryton/tryton/common/domain_parser.py     Wed Apr 08 12:12:54 2026 +0200
+++ b/tryton/tryton/common/domain_parser.py     Wed Apr 08 14:31:55 2026 +0200
@@ -231,21 +231,21 @@
     def convert_float():
         factor = float(field.get('factor', 1))
         try:
-            return locale.atof(value) / factor
+            return locale.atof(value.replace(' ', '')) / factor
         except (ValueError, AttributeError):
             return
 
     def convert_integer():
         factor = float(field.get('factor', 1))
         try:
-            return int(locale.atof(value) / factor)
+            return int(locale.atof(value.replace(' ', '')) / factor)
         except (ValueError, AttributeError):
             return
 
     def convert_numeric():
         factor = Decimal(field.get('factor', 1))
         try:
-            return Decimal(locale.delocalize(value)) / factor
+            return Decimal(locale.delocalize(value.replace(' ', ''))) / factor
         except (decimal.InvalidOperation, AttributeError):
             return
 

Reply via email to