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):