From d2c5b508424f088f2ecd35b11425fc678c6e00e5 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 8 Oct 2018 18:19:53 +0530 Subject: [PATCH] fix(warehouse-account): get warehouse account map fallback handling (#15625) * fix(warehouse-account): get warehouse account map fallback handling * fix: import issue --- erpnext/stock/__init__.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/erpnext/stock/__init__.py b/erpnext/stock/__init__.py index 9895b5aaf28..06f424e5b2f 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 @@ def get_warehouse_account(warehouse, warehouse_account=None): 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 @@ def get_warehouse_account(warehouse, warehouse_account=None): 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):