fix: precision for certain calculations in buying controller (#18008)
* fix: precision for certain numbers
* fix: check precision of the received_qty
* Update buying_controller.py
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index fed1fdd..2c46db0 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -428,8 +428,9 @@
elif not flt(d.rejected_qty):
d.rejected_qty = flt(d.received_qty) - flt(d.qty)
+ val = flt(d.qty) + flt(d.rejected_qty)
# Check Received Qty = Accepted Qty + Rejected Qty
- if ((flt(d.qty) + flt(d.rejected_qty)) != flt(d.received_qty)):
+ if (flt(val, d.precision("received_qty")) != flt(d.received_qty, d.precision("received_qty"))):
frappe.throw(_("Accepted + Rejected Qty must be equal to Received quantity for Item {0}").format(d.item_code))
def validate_negative_quantity(self, item_row, field_list):