我需要禁止用戶確認銷售訂單(單擊確認銷售按鈕時發生的操作:銷售 - >銷售訂單 - >選擇訂單)。因此,我重寫確認銷售的操作,並添加一個引發驗證錯誤的條件,因此如果條件無效(例如,沒有名稱的產品的訂單行),超級將不會被調用。odoo 8 - 銷售 - 在「確認銷售」按鈕上添加約束條件
但是這個問題發生在S.O. - 編輯模式並且當點擊確認時,在執行以下覆蓋功能之前執行對數據庫的插入(在sale_order_line中插入)。
# the inherited class
class sales_warning(models.Model):
_inherit = "sale.order"
@api.multi
def action_button_confirm(self):
print "begin overwritten action_button_confirm()"
if(ForbidCondition==True):
raise ValidationError("You cannot confirm a S.O...")
else:
res = super(sales_warning, self).action_button_confirm()
return res
日誌示出了寫操作之前調用覆蓋函數:
* CRM WERKZEUG:.. 「POST /web/dataset/call_kw/sale.order/write HTTP/1.1」 200
開始覆蓋action_button_confirm()*
問:有沒有辦法添加一個約束將任何其他行動之前推出,如上面的寫,或方式來增加預調用的函數是checke d每個訂單項是否有有效的商品名稱? best
什麼是確認按鈕工作流程中的條件?那麼隱藏按鈕呢? – CZoellner
我已經做到了,我在編輯模式下隱藏了按鈕。在下面檢查我的答案。並點擊如果你覺得它有用:) – Salim