brotherton-erpnext/erpnext/patches/v8_0/create_domain_docs.py

53 lines
1.6 KiB
Python
Raw Normal View History

# 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")
2017-12-15 11:19:11 +00:00
frappe.reload_doc("core", "doctype", "role")
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:
2017-06-26 07:44:52 +00:00
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()