37 lines
		
	
	
		
			877 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			877 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright (c) 2017, Frappe and Contributors
 | |
| # License: GNU General Public License v3. See license.txt
 | |
| 
 | |
| 
 | |
| import frappe
 | |
| 
 | |
| 
 | |
| def execute():
 | |
| 	frappe.reload_doc("stock", "doctype", "item_barcode")
 | |
| 	if frappe.get_all("Item Barcode", limit=1):
 | |
| 		return
 | |
| 	if "barcode" not in frappe.db.get_table_columns("Item"):
 | |
| 		return
 | |
| 
 | |
| 	items_barcode = frappe.db.sql(
 | |
| 		"select name, barcode from tabItem where barcode is not null", as_dict=True
 | |
| 	)
 | |
| 	frappe.reload_doc("stock", "doctype", "item")
 | |
| 
 | |
| 	for item in items_barcode:
 | |
| 		barcode = item.barcode.strip()
 | |
| 
 | |
| 		if barcode and "<" not in barcode:
 | |
| 			try:
 | |
| 				frappe.get_doc(
 | |
| 					{
 | |
| 						"idx": 0,
 | |
| 						"doctype": "Item Barcode",
 | |
| 						"barcode": barcode,
 | |
| 						"parenttype": "Item",
 | |
| 						"parent": item.name,
 | |
| 						"parentfield": "barcodes",
 | |
| 					}
 | |
| 				).insert()
 | |
| 			except (frappe.DuplicateEntryError, frappe.UniqueValidationError):
 | |
| 				continue
 |