diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py index 6cd5a035c99..8b0accee41d 100644 --- a/erpnext/stock/doctype/material_request/material_request.py +++ b/erpnext/stock/doctype/material_request/material_request.py @@ -75,6 +75,21 @@ class MaterialRequest(BuyingController): work_order: DF.Link | None # end: auto-generated types + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.status_updater = [ + { + "source_dt": "Material Request Item", + "target_dt": "Sales Order Item", + "target_field": "ordered_qty", + "target_parent_dt": "Sales Order", + "target_parent_field": "", + "join_field": "sales_order_item", + "target_ref_field": "stock_qty", + "source_field": "stock_qty", + } + ] + def check_if_already_pulled(self): pass @@ -175,10 +190,10 @@ class MaterialRequest(BuyingController): def on_submit(self): self.update_requested_qty_in_production_plan() self.update_requested_qty() - if self.material_request_type == "Purchase" and frappe.db.exists( - "Budget", {"applicable_on_material_request": 1, "docstatus": 1} - ): - self.validate_budget() + if self.material_request_type == "Purchase": + self.update_prevdoc_status() + if frappe.db.exists("Budget", {"applicable_on_material_request": 1, "docstatus": 1}): + self.validate_budget() def before_save(self): self.set_status(update=True)