Merge pull request #59012 from frappe/mergify/bp/version-15-hotfix/pr-58997

fix: prevent disabled items from being used in BOM (backport #58997)
This commit is contained in:
Sudharsanan Ashok
2026-09-15 22:07:10 +05:30
committed by GitHub

View File

@@ -10,7 +10,7 @@ import frappe
from frappe import _, bold from frappe import _, bold
from frappe.core.doctype.version.version import get_diff from frappe.core.doctype.version.version import get_diff
from frappe.model.mapper import get_mapped_doc from frappe.model.mapper import get_mapped_doc
from frappe.utils import cint, cstr, flt, today from frappe.utils import cint, cstr, flt, get_link_to_form, today
from frappe.website.website_generator import WebsiteGenerator from frappe.website.website_generator import WebsiteGenerator
import erpnext import erpnext
@@ -653,6 +653,19 @@ class BOM(WebsiteGenerator):
frappe.throw(_("Quantity required for Item {0} in row {1}").format(m.item_code, m.idx)) frappe.throw(_("Quantity required for Item {0} in row {1}").format(m.item_code, m.idx))
check_list.append(m) check_list.append(m)
bom_items = {self.item}
bom_items.update(d.item_code for d in self.get("items"))
bom_items.update(d.item_code for d in self.get("scrap_items"))
if disabled_items := frappe.db.get_all(
"Item", filters={"item_code": ("in", list(bom_items)), "disabled": 1}, pluck="name"
):
frappe.throw(
_("Disabled Item {0} cannot be used in BOMs.").format(
", ".join(get_link_to_form("Item", item) for item in disabled_items)
)
)
def check_recursion(self, bom_list=None): def check_recursion(self, bom_list=None):
"""Check whether recursion occurs in any bom""" """Check whether recursion occurs in any bom"""