52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # 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(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() |