blob: 2435029a2c4a1e509f22f7064544f7f8129c22f7 [file] [log] [blame]
Rushabh Mehtadc8067e2016-06-29 18:38:32 +05301from __future__ import unicode_literals
2
3import frappe, sys
4import erpnext
5import frappe.utils
6from erpnext.demo.setup_data import setup_data
Nabin Hait3edefb12016-07-20 16:13:18 +05307from erpnext.demo.user import hr, sales, purchase, manufacturing, stock, accounts, projects, fixed_asset
Rushabh Mehtadc8067e2016-06-29 18:38:32 +05308
Rushabh Mehta8cfe18e2016-07-13 11:29:59 +05309"""
10Make a demo
11
121. Start with a fresh account
13
14bench --site demo.erpnext.dev reinstall
15
162. Install Demo
17
18bench --site demo.erpnext.dev execute erpnext.demo.demo.make
19
203. If Demo breaks, to continue
21
22bench --site demo.erpnext.dev execute erpnext.demo.demo.simulate
23
24"""
25
Rushabh Mehtadc8067e2016-06-29 18:38:32 +053026def make(domain='Manufacturing'):
27 frappe.flags.domain = domain
Rushabh Mehtab814a542016-07-13 18:17:19 +053028 frappe.flags.mute_emails = True
Rushabh Mehtadc8067e2016-06-29 18:38:32 +053029 setup_data()
Rushabh Mehtaffa70e32016-07-13 17:41:03 +053030 site = frappe.local.site
31 frappe.destroy()
32 frappe.init(site)
33 frappe.connect()
Rushabh Mehtadc8067e2016-06-29 18:38:32 +053034 simulate()
35
36def simulate():
37 runs_for = frappe.flags.runs_for or 150
38 frappe.flags.company = erpnext.get_default_company()
Rushabh Mehtab814a542016-07-13 18:17:19 +053039 frappe.flags.mute_emails = True
Rushabh Mehtadc8067e2016-06-29 18:38:32 +053040
41 if not frappe.flags.start_date:
42 # start date = 100 days back
43 frappe.flags.start_date = frappe.utils.add_days(frappe.utils.nowdate(), -1 * runs_for)
44
45 current_date = frappe.utils.getdate(frappe.flags.start_date)
46
47 # continue?
48 demo_last_date = frappe.db.get_global('demo_last_date')
49 if demo_last_date:
50 current_date = frappe.utils.add_days(demo_last_date, 1)
51
52 # run till today
53 if not runs_for:
54 runs_for = frappe.utils.date_diff(frappe.utils.nowdate(), current_date)
55 # runs_for = 100
Nabin Hait3edefb12016-07-20 16:13:18 +053056
57 fixed_asset.work()
Rushabh Mehtadc8067e2016-06-29 18:38:32 +053058
59 for i in xrange(runs_for):
60 sys.stdout.write("\rSimulating {0}".format(current_date.strftime("%Y-%m-%d")))
61 sys.stdout.flush()
62 frappe.flags.current_date = current_date
63
64 if current_date.weekday() in (5, 6):
65 current_date = frappe.utils.add_days(current_date, 1)
66 continue
67
68 hr.work()
69 sales.work()
Rushabh Mehtaea0ff232016-07-07 14:02:26 +053070 purchase.work()
Rushabh Mehtacca33b22016-07-08 18:24:46 +053071 manufacturing.work()
72 stock.work()
Rushabh Mehta92d1b8c2016-07-14 15:46:12 +053073 accounts.work()
Rohit Waghchaure8002d472016-07-13 16:03:05 +053074 projects.run_projects(current_date)
75 # run_stock()
76 # run_accounts()
Rushabh Mehtadc8067e2016-06-29 18:38:32 +053077 # run_projects()
78 # run_messages()
79
80 current_date = frappe.utils.add_days(current_date, 1)
81
82 frappe.db.commit()