feat: Clear demo data
diff --git a/erpnext/setup/demo.py b/erpnext/setup/demo.py
index 1256b0e..41faff2 100644
--- a/erpnext/setup/demo.py
+++ b/erpnext/setup/demo.py
@@ -18,12 +18,14 @@
 
 @frappe.whitelist()
 def clear_demo_data():
-	company = frappe.db.get_single_value("Global Defaults", "demo_company")
+	company = erpnext.get_default_company()
 	create_transaction_deletion_record(company)
+	clear_masters()
+	delete_company(company)
 
 
 def create_demo_company():
-	company = frappe.db.get_value("Company", {"docstatus": 0})
+	company = erpnext.get_default_company()
 	company_doc = frappe.get_doc("Company", company)
 
 	# Make a dummy company
@@ -37,19 +39,19 @@
 	new_company.chart_of_accounts = company_doc.chart_of_accounts
 	new_company.insert()
 
-	frappe.db.set_single_value("Global Defaults", "demo_company", new_company.name)
+	frappe.db.set_single_value("Global Defaults", "original_default_company", company)
+
+	# Set Demo Company as default to
+	frappe.db.set_single_value("Global Defaults", "default_company", new_company.name)
 	return new_company.name
 
 
 def process_masters():
-	demo_doctypes = frappe.get_hooks("demo_master_doctypes") or []
-	path = os.path.join(os.path.dirname(__file__), "demo_data")
-	for doctype in demo_doctypes:
-		with open(os.path.join(path, doctype + ".json"), "r") as f:
-			data = f.read()
-			if data:
-				for item in json.loads(data):
-					create_demo_record(item)
+	for doctype in frappe.get_hooks("demo_master_doctypes"):
+		data = read_data_file_using_hooks(doctype)
+		if data:
+			for item in json.loads(data):
+				create_demo_record(item)
 
 
 def create_demo_record(doctype):
@@ -57,14 +59,11 @@
 
 
 def make_transactions(company):
-	transaction_doctypes = frappe.get_hooks("demo_transaction_doctypes") or []
-	path = os.path.join(os.path.dirname(__file__), "demo_data")
-	for transaction in transaction_doctypes:
-		with open(os.path.join(path, transaction + ".json"), "r") as f:
-			data = f.read()
-			if data:
-				for item in json.loads(data):
-					create_transaction(item, company)
+	for doctype in frappe.get_hooks("demo_transaction_doctypes"):
+		data = read_data_file_using_hooks(doctype)
+		if data:
+			for item in json.loads(data):
+				create_transaction(item, company)
 
 
 def create_transaction(doctype, company):
@@ -93,3 +92,32 @@
 	transaction_deletion_record.company = company
 	transaction_deletion_record.save(ignore_permissions=True)
 	transaction_deletion_record.submit()
+
+
+def clear_masters():
+	for doctype in frappe.get_hooks("demo_master_doctypes")[::-1]:
+		data = read_data_file_using_hooks(doctype)
+		if data:
+			for item in json.loads(data):
+				clear_demo_record(item)
+
+
+def clear_demo_record(doctype):
+	doc_type = doctype.get("doctype")
+	del doctype["doctype"]
+	doc = frappe.get_doc(doc_type, doctype)
+	frappe.delete_doc(doc.doctype, doc.name, ignore_permissions=True)
+
+
+def delete_company(company):
+	original_company = frappe.db.get_single_value("Global Defaults", "original_default_company")
+	frappe.db.set_single_value("Global Defaults", "default_company", original_company)
+	frappe.delete_doc("Company", company, ignore_permissions=True)
+
+
+def read_data_file_using_hooks(doctype):
+	path = os.path.join(os.path.dirname(__file__), "demo_data")
+	with open(os.path.join(path, doctype + ".json"), "r") as f:
+		data = f.read()
+
+	return data
diff --git a/erpnext/setup/demo_data/customer.json b/erpnext/setup/demo_data/customer.json
index 08e0e13..ed95292 100644
--- a/erpnext/setup/demo_data/customer.json
+++ b/erpnext/setup/demo_data/customer.json
@@ -2,16 +2,19 @@
     {
         "doctype": "Customer",
         "customer_group": "Demo Customer Group",
+        "territory": "All Territories",
         "customer_name": "ABC Enterprises"
     },
     {
         "doctype": "Customer",
         "customer_group": "Demo Customer Group",
+        "territory": "All Territories",
         "customer_name": "XYZ Corporation"
     },
     {
         "doctype": "Customer",
         "customer_group": "Demo Customer Group",
+        "territory": "All Territories",
         "customer_name": "KJPR Pvt Ltd"
     }
 ]
\ No newline at end of file
diff --git a/erpnext/setup/demo_data/item.json b/erpnext/setup/demo_data/item.json
index 3782223..a241337 100644
--- a/erpnext/setup/demo_data/item.json
+++ b/erpnext/setup/demo_data/item.json
@@ -36,6 +36,7 @@
     },
     {
         "doctype": "Item",
+        "item_group": "Demo Item Group",
         "item_code": "SKU006",
         "item_name": "Coffee Mug",
         "image": "https://media.istockphoto.com/id/821282266/photo/white-mug-isolated.jpg?s=612x612&w=0&k=20&c=LJCMPk0D83OKmJHahkiLzAB3OsKr83nMbL7KxSgfpfM="
diff --git a/erpnext/setup/doctype/global_defaults/global_defaults.json b/erpnext/setup/doctype/global_defaults/global_defaults.json
index 0f57476..6d912ce 100644
--- a/erpnext/setup/doctype/global_defaults/global_defaults.json
+++ b/erpnext/setup/doctype/global_defaults/global_defaults.json
@@ -14,7 +14,7 @@
   "hide_currency_symbol",
   "disable_rounded_total",
   "disable_in_words",
-  "demo_company"
+  "original_default_company"
  ],
  "fields": [
   {
@@ -82,10 +82,10 @@
    "label": "Disable In Words"
   },
   {
-   "fieldname": "demo_company",
+   "fieldname": "original_default_company",
    "fieldtype": "Link",
    "hidden": 1,
-   "label": "Demo Company",
+   "label": "Original Default Company",
    "options": "Company",
    "read_only": 1
   }
@@ -95,7 +95,7 @@
  "in_create": 1,
  "issingle": 1,
  "links": [],
- "modified": "2023-06-16 13:03:45.016191",
+ "modified": "2023-06-17 13:07:40.074663",
  "modified_by": "Administrator",
  "module": "Setup",
  "name": "Global Defaults",