如何覆盖 Odoo 模块购买中的按钮 "confirm order"

How to override button "confirm order" in module Purchase of Odoo

我正在尝试覆盖模块 "Purchase" 中的按钮 "confirm order"。此按钮会将报价单更改为采购订单(状态:已确认采购),同时自动在模块 "Warehouse" 中创建新收据,因此当我单击按钮 "Receive Products" 时,我可以看到收据。

我尝试了很多不同的功能,但是当我点击按钮时,它只是改变了状态,并没有创建新的收据。另外,我发现这个按钮来自工作流,它的功能可能是"wkf_confirm_order",但它没有用。

@api.multi
def purchase_confirm(self):
    #super(purchase_order,self).wkf_bid_received()
    super(purchase_order,self).wkf_confirm_order()
    #super(purchase_order,self).wkf_approve_order()
    return True

请帮我找到正确的函数。非常感谢你的帮助。提前致谢。

这是重写 python

中方法的正确语法
def my_method(self):
    #do task before my_method
    result=super(MyClass,self).my_method()
    #do task after my_method by using result
    return result

试试这个代码:

@api.multi
def purchase_confirm(self):
    #do task before confirm
    res=super(purchase_order,self).purchase_confirm()
    #do task after confirm by using res
    return res

要了解当您单击该按钮时将调用该模型的哪个函数,您需要执行以下步骤。

  • 启动开发者模式
  • 点击采购订单菜单
  • 单击调试菜单中的编辑工作流程选项

  • 然后通过单击图表视图在图表视图中打开该工作流记录。

  • 然后它将打开采购订单的整个工作流程

  • 单击确认订单操作,它将打开 activity 向导,您可以在单击该按钮时从中查看已完成的操作。

Click here 了解更多工作流程。