summaryrefslogtreecommitdiff
path: root/addons/account_edi/models/mail_template.py
blob: 7c48fce3a74a277de5c7fdd681b594fed46aa29e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# -*- coding: utf-8 -*-

from odoo import api, models


class MailTemplate(models.Model):
    _inherit = "mail.template"

    def generate_email(self, res_ids, fields):
        res = super().generate_email(res_ids, fields)

        multi_mode = True
        if isinstance(res_ids, int):
            res_ids = [res_ids]
            multi_mode = False

        if self.model not in ['account.move', 'account.payment']:
            return res

        records = self.env[self.model].browse(res_ids)
        for record in records:
            record_data = (res[record.id] if multi_mode else res)
            for doc in record.edi_document_ids:

                # The EDI format will be embedded directly inside the PDF and then, don't need to be added to the
                # wizard.
                if doc.edi_format_id._is_embedding_to_invoice_pdf_needed():
                    continue

                attachment = doc.attachment_id
                if attachment:
                    record_data.setdefault('attachments', [])
                    record_data['attachments'].append((attachment.name, attachment.datas))

        return res