From cc177f34158d3ffabdbfbb2ace500fa17a7b7c9d Mon Sep 17 00:00:00 2001 From: 18alantom <2.alan.tom@gmail.com> Date: Tue, 10 Aug 2021 14:42:39 +0530 Subject: [PATCH] fix: wo tests, sider, account for pl in se validation --- .../doctype/work_order/test_work_order.py | 16 ++++++++-------- erpnext/stock/doctype/stock_entry/stock_entry.py | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/erpnext/manufacturing/doctype/work_order/test_work_order.py b/erpnext/manufacturing/doctype/work_order/test_work_order.py index 7f943d9cbb..d6a20df0c8 100644 --- a/erpnext/manufacturing/doctype/work_order/test_work_order.py +++ b/erpnext/manufacturing/doctype/work_order/test_work_order.py @@ -694,7 +694,7 @@ class TestWorkOrder(unittest.TestCase): from erpnext.manufacturing.doctype.bom.test_bom import create_process_loss_bom_items from erpnext.manufacturing.doctype.bom.test_bom import create_bom_with_process_loss_item - qty = fg_qty = 4 + qty = 4 scrap_qty = 0.25 # bom item qty = 1, consider as 25% of FG source_warehouse = "Stores - _TC" wip_warehouse = "_Test Warehouse - _TC" @@ -707,7 +707,7 @@ class TestWorkOrder(unittest.TestCase): if not frappe.db.exists("BOM", bom_no): bom_doc = create_bom_with_process_loss_item( fg_item_non_whole, bom_item, scrap_qty=scrap_qty, - scrap_rate=0, fg_qty=fg_qty, is_process_loss=1 + scrap_rate=0, fg_qty=1, is_process_loss=1 ) bom_doc.submit() @@ -721,32 +721,32 @@ class TestWorkOrder(unittest.TestCase): ) se = frappe.get_doc( - make_stock_entry(wo.name, "Material Transfer for Manufacture", 4) + make_stock_entry(wo.name, "Material Transfer for Manufacture", qty) ) se.get("items")[0].s_warehouse = "Stores - _TC" se.insert() se.submit() se = frappe.get_doc( - make_stock_entry(wo.name, "Manufacture", 4) + make_stock_entry(wo.name, "Manufacture", qty) ) se.insert() se.submit() # Testing stock entry values items = se.get("items") - self.assertEqual(len(items), 3, "There should be 3 items including process loss.") + self.assertEqual(len(items), 4, "There should be 3 items including process loss.") source_item, fg_item, pl_item = items - total_pl_qty = scrap_qty * fg_qty - actual_fg_qty = fg_qty - total_pl_qty + total_pl_qty = qty * scrap_qty + actual_fg_qty = qty - total_pl_qty self.assertEqual(pl_item.qty, total_pl_qty) self.assertEqual(fg_item.qty, actual_fg_qty) # Testing Work Order values - self.assertEqual( frappe.db.get_value("Work Order", wo.name, "produced_qty"), actual_fg_qty) + self.assertEqual(frappe.db.get_value("Work Order", wo.name, "produced_qty"), actual_fg_qty) def get_scrap_item_details(bom_no): scrap_items = {} diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 21c0e75393..8ea1275283 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -271,7 +271,7 @@ class StockEntry(StockController): item_wise_qty = {} if self.purpose == "Manufacture" and self.work_order: for d in self.items: - if d.is_finished_item: + if d.is_finished_item or d.is_process_loss: item_wise_qty.setdefault(d.item_code, []).append(d.qty) for item_code, qty_list in iteritems(item_wise_qty):