# 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')