fix: make BOM required in SCR Item

This commit is contained in:
Sagar Sharma 2022-11-05 15:50:39 +05:30
parent 761e9df1bf
commit 760c26e9c0
2 changed files with 22 additions and 0 deletions

View File

@ -89,6 +89,9 @@ class SubcontractingController(StockController):
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 = {}

View File

@ -57,6 +57,7 @@ class SubcontractingReceipt(SubcontractingController):
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 @@ class SubcontractingReceipt(SubcontractingController):
).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")