From 709edf1f559ba30ffe8015542eb7b4de6c6e7ceb Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Mon, 13 Mar 2023 13:00:50 +0530 Subject: [PATCH] fix: Make corrected bankers rounding default method --- .../doctype/system_settings/system_settings.js | 15 +++++++++++++++ frappe/desk/page/setup_wizard/setup_wizard.py | 1 + frappe/tests/test_utils.py | 3 +++ 3 files changed, 19 insertions(+) diff --git a/frappe/core/doctype/system_settings/system_settings.js b/frappe/core/doctype/system_settings/system_settings.js index 1d5ba7ddb0..bf8988d64c 100644 --- a/frappe/core/doctype/system_settings/system_settings.js +++ b/frappe/core/doctype/system_settings/system_settings.js @@ -16,6 +16,8 @@ frappe.ui.form.on("System Settings", { } }, }); + + frm.trigger("set_rounding_method_options"); }, enable_password_policy: function (frm) { if (frm.doc.enable_password_policy == 0) { @@ -56,4 +58,17 @@ frappe.ui.form.on("System Settings", { } ); }, + + set_rounding_method_options: function (frm) { + if (frm.doc.rounding_method != "Banker's Rounding (legacy)") { + let field = frm.fields_dict.rounding_method; + + field.df.options = field.df.options + .split("\n") + .filter((o) => o != "Banker's Rounding (legacy)") + .join("\n"); + + field.refresh(); + } + }, }); diff --git a/frappe/desk/page/setup_wizard/setup_wizard.py b/frappe/desk/page/setup_wizard/setup_wizard.py index 4d4d76207a..cdb25b81ba 100755 --- a/frappe/desk/page/setup_wizard/setup_wizard.py +++ b/frappe/desk/page/setup_wizard/setup_wizard.py @@ -165,6 +165,7 @@ def update_system_settings(args): "language": get_language_code(args.get("language")) or "en", "time_zone": args.get("timezone"), "float_precision": 3, + "rounding_method": "Banker's Rounding", "date_format": frappe.db.get_value("Country", args.get("country"), "date_format"), "time_format": frappe.db.get_value("Country", args.get("country"), "time_format"), "number_format": number_format, diff --git a/frappe/tests/test_utils.py b/frappe/tests/test_utils.py index b897c96133..ffc8e80acf 100644 --- a/frappe/tests/test_utils.py +++ b/frappe/tests/test_utils.py @@ -1150,3 +1150,6 @@ class TestRounding(FrappeTestCase): @given(st.decimals(min_value=-1e8, max_value=1e8), st.integers(min_value=-2, max_value=4)) def test_bankers_rounding_property(self, number, precision): self.assertEqual(Decimal(str(flt(float(number), precision))), round(number, precision)) + + def test_default_rounding(self): + self.assertEqual(frappe.get_system_settings("rounding_method"), "Banker's Rounding")