A common process in all organizations is managing approvals. The most common example would be using an approval process to allow the approval of our company's purchase orders. The goal of this control is to ensure that the company's purchases do not get out of hand. Similarly, it could also be used for some invoices.
In this post, we will explore the different options available in Odoo, both within the Enterprise Edition and through modules provided by the Odoo Community Association (OCA).
Approvals in Odoo Enterprise
In Odoo Enterprise, within Odoo Studio, we are allowed to add small verification rules. These rules determine which person can perform certain actions (based on the interface button) and whether multiple people need to be involved.
Visually, it is easy to configure, although as we can see, the number of options it allows is limited. However, the great advantage is that this validation can be applied to all the buttons that Odoo offers.
Approvals in OCA
The OCA has promoted a standard for creating these rules since Odoo version 9.0. This system involves installing a set of modules known as base_tier_validation and its integration with the different systems we want to control.
Finally, we must define the rules that interest us for each model.
As we can see, it allows for a high level of granularity by letting us define application domains, so we can make the rules activate only once certain thresholds are passed (for example, orders that exceed a certain price, that include products within a specific category...). However, they only apply to certain state changes.
Additionally, at the bottom, we see all the revisions made and when they were made, greatly improving traceability.
To facilitate approval, at the top, we have the option to view all the records we have pending approval or rejection.
Differences
As we've seen, both options allow us to create a set of rules to ensure that only certain users can perform specific actions. But each has its strengths. In the case of Enterprise, we have the process integrated within Odoo Studio and can apply it to specific buttons.
In the case of OCA, its strength lies in allowing us to create more powerful filters that enable us to configure many more scenarios. Additionally, these controls are performed at the server level, which helps ensure that these reviews are always carried out.
At Dixmit, we recommend the OCA solution because having better filters when applying controls helps us achieve more comprehensive management.