mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-19 04:59:18 +00:00
Merge pull request #52112 from frappe/mergify/bp/version-16-hotfix/pr-52106
fix: show everything else besides other party specific item (backport #52106)
This commit is contained in:
@@ -212,7 +212,10 @@ def item_query(doctype, txt, searchfield, start, page_len, filters, as_dict=Fals
|
|||||||
party = filters.get("customer") or filters.get("supplier")
|
party = filters.get("customer") or filters.get("supplier")
|
||||||
item_rules_list = frappe.get_all(
|
item_rules_list = frappe.get_all(
|
||||||
"Party Specific Item",
|
"Party Specific Item",
|
||||||
filters={"party": party},
|
filters={
|
||||||
|
"party": ["!=", party],
|
||||||
|
"party_type": "Customer" if filters.get("customer") else "Supplier",
|
||||||
|
},
|
||||||
fields=["restrict_based_on", "based_on_value"],
|
fields=["restrict_based_on", "based_on_value"],
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -226,7 +229,7 @@ def item_query(doctype, txt, searchfield, start, page_len, filters, as_dict=Fals
|
|||||||
filters_dict[rule.restrict_based_on].append(rule.based_on_value)
|
filters_dict[rule.restrict_based_on].append(rule.based_on_value)
|
||||||
|
|
||||||
for filter in filters_dict:
|
for filter in filters_dict:
|
||||||
filters[scrub(filter)] = ["in", filters_dict[filter]]
|
filters[scrub(filter)] = ["not in", filters_dict[filter]]
|
||||||
|
|
||||||
if filters.get("customer"):
|
if filters.get("customer"):
|
||||||
del filters["customer"]
|
del filters["customer"]
|
||||||
|
|||||||
@@ -35,8 +35,7 @@ class TestPartySpecificItem(IntegrationTestCase):
|
|||||||
items = item_query(
|
items = item_query(
|
||||||
doctype="Item", txt="", searchfield="name", start=0, page_len=20, filters=filters, as_dict=False
|
doctype="Item", txt="", searchfield="name", start=0, page_len=20, filters=filters, as_dict=False
|
||||||
)
|
)
|
||||||
for item in items:
|
self.assertTrue(self.item.name in flatten(items))
|
||||||
self.assertEqual(item[0], self.item.name)
|
|
||||||
|
|
||||||
def test_item_query_for_supplier(self):
|
def test_item_query_for_supplier(self):
|
||||||
create_party_specific_item(
|
create_party_specific_item(
|
||||||
@@ -49,5 +48,14 @@ class TestPartySpecificItem(IntegrationTestCase):
|
|||||||
items = item_query(
|
items = item_query(
|
||||||
doctype="Item", txt="", searchfield="name", start=0, page_len=20, filters=filters, as_dict=False
|
doctype="Item", txt="", searchfield="name", start=0, page_len=20, filters=filters, as_dict=False
|
||||||
)
|
)
|
||||||
for item in items:
|
self.assertTrue(self.item.item_group in flatten(items))
|
||||||
self.assertEqual(item[2], self.item.item_group)
|
|
||||||
|
|
||||||
|
def flatten(lst):
|
||||||
|
result = []
|
||||||
|
for item in lst:
|
||||||
|
if isinstance(item, tuple):
|
||||||
|
result.extend(flatten(item))
|
||||||
|
else:
|
||||||
|
result.append(item)
|
||||||
|
return result
|
||||||
|
|||||||
Reference in New Issue
Block a user