From 2c3037a0944d34b1ef6a38d5df668d777334eeac Mon Sep 17 00:00:00 2001 From: KanchanChauhan Date: Mon, 3 Jul 2017 12:10:53 +0530 Subject: [PATCH] In currency if no value after decimal, default precion set to 2 (#3480) * In currency if no value after decimal, default precion set to 2 * Update formatters.js --- frappe/public/js/frappe/form/formatters.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/frappe/public/js/frappe/form/formatters.js b/frappe/public/js/frappe/form/formatters.js index c23d440f47..6c4fc6c72d 100644 --- a/frappe/public/js/frappe/form/formatters.js +++ b/frappe/public/js/frappe/form/formatters.js @@ -53,6 +53,17 @@ frappe.form.formatters = { Currency: function(value, docfield, options, doc) { var currency = frappe.meta.get_field_currency(docfield, doc); var precision = docfield.precision || cint(frappe.boot.sysdefaults.currency_precision) || 2; + if (precision > 2) { + let parts = cstr(value).split('.'); + let decimals = parts.length > 1 ? parts[1] : ''; + if (decimals.length < 3) { + // min precision 2 + precision = 2; + } else if (decimals.length < precision) { + // or min decimals + precision = decimals.length; + } + } return frappe.form.formatters._right((value==null || value==="") ? "" : format_currency(value, currency, precision), options); },