from __future__ import unicode_literals import frappe, sys import erpnext import frappe.utils from erpnext.demo.setup_data import setup_data from erpnext.demo.user import hr, sales def make(domain='Manufacturing'): frappe.flags.domain = domain setup_data() simulate() def simulate(): runs_for = frappe.flags.runs_for or 150 frappe.flags.company = erpnext.get_default_company() if not frappe.flags.start_date: # start date = 100 days back frappe.flags.start_date = frappe.utils.add_days(frappe.utils.nowdate(), -1 * runs_for) current_date = frappe.utils.getdate(frappe.flags.start_date) # continue? demo_last_date = frappe.db.get_global('demo_last_date') if demo_last_date: current_date = frappe.utils.add_days(demo_last_date, 1) # run till today if not runs_for: runs_for = frappe.utils.date_diff(frappe.utils.nowdate(), current_date) # runs_for = 100 for i in xrange(runs_for): sys.stdout.write("\rSimulating {0}".format(current_date.strftime("%Y-%m-%d"))) sys.stdout.flush() frappe.flags.current_date = current_date if current_date.weekday() in (5, 6): current_date = frappe.utils.add_days(current_date, 1) continue hr.work() sales.work() # run_purchase() # run_manufacturing() # run_stock() # run_accounts() # run_projects() # run_messages() current_date = frappe.utils.add_days(current_date, 1) frappe.db.commit()