Revert "refactor(selling): round stored percentages to field precision instead of snapping"

This reverts commit f16a9651db.

(cherry picked from commit f6789393b6)
This commit is contained in:
Mihir Kandoi
2026-10-23 12:25:25 +05:30
committed by pandiyan
parent c59f4b4dc6
commit 8830f61dd2
+8 -9
View File
@@ -487,6 +487,11 @@ class StatusUpdater(Document):
{"detail_id": args["detail_id"]},
)
@staticmethod
def snap_full_percentage(percentage):
# Status rules require a full 100.
return 100 if flt(percentage) >= 99.999999 else percentage
def _update_percent_field_in_targets(self, args, update_modified=True):
"""Update percent field in parent transaction"""
if args.get("percent_join_field_parent"):
@@ -524,12 +529,9 @@ class StatusUpdater(Document):
frappe.db.set_value(
args["target_parent_dt"],
args["name"],
{"name": args["name"], args["target_parent_field"]: [">=", 99.999999]},
args["target_parent_field"],
flt(
frappe.db.get_value(args["target_parent_dt"], args["name"], args["target_parent_field"]),
frappe.get_precision(args["target_parent_dt"], args["target_parent_field"]),
),
100,
update_modified=False,
)
@@ -599,10 +601,7 @@ class StatusUpdater(Document):
)[0][0]
)
per_billed = flt(
safe_div(min(ref_doc_qty, billed_qty), ref_doc_qty) * 100,
frappe.get_precision(ref_dt, "per_billed"),
)
per_billed = self.snap_full_percentage(safe_div(min(ref_doc_qty, billed_qty), ref_doc_qty) * 100)
ref_doc = frappe.get_doc(ref_dt, ref_dn)