【问题标题】:How to create backorder in Odoo with XMLRPC in python?如何在 Python 中使用 XMLRPC 在 Odoo 中创建延期交货?
【发布时间】:2021-07-26 10:15:44
【问题描述】:

我是 odoo 初学者,我目前正在开发一个库存移动应用程序,用于使用 XMLRPC 远程访问 odoo。

我可以在交货单 (stock.picking) 中为每个 stock.move.line 设置“qty_done”字段,当订单完成时,我可以调用 button_validate 方法并完成订单.

我的目标是在使用 XMLRPC 调用 button_validate 方法时从 未完成 交货订单创建延期交货。

我的问题是,在 odoo Web 客户端中,当验证交付订单向导打开时,我想使用 XMLRPC 创建延期交货。

在未完成的交货订单上使用 XMLRPC 从 python 调用 button_validate 方法返回此视图,我不知道该怎么做。

{'name': 'Create Backorder?', 'type': 'ir.actions.act_window', 'view_mode': 'form', 'res_model': 'stock.backorder.confirmation', 'views': [[1530, 'form']], 'view_id': 1530, 'target': 'new', 'context': {'button_validate_picking_ids': [27], 'default_show_transfers': False, 'default_pick_ids': [[4, 27]]}}

任何帮助将不胜感激

【问题讨论】:

  • 尝试创建一个与pick_ids(4, 27)具有相同值的stock.backorder.confirmation记录,然后调用process函数。
  • 感谢您的回答。这种方法也需要我在 stock.backorder.confirmation.line 中创建一个记录,对吗?我看到 default_get 方法可以做到这一点,但我在代码调用该函数的任何地方都找不到。是否可以使用 default_get 函数来创建行?
  • 在返回操作的上下文中使用默认值:'context': {'button_validate_picking_ids': [27], 'default_show_transfers': False, 'default_pick_ids': [[4, 27]]}
  • @Kenly 非常感谢。多亏了你,我终于让它工作了。我实际上一开始就比较接近(我使用了上下文,但只有default_pick_ids),但添加button_validate_picking_ids也是关键。

标签: python python-3.x odoo xml-rpc odoo-14


【解决方案1】:

想一想,为什么不在 Odoo 端创建一个方法,并使用最少的必要参数从 xmlrpc 调用它,并在这个新方法中写入你所有的逻辑。将责任交给 Odoo,并让您的外部应用程序尽可能简单。如果您还需要什么,请告诉我。

【讨论】:

  • 非常感谢您的回答。你能这么好心并提供一个例子或更多细节吗?我对使用的上下文和stock.backorder.confirmation 模型中的default_get 方法有点困惑
【解决方案2】:

您说“但添加 button_validate_picking_ids 也是关键。” 你能告诉我你是怎么戴帽子的吗?

我也面临这个问题,我正在从 13 迁移到 14,并且我的外部 xml-rpc 脚本来验证交货订单....崩溃 :-) 事实上,stock_backorder.confirmation.process() 方法不再可用,因为 stock_picking.button_validate() 不再返回 ID....

谢谢

【讨论】:

  • 欢迎堆栈溢出!您最好将此作为一个新问题提出,或者作为对该问题的后续评论。答案应仅用于(尝试)回答原始问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-05
  • 1970-01-01
  • 2017-09-21
  • 1970-01-01
相关资源
最近更新 更多