summaryrefslogtreecommitdiff
path: root/addons/web
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web')
-rw-r--r--addons/web/static/src/js/fields/field_utils.js10
-rw-r--r--addons/web/static/tests/fields/field_utils_tests.js22
2 files changed, 23 insertions, 9 deletions
diff --git a/addons/web/static/src/js/fields/field_utils.js b/addons/web/static/src/js/fields/field_utils.js
index 508d97b131c..9a683954e7e 100644
--- a/addons/web/static/src/js/fields/field_utils.js
+++ b/addons/web/static/src/js/fields/field_utils.js
@@ -401,14 +401,6 @@ function parseInteger(value) {
return parsed;
}
-function parseMonetary(formatted_value) {
- var l10n = core._t.database.parameters;
- var value = formatted_value.replace(l10n.thousands_sep, '')
- .replace(l10n.decimal_point, '.')
- .match(/([0-9]+(\.[0-9]*)?)/)[1];
- return parseFloat(value);
-}
-
/**
* Creates an object with id and display_name.
*
@@ -468,7 +460,7 @@ return {
integer: parseInteger,
many2many: _.identity, // todo
many2one: parseMany2one,
- monetary: parseMonetary,
+ monetary: parseFloat,
one2many: _.identity,
reference: _.identity, // todo
selection: _.identity, // todo
diff --git a/addons/web/static/tests/fields/field_utils_tests.js b/addons/web/static/tests/fields/field_utils_tests.js
index a03d42179f6..d56f077b828 100644
--- a/addons/web/static/tests/fields/field_utils_tests.js
+++ b/addons/web/static/tests/fields/field_utils_tests.js
@@ -92,5 +92,27 @@ QUnit.test('format one2many', function(assert) {
assert.strictEqual(fieldUtils.format.one2many({data: [1]}), '1 record');
assert.strictEqual(fieldUtils.format.one2many({data: [1, 2]}), '2 records');
});
+
+QUnit.test('parse float', function(assert) {
+ assert.expect(6);
+
+ assert.strictEqual(fieldUtils.parse.float(""), 0);
+ assert.strictEqual(fieldUtils.parse.float("0"), 0);
+ assert.strictEqual(fieldUtils.parse.float("100.00"), 100);
+ assert.strictEqual(fieldUtils.parse.float("-100.00"), -100);
+ assert.strictEqual(fieldUtils.parse.float("1,000.00"), 1000);
+ assert.strictEqual(fieldUtils.parse.float("1,000,000.00"), 1000000);
+});
+
+QUnit.test('parse monetary', function(assert) {
+ assert.expect(6);
+
+ assert.strictEqual(fieldUtils.parse.monetary(""), 0);
+ assert.strictEqual(fieldUtils.parse.monetary("0"), 0);
+ assert.strictEqual(fieldUtils.parse.monetary("100.00"), 100);
+ assert.strictEqual(fieldUtils.parse.monetary("-100.00"), -100);
+ assert.strictEqual(fieldUtils.parse.monetary("1,000.00"), 1000);
+ assert.strictEqual(fieldUtils.parse.monetary("1,000,000.00"), 1000000);
+});
});
});