chore: Patch to update SO work_order_qty and Linter fix

(cherry picked from commit 0ca58d7627)

# Conflicts:
#	erpnext/patches.txt
This commit is contained in:
marination
2022-02-15 14:20:54 +05:30
committed by mergify-bot
parent 2ce07eff71
commit 98ce6a1c8d
3 changed files with 43 additions and 2 deletions

View File

@@ -349,4 +349,9 @@ erpnext.patches.v13_0.update_sane_transfer_against
erpnext.patches.v13_0.enable_provisional_accounting
erpnext.patches.v13_0.update_disbursement_account
erpnext.patches.v13_0.update_reserved_qty_closed_wo
erpnext.patches.v13_0.amazon_mws_deprecation_warning
<<<<<<< HEAD
erpnext.patches.v13_0.amazon_mws_deprecation_warning
=======
erpnext.patches.v14_0.delete_amazon_mws_doctype
erpnext.patches.v14_0.set_work_order_qty_in_so_from_mr
>>>>>>> 0ca58d7627 (chore: Patch to update SO work_order_qty and Linter fix)

View File

@@ -0,0 +1,36 @@
import frappe
def execute():
"""
1. Get submitted Work Orders with MR, MR Item and SO set
2. Get SO Item detail from MR Item detail in WO, and set in WO
3. Update work_order_qty in SO
"""
work_order = frappe.qb.DocType("Work Order")
query = (
frappe.qb.from_(work_order)
.select(
work_order.name, work_order.produced_qty,
work_order.material_request,
work_order.material_request_item,
work_order.sales_order
).where(
(work_order.material_request.isnotnull())
& (work_order.material_request_item.isnotnull())
& (work_order.sales_order.isnotnull())
& (work_order.docstatus == 1)
& (work_order.produced_qty > 0)
)
)
results = query.run(as_dict=True)
for row in results:
so_item = frappe.get_value(
"Material Request Item", row.material_request_item, "sales_order_item"
)
frappe.db.set_value("Work Order", row.name, "sales_order_item", so_item)
if so_item:
wo = frappe.get_doc("Work Order", row.name)
wo.update_work_order_qty_in_so()

View File

@@ -1297,10 +1297,10 @@ class TestSalesOrder(ERPNextTestCase):
def test_so_back_updated_from_wo_via_mr(self):
"SO -> MR (Manufacture) -> WO. Test if WO Qty is updated in SO."
from erpnext.stock.doctype.material_request.material_request import raise_work_orders
from erpnext.manufacturing.doctype.work_order.work_order import (
make_stock_entry as make_se_from_wo,
)
from erpnext.stock.doctype.material_request.material_request import raise_work_orders
so = make_sales_order(item_list=[{"item_code": "_Test FG Item","qty": 2, "rate":100}])