fix: Add order data
diff --git a/erpnext/setup/demo.py b/erpnext/setup/demo.py
index bb64ba1..78b31e4 100644
--- a/erpnext/setup/demo.py
+++ b/erpnext/setup/demo.py
@@ -9,8 +9,10 @@
 from frappe import _
 from frappe.utils import add_days, getdate
 
-import erpnext
+from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry
 from erpnext.accounts.utils import get_fiscal_year
+from erpnext.buying.doctype.purchase_order.purchase_order import make_purchase_invoice
+from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice
 from erpnext.setup.setup_wizard.operations.install_fixtures import create_bank_account
 
 
@@ -88,8 +90,8 @@
 
 
 def make_transactions(company):
-	start_date = get_fiscal_year(date=getdate())[1]
 	frappe.db.set_single_value("Stock Settings", "allow_negative_stock", 1)
+	start_date = get_fiscal_year(date=getdate())[1]
 
 	for doctype in frappe.get_hooks("demo_transaction_doctypes"):
 		data = read_data_file_using_hooks(doctype)
@@ -97,55 +99,63 @@
 			for item in json.loads(data):
 				create_transaction(item, company, start_date)
 
+	convert_order_to_invoices()
+	frappe.db.set_single_value("Stock Settings", "allow_negative_stock", 0)
+
 
 def create_transaction(doctype, company, start_date):
+	document_type = doctype.get("doctype")
 	warehouse = get_warehouse(company)
-	posting_date = (
-		start_date if doctype.get("doctype") == "Purchase Invoice" else get_random_date(start_date)
-	)
-	bank_account, default_receivable_account = frappe.db.get_value(
-		"Company", company, ["default_bank_account", "default_receivable_account"]
-	)
-	bank_field = "paid_to" if doctype.get("party_type") == "Customer" else "paid_from"
+
+	if document_type == "Purchase Order":
+		posting_date = get_random_date(start_date, 1, 30)
+	else:
+		posting_date = get_random_date(start_date, 31, 365)
 
 	doctype.update(
 		{
 			"company": company,
 			"set_posting_time": 1,
-			"posting_date": posting_date,
+			"transaction_date": posting_date,
+			"schedule_date": posting_date,
+			"delivery_date": posting_date,
 			"set_warehouse": warehouse,
-			bank_field: bank_account,
-			"reference_date": posting_date,
 		}
 	)
 
-	income_account, expense_account = frappe.db.get_value(
-		"Company", company, ["default_income_account", "default_expense_account"]
-	)
-
-	if doctype in ("Purchase Invoice", "Sales Invoice"):
-		for item in doctype.get("items") or []:
-			item.update(
-				{
-					"cost_center": erpnext.get_default_cost_center(company),
-					"income_account": income_account,
-					"expense_account": expense_account,
-				}
-			)
-	elif doctype == "Journal Entry":
-		pass
-		# update_accounts(doctype, bank_account, default_receivable_account)
-
 	doc = frappe.get_doc(doctype)
 	doc.save(ignore_permissions=True)
 	doc.submit()
 
 
-# def update_accounts(doctype, company, bank_account):
+def convert_order_to_invoices():
+	for document in ["Purchase Order", "Sales Order"]:
+		# Keep some orders intentionally unbilled/unpaid
+		for i, order in enumerate(
+			frappe.db.get_all(
+				document, filters={"docstatus": 1}, fields=["name", "transaction_date"], limit=6
+			)
+		):
+
+			if document == "Purchase Order":
+				invoice = make_purchase_invoice(order.name)
+			elif document == "Sales Order":
+				invoice = make_sales_invoice(order.name)
+
+			invoice.set_posting_time = 1
+			invoice.posting_date = order.transaction_date
+			invoice.due_date = order.transaction_date
+			invoice.update_stock = 1
+			invoice.submit()
+
+			if i % 2 != 0:
+				payment = get_payment_entry(invoice.doctype, invoice.name)
+				payment.reference_no = invoice.name
+				payment.submit()
 
 
-def get_random_date(start_date):
-	return add_days(start_date, randint(1, 365))
+def get_random_date(start_date, start_range, end_range):
+	return add_days(start_date, randint(start_range, end_range))
 
 
 def create_transaction_deletion_record(company):
@@ -164,9 +174,9 @@
 
 
 def clear_demo_record(document):
-	doc_type = document.get("doctype")
+	document_type = document.get("doctype")
 	del document["doctype"]
-	doc = frappe.get_doc(doc_type, document)
+	doc = frappe.get_doc(document_type, document)
 	frappe.delete_doc(doc.doctype, doc.name, ignore_permissions=True)
 
 
@@ -184,7 +194,5 @@
 
 
 def get_warehouse(company):
-	abbr = frappe.db.get_value("Company", company, "abbr")
-	warehouse = "Stores - {0}".format(abbr)
-
-	return warehouse
+	warehouses = frappe.db.get_all("Warehouse", {"company": company, "is_group": 0})
+	return warehouses[randint(0, 3)].name