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