From bd071b95433fdc1132e98bdb15a4e1a115b510ff Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 25 Oct 2013 15:39:17 +0530 Subject: [PATCH] [fix] [minor] update finished goods against production order --- .../production_order/production_order.py | 6 ++-- stock/doctype/stock_entry/stock_entry.py | 31 +++++++++++++------ 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/manufacturing/doctype/production_order/production_order.py b/manufacturing/doctype/production_order/production_order.py index b29b0f1e72..dd21782559 100644 --- a/manufacturing/doctype/production_order/production_order.py +++ b/manufacturing/doctype/production_order/production_order.py @@ -134,16 +134,16 @@ class DocType: @webnotes.whitelist() def get_item_details(item): - res = webnotes.conn.sql("""select stock_uom + res = webnotes.conn.sql("""select stock_uom, description from `tabItem` where (ifnull(end_of_life, "")="" or end_of_life > now()) - and name=%s""", (item,), as_dict=1) + and name=%s""", item, as_dict=1) if not res: return {} res = res[0] bom = webnotes.conn.sql("""select name from `tabBOM` where item=%s - and ifnull(is_default, 0)=1""", (item,)) + and ifnull(is_default, 0)=1""", item) if bom: res.bom_no = bom[0][0] diff --git a/stock/doctype/stock_entry/stock_entry.py b/stock/doctype/stock_entry/stock_entry.py index 7ec2ba32bd..9f3b0ce2ca 100644 --- a/stock/doctype/stock_entry/stock_entry.py +++ b/stock/doctype/stock_entry/stock_entry.py @@ -454,35 +454,44 @@ class DocType(StockController): item["to_warehouse"] = "" # add raw materials to Stock Entry Detail table - self.add_to_stock_entry_detail(item_dict) + idx = self.add_to_stock_entry_detail(item_dict) # add finished good item to Stock Entry Detail table -- along with bom_no if self.doc.production_order and self.doc.purpose == "Manufacture/Repack": + item = webnotes.conn.get_value("Item", pro_obj.doc.production_item, ["item_name", + "description", "stock_uom", "purchase_account", "cost_center"], as_dict=1) self.add_to_stock_entry_detail({ cstr(pro_obj.doc.production_item): { "to_warehouse": pro_obj.doc.fg_warehouse, "from_warehouse": "", "qty": self.doc.fg_completed_qty, - "description": pro_obj.doc.description, - "stock_uom": pro_obj.doc.stock_uom + "item_name": item.item_name, + "description": item.description, + "stock_uom": item.stock_uom, + "expense_account": item.purchase_account, + "cost_center": item.cost_center, } - }, bom_no=pro_obj.doc.bom_no) + }, bom_no=pro_obj.doc.bom_no, idx=idx) elif self.doc.purpose in ["Material Receipt", "Manufacture/Repack"]: if self.doc.purpose=="Material Receipt": self.doc.from_warehouse = "" - item = webnotes.conn.sql("""select name, item_name, description, uom - from `tabItem` where name=%s""", (self.doc.bom_no), as_dict=1) + item = webnotes.conn.sql("""select name, item_name, description, + uom, purchase_account, cost_center from `tabItem` + where name=(select item from tabBOM where name=%s)""", + self.doc.bom_no, as_dict=1) self.add_to_stock_entry_detail({ item[0]["item"] : { "qty": self.doc.fg_completed_qty, "item_name": item[0].item_name, "description": item[0]["description"], "stock_uom": item[0]["uom"], - "from_warehouse": "" + "from_warehouse": "", + "expense_account": item[0].purchase_account, + "cost_center": item[0].cost_center, } - }, bom_no=self.doc.bom_no) + }, bom_no=self.doc.bom_no, idx=idx) self.get_stock_and_rate() @@ -607,8 +616,9 @@ class DocType(StockController): return issued_item_qty - def add_to_stock_entry_detail(self, item_dict, bom_no=None): - idx = 1 + def add_to_stock_entry_detail(self, item_dict, bom_no=None, idx=None): + webnotes.errprint([]) + if not idx: idx = 1 expense_account, cost_center = webnotes.conn.get_values("Company", self.doc.company, \ ["default_expense_account", "cost_center"])[0] @@ -636,6 +646,7 @@ class DocType(StockController): # increment idx by 1 idx += 1 + return idx def get_cust_values(self): """fetches customer details"""