brotherton-erpnext/erpnext/patches/v11_0/make_location_from_warehouse.py
2022-03-28 18:52:46 +05:30

35 lines
987 B
Python

# Copyright (c) 2017, Frappe and Contributors
# License: GNU General Public License v3. See license.txt
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")