Dynamic Approval Workflows [Base]by XFanis https://xfanis.dev/odoo.html
|Odoo Apps Dependencies||
|Community Apps Dependencies||Show|
|Lines of code||1289|
|Versions||17.0 15.0 16.0|
Dynamic Approval Module for Odoo
- Predefined Approval Roles: Designate specific employees as persistent approvers for various document types, such as Purchase Orders and Sale Orders.
- Approval Routes: Establish flexible rules to generate a sequential list of users who must approve a document for it to be fully approved.
- Unlimited Stages with Custom Conditions: Add an unlimited number of stages to approval routes, each with multiple custom conditions based on factors like total amount, partner, country, company, products, and analytical accounts.
- Approval Based on Specific Criteria: Utilize various criteria like monetary amount, partners, countries, companies, products, and analytic accounts to trigger approval stages.
- Custom Python Expressions: Define custom conditions using Python code to include or exclude specific approvers, tailoring the approval workflow to your unique business needs.
- Document Locking: This feature enables the automatic locking of documents once they have been sent for approval or have received approval from at least one approver. This ensures data integrity and compliance by preventing changes during the approval process.
- Multi-Company Support: Seamlessly create identical roles for multiple companies using the "Multi Company" functionality.
- At least One Approver or All Approvers: Choose between two approval types, "At least one approver" or "All approvers," depending on your approval process requirements.
- Collaboration and Vacation Coverage: Allow multiple users to approve a document, ensuring smooth operations even when certain users are on vacation or leave.
Once the module is installed, you will notice a new menu item called "Approval Settings" that will be added. In this view, you will find a comprehensive summary displaying the number of predefined approval roles and the total count of created approval routes.
Additionally, the interface provides convenient quick action buttons to facilitate the process of adding new approval roles or routes. This allows you to easily expand the approval functionality according to your specific requirements.
Predefined Approval Roles
"Predefined Approval Roles" allow you to designate specific employees as persistent approvers for various documents, such as Purchase Orders, Sale Orders, Expense Reports, Payments and more. With this feature, you can easily set up predefined roles, ensuring that certain individuals consistently handle approvals for specific document types.
Creating Approval Role
To add a new role, you need to enter the role's name, select one or multiple users, and choose the company for which this role is relevant.
If multiple users are specified, the document can be approved by any of them, or the system will request approval from all specified users, depending on the approval cycle settings. Selecting a company will allow you to create identical roles if you have multiple companies set up and you are using the "Multi Company" functionality.
Creating Approval Route
The creation of approval routes enables the establishment of flexible and dynamic rules to generate a list of users who must sequentially approve a document for it to be considered fully approved.
With this module, you can add an unlimited number of stages, each with multiple custom conditions. To include a user in the approval cycle, the system can evaluate factors such as the document's total amount, the selected partner, company, country, or specific products and analytical accounts used. Another noteworthy feature of the module is the ability to specify custom conditions using Python code to add an approver to the approval cycle.
Here is some example of PO approval route:
There are 6 stages in this approval route. But only the "Supply Manager" stage was added without any custom conditions. It means that the supply manager is responsible for approving all purchase orders initiated using this approval route.
For other employees to approve a purchase order, specific conditions must be met:
- Product Manager: The Product Manager should approve the purchase order if it contains particular products in the order lines.
- Marketing Department Manager: The Marketing Department Manager should approve the purchase order if the order lines are associated with the analytic account "Commercial & Marketing."
- R&D Department Manager: The R&D Department Manager should approve the purchase order if the order lines are associated with the analytic account "Research & Development."
- Accountant: The Accountant should approve purchase orders with a total amount equal to or greater than 1000 USD.
- Financial Director: The Financial Director will be requested to approve purchase orders with a total amount equal to or greater than 100,000 USD.
As you have noticed, the conditions are highly flexible, allowing for the coverage of various business requirements for the approval system. Additionally, this is not an exhaustive list of conditions; the route generation can be further customized based on various criteria as needed.
Selective Field Locking
The Selective Field Locking functionality allows users to designate specific document fields that will remain locked for changes after the document has been sent for approval or has received approval from at least one participant.
If user tries to change document, he/she will see error message.
Creating Approval Workflow
To create a new approval workflow, follow these steps:
- Enter a name for the workflow.
- Select the data model for which this workflow will be applied.
- Specify the users responsible for managing and keeping this workflow up-to-date.
- Add approval stages
Adding Approval Stage
To add a new stage you need to click "Add New Stage".
Here is how the form looks like:
Name for approval stage
There are two options available: "At least one approver" and "All approvers."
- "At least one approver" implies that approval from a minimum of one person is sufficient to consider the approval stage as completed.
- "All approvers" requires that the document must receive approval from all approvers assigned to the approval stage for it to be considered fully approved.
Here a predefined approval role can be selected.
This field is to specify custom approvers for the stage. If there is no predefined role, you can select any user as approver. Please do not forget to grant user access to the associated module. Also, here you can select multiple users.
The option to select multiple users who can approve a document offers several advantages in managing the approval process:
Vacation or Leave Coverage: If one of the designated approvers is on vacation or leave, another authorized approver from the selected group can handle the approval. This ensures that the document approval process remains uninterrupted even in the absence of certain users.
Shared Responsibility: By spreading the responsibility among multiple employees, the burden of approvals can be distributed more evenly. This not only helps prevent bottlenecks but also promotes a more efficient and timely approval workflow.
Having this feature in place adds flexibility and resilience to the approval system, contributing to smoother operations and improved collaboration within the organization.
In this settings group, you can choose the field containing the monetary amount and specify the condition under which an approval stage will be added to the document.
Here, you can choose the field containing partner and select partners and specify a condition for adding an approval stage to the document based on whether it is associated with, or not associated with, the chosen partners.
Here, you can choose the field containing country and select countries and specify a condition for adding an approval stage to the document based on whether it is associated with, or not associated with, the chosen countries.
Here, you can choose the field containing company and select companies and specify a condition for adding an approval stage to the document based on whether it is associated with, or not associated with, the chosen companies
That group of settings is to choose the field containing product(s) and select products and specify a condition for adding an approval stage to the document based on whether it is associated with, or not associated with, the chosen products.
That group of settings is to choose the field containing analytic account(s) and select accounts and specify a condition for adding an approval stage to the document based on whether it is associated with, or not associated with, the chosen accounts
Custom Condition Code
You have the option to enter a Python expression to define a custom condition for including or excluding an approver from the document approval workflow. This allows for greater flexibility and customization in the approval process based on specific business requirements.
As you've surely noticed, our module offers a multitude of capabilities to craft a truly dynamic and flexible approval route for your documents. Unleash the power of seamless document approvals with our feature-rich solution, tailored to optimize efficiency and collaboration. Experience the next level of approval workflows today!
It is essential to note that the ability to select any data model doesn't mean the approval process will be automatically implemented for those types of documents.
The base module contains abstract methods designed for further extending Odoo's functionality. The list of sub-modules intended for use with this base module is limited but will gradually expand. In the Odoo store and through the links below, you will find a list of sub-modules that enhance the built-in functionality of Odoo by leveraging the capabilities of the base module.
If you have in-house programmers, after acquiring this module, they can apply this base module to your system by implementing the specific functionality under a dedicated module. This approach allows for the gradual customization and extension of the approval workflow to suit your organization's unique requirements.
Please note that to send email notifications to approvers an outgoing email server should be configured.
If your Mail Transfer Agent (MTA) supports SRS (Sender Rewriting Scheme), your users can send and receive notification. However, that is more complex and requires more technical knowledge.
Instead, you can install additional module to Replace "Email From" and "Reply To" parameters of outgoing emails.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module
- The author can leave a single reply to each comment.
- This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
- If you want to start a discussion with the author or have a question related to your purchase, please use the support page.