Openerp Odoo 10如何检查采购订单;通过电子邮件发送采购订单;是否执行了操作
在Odoo 10中,是否可以定义一份报告,列出标记为已确认但未通过电子邮件发送给供应商的采购订单?Openerp Odoo 10如何检查采购订单;通过电子邮件发送采购订单;是否执行了操作,openerp,odoo-10,Openerp,Odoo 10,在Odoo 10中,是否可以定义一份报告,列出标记为已确认但未通过电子邮件发送给供应商的采购订单? i、 例如,如何检测采购订单中“通过电子邮件发送采购订单”的操作是否已完成 谢谢,试试这个: 继承purchase.order”模型并添加一个Boolean字段` 将True写入'action\u rfq\u send'末尾的Boolean字段 在report.py中,选择一个查询以获取记录,其中boolean\u field=True,state='purchase' 希望这能对你有所帮助。你可
i、 例如,如何检测采购订单中“通过电子邮件发送采购订单”的操作是否已完成 谢谢,试试这个:
purchase.order”模型并添加一个Boolean字段`
True
写入'action\u rfq\u send'末尾的Boolean
字段report.py
中,选择一个查询以获取记录,其中boolean\u field=True,state='purchase'
希望这能对你有所帮助。你可以用以下简单的方法来做 步骤1:在采购订单模型中添加一个布尔字段,并按照以下方法更新上下文 来自odoo导入字段、模型、api的
类别采购订单(models.Model):
_继承=“采购订单”
通过电子邮件发送的采购订单=fields.Boolean(“通过电子邮件发送的采购订单”,默认为False,复制为False)
@api.multi
def操作\u rfq\u发送(自):
'''
此功能将打开一个窗口以撰写电子邮件,默认情况下会加载edi购买模板消息
'''
self.sure_one()
ctx=dict(self.env.context或{})
ir\u model\u data=self.env['ir.model.data']
尝试:
如果self.env.context.get('send\u rfq',False):
template\u id=ir\u model\u数据。获取\u对象\u参考('purchase','email\u template\u edi\u purchase')[1]
其他:
ctx.update({'sent'u po'u via'u email':True})
template\u id=ir\u model\u数据。获取\u对象\u参考('purchase'、'email\u template\u edi\u purchase\u done')[1]
除值错误外:
模板id=False
尝试:
合成表单id=ir模型数据。获取对象引用(“邮件”、“电子邮件”合成消息向导表单)[1]
除值错误外:
组合形式id=False
ctx.update({
“默认_模型”:“purchase.order”,
'default_res_id':self.id[0],
“默认使用模板”:bool(模板id),
“默认模板id”:模板id,
“默认合成模式”:“注释”,
})
返回{
“姓名”:(“撰写电子邮件”),
'type':'ir.actions.act_window',
“视图类型”:“表单”,
“查看模式”:“表单”,
'res_model':'mail.compose.message',
“视图”:[(组成表单id,'表单')],
“视图id”:组成表单id,
'目标':'新',
“上下文”:ctx,
}
我们已经重写了action\u rfq\u send
方法并检查用户是否没有发送ref,然后更新上下文ctx.update({'send\u po\u via\u email':True})
步骤2:继承send_-mail
方法的mail.compose.message
类MailComposeMessage(models.TransientModel):
_inherit='mail.compose.message'
@api.multi
def send_mail(self,auto_commit=False):
上下文=自身
如果context.get('default_model')=='purchase.order'和\
context.get('default\u res\u id')和context.get('sent\u po\u via\u email'):
采购订单=self.env['purchase.order'].browse(上下文['default\u res\u id'])
订单。通过电子邮件发送订单=真
返回超级邮件(MailComposeMessage,self)。发送邮件(自动提交=自动提交)
在上述方法中,我们已检查用户是否通过电子邮件发送采购订单,然后设置复选标记True
我们使用了简单的上下文来识别流程&根据上下文,在采购订单中写入一个值。非常感谢,我将尝试确认答案谢谢,它工作得非常好。简单和非侵入性。剩下的一个问题是,我找不到如何翻译“通过电子邮件发送PO”字段描述。当我使用--i18n导出运行odoo时,生成的.po缺少该消息。有小费吗?