Purchase App: Multiple levels of approval for purchase orders

K. Chan

Hi there. I am on Odoo v16. I understand the Purchase built-in app has the 'Purchase Order Approval' setting where users under the 'Purchase / Administrator' group can approve RFQs to convert them into Purchase Orders (PO)

Without using any custom modules/apps, is there a way to do the following with built-in default functionalities or with Studio?

1. POs with total amount ranging from $0 - $999 is approved by a group of purchase managers

2. POs with total amount ranging above $1000 is approved by the CFO. 

What I have tried so far with Studio: 

Using this tutorial:

I opened the PO form view with Studio and I've done the following: 

I've enabled the built-in 'Purchase Order Approval' and set amount the $0. That means any order above $0 will need to be approved by at least someone with the rank of purchase manager. 

I've selected the 'Confirm Order' button and added 2 'approval rules':

  • First approval rule: 
    • Group selected: 'Purchase / Purchase Managers' (duplicated from Purchase / Administrator)
    • Condition set amount_total,<=,999.99
  • Second approval rule:
    • Group selected: 'Purchase / CFO' (duplicated from Purchase /Administrator)
    • Condition set amount_total,>=,1000.00

This didn't work for me:

  • Someone with normal purchase user access (with Purchase / User default group) will not be able to approve anything
  • Someone within 'Purchase / Purchase Managers' group is still able to approve orders above $1000 which they're not supposed to be able to
  • When a user from the 'Purchase Manager' group creates a Request for Quotation and filled up the needed vendor, products and prices totaling above $1000, the 'Confirm Order' button appears for them at the top. If they directly click on the Confirm Order button, it would still go into 'approved/purchase order' state despite the total going above $1000
    • The 'block' only comes in when you don't directly tap on the 'Confirm Order' button upon RFQ creation. You save the RFQ, step out, step into the RFQ again and tap on the 'Confirm Order' button, then only the error popup will appear prompting that approval is not done yet. 

Edit: wish to emphasize that I'm hoping to achieve this with Studio or built-in developer mode editing, rather than using a custom module or app.