Demo data for Budget
diff --git a/erpnext/demo/setup_data.py b/erpnext/demo/setup_data.py
index f5c4eb3..5aac9e0 100644
--- a/erpnext/demo/setup_data.py
+++ b/erpnext/demo/setup_data.py
@@ -1,6 +1,7 @@
 from __future__ import unicode_literals
 
 import random, json
+from frappe.utils.make_random import add_random_children, get_random
 from erpnext.demo.domains import data
 import frappe, erpnext
 from frappe.utils import flt, now_datetime, cstr, nowdate, add_days
@@ -33,6 +34,7 @@
 	setup_salary_structure_for_timesheet()
 	setup_account_to_expense_type()
 	setup_user_roles()
+	setup_budget()
 	frappe.db.commit()
 	frappe.clear_cache()
 
@@ -339,6 +341,26 @@
 		})
 		doc.save(ignore_permissions=True)
 		
+def setup_budget():
+	fiscal_years = frappe.get_all("Fiscal Year", order_by="year_start_date")[-2:]
+		
+	for fy in fiscal_years:
+		budget = frappe.new_doc("Budget")
+		budget.cost_center = get_random("Cost Center")
+		budget.fiscal_year = fy.name
+		budget.action_if_annual_budget_exceeded = "Warn"
+		expense_ledger_count = frappe.db.count("Account", {"is_group": "0", "root_type": "Expense"})
+
+		add_random_children(budget, "accounts", rows=random.randint(10, expense_ledger_count), randomize = { 			"account": ("Account", {"is_group": "0", "root_type": "Expense"})
+		}, unique="account")
+			
+		for d in budget.accounts:
+			d.budget_amount = random.randint(5, 100) * 10000
+			
+		budget.save()
+		budget.submit()
+	
+		
 def setup_user_roles():
 	if not frappe.db.get_global('demo_hr_user'):
 		user = frappe.get_doc('User', 'CharmaineGaudreau@example.com')
diff --git a/erpnext/demo/user/hr.py b/erpnext/demo/user/hr.py
index 50f15bb..219fa20 100644
--- a/erpnext/demo/user/hr.py
+++ b/erpnext/demo/user/hr.py
@@ -113,15 +113,11 @@
 	sales_invoice = make_sales_invoice(name)
 	sales_invoice.customer = get_random("Customer")
 	sales_invoice.append('items', {
-		'item_code': get_random_item(),
+		'item_code': get_random("Item", {"has_variants": 0, "is_stock_item": 0, "is_fixed_asset": 0}),
 		'qty': 1,
 		'rate': 1000
 	})
 	sales_invoice.set_missing_values()
 	sales_invoice.calculate_taxes_and_totals()
 	sales_invoice.insert()
-	sales_invoice.submit()
-
-def get_random_item():
-	return frappe.db.sql_list(""" select name from `tabItem` where
-		has_variants=0 and is_stock_item=0 and is_fixed_asset=0 order by rand() limit 1""")[0]
+	sales_invoice.submit()
\ No newline at end of file