# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and Contributors # License: GNU General Public License v3. See license.txt import json import os import frappe @frappe.whitelist() def setup_demo_data(): create_demo_company() process_demo_data() make_transactions() def create_demo_company(): company = frappe.db.get_value("Company", {"docstatus": 0}) company_doc = frappe.get_doc("Company", company) # Make a dummy company new_company = frappe.new_doc("Company") new_company.company_name = company_doc.company_name + " (Demo)" new_company.abbr = company_doc.abbr + "D" new_company.enable_perpetual_inventory = 1 new_company.default_currency = company_doc.default_currency new_company.country = company_doc.country new_company.chart_of_accounts_based_on = "Standard Template" new_company.chart_of_accounts = company_doc.chart_of_accounts new_company.insert() def process_demo_data(): demo_doctypes = frappe.get_hooks("demo_doctypes") or [] path = os.path.join(os.path.dirname(__file__), "demo_data") for doctype in demo_doctypes: with open(os.path.join(path, doctype + ".json"), "r") as f: data = f.read() if data: for item in json.loads(data): create_demo_record(item) def create_demo_record(doctype): frappe.get_doc(doctype).insert(ignore_permissions=True) def make_transactions(): pass