Hi Everyone,
I have written a script to create an item on fly as a clone of an item.
But for that I wanted to insert few data in child table of Item like
Item Supplier
UOM Conversion Detail etc.
Can anybody let me know how to do this?
below is my code which is working perfectly.
@frappe.whitelist(allow_guest=True)
def generate_custom_codes(item_code, properties=None):
frappe.msgprint(item_code)
i='010%'
j=frappe.db.sql("""select item_code from tabItem where item_code like %s order by item_code desc limit 1""",i)
prefix=j[0][0]
prefix="".join(prefix)
new_prefix=prefix[0:3]
new_suffix=prefix[4:10]
next_num=(int(new_suffix)+1)
next_num1=str(next_num)
new_num1=next_num1.decode("ascii").rjust(6,'0')
new_num1=new_prefix+'-'+new_num1
item_name, description, is_stock_item, stock_uom, default_warehouse, end_of_life, valuation_method, default_material_request_type, is_sales_item, inspection_required = frappe.db.get_value("Item",item_code, ["item_name", "description", "is_stock_item", "stock_uom", "default_warehouse", "end_of_life", "valuation_method", "default_material_request_type", "is_sales_item", "inspection_required"])
item = frappe.get_doc({
"doctype": "Item",
"item_code": new_num1,
"item_name": item_name,
"description": description,
"is_stock_item": is_stock_item,
"stock_uom": stock_uom,
"default_warehouse": default_warehouse,
"end_of_life": end_of_life,
"valuation_method": valuation_method,
"default_material_request_type": default_material_request_type,
"is_sales_item": is_sales_item,
"inspection_required": inspection_required,
"item_group": "010-XXXXXX (custom product)",
"workflow_state": "Approved",
"docstatus": 0
})
if properties:
item.update(properties)
item.insert()
item.save()
return new_num1
Regards
Ruchin Sharma