blob: 02f842c02a41c16a164c246fd4ddfb76bf031ddb [file] [log] [blame]
Anand Doshi633edbe2011-12-08 19:34:01 +05301import webnotes
2
3def execute():
4 """
5 * Reload email_digest doctype
6 * Create default email digest
7 """
8 from webnotes.modules.module_manager import reload_doc
9
10 # Minor fix in print_format doctype
11 #reload_doc('core', 'doctype', 'print_format')
12
Anand Doshi972b1652011-12-22 12:04:28 +053013 #reload_doc('setup', 'doctype', 'email_digest')
Anand Doshi633edbe2011-12-08 19:34:01 +053014
Anand Doshi972b1652011-12-22 12:04:28 +053015 #global create_default_email_digest
16 #create_default_email_digest()
17
18 global enabled_default_email_digest
19 enabled_default_email_digest()
20
21
22def enabled_default_email_digest():
23 """
24 Enables the created email digest
25 """
26 from webnotes.model.doc import Document
Anand Doshi248f8f52011-12-22 12:26:36 +053027 from webnotes.model.code import get_obj
Anand Doshi972b1652011-12-22 12:04:28 +053028 companies_list = webnotes.conn.sql("SELECT company_name FROM `tabCompany`", as_list=1)
29 for company in companies_list:
30 if company and company[0]:
31 edigest = Document('Email Digest', 'Default Weekly Digest - ' + company[0])
32 if edigest:
33 edigest.enabled = 1
34 edigest.save()
Anand Doshi248f8f52011-12-22 12:26:36 +053035 ed_obj = get_obj(doc=edigest)
36 ed_obj.on_update()
37
Anand Doshi633edbe2011-12-08 19:34:01 +053038
39
40def create_default_email_digest():
41 """
42 * Weekly Digest
43 * For all companies
44 * Recipients: System Managers
45 * Full content
46 * Disabled by default
47 """
48 from webnotes.model.doc import Document
49 companies_list = webnotes.conn.sql("SELECT company_name FROM `tabCompany`", as_list=1)
50 global get_system_managers
51 system_managers = get_system_managers()
52 for company in companies_list:
53 if company and company[0]:
54 edigest = Document('Email Digest')
55 edigest.name = "Default Weekly Digest - " + company[0]
56 edigest.company = company[0]
57 edigest.frequency = 'Weekly'
58 edigest.recipient_list = system_managers
59 edigest.new_leads = 1
60 edigest.new_enquiries = 1
61 edigest.new_quotations = 1
62 edigest.new_sales_orders = 1
63 edigest.new_purchase_orders = 1
64 edigest.new_transactions = 1
65 edigest.payables = 1
66 edigest.payments = 1
67 edigest.expenses_booked = 1
68 edigest.invoiced_amount = 1
69 edigest.collections = 1
70 edigest.income = 1
71 edigest.bank_balance = 1
72 exists = webnotes.conn.sql("""\
73 SELECT name FROM `tabEmail Digest`
74 WHERE name = %s""", edigest.name)
75 if (exists and exists[0]) and exists[0][0]:
76 continue
77 else:
78 edigest.save(1)
79
80
81def get_system_managers():
82 """
83 Returns a string of system managers' email addresses separated by \n
84 """
85 system_managers_list = webnotes.conn.sql("""\
86 SELECT DISTINCT p.name
87 FROM tabUserRole ur, tabProfile p
88 WHERE
89 ur.parent = p.name AND
90 ur.role='System Manager' AND
91 p.docstatus<2 AND
92 p.enabled=1 AND
93 p.name not in ('Administrator', 'Guest')""", as_list=1)
94
95 return "\n".join([sysman[0] for sysman in system_managers_list])
96