flectra/addons/l10n_ch/models/mail_template.py
flectra-admin 769eafb483 [INIT] Inception of Flectra from Odoo
Flectra is Forked from Odoo v11 commit : (6135e82d73)
2018-01-16 11:45:59 +05:30

43 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import base64
from odoo import api, models
from odoo.tools import pycompat
class MailTemplate(models.Model):
_inherit = 'mail.template'
@api.multi
def generate_email(self, res_ids, fields=None):
""" Method overridden in order to add an attachment containing the ISR
to the draft message when opening the 'send by mail' wizard on an invoice.
This attachment generation will only occur if all the required data are
present on the invoice. Otherwise, no ISR attachment will be created, and
the mail will only contain the invoice (as defined in the mother method).
"""
rslt = super(MailTemplate, self).generate_email(res_ids, fields)
multi_mode = True
if isinstance(res_ids, pycompat.integer_types):
res_ids = [res_ids]
multi_mode = False
res_ids_to_templates = self.get_email_template(res_ids)
for res_id in res_ids:
related_model = self.env[self.model_id.model].browse(res_id)
if related_model._name == 'account.invoice' and related_model.l10n_ch_isr_valid:
#We add an attachment containing the ISR
template = res_ids_to_templates[res_id]
report_name = 'ISR-' + self.render_template(template.report_name, template.model, res_id) + '.pdf'
pdf = self.env.ref('l10n_ch.l10n_ch_isr_report').render_qweb_pdf([res_id])[0]
pdf = base64.b64encode(pdf)
attachments_list = multi_mode and rslt[res_id]['attachments'] or rslt['attachments']
attachments_list.append((report_name, pdf))
return rslt