我创建了两个自定义字段,一个在 sale.order.line 中,另一个在 stock.move 中。当确认 sales.order 时,它会在 stock.move 中创建带有产品详细信息的 stock.picking。我想将自定义字段值从 sale.order.line 传递到 stock.move。
我可以使用 _prepare_procurement_values 在一步交付设置中实现这一目标。但是,在两步和三步交付设置中,自定义字段值不会延续到后续移动,并且在第二次和第三次移动中最终为“无”。
如何确保我的自定义字段值正确传递到多步(两步和三步)交付设置中的所有动作?
def _get_stock_move_values(self, product_id, product_qty, product_uom, location_dest_id, name, origin, company_id,
values):
res = super()._get_stock_move_values(product_id, product_qty, product_uom, location_dest_id, name, origin,
company_id, values)
type_id = values.get('type_id')
res.update({
'type_id': type_id,
})
print('res..................',res)
return res
我不完全确定,但您还必须覆盖
stock.move._prepare_procurement_values()
才能在其中添加您的值。
采购创建第一个动作后,将自动确认。确认后,如果设置了多步骤路线,Odoo 将创建另一个采购。新的以及其他后续采购(用于库存移动!)的值都是在上述方法中设置的。
def _prepare_procurement_values(self):
"""Overwritten to add type_id to procurement values"""
result_dict = super()._prepare_procurement_values()
result_dict["type_id"] = self.type_id.id
return result_dict