diff --git a/erpnext/manufacturing/doctype/work_order/work_order.py b/erpnext/manufacturing/doctype/work_order/work_order.py index f6674602ded..37a9111a8f2 100644 --- a/erpnext/manufacturing/doctype/work_order/work_order.py +++ b/erpnext/manufacturing/doctype/work_order/work_order.py @@ -1336,6 +1336,9 @@ class WorkOrder(Document): self.set_available_qty() def update_transferred_qty_for_required_items(self): + if self.skip_transfer: + return + ste = frappe.qb.DocType("Stock Entry") ste_child = frappe.qb.DocType("Stock Entry Detail") diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 5098f63a68f..fc472c2a08c 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -2106,10 +2106,13 @@ class StockEntry(StockController): if not frappe.get_cached_value("Work Order", self.work_order, "reserve_stock"): return + skip_transfer = frappe.get_cached_value("Work Order", self.work_order, "skip_transfer") + if ( self.purpose not in ["Material Transfer for Manufacture"] and frappe.db.get_single_value("Manufacturing Settings", "backflush_raw_materials_based_on") != "BOM" + and not skip_transfer ): return @@ -2172,6 +2175,10 @@ class StockEntry(StockController): self.append("items", new_row) sorted_items = sorted(self.items, key=lambda x: x.item_code) + if self.purpose == "Manufacture": + # ensure finished item at last + sorted_items = sorted(sorted_items, key=lambda x: (x.t_warehouse)) + idx = 0 for row in sorted_items: idx += 1 diff --git a/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py b/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py index 1ecfa67dccf..7def2dffbe5 100644 --- a/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py +++ b/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py @@ -613,10 +613,10 @@ class StockReservationEntry(Document): data = row_wise_serial_batch[row] if entry.serial_no in data.serial_nos: - entry.delivered_qty = 1 + entry.delivered_qty = flt(1) elif entry.batch_no in data.batch_nos: - entry.delivered_qty = data.batch_nos[entry.batch_no] + entry.delivered_qty = flt(data.batch_nos[entry.batch_no]) entry.db_update()