odoo 8 质量确认制造
odoo 8 mass confirm manufacture
我正在批量确认处于草稿状态的制造订单 (MO),我正在使用在制造订单树视图中选择 MO 后从更多按钮执行的以下代码:
@api.multi
def mass_action(self):
mo_obj = self.env['mrp.production']
mo_ids = self.env.context.get('active_ids')
if self.confirm:
domain = [('state', '=', 'draft'),
('id', 'in', mo_ids)]
draft_mo_lst = mo_obj.search(domain)
for x in draft_mo_lst:
x.action_confirm()
如果 MO 是从销售订单创建的,则当我按 "Force reservation" 时一切正常(从那里创建时已经确认)。
如果我确认 MO 是使用创建按钮或来自另一个模板的函数创建的,那么在使用此向导后,产品在按下 "Force reservation" 按钮后不会进入就绪状态。它似乎保留了产品并将它们分配到库存移动数据库 table 但 MO 本身不会将状态更改为就绪。之后MO好像卡住了
我是不是遗漏了什么,还是需要以不同的方式来做?
以下代码解决了这个问题。 action_confirm() 函数必须通过工作流信号 "button_confirm".
调用
@api.multi
def mass_action(self):
mo_obj = self.env['mrp.production']
mo_ids = self.env.context.get('active_ids')
from openerp import workflow
if self.confirm:
domain = [('state', '=', 'draft'),
('id', 'in', mo_ids)]
draft_mo_lst = mo_obj.search(domain)
for x in draft_mo_lst:
workflow.trg_validate(self._uid, 'mrp.production', x.id, 'button_confirm', self._cr)
我正在批量确认处于草稿状态的制造订单 (MO),我正在使用在制造订单树视图中选择 MO 后从更多按钮执行的以下代码:
@api.multi
def mass_action(self):
mo_obj = self.env['mrp.production']
mo_ids = self.env.context.get('active_ids')
if self.confirm:
domain = [('state', '=', 'draft'),
('id', 'in', mo_ids)]
draft_mo_lst = mo_obj.search(domain)
for x in draft_mo_lst:
x.action_confirm()
如果 MO 是从销售订单创建的,则当我按 "Force reservation" 时一切正常(从那里创建时已经确认)。
如果我确认 MO 是使用创建按钮或来自另一个模板的函数创建的,那么在使用此向导后,产品在按下 "Force reservation" 按钮后不会进入就绪状态。它似乎保留了产品并将它们分配到库存移动数据库 table 但 MO 本身不会将状态更改为就绪。之后MO好像卡住了
我是不是遗漏了什么,还是需要以不同的方式来做?
以下代码解决了这个问题。 action_confirm() 函数必须通过工作流信号 "button_confirm".
调用@api.multi
def mass_action(self):
mo_obj = self.env['mrp.production']
mo_ids = self.env.context.get('active_ids')
from openerp import workflow
if self.confirm:
domain = [('state', '=', 'draft'),
('id', 'in', mo_ids)]
draft_mo_lst = mo_obj.search(domain)
for x in draft_mo_lst:
workflow.trg_validate(self._uid, 'mrp.production', x.id, 'button_confirm', self._cr)