Openerp 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' 希望这能对你有所帮助。你可

在Odoo 10中,是否可以定义一份报告,列出标记为已确认但未通过电子邮件发送给供应商的采购订单?
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缺少该消息。有小费吗?