[fix] uom conversion factor in stock entry, #3734

This commit is contained in:
Rushabh Mehta 2015-07-31 15:20:16 +05:30
parent 75e9733283
commit 2f5587ab25

View File

@ -93,7 +93,7 @@ class StockEntry(StockController):
frappe.throw(_("{0} is not a stock Item").format(item.item_code)) frappe.throw(_("{0} is not a stock Item").format(item.item_code))
item_details = self.get_item_details(frappe._dict({"item_code": item.item_code, item_details = self.get_item_details(frappe._dict({"item_code": item.item_code,
"company": self.company, "project_name": self.project_name})) "company": self.company, "project_name": self.project_name, "uom": item.uom}))
for f in ("uom", "stock_uom", "description", "item_name", "expense_account", for f in ("uom", "stock_uom", "description", "item_name", "expense_account",
"cost_center", "conversion_factor"): "cost_center", "conversion_factor"):
@ -450,14 +450,21 @@ class StockEntry(StockController):
if not ret[d[1]] or (company and self.company != company): if not ret[d[1]] or (company and self.company != company):
ret[d[1]] = frappe.db.get_value("Company", self.company, d[2]) if d[2] else None ret[d[1]] = frappe.db.get_value("Company", self.company, d[2]) if d[2] else None
# update uom
ret.update(self.get_uom_details(args))
if not ret["expense_account"]: if not ret["expense_account"]:
ret["expense_account"] = frappe.db.get_value("Company", self.company, "stock_adjustment_account") ret["expense_account"] = frappe.db.get_value("Company", self.company, "stock_adjustment_account")
stock_and_rate = args.get('warehouse') and self.get_warehouse_details(args) or {} stock_and_rate = args.get('warehouse') and self.get_warehouse_details(args) or {}
ret.update(stock_and_rate) ret.update(stock_and_rate)
return ret return ret
def get_uom_details(self, args): def get_uom_details(self, args):
"""Returns dict `{"conversion_factor": [value], "transfer_qty": qty * [value]}`
:param args: dict with `item_code`, `uom` and `qty`"""
conversion_factor = get_conversion_factor(args.get("item_code"), args.get("uom")).get("conversion_factor") conversion_factor = get_conversion_factor(args.get("item_code"), args.get("uom")).get("conversion_factor")
if not conversion_factor: if not conversion_factor: