Skip to content

Commit

Permalink
fix: don't throw if item does not have default BOM (backport #36709) (#…
Browse files Browse the repository at this point in the history
…36734)

* fix: don't throw if item does not have default BOM

(cherry picked from commit 268c19e)

* fix: throw if `BOM No` is not set

(cherry picked from commit 2e22b01)

---------

Co-authored-by: s-aga-r <sagarsharma.s312@gmail.com>
  • Loading branch information
mergify[bot] and s-aga-r committed Aug 21, 2023
1 parent 9ec11d9 commit e1bd9a7
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@ def add_items(self, items):
if not data.pending_qty:
continue

item_details = get_item_details(data.item_code)
item_details = get_item_details(data.item_code, throw=False)
if self.combine_items:
if item_details.bom_no in refs:
refs[item_details.bom_no]["so_details"].append(
Expand Down Expand Up @@ -795,6 +795,9 @@ def get_sub_assembly_items(self, manufacturing_type=None):
if not row.item_code:
frappe.throw(_("Row #{0}: Please select Item Code in Assembly Items").format(row.idx))

if not row.bom_no:
frappe.throw(_("Row #{0}: Please select the BOM No in Assembly Items").format(row.idx))

bom_data = []

warehouse = row.warehouse if self.skip_available_sub_assembly_item else None
Expand Down
9 changes: 6 additions & 3 deletions erpnext/manufacturing/doctype/work_order/work_order.py
Original file line number Diff line number Diff line change
Expand Up @@ -1075,7 +1075,7 @@ def get_bom_operations(doctype, txt, searchfield, start, page_len, filters):


@frappe.whitelist()
def get_item_details(item, project=None, skip_bom_info=False):
def get_item_details(item, project=None, skip_bom_info=False, throw=True):
res = frappe.db.sql(
"""
select stock_uom, description, item_name, allow_alternative_item,
Expand Down Expand Up @@ -1111,12 +1111,15 @@ def get_item_details(item, project=None, skip_bom_info=False):

if not res["bom_no"]:
if project:
res = get_item_details(item)
res = get_item_details(item, throw=throw)
frappe.msgprint(
_("Default BOM not found for Item {0} and Project {1}").format(item, project), alert=1
)
else:
frappe.throw(_("Default BOM for {0} not found").format(item))
msg = _("Default BOM for {0} not found").format(item)
frappe.msgprint(msg, raise_exception=throw, indicator="yellow", alert=(not throw))

return res

bom_data = frappe.db.get_value(
"BOM",
Expand Down

0 comments on commit e1bd9a7

Please sign in to comment.