blob: 9aeea3a027a4f54fbfa6fa03e02ff88954b46c04 [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
Rushabh Mehtacca33b22016-07-08 18:24:46 +05307from erpnext.demo.user import hr, sales, purchase, manufacturing, stock
Rushabh Mehtadc8067e2016-06-29 18:38:32 +05308
9def make(domain='Manufacturing'):
10 frappe.flags.domain = domain
11 setup_data()
12 simulate()
13
14def simulate():
15 runs_for = frappe.flags.runs_for or 150
16 frappe.flags.company = erpnext.get_default_company()
17
18 if not frappe.flags.start_date:
19 # start date = 100 days back
20 frappe.flags.start_date = frappe.utils.add_days(frappe.utils.nowdate(), -1 * runs_for)
21
22 current_date = frappe.utils.getdate(frappe.flags.start_date)
23
24 # continue?
25 demo_last_date = frappe.db.get_global('demo_last_date')
26 if demo_last_date:
27 current_date = frappe.utils.add_days(demo_last_date, 1)
28
29 # run till today
30 if not runs_for:
31 runs_for = frappe.utils.date_diff(frappe.utils.nowdate(), current_date)
32 # runs_for = 100
33
34 for i in xrange(runs_for):
35 sys.stdout.write("\rSimulating {0}".format(current_date.strftime("%Y-%m-%d")))
36 sys.stdout.flush()
37 frappe.flags.current_date = current_date
38
39 if current_date.weekday() in (5, 6):
40 current_date = frappe.utils.add_days(current_date, 1)
41 continue
42
43 hr.work()
44 sales.work()
Rushabh Mehtaea0ff232016-07-07 14:02:26 +053045 purchase.work()
Rushabh Mehtacca33b22016-07-08 18:24:46 +053046 manufacturing.work()
47 stock.work()
Rushabh Mehtadc8067e2016-06-29 18:38:32 +053048 # run_stock()
49 # run_accounts()
50 # run_projects()
51 # run_messages()
52
53 current_date = frappe.utils.add_days(current_date, 1)
54
55 frappe.db.commit()