Merge branch 'develop' of https://github.com/frappe/erpnext into demo-fixes
diff --git a/erpnext/demo/setup/setup_data.py b/erpnext/demo/setup/setup_data.py
index 48dcdbe..a395c7c 100644
--- a/erpnext/demo/setup/setup_data.py
+++ b/erpnext/demo/setup/setup_data.py
@@ -10,13 +10,14 @@
 from frappe import _
 
 def setup(domain):
+	frappe.flags.in_demo = 1
 	complete_setup(domain)
 	setup_demo_page()
 	setup_fiscal_year()
 	setup_holiday_list()
 	setup_user()
 	setup_employee()
-	setup_user_roles()
+	setup_user_roles(domain)
 	setup_role_permissions()
 	setup_custom_field_for_domain()
 
@@ -183,13 +184,19 @@
 
 	return ss
 
-def setup_user_roles():
+def setup_user_roles(domain):
 	user = frappe.get_doc('User', 'demo@erpnext.com')
 	user.add_roles('HR User', 'HR Manager', 'Accounts User', 'Accounts Manager',
 		'Stock User', 'Stock Manager', 'Sales User', 'Sales Manager', 'Purchase User',
 		'Purchase Manager', 'Projects User', 'Manufacturing User', 'Manufacturing Manager',
-		'Support Team', 'Academics User', 'Physician', 'Healthcare Administrator', 'Laboratory User',
-		'Nursing User', 'Patient')
+		'Support Team')
+
+	if domain == "Healthcare":
+		user.add_roles('Physician', 'Healthcare Administrator', 'Laboratory User',
+			'Nursing User', 'Patient')
+
+	if domain == "Education":
+		user.add_roles('Academics User')
 
 	if not frappe.db.get_global('demo_hr_user'):
 		user = frappe.get_doc('User', 'CaitlinSnow@example.com')
@@ -219,7 +226,7 @@
 
 	if not frappe.db.get_global('demo_manufacturing_user'):
 		user = frappe.get_doc('User', 'NeptuniaAquaria@example.com')
-		user.add_roles('Manufacturing User', 'Stock User', 'Purchase User', 'Accounts User')
+		user.add_roles('Manufacturing User', 'Stock Manager', 'Stock User', 'Purchase User', 'Accounts User')
 		update_employee_department(user.name, 'Production')
 		frappe.db.set_global('demo_manufacturing_user', user.name)
 
@@ -241,11 +248,12 @@
 		update_employee_department(user.name, 'Management')
 		frappe.db.set_global('demo_projects_user', user.name)
 
-	if not frappe.db.get_global('demo_education_user'):
-		user = frappe.get_doc('User', 'ArthurCurry@example.com')
-		user.add_roles('Academics User')
-		update_employee_department(user.name, 'Management')
-		frappe.db.set_global('demo_education_user', user.name)
+	if domain == "Education":
+		if not frappe.db.get_global('demo_education_user'):
+			user = frappe.get_doc('User', 'ArthurCurry@example.com')
+			user.add_roles('Academics User')
+			update_employee_department(user.name, 'Management')
+			frappe.db.set_global('demo_education_user', user.name)
 
 	#Add Expense Approver
 	user = frappe.get_doc('User', 'ClarkKent@example.com')
diff --git a/erpnext/demo/user/accounts.py b/erpnext/demo/user/accounts.py
index 6206dfd..7fab772 100644
--- a/erpnext/demo/user/accounts.py
+++ b/erpnext/demo/user/accounts.py
@@ -73,14 +73,16 @@
 	make_pos_invoice()
 
 def make_payment_entries(ref_doctype, report):
-	outstanding_invoices = list(set([r[3] for r in query_report.run(report, {
-						"report_date": frappe.flags.current_date,
-						"company": erpnext.get_default_company()
-					})["result"] if r[2]==ref_doctype]))
+
+	outstanding_invoices = frappe.get_all(ref_doctype, fields=["name"],
+		filters={
+			"company": erpnext.get_default_company(),
+			"outstanding_amount": (">", 0.0)
+		})
 
 	# make Payment Entry
 	for inv in outstanding_invoices[:random.randint(1, 2)]:
-		pe = get_payment_entry(ref_doctype, inv)
+		pe = get_payment_entry(ref_doctype, inv.name)
 		pe.posting_date = frappe.flags.current_date
 		pe.reference_no = random_string(6)
 		pe.reference_date = frappe.flags.current_date
@@ -91,7 +93,7 @@
 
 	# make payment via JV
 	for inv in outstanding_invoices[:1]:
-		jv = frappe.get_doc(get_payment_entry_against_invoice(ref_doctype, inv))
+		jv = frappe.get_doc(get_payment_entry_against_invoice(ref_doctype, inv.name))
 		jv.posting_date = frappe.flags.current_date
 		jv.cheque_no = random_string(6)
 		jv.cheque_date = frappe.flags.current_date
diff --git a/erpnext/demo/user/projects.py b/erpnext/demo/user/projects.py
index 36d676f..044e296 100644
--- a/erpnext/demo/user/projects.py
+++ b/erpnext/demo/user/projects.py
@@ -39,61 +39,4 @@
 			"doctype": "Project",
 			"project_name": "New Product Development " + current_date.strftime("%Y-%m-%d"),
 		})
-		project.set("tasks", [
-				{
-					"title": "Review Requirements",
-					"start_date": frappe.utils.add_days(current_date, 10),
-					"end_date": frappe.utils.add_days(current_date, 11)
-				},
-				{
-					"title": "Design Options",
-					"start_date": frappe.utils.add_days(current_date, 11),
-					"end_date": frappe.utils.add_days(current_date, 20)
-				},
-				{
-					"title": "Make Prototypes",
-					"start_date": frappe.utils.add_days(current_date, 20),
-					"end_date": frappe.utils.add_days(current_date, 30)
-				},
-				{
-					"title": "Customer Feedback on Prototypes",
-					"start_date": frappe.utils.add_days(current_date, 30),
-					"end_date": frappe.utils.add_days(current_date, 40)
-				},
-				{
-					"title": "Freeze Feature Set",
-					"start_date": frappe.utils.add_days(current_date, 40),
-					"end_date": frappe.utils.add_days(current_date, 45)
-				},
-				{
-					"title": "Testing",
-					"start_date": frappe.utils.add_days(current_date, 45),
-					"end_date": frappe.utils.add_days(current_date, 60)
-				},
-				{
-					"title": "Product Engineering",
-					"start_date": frappe.utils.add_days(current_date, 45),
-					"end_date": frappe.utils.add_days(current_date, 55)
-				},
-				{
-					"title": "Supplier Contracts",
-					"start_date": frappe.utils.add_days(current_date, 55),
-					"end_date": frappe.utils.add_days(current_date, 70)
-				},
-				{
-					"title": "Design and Build Fixtures",
-					"start_date": frappe.utils.add_days(current_date, 45),
-					"end_date": frappe.utils.add_days(current_date, 65)
-				},
-				{
-					"title": "Test Run",
-					"start_date": frappe.utils.add_days(current_date, 70),
-					"end_date": frappe.utils.add_days(current_date, 80)
-				},
-				{
-					"title": "Launch",
-					"start_date": frappe.utils.add_days(current_date, 80),
-					"end_date": frappe.utils.add_days(current_date, 90)
-				},
-			])
 		project.insert()
diff --git a/erpnext/demo/user/sales.py b/erpnext/demo/user/sales.py
index 457e976..8d5ba28 100644
--- a/erpnext/demo/user/sales.py
+++ b/erpnext/demo/user/sales.py
@@ -66,7 +66,7 @@
 	b = frappe.get_doc({
 		"doctype": "Opportunity",
 		"opportunity_from": "Customer",
-		"customer": get_random("Customer"),
+		"party_name": frappe.get_value("Customer", get_random("Customer"), 'name'),
 		"opportunity_type": "Sales",
 		"with_items": 1,
 		"transaction_date": frappe.flags.current_date,
diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py
index 9eb3748..e69a6aad 100644
--- a/erpnext/setup/doctype/company/company.py
+++ b/erpnext/setup/doctype/company/company.py
@@ -204,7 +204,7 @@
 			})
 
 		for default_account in default_accounts:
-			if self.is_new() or frappe.flags.in_test:
+			if self.is_new() or frappe.flags.in_test or frappe.flags.in_demo:
 				self._set_default_account(default_account, default_accounts.get(default_account))
 
 		if not self.default_income_account: