在制造订单中重新加载新的BoM



在odoo V13中,我们需要;"更新";制造订单中的BoM。我们使用PLM应用程序对BOM进行更改,并在创建制造订单后进行了更改。我们不希望删除和重新创建生产订单。

我看到了这个帖子,但没有关于Odoo V13的说明。我试着通过反复试验来弄清楚,但我对odoo的了解还不够,无法确定结果是正确的。

这是V14的代码,已识别V13中不可用的功能:

for record in records:
record._compute_allowed_product_ids() <- Not in V13
record._onchange_bom_id()
record._onchange_move_raw()
record._onchange_move_finished() <- Not in V13
record._onchange_location

我计划将其调整为与向导一起使用,以允许选择特定的BoM版本。

我如何创建一个服务器操作来";"更新/改变";制造订单的BoM?

我还没有完全测试过它,但在odoo 13 runbot实例上玩过它。

# only change draft manufacturing orders
for record in records.filtered(lambda r: r.state == 'draft'):
# trigger changing to the same product
record.onchange_product_id()
# trigger bom change from product onchange
record._onchange_bom_id()
# trigger raw materials moves change after bom change
record._onchange_move_raw()
# trigger some other changes which usually are done anyways
record.onchange_picking_type()
record._onchange_date_planned_start()
record._onchange_location()
# finally set procurement group again, which is usually done in create()
record.move_raw_ids.write({
'group_id': record.procurement_group_id.id,
'reference': record.name,
})

在已确认的制造订单上更改BoM将更加困难,因此此解决方案仅适用于草稿订单。

相关内容

  • 没有找到相关文章

最新更新