From 5e7b4ca6a4996dff88e8696ae1c4c780aee53afc Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 21 May 2019 10:33:39 +0530 Subject: [PATCH 1/2] fix: while making the item, default warehouse not set even if the stock settings has the warehouse --- erpnext/stock/doctype/item/item.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py index 5d4dbf4e76e..48693359fe4 100644 --- a/erpnext/stock/doctype/item/item.py +++ b/erpnext/stock/doctype/item/item.py @@ -723,7 +723,18 @@ class Item(WebsiteGenerator): 'income_account': item.income_account }) else: - self.append("item_defaults", {"company": frappe.defaults.get_defaults().company}) + warehouse = '' + defaults = frappe.defaults.get_defaults() or {} + + # To check default warehouse is belong to the default company + if defaults.get("default_warehouse") and frappe.db.exists("Warehouse", + {'name': defaults.default_warehouse, 'company': defaults.company}): + warehouse = defaults.default_warehouse + + self.append("item_defaults", { + "company": defaults.get("company"), + "default_warehouse": warehouse + }) def update_variants(self): if self.flags.dont_update_variants or \ From c41118bac75d7000a91b0f5fd27e7413a721d084 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 21 May 2019 15:19:03 +0530 Subject: [PATCH 2/2] Get default warehouse from the stock settings in the get_item_details --- erpnext/stock/get_item_details.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index 30a45dd457c..16dcd5abc06 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -220,17 +220,18 @@ def get_basic_details(args, item): if item.variant_of: item.update_template_tables() - from frappe.defaults import get_user_default_as_list - user_default_warehouse_list = get_user_default_as_list('Warehouse') - user_default_warehouse = user_default_warehouse_list[0] \ - if len(user_default_warehouse_list) == 1 else "" - item_defaults = get_item_defaults(item.name, args.company) item_group_defaults = get_item_group_defaults(item.name, args.company) brand_defaults = get_brand_defaults(item.name, args.company) - warehouse = args.get("set_warehouse") or user_default_warehouse or item_defaults.get("default_warehouse") or\ - item_group_defaults.get("default_warehouse") or brand_defaults.get("default_warehouse") or args.warehouse + warehouse = (args.get("set_warehouse") or item_defaults.get("default_warehouse") or + item_group_defaults.get("default_warehouse") or brand_defaults.get("default_warehouse") or args.warehouse) + + if not warehouse: + defaults = frappe.defaults.get_defaults() or {} + if defaults.get("default_warehouse") and frappe.db.exists("Warehouse", + {'name': defaults.default_warehouse, 'company': args.company}): + warehouse = defaults.default_warehouse if args.get('doctype') == "Material Request" and not args.get('material_request_type'): args['material_request_type'] = frappe.db.get_value('Material Request',