blob: ff60f577b774de68847bd07947308b14144a59cd [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
27 companies_list = webnotes.conn.sql("SELECT company_name FROM `tabCompany`", as_list=1)
28 for company in companies_list:
29 if company and company[0]:
30 edigest = Document('Email Digest', 'Default Weekly Digest - ' + company[0])
31 if edigest:
32 edigest.enabled = 1
33 edigest.save()
Anand Doshi633edbe2011-12-08 19:34:01 +053034
35
36def create_default_email_digest():
37 """
38 * Weekly Digest
39 * For all companies
40 * Recipients: System Managers
41 * Full content
42 * Disabled by default
43 """
44 from webnotes.model.doc import Document
45 companies_list = webnotes.conn.sql("SELECT company_name FROM `tabCompany`", as_list=1)
46 global get_system_managers
47 system_managers = get_system_managers()
48 for company in companies_list:
49 if company and company[0]:
50 edigest = Document('Email Digest')
51 edigest.name = "Default Weekly Digest - " + company[0]
52 edigest.company = company[0]
53 edigest.frequency = 'Weekly'
54 edigest.recipient_list = system_managers
55 edigest.new_leads = 1
56 edigest.new_enquiries = 1
57 edigest.new_quotations = 1
58 edigest.new_sales_orders = 1
59 edigest.new_purchase_orders = 1
60 edigest.new_transactions = 1
61 edigest.payables = 1
62 edigest.payments = 1
63 edigest.expenses_booked = 1
64 edigest.invoiced_amount = 1
65 edigest.collections = 1
66 edigest.income = 1
67 edigest.bank_balance = 1
68 exists = webnotes.conn.sql("""\
69 SELECT name FROM `tabEmail Digest`
70 WHERE name = %s""", edigest.name)
71 if (exists and exists[0]) and exists[0][0]:
72 continue
73 else:
74 edigest.save(1)
75
76
77def get_system_managers():
78 """
79 Returns a string of system managers' email addresses separated by \n
80 """
81 system_managers_list = webnotes.conn.sql("""\
82 SELECT DISTINCT p.name
83 FROM tabUserRole ur, tabProfile p
84 WHERE
85 ur.parent = p.name AND
86 ur.role='System Manager' AND
87 p.docstatus<2 AND
88 p.enabled=1 AND
89 p.name not in ('Administrator', 'Guest')""", as_list=1)
90
91 return "\n".join([sysman[0] for sysman in system_managers_list])
92