[fix] wareehouse nestedset fix if company not associated with warehouse
diff --git a/erpnext/patches/v7_0/create_warehouse_nestedset.py b/erpnext/patches/v7_0/create_warehouse_nestedset.py
index 71a22fd..5a6d638 100644
--- a/erpnext/patches/v7_0/create_warehouse_nestedset.py
+++ b/erpnext/patches/v7_0/create_warehouse_nestedset.py
@@ -18,7 +18,7 @@
def set_parent_to_warehouse(company):
frappe.db.sql(""" update tabWarehouse set parent_warehouse = %s
- where (is_group = 0 or is_group is null or is_group = '') and company = %s
+ where (is_group = 0 or is_group is null or is_group = '') and ifnull(company, '') = %s
""",("{0} - {1}".format(_("All Warehouses"), company.abbr), company.name))
rebuild_tree("Warehouse", "parent_warehouse")
diff --git a/erpnext/stock/doctype/warehouse/warehouse.py b/erpnext/stock/doctype/warehouse/warehouse.py
index 515d260..adef7ce 100644
--- a/erpnext/stock/doctype/warehouse/warehouse.py
+++ b/erpnext/stock/doctype/warehouse/warehouse.py
@@ -11,9 +11,12 @@
nsm_parent_field = 'parent_warehouse'
def autoname(self):
- suffix = " - " + frappe.db.get_value("Company", self.company, "abbr")
- if not self.warehouse_name.endswith(suffix):
- self.name = self.warehouse_name + suffix
+ if self.company:
+ suffix = " - " + frappe.db.get_value("Company", self.company, "abbr")
+ if not self.warehouse_name.endswith(suffix):
+ self.name = self.warehouse_name + suffix
+ else:
+ self.name = self.warehouse_name
def onload(self):
'''load account name for General Ledger Report'''
@@ -31,6 +34,7 @@
def update_parent_account(self):
if not getattr(self, "__islocal", None) \
+ and cint(frappe.defaults.get_global_default("auto_accounting_for_stock")) \
and (self.create_account_under != frappe.db.get_value("Warehouse", self.name, "create_account_under")):
self.validate_parent_account()
@@ -251,9 +255,10 @@
is_group as expandable
from `tab{doctype}`
where docstatus < 2
- and ifnull(`{parent_field}`,'') = %s and `company` = %s
- order by name""".format(doctype=frappe.db.escape(doctype), parent_field=frappe.db.escape(parent_field)),
- (parent, company), as_dict=1)
+ and ifnull(`{parent_field}`,'') = %s
+ and (`company` = %s or company is null or company = '')
+ order by name""".format(doctype=frappe.db.escape(doctype),
+ parent_field=frappe.db.escape(parent_field)), (parent, company), as_dict=1)
# return warehouses
for wh in warehouses: