From 41d56c8e3acbb12f2e2ed9821da4a3801657cd40 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Mon, 26 May 2025 15:03:55 +0530 Subject: [PATCH] perf: fetch cached item group defaults, avoid query --- erpnext/stock/doctype/item/item.py | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py index ffb6953122f..3fe0cc852d4 100644 --- a/erpnext/stock/doctype/item/item.py +++ b/erpnext/stock/doctype/item/item.py @@ -725,23 +725,9 @@ class Item(Document): if self.item_defaults or not self.item_group: return - item_defaults = frappe.db.get_values( - "Item Default", - {"parent": self.item_group}, - [ - "company", - "default_warehouse", - "default_price_list", - "buying_cost_center", - "default_supplier", - "expense_account", - "selling_cost_center", - "income_account", - ], - as_dict=1, - ) - if item_defaults: - for item in item_defaults: + item_group = frappe.get_cached_doc("Item Group", self.item_group) + if item_group.item_group_defaults: + for item in item_group.item_group_defaults: self.append( "item_defaults", { @@ -762,9 +748,8 @@ class Item(Document): if ( defaults.get("default_warehouse") and defaults.company - and frappe.db.exists( - "Warehouse", {"name": defaults.default_warehouse, "company": defaults.company} - ) + and defaults.company + == frappe.get_cached_value("Warehouse", defaults.default_warehouse, "company") ): self.append( "item_defaults",