mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-22 06:29:20 +00:00
fix: invalid logic for cache hit
if there are no inventory dimensions then `[]` gets treated as a miss.
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user