fix(warehouse-account): get warehouse account map fallback handling (#15625)
* fix(warehouse-account): get warehouse account map fallback handling
* fix: import issue
diff --git a/erpnext/stock/__init__.py b/erpnext/stock/__init__.py
index 9895b5a..06f424e 100644
--- a/erpnext/stock/__init__.py
+++ b/erpnext/stock/__init__.py
@@ -1,5 +1,6 @@
from __future__ import unicode_literals
import frappe
+from frappe import _
install_docs = [
{"doctype":"Role", "role_name":"Stock Manager", "name":"Stock Manager"},
@@ -33,7 +34,11 @@
account = warehouse.account
if not account and warehouse.parent_warehouse:
if warehouse_account:
- account = warehouse_account.get(warehouse.parent_warehouse).account
+ if warehouse_account.get(warehouse.parent_warehouse):
+ account = warehouse_account.get(warehouse.parent_warehouse).account
+ else:
+ from frappe.utils.nestedset import rebuild_tree
+ rebuild_tree("Warehouse", "parent_warehouse")
else:
account = frappe.db.sql("""
select
@@ -48,6 +53,9 @@
if not account and warehouse.company:
account = get_company_default_inventory_account(warehouse.company)
+ if not account:
+ frappe.throw(_("Please set Account in Warehouse {0} or Default Inventory Account in Company {1}")
+ .format(warehouse, warehouse.company))
return account
def get_company_default_inventory_account(company):