From f46b3d89a92ac89b2d609f1e52eb820394e37a6a Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Tue, 17 Mar 2020 21:20:44 +0530 Subject: [PATCH] fix: Pass zero precision as string --- frappe/model/meta.py | 13 +++++-------- frappe/public/js/frappe/form/formatters.js | 8 +------- frappe/public/js/frappe/model/meta.js | 16 ++++++---------- 3 files changed, 12 insertions(+), 25 deletions(-) diff --git a/frappe/model/meta.py b/frappe/model/meta.py index 424856b5cf..1938a4a96c 100644 --- a/frappe/model/meta.py +++ b/frappe/model/meta.py @@ -544,17 +544,14 @@ def get_field_precision(df, doc=None, currency=None): """get precision based on DocField options and fieldvalue in doc""" from frappe.utils import get_number_format_info - if cint(df.precision): + if df.precision: precision = cint(df.precision) elif df.fieldtype == "Currency": - if df.precision and cint(df.precision) == 0: - precision = 0 - else: - precision = cint(frappe.db.get_default("currency_precision")) - if not precision: - number_format = frappe.db.get_default("number_format") or "#,###.##" - decimal_str, comma_str, precision = get_number_format_info(number_format) + precision = cint(frappe.db.get_default("currency_precision")) + if not precision: + number_format = frappe.db.get_default("number_format") or "#,###.##" + decimal_str, comma_str, precision = get_number_format_info(number_format) else: precision = cint(frappe.db.get_default("float_precision")) or 3 diff --git a/frappe/public/js/frappe/form/formatters.js b/frappe/public/js/frappe/form/formatters.js index ef6976e896..d178c59100 100644 --- a/frappe/public/js/frappe/form/formatters.js +++ b/frappe/public/js/frappe/form/formatters.js @@ -61,13 +61,7 @@ frappe.form.formatters = { }, Currency: function (value, docfield, options, doc) { var currency = frappe.meta.get_field_currency(docfield, doc); - var precision; - - if (docfield.precision && cint(docfield.precision) === 0) { - precision = 0; - } else { - precision = docfield.precision || cint(frappe.boot.sysdefaults.currency_precision) || 2; - } + var precision = docfield.precision || cint(frappe.boot.sysdefaults.currency_precision) || 2; // If you change anything below, it's going to hurt a company in UAE, a bit. if (precision > 2) { diff --git a/frappe/public/js/frappe/model/meta.js b/frappe/public/js/frappe/model/meta.js index fc815c1d92..b7ad52838c 100644 --- a/frappe/public/js/frappe/model/meta.js +++ b/frappe/public/js/frappe/model/meta.js @@ -253,18 +253,14 @@ $.extend(frappe.meta, { get_field_precision: function(df, doc) { var precision = null; - if (df && cint(df.precision)) { + if (df && df.precision) { precision = cint(df.precision); } else if(df && df.fieldtype === "Currency") { - if (df.precision && cint(df.precision) === 0) { - precision = 0; - } else { - precision = cint(frappe.defaults.get_default("currency_precision")); - if(!precision) { - var number_format = get_number_format(); - var number_format_info = get_number_format_info(number_format); - precision = number_format_info.precision; - } + precision = cint(frappe.defaults.get_default("currency_precision")); + if(!precision) { + var number_format = get_number_format(); + var number_format_info = get_number_format_info(number_format); + precision = number_format_info.precision; } } else { precision = cint(frappe.defaults.get_default("float_precision")) || 3;