Anand Doshi | 633edbe | 2011-12-08 19:34:01 +0530 | [diff] [blame] | 1 | import webnotes |
| 2 | |
| 3 | def 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 | |
| 19 | def 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 | |
| 60 | def 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 | |