fix: make `BOM` required in SCR Item
diff --git a/erpnext/controllers/subcontracting_controller.py b/erpnext/controllers/subcontracting_controller.py
index aa4468c..8d67e30 100644
--- a/erpnext/controllers/subcontracting_controller.py
+++ b/erpnext/controllers/subcontracting_controller.py
@@ -89,6 +89,9 @@
if bom.item != item.item_code:
msg = f"Please select an valid BOM for Item {item.item_name}."
frappe.throw(_(msg))
+ else:
+ msg = f"Please select a BOM for Item {item.item_name}."
+ frappe.throw(_(msg))
def __get_data_before_save(self):
item_dict = {}
diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
index cd05b74..bce5360 100644
--- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
+++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
@@ -57,6 +57,7 @@
def before_validate(self):
super(SubcontractingReceipt, self).before_validate()
+ self.set_items_bom()
self.set_items_cost_center()
self.set_items_expense_account()
@@ -193,6 +194,24 @@
).format(item.idx)
)
+ def set_items_bom(self):
+ if self.is_return:
+ for item in self.items:
+ if not item.bom:
+ item.bom = frappe.db.get_value(
+ "Subcontracting Receipt Item",
+ {"name": item.subcontracting_receipt_item, "parent": self.return_against},
+ "bom",
+ )
+ else:
+ for item in self.items:
+ if not item.bom:
+ item.bom = frappe.db.get_value(
+ "Subcontracting Order Item",
+ {"name": item.subcontracting_order_item, "parent": item.subcontracting_order},
+ "bom",
+ )
+
def set_items_cost_center(self):
if self.company:
cost_center = frappe.get_cached_value("Company", self.company, "cost_center")