diff --git a/erpnext/manufacturing/doctype/work_order/work_order.py b/erpnext/manufacturing/doctype/work_order/work_order.py index 71bd94ad73a..e1142138d1a 100644 --- a/erpnext/manufacturing/doctype/work_order/work_order.py +++ b/erpnext/manufacturing/doctype/work_order/work_order.py @@ -1461,13 +1461,15 @@ class WorkOrder(Document): update bin reserved_qty_for_production called from Stock Entry for production, after submit, cancel """ + if self.docstatus == 1: + self.update_returned_qty() + # calculate consumed qty based on submitted stock entries self.update_consumed_qty_for_required_items() if self.docstatus == 1: # calculate transferred qty based on submitted stock entries self.update_transferred_qty_for_required_items() - self.update_returned_qty() # update in bin self.update_reserved_qty_for_production() @@ -1663,7 +1665,7 @@ class WorkOrder(Document): wip_warehouse = None for item in self.required_items: - consumed_qty = get_consumed_qty(self.name, item.item_code) + consumed_qty = get_consumed_qty(self.name, item.item_code) + item.returned_qty item.db_set("consumed_qty", flt(consumed_qty), update_modified=False) if not self.reserve_stock: @@ -1680,6 +1682,7 @@ class WorkOrder(Document): "warehouse": wip_warehouse, "docstatus": 1, } + if not self.skip_transfer: filters["from_voucher_no"] = ("is", "set") @@ -1743,6 +1746,9 @@ class WorkOrder(Document): return bom def set_reserved_qty_for_wip_and_fg(self, stock_entry): + if stock_entry.is_return: + return + items = frappe._dict() stock_entry.reload()