f7b5b7beb4
- optimization by preventing patch execution if Asset doesn't exist
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')
|
|
|