From 03975a692e579656195ff16e2f31c1395bef60fa Mon Sep 17 00:00:00 2001 From: marination Date: Mon, 12 Oct 2020 12:03:07 +0530 Subject: [PATCH] fix: Perform Item Attribute Value Validation on Variants Only --- .../doctype/item_attribute/item_attribute.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/erpnext/stock/doctype/item_attribute/item_attribute.py b/erpnext/stock/doctype/item_attribute/item_attribute.py index 7f00201587..3764738e83 100644 --- a/erpnext/stock/doctype/item_attribute/item_attribute.py +++ b/erpnext/stock/doctype/item_attribute/item_attribute.py @@ -29,9 +29,18 @@ class ItemAttribute(Document): '''Validate that if there are existing items with attributes, they are valid''' attributes_list = [d.attribute_value for d in self.item_attribute_values] - for item in frappe.db.sql('''select i.name, iva.attribute_value as value - from `tabItem Variant Attribute` iva, `tabItem` i where iva.attribute = %s - and iva.parent = i.name and i.has_variants = 0''', self.name, as_dict=1): + # Get Item Variant Attribute details of variant items + items = frappe.db.sql(""" + select + i.name, iva.attribute_value as value + from + `tabItem Variant Attribute` iva, `tabItem` i + where + iva.attribute = %(attribute)s + and iva.parent = i.name and + i.variant_of is not null and i.variant_of != ''""", {"attribute" : self.name}, as_dict=1) + + for item in items: if self.numeric_values: validate_is_incremental(self, self.name, item.value, item.name) else: