diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation_links.py b/erpnext/buying/doctype/request_for_quotation/request_for_quotation_links.py
index 809b38c..279d157 100644
--- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation_links.py
+++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation_links.py
@@ -1,14 +1,14 @@
 from frappe import _
 
 links = {
-	'fieldname': 'supplier_quotation',
+	'fieldname': 'request_for_quotation',
 	# 'non_standard_fieldnames': {
 	# 	'Purchase Order': 'prevdoc_detail_docname',
 	# },
 	'transactions': [
 		{
 			'label': _('Related Documents'),
-			'items': ['Supplier Quotation', 'Purchase Order']
+			'items': ['Supplier Quotation']
 		},
 	]
 }
\ No newline at end of file
diff --git a/erpnext/patches/v7_0/create_warehouse_nestedset.py b/erpnext/patches/v7_0/create_warehouse_nestedset.py
index 0fa1756..af39cc8 100644
--- a/erpnext/patches/v7_0/create_warehouse_nestedset.py
+++ b/erpnext/patches/v7_0/create_warehouse_nestedset.py
@@ -47,6 +47,9 @@
 
 def make_warehouse_nestedset(company=None):
 	validate_parent_account_for_warehouse(company)
+	stock_account_group = get_stock_account_group(company.name)
+	if not stock_account_group and cint(frappe.defaults.get_global_default("auto_accounting_for_stock")):
+		return
 
 	if company:
 		warehouse_group = "{0} - {1}".format(_("All Warehouses"), company.abbr)
@@ -56,11 +59,11 @@
 		ignore_mandatory = True
 
 	if not frappe.db.get_value("Warehouse", warehouse_group):
-		create_default_warehouse_group(company, ignore_mandatory)
+		create_default_warehouse_group(company, stock_account_group, ignore_mandatory)
 
 	set_parent_to_warehouse(warehouse_group, company)
 	if cint(frappe.defaults.get_global_default("auto_accounting_for_stock")):
-		set_parent_to_warehouse_acount(company)
+		set_parent_to_warehouse_account(company)
 
 def validate_parent_account_for_warehouse(company=None):
 	if not company:
@@ -78,13 +81,14 @@
 			if current_parent_accounts_for_warehouse:
 				frappe.db.set_value("Account", current_parent_accounts_for_warehouse[0][0], "account_type", "Stock")
 
-def create_default_warehouse_group(company=None, ignore_mandatory=False):
+def create_default_warehouse_group(company=None, stock_account_group=None, ignore_mandatory=False):
 	wh = frappe.get_doc({
 		"doctype": "Warehouse",
 		"warehouse_name": _("All Warehouses"),
 		"is_group": 1,
 		"company": company.name if company else "",
-		"parent_warehouse": ""
+		"parent_warehouse": "",
+		"create_account_under": stock_account_group
 	})
 
 	if ignore_mandatory:
@@ -99,7 +103,7 @@
 
 	rebuild_tree("Warehouse", "parent_warehouse")
 
-def set_parent_to_warehouse_acount(company):
+def set_parent_to_warehouse_account(company):
 	frappe.db.sql(""" update tabAccount set parent_account = %s
 		where is_group = 0 and account_type = "Warehouse"
 		and (warehouse is not null or warehouse != '') and company = %s
@@ -109,3 +113,13 @@
 
 def set_company_to_warehouse(company):
 	frappe.db.sql("update tabWahouse set company=%s", company)
+
+def get_stock_account_group(company):
+	stock_account_group = frappe.db.get_all('Account', filters = {'company': company, 'is_group': 1,
+		'account_type': 'Stock', 'root_type': 'Asset'}, limit=1)
+			
+	if not stock_account_group:
+		stock_account_group = frappe.db.get_all('Account', filters = {'company': company, 'is_group': 1,
+				'parent_account': '', 'root_type': 'Asset'}, limit=1)
+
+	return stock_account_group[0].name if stock_account_group else None
\ No newline at end of file
diff --git a/erpnext/stock/doctype/warehouse/warehouse.py b/erpnext/stock/doctype/warehouse/warehouse.py
index efb5951..938e73c 100644
--- a/erpnext/stock/doctype/warehouse/warehouse.py
+++ b/erpnext/stock/doctype/warehouse/warehouse.py
@@ -93,13 +93,6 @@
 			if parent_account:
 				frappe.db.set_value("Warehouse", self.name, "create_account_under", parent_account[0][0])
 				self.create_account_under = parent_account[0][0]
-			else:
-				# did not find parent, add it to root Assets
-				# let the user figure.
-				self.create_account_under = frappe.db.get_all('Account',
-					filters = {'company': self.company, 'is_group': 1,
-						'parent_account': '', 'root_type': 'Asset'}, limit=1)[0].name
-				frappe.throw(_("Please enter parent account group for warehouse {0}").format(self.name))
 		elif frappe.db.get_value("Account", self.create_account_under, "company") != self.company:
 			frappe.throw(_("Warehouse {0}: Parent account {1} does not bolong to the company {2}")
 				.format(self.name, self.create_account_under, self.company))
