29 lines
615 B
Python
29 lines
615 B
Python
import frappe
|
|
|
|
from erpnext.stock.utils import get_bin
|
|
|
|
|
|
def execute():
|
|
|
|
wo = frappe.qb.DocType("Work Order")
|
|
wo_item = frappe.qb.DocType("Work Order Item")
|
|
|
|
incorrect_item_wh = (
|
|
frappe.qb
|
|
.from_(wo)
|
|
.join(wo_item).on(wo.name == wo_item.parent)
|
|
.select(wo_item.item_code, wo.source_warehouse).distinct()
|
|
.where(
|
|
(wo.status == "Closed")
|
|
& (wo.docstatus == 1)
|
|
& (wo.source_warehouse.notnull())
|
|
)
|
|
).run()
|
|
|
|
for item_code, warehouse in incorrect_item_wh:
|
|
if not (item_code and warehouse):
|
|
continue
|
|
|
|
bin = get_bin(item_code, warehouse)
|
|
bin.update_reserved_qty_for_production()
|