如何在Odoo 8中的电子邮件模板中附加多个PDF?

时间:2016-09-12 15:07:08

标签: python-2.7 openerp email-attachments odoo-8

account.invoice形式的按钮名为通过电子邮件发送。单击它时,将打开mail.compose.message向导,默认情况下加载email_template_edi_invoice模板。由于此模板的字段report_template设置为account_invoices,因此当您发送电子邮件时,所选account.invoice的PDF报告会附加到电子邮件中并发送。

我的目的是在树视图中管理几乎相同的功能。因此,我在树视图的更多选项中添加了一个按钮通过电子邮件发送。这个新选项运作良好,我可以选择多个发票,点击新按钮,然后发送电子邮件(每个发票都会发送一封电子邮件,每个发票都附有PDF附件)。

但正如我上面所写,这不是我想要的。我只想选择具有相同partner_id的发票(这可以通过在树视图中从通过电子邮件发送按钮调用的函数中的Python代码轻松控制)。我只需要发送一封电子邮件,其中附带的PDF数量与选定的发票相同。

  

示例:我在account.invoice树视图中,我选择了该帐户   发票 SAL_2016_0001 SAL_2016_0002 (假设他们有   同一客户 X )。在此之后,我点击更多>通过电子邮件发送   (我实施的选项),以及mail.compose.message的弹出窗口   打开了。在这里,我点击发送按钮,必须有一个唯一的电子邮件   发送给客户 X ,带有两个附件,PDF报告    SAL_2016_0001 SAL_2016_0002

目前,我已经这样做了(我只粘贴了我在树视图中实现的通过电子邮件发送按钮调用的函数):

@api.multi
def action_invoice_sent_multi(self):
    """ Opens email.compose.message form with the rightly template loaded. """
    template = self.env.ref('account.email_template_edi_invoice', False)
    form_view = self.env.ref('mail.email_compose_message_wizard_form', False)
    ctx = self.env.context.copy()
    ctx.update({
        'default_model': 'account.invoice',
        'default_use_template': bool(template),
        'default_composition_mode': 'mass_mail',
        'default_template_id': template.id,
        'mark_invoice_as_sent': True,
    })
    return {
        'name': 'Send Mail',
        'view_type': 'form',
        'view_mode': 'form',
        'views': [(form_view.id, 'form'), ],
        'res_model': 'mail.compose.message',
        'context': ctx,
        'type': 'ir.actions.act_window',
        'target': 'new',
    }

我坚持这一点,我不知道我能做些什么来实现我的目的。有人可以帮我吗?

0 个答案:

没有答案