fix: invalid logic for cache hit

if there are no inventory dimensions then `[]` gets treated as a miss.
This commit is contained in:
Ankush Menat
2025-06-04 17:13:41 +05:30
parent a36daec939
commit 8e17054b67
2 changed files with 17 additions and 23 deletions

View File

@@ -364,28 +364,21 @@ def get_evaluated_inventory_dimension(doc, sl_dict, parent_doc=None):
return filter_dimensions return filter_dimensions
@request_cache
def get_document_wise_inventory_dimensions(doctype) -> dict: def get_document_wise_inventory_dimensions(doctype) -> dict:
if not hasattr(frappe.local, "document_wise_inventory_dimensions"): return frappe.get_all(
frappe.local.document_wise_inventory_dimensions = {} "Inventory Dimension",
fields=[
if not frappe.local.document_wise_inventory_dimensions.get(doctype): "name",
dimensions = frappe.get_all( "source_fieldname",
"Inventory Dimension", "condition",
fields=[ "target_fieldname",
"name", "type_of_transaction",
"source_fieldname", "fetch_from_parent",
"condition", ],
"target_fieldname", filters={"disabled": 0},
"type_of_transaction", or_filters={"document_type": doctype, "apply_to_all_doctypes": 1},
"fetch_from_parent", )
],
filters={"disabled": 0},
or_filters={"document_type": doctype, "apply_to_all_doctypes": 1},
)
frappe.local.document_wise_inventory_dimensions[doctype] = dimensions
return frappe.local.document_wise_inventory_dimensions[doctype]
@frappe.whitelist() @frappe.whitelist()

View File

@@ -87,7 +87,7 @@ class TestInventoryDimension(IntegrationTestCase):
self.assertFalse(custom_field) self.assertFalse(custom_field)
def test_inventory_dimension(self): def test_inventory_dimension(self):
frappe.local.document_wise_inventory_dimensions = {} frappe.clear_cache(doctype="Inventory Dimension")
warehouse = "Shelf Warehouse - _TC" warehouse = "Shelf Warehouse - _TC"
item_code = "_Test Item" item_code = "_Test Item"
@@ -159,7 +159,8 @@ class TestInventoryDimension(IntegrationTestCase):
self.assertRaises(DoNotChangeError, inv_dim1.save) self.assertRaises(DoNotChangeError, inv_dim1.save)
def test_inventory_dimension_for_purchase_receipt_and_delivery_note(self): def test_inventory_dimension_for_purchase_receipt_and_delivery_note(self):
frappe.local.document_wise_inventory_dimensions = {} frappe.clear_cache(doctype="Inventory Dimension")
frappe.clear_cache("Inventory Dimension")
inv_dimension = create_inventory_dimension( inv_dimension = create_inventory_dimension(
reference_document="Rack", dimension_name="Rack", apply_to_all_doctypes=1 reference_document="Rack", dimension_name="Rack", apply_to_all_doctypes=1