fix!: dont allow renaming warehouse primary key
diff --git a/erpnext/stock/doctype/warehouse/test_warehouse.py b/erpnext/stock/doctype/warehouse/test_warehouse.py
index ca92936..26db264 100644
--- a/erpnext/stock/doctype/warehouse/test_warehouse.py
+++ b/erpnext/stock/doctype/warehouse/test_warehouse.py
@@ -33,65 +33,6 @@
 			self.assertEqual(p_warehouse.name, child_warehouse.parent_warehouse)
 			self.assertEqual(child_warehouse.is_group, 0)
 
-	def test_warehouse_renaming(self):
-		create_warehouse("Test Warehouse for Renaming 1", company="_Test Company with perpetual inventory")
-		account = get_inventory_account("_Test Company with perpetual inventory", "Test Warehouse for Renaming 1 - TCP1")
-		self.assertTrue(frappe.db.get_value("Warehouse", filters={"account": account}))
-
-		# Rename with abbr
-		if frappe.db.exists("Warehouse", "Test Warehouse for Renaming 2 - TCP1"):
-			frappe.delete_doc("Warehouse", "Test Warehouse for Renaming 2 - TCP1")
-		frappe.rename_doc("Warehouse", "Test Warehouse for Renaming 1 - TCP1", "Test Warehouse for Renaming 2 - TCP1")
-
-		self.assertTrue(frappe.db.get_value("Warehouse",
-			filters={"account": "Test Warehouse for Renaming 1 - TCP1"}))
-
-		# Rename without abbr
-		if frappe.db.exists("Warehouse", "Test Warehouse for Renaming 3 - TCP1"):
-			frappe.delete_doc("Warehouse", "Test Warehouse for Renaming 3 - TCP1")
-
-		frappe.rename_doc("Warehouse", "Test Warehouse for Renaming 2 - TCP1", "Test Warehouse for Renaming 3")
-
-		self.assertTrue(frappe.db.get_value("Warehouse",
-			filters={"account": "Test Warehouse for Renaming 1 - TCP1"}))
-
-		# Another rename with multiple dashes
-		if frappe.db.exists("Warehouse", "Test - Warehouse - Company - TCP1"):
-			frappe.delete_doc("Warehouse", "Test - Warehouse - Company - TCP1")
-		frappe.rename_doc("Warehouse", "Test Warehouse for Renaming 3 - TCP1", "Test - Warehouse - Company")
-
-	def test_warehouse_merging(self):
-		company = "_Test Company with perpetual inventory"
-		create_warehouse("Test Warehouse for Merging 1", company=company,
-			properties={"parent_warehouse": "All Warehouses - TCP1"})
-		create_warehouse("Test Warehouse for Merging 2", company=company,
-			properties={"parent_warehouse": "All Warehouses - TCP1"})
-
-		make_stock_entry(item_code="_Test Item", target="Test Warehouse for Merging 1 - TCP1",
-			qty=1, rate=100, company=company)
-		make_stock_entry(item_code="_Test Item", target="Test Warehouse for Merging 2 - TCP1",
-			qty=1, rate=100, company=company)
-
-		existing_bin_qty = (
-			cint(frappe.db.get_value("Bin",
-				{"item_code": "_Test Item", "warehouse": "Test Warehouse for Merging 1 - TCP1"}, "actual_qty"))
-			+ cint(frappe.db.get_value("Bin",
-				{"item_code": "_Test Item", "warehouse": "Test Warehouse for Merging 2 - TCP1"}, "actual_qty"))
-		)
-
-		frappe.rename_doc("Warehouse", "Test Warehouse for Merging 1 - TCP1",
-			"Test Warehouse for Merging 2 - TCP1", merge=True)
-
-		self.assertFalse(frappe.db.exists("Warehouse", "Test Warehouse for Merging 1 - TCP1"))
-
-		bin_qty = frappe.db.get_value("Bin",
-			{"item_code": "_Test Item", "warehouse": "Test Warehouse for Merging 2 - TCP1"}, "actual_qty")
-
-		self.assertEqual(bin_qty, existing_bin_qty)
-
-		self.assertTrue(frappe.db.get_value("Warehouse",
-			filters={"account": "Test Warehouse for Merging 2 - TCP1"}))
-
 	def test_unlinking_warehouse_from_item_defaults(self):
 		company = "_Test Company"
 
diff --git a/erpnext/stock/doctype/warehouse/warehouse.json b/erpnext/stock/doctype/warehouse/warehouse.json
index 9b90932..05076b5 100644
--- a/erpnext/stock/doctype/warehouse/warehouse.json
+++ b/erpnext/stock/doctype/warehouse/warehouse.json
@@ -1,7 +1,6 @@
 {
  "actions": [],
  "allow_import": 1,
- "allow_rename": 1,
  "creation": "2013-03-07 18:50:32",
  "description": "A logical Warehouse against which stock entries are made.",
  "doctype": "DocType",
@@ -245,7 +244,7 @@
  "idx": 1,
  "is_tree": 1,
  "links": [],
- "modified": "2021-04-09 19:54:56.263965",
+ "modified": "2021-12-03 04:40:06.414630",
  "modified_by": "Administrator",
  "module": "Stock",
  "name": "Warehouse",
diff --git a/erpnext/stock/doctype/warehouse/warehouse.py b/erpnext/stock/doctype/warehouse/warehouse.py
index b9dbc38..9cfad86 100644
--- a/erpnext/stock/doctype/warehouse/warehouse.py
+++ b/erpnext/stock/doctype/warehouse/warehouse.py
@@ -10,7 +10,6 @@
 from frappe.utils import cint, flt
 from frappe.utils.nestedset import NestedSet
 
-import erpnext
 from erpnext.stock import get_warehouse_account
 
 
@@ -68,57 +67,6 @@
 		return frappe.db.sql("""select name from `tabWarehouse`
 			where parent_warehouse = %s limit 1""", self.name)
 
-	def before_rename(self, old_name, new_name, merge=False):
-		super(Warehouse, self).before_rename(old_name, new_name, merge)
-
-		# Add company abbr if not provided
-		new_warehouse = erpnext.encode_company_abbr(new_name, self.company)
-
-		if merge:
-			if not frappe.db.exists("Warehouse", new_warehouse):
-				frappe.throw(_("Warehouse {0} does not exist").format(new_warehouse))
-
-			if self.company != frappe.db.get_value("Warehouse", new_warehouse, "company"):
-				frappe.throw(_("Both Warehouse must belong to same Company"))
-
-		return new_warehouse
-
-	def after_rename(self, old_name, new_name, merge=False):
-		super(Warehouse, self).after_rename(old_name, new_name, merge)
-
-		new_warehouse_name = self.get_new_warehouse_name_without_abbr(new_name)
-		self.db_set("warehouse_name", new_warehouse_name)
-
-		if merge:
-			self.recalculate_bin_qty(new_name)
-
-	def get_new_warehouse_name_without_abbr(self, name):
-		company_abbr = frappe.get_cached_value('Company',  self.company,  "abbr")
-		parts = name.rsplit(" - ", 1)
-
-		if parts[-1].lower() == company_abbr.lower():
-			name = parts[0]
-
-		return name
-
-	def recalculate_bin_qty(self, new_name):
-		from erpnext.stock.stock_balance import repost_stock
-		frappe.db.auto_commit_on_many_writes = 1
-		existing_allow_negative_stock = frappe.db.get_value("Stock Settings", None, "allow_negative_stock")
-		frappe.db.set_value("Stock Settings", None, "allow_negative_stock", 1)
-
-		repost_stock_for_items = frappe.db.sql_list("""select distinct item_code
-			from tabBin where warehouse=%s""", new_name)
-
-		# Delete all existing bins to avoid duplicate bins for the same item and warehouse
-		frappe.db.sql("delete from `tabBin` where warehouse=%s", new_name)
-
-		for item_code in repost_stock_for_items:
-			repost_stock(item_code, new_name)
-
-		frappe.db.set_value("Stock Settings", None, "allow_negative_stock", existing_allow_negative_stock)
-		frappe.db.auto_commit_on_many_writes = 0
-
 	def convert_to_group_or_ledger(self):
 		if self.is_group:
 			self.convert_to_ledger()