# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors # License: GNU General Public License v3. See license.txt from __future__ import unicode_literals import frappe import erpnext def execute(): """Create domain documents""" frappe.reload_doc("core", "doctype", "domain") frappe.reload_doc("core", "doctype", "domain_settings") frappe.reload_doc("core", "doctype", "has_domain") for domain in ("Distribution", "Manufacturing", "Retail", "Services", "Education"): if not frappe.db.exists({"doctype": "Domain", "domain": domain}): create_domain(domain) # set domain in domain settings based on company domain domains = [] condition = "" company = erpnext.get_default_company() if company: condition = " and name='{0}'".format(frappe.db.escape(company)) domains = frappe.db.sql_list("select distinct domain from `tabCompany` where domain != 'Other' {0}".format(condition)) if not domains: return domain_settings = frappe.get_doc("Domain Settings", "Domain Settings") checked_domains = [row.domain for row in domain_settings.active_domains] for domain in domains: # check and ignore if the domains is already checked in domain settings if domain in checked_domains: continue if not frappe.db.get_value("Domain", domain): # user added custom domain in companies domain field create_domain(domain) row = domain_settings.append("active_domains", dict(domain=domain)) domain_settings.save(ignore_permissions=True) def create_domain(domain): # create new domain doc = frappe.new_doc("Domain") doc.domain = domain doc.db_update()