Merge pull request #5812 from nabinhait/budget_demo
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