19 lines
856 B
Python
19 lines
856 B
Python
import frappe
|
|
|
|
def execute():
|
|
frappe.reload_doctype("Item")
|
|
for dt in ["manage_variants", "manage_variants_item", "variant_attribute"]:
|
|
frappe.reload_doc("stock", "doctype", dt)
|
|
|
|
for d in frappe.get_list("Item", filters={"has_variants":1}):
|
|
manage_variant = frappe.new_doc("Manage Variants")
|
|
manage_variant.item_code = d.name
|
|
manage_variant.attributes = frappe.db.sql("select item_attribute as attribute, item_attribute_value as attribute_value \
|
|
from `tabItem Variant` where parent = %s", d.name, as_dict=1)
|
|
if manage_variant.attributes:
|
|
if not frappe.get_list("Item", filters={"variant_of": d.name}, limit_page_length=1):
|
|
frappe.db.sql("delete from `tabItem Variant` where parent=%s", d.name)
|
|
else:
|
|
manage_variant.generate_combinations()
|
|
manage_variant.create_variants()
|
|
frappe.delete_doc("DocType", "Item Variant") |