perf: cached get_last_purchase_details to fix performance issue (#39854)
diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py
index 61eb0f6..8ffbaa1 100644
--- a/erpnext/controllers/stock_controller.py
+++ b/erpnext/controllers/stock_controller.py
@@ -942,6 +942,9 @@
"Stock Reconciliation",
)
+ if not frappe.get_all("Putaway Rule", limit=1):
+ return
+
if self.doctype == "Purchase Invoice" and self.get("update_stock") == 0:
valid_doctype = False
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index feb4583..949c109 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -1122,6 +1122,7 @@
frappe.throw(_("Item {0} is cancelled").format(item_code))
+@frappe.request_cache
def get_last_purchase_details(item_code, doc_name=None, conversion_rate=1.0):
"""returns last purchase details in stock uom"""
# get last purchase order item details