houssine
8 years ago
3 changed files with 108 additions and 1 deletions
-
56easy_my_coop_taxshelter_report/data/mail_template_data.xml
-
1easy_my_coop_taxshelter_report/models/__init__.py
-
50easy_my_coop_taxshelter_report/models/mail_template.py
@ -0,0 +1,56 @@ |
|||
<openerp> |
|||
<!-- Mail template are declared in a NOUPDATE block |
|||
so users can freely customize/delete them --> |
|||
<data noupdate="0"> |
|||
<record id="email_template_tax_shelter_certificate" model="mail.template"> |
|||
<field name="name">Tax Shelter Certificate - Send By Email</field> |
|||
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field> |
|||
<field name="subject">Tax Shelter Certificate</field> |
|||
<field name="partner_to">${object.partner_id.id}</field> |
|||
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field> |
|||
<field name="model_id" ref="model_tax_shelter_certificate"/> |
|||
<field name="auto_delete" eval="True"/> |
|||
<field name="lang">${object.lang}</field> |
|||
<field name="body_html"><![CDATA[ |
|||
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; "> |
|||
<p>Hello ${object.partner_id.name},</p> |
|||
|
|||
<p>You have subscribed to some shares of ${object.company_id.name} on ${object.declaration_id.fiscal_year}. |
|||
You can benefit from the tax shelter, it means a tax reduction of ${object.declaration_id.tax_shelter_percentage} percent on the invested amount. |
|||
For this you will find in attachments the documents certifying that you've suscribed to ${object.company_id.name} shares</p> |
|||
<p>A dedicated FAQ is coming soon on ${object.company_id.website}.</p> |
|||
<p>For any additional questions, please contact ${object.company_id.coop_email_contact}</p> |
|||
<p>Sustainably your,</p> |
|||
<p>${object.company_id.name}.</p> |
|||
|
|||
% if object.company_id.street: |
|||
${object.company_id.street} |
|||
% endif |
|||
% if object.company_id.street2: |
|||
${object.company_id.street2}<br/> |
|||
% endif |
|||
% if object.company_id.city or object.company_id.zip: |
|||
${object.company_id.zip} ${object.company_id.city}<br/> |
|||
% endif |
|||
% if object.company_id.country_id: |
|||
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/> |
|||
% endif |
|||
% if object.company_id.phone: |
|||
Phone: ${object.company_id.phone} |
|||
% endif |
|||
|
|||
% if object.company_id.website: |
|||
<div> |
|||
Web : <a href="${object.company_id.website}">${object.company_id.website}</a> |
|||
</div> |
|||
%endif |
|||
|
|||
<div> |
|||
<img src=${object.company_id.logo_web}> |
|||
</div> |
|||
</div> |
|||
]]></field> |
|||
</record> |
|||
|
|||
</data> |
|||
</openerp> |
@ -1 +1,2 @@ |
|||
from . import tax_shelter_declaration |
|||
from . import mail_template |
@ -0,0 +1,50 @@ |
|||
|
|||
|
|||
class MailTemplate(models.Model): |
|||
"Templates for sending email" |
|||
_name = "mail.template" |
|||
|
|||
@api.multi |
|||
def send_mail_with_multiple_attachments(self, res_id, additional_attachments, force_send=False, raise_exception=False): |
|||
"""Generates a new mail message for the given template and record, |
|||
and schedules it for delivery through the ``mail`` module's scheduler. |
|||
|
|||
:param int res_id: id of the record to render the template with |
|||
(model is taken from the template) |
|||
:param bool force_send: if True, the generated mail.message is |
|||
immediately sent after being created, as if the scheduler |
|||
was executed for this message only. |
|||
:returns: id of the mail.message that was created |
|||
""" |
|||
self.ensure_one() |
|||
Mail = self.env['mail.mail'] |
|||
Attachment = self.env['ir.attachment'] # TDE FIXME: should remove dfeault_type from context |
|||
|
|||
# create a mail_mail based on values, without attachments |
|||
values = self.generate_email(res_id) |
|||
values['recipient_ids'] = [(4, pid) for pid in values.get('partner_ids', list())] |
|||
attachment_ids = values.pop('attachment_ids', []) |
|||
attachments = values.pop('attachments', []) |
|||
# add a protection against void email_from |
|||
if 'email_from' in values and not values.get('email_from'): |
|||
values.pop('email_from') |
|||
mail = Mail.create(values) |
|||
|
|||
# manage attachments |
|||
attachments.extend(additional_attachments) |
|||
for attachment in attachments: |
|||
attachment_data = { |
|||
'name': attachment[0], |
|||
'datas_fname': attachment[0], |
|||
'datas': attachment[1], |
|||
'res_model': 'mail.message', |
|||
'res_id': mail.mail_message_id.id, |
|||
} |
|||
attachment_ids.append(Attachment.create(attachment_data).id) |
|||
if attachment_ids: |
|||
values['attachment_ids'] = [(6, 0, attachment_ids)] |
|||
mail.write({'attachment_ids': [(6, 0, attachment_ids)]}) |
|||
|
|||
if force_send: |
|||
mail.send(raise_exception=raise_exception) |
|||
return mail.id # TDE CLEANME: return mail + api.returns ? |
Write
Preview
Loading…
Cancel
Save
Reference in new issue