我最近从Odoo 13换到了Odoo 15。使用Odoo 13,我可以使用处理"库存拣选">
models.execute_kw(db, uid, password, 'stock.immediate.transfer',
'create',
({'pick_ids': [pickid]})
)
models.execute_kw(db, uid, password, 'stock.immediate.transfer', 'process',
[createdid], {})
然而,现在使用Odoo 15,运行相同的流程处理并返回True,但选股记录没有关闭。我看了一下文件,但没有看到任何关于如何处理立即转账的信息。
流程函数已经更改,现在它准备选股,然后再次调用button_validate
函数来处理转账,为此,它将首先检查上下文中是否传递了button_validate_picking_ids。
请注意,即使函数再次调用button_validate
函数,它也会返回True
,如果在调用process
函数后手动调用button_validate
,则传输将被处理并传递到done
状态。
models.execute_kw(db, uid, password, 'stock.picking', 'button_validate', [picking_ids])
您可以复制相同的逻辑来处理传输(将上下文传递给向导process
函数(:
action = models.execute_kw(db, uid, password, 'stock.picking', 'button_validate', [picking_ids])
values = {'pick_ids': [(6, 0, picking_ids)],
'immediate_transfer_line_ids': [(0, 0, {'to_immediate': True, 'picking_id': pick_id}) for pick_id in picking_ids]}
transfer_id = models.execute_kw(db, uid, password, 'stock.immediate.transfer', 'create', [values])
models.execute_kw(db, uid, password, 'stock.immediate.transfer', 'process', [transfer_id], {'context': action['context']})