diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 615d3302c5e..5ecbd839156 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -1802,7 +1802,10 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe let item = frappe.get_doc(cdt, cdn); item.conversion_factor = 1.0; if (item.stock_qty) { - item.conversion_factor = flt(item.stock_qty) / flt(item.qty); + item.conversion_factor = flt( + flt(item.stock_qty) / flt(item.qty), + precision("conversion_factor", item) + ); } refresh_field("conversion_factor", item.name, item.parentfield); diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py index a82e1c2d527..0d3b549e5f4 100644 --- a/erpnext/stock/doctype/item/item.py +++ b/erpnext/stock/doctype/item/item.py @@ -1508,7 +1508,7 @@ def get_uom_conv_factor(uom: str | None, stock_uom: str | None): "UOM Conversion Factor", {"to_uom": from_uom, "from_uom": to_uom}, ["value"], as_dict=1 ) if inverse_match: - return 1 / inverse_match.value + return flt(1 / inverse_match.value, frappe.get_precision("UOM Conversion Factor", "value")) # This attempts to try and get conversion from intermediate UOM. # case: @@ -1528,7 +1528,7 @@ def get_uom_conv_factor(uom: str | None, stock_uom: str | None): ) if intermediate_match: - return intermediate_match[0].value + return flt(intermediate_match[0].value, frappe.get_precision("UOM Conversion Factor", "value")) @frappe.whitelist()