fix: Make corrected bankers rounding default method

This commit is contained in:
Ankush Menat 2023-03-13 13:00:50 +05:30
parent 139d4a87b4
commit 709edf1f55
3 changed files with 19 additions and 0 deletions

View file

@ -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();
}
},
});

View file

@ -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,

View file

@ -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")