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',
}
我坚持这一点,我不知道我能做些什么来实现我的目的。有人可以帮我吗?