31 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright (c) 2017, Frappe and Contributors
 | |
| # License: GNU General Public License v3. See license.txt
 | |
| 
 | |
| from __future__ import unicode_literals
 | |
| import frappe
 | |
| from frappe.utils.nestedset import rebuild_tree
 | |
| 
 | |
| def execute():
 | |
| 	if not frappe.db.get_value('Asset', {'docstatus': ('<', 2) }, 'name'): return
 | |
| 	frappe.reload_doc('assets', 'doctype', 'location')
 | |
| 	frappe.reload_doc('stock', 'doctype', 'warehouse')
 | |
| 
 | |
| 	for d in frappe.get_all('Warehouse',
 | |
| 		fields = ['warehouse_name', 'is_group', 'parent_warehouse'], order_by="lft asc"):
 | |
| 		try:
 | |
| 			loc = frappe.new_doc('Location')
 | |
| 			loc.location_name = d.warehouse_name
 | |
| 			loc.is_group = d.is_group
 | |
| 			loc.flags.ignore_mandatory = True
 | |
| 			if d.parent_warehouse:
 | |
| 				loc.parent_location = get_parent_warehouse_name(d.parent_warehouse)
 | |
| 
 | |
| 			loc.save(ignore_permissions=True)
 | |
| 		except frappe.DuplicateEntryError:
 | |
| 			continue
 | |
| 
 | |
| 	rebuild_tree("Location", "parent_location")
 | |
| 
 | |
| def get_parent_warehouse_name(warehouse):
 | |
| 	return frappe.db.get_value('Warehouse', warehouse, 'warehouse_name')
 | |
| 			 |