From b966c06a4f7ec1d64e475a626ee934695c77a2a4 Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Mon, 12 Feb 2024 12:49:09 +0530 Subject: [PATCH] perf: cached get_last_purchase_details to fix performance issue (#39854) --- erpnext/controllers/stock_controller.py | 3 +++ erpnext/stock/doctype/item/item.py | 1 + 2 files changed, 4 insertions(+) diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py index 61eb0f63d3..8ffbaa1015 100644 --- a/erpnext/controllers/stock_controller.py +++ b/erpnext/controllers/stock_controller.py @@ -942,6 +942,9 @@ class StockController(AccountsController): "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 feb4583436..949c1096a7 100644 --- a/erpnext/stock/doctype/item/item.py +++ b/erpnext/stock/doctype/item/item.py @@ -1122,6 +1122,7 @@ def validate_cancelled_item(item_code, docstatus=None): 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