feat: show numeric values in item configurator (#20430)

This commit is contained in:
Shivam Mishra
2020-02-17 15:58:31 +05:30
committed by GitHub
parent 980e54c5f4
commit 660b4d1e2f

View File

@@ -1,4 +1,5 @@
import frappe
import numpy as np
from erpnext.portal.product_configurator.item_variants_cache import ItemVariantsCacheManager
def get_field_filter_data():
@@ -172,6 +173,7 @@ def get_attributes_and_values(item_code):
item_attribute_values = frappe.db.get_all('Item Attribute Value',
['parent', 'attribute_value', 'idx'], order_by='parent asc, idx asc')
item_attribute_values += get_numeric_values()
ordered_attribute_value_map = frappe._dict()
for iv in item_attribute_values:
ordered_attribute_value_map.setdefault(iv.parent, []).append(iv.attribute_value)
@@ -184,6 +186,23 @@ def get_attributes_and_values(item_code):
return attributes
def get_numeric_values():
attribute_values_list = []
numeric_attributes = frappe.get_list("Item Attribute", fields=['name', 'from_range', 'to_range', 'increment'], filters={"numeric_values": 1})
for attribute in numeric_attributes:
from_range = attribute["from_range"]
to_range = attribute['to_range'] + attribute['increment']
increment = attribute['increment']
values = list(np.arange(from_range, to_range, increment))
for idx, val in enumerate(values):
attribute_values_list.append(frappe._dict({
"parent": attribute.get("name"),
"attribute_value": str(int(val)) if val.is_integer() else str(val),
"idx": idx
}))
return attribute_values_list
@frappe.whitelist(allow_guest=True)
def get_next_attribute_and_values(item_code, selected_attributes):