0

我最近从 Odoo 13 切换到 Odoo 15。使用 Odoo 13,我可以处理“stock.picking”

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,但不会关闭选股记录。我查看了文档,但没有看到有关如何处理即时转账的任何内容。

4

1 回答 1

0

处理函数已更改,现在它准备选股然后再次调用该button_validate函数来处理传输,为此,它将首先检查button_validate_picking_ids是否通过上下文传递。

请注意,即使该函数确实button_validate再次调用该函数,它也会返回True,如果您button_validate在调用该函数后手动调用process,则传输将被处理并传递给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']})
于 2022-03-03T14:27:55.437 回答