fix: Make corrected bankers rounding default method
This commit is contained in:
parent
139d4a87b4
commit
709edf1f55
3 changed files with 19 additions and 0 deletions
|
|
@ -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();
|
||||
}
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue