Dynamic Approval Module for Odoo

Empower Your Workflow with our Dynamic Approval Module for Odoo. Easily create customizable approval
routes for various documents, allowing seamless collaboration among multiple approvers. Define
conditions to include/exclude users, distribute responsibilities, and ensure timely approvals. Enjoy
flexible and efficient document authorization across your organization with our feature-rich Odoo
solution.

Key Features:


  • 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.

Approval Workflow Settings

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.

Predefined Approval Roles

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.

Predefined Approval Role Form

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.

Purchase Order Approval Route Example

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.

Lock Document Changes and Show 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:

Dynamic Approval Stage Conditions

Stage Title

Name for approval stage

Approval Type

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.

Approvers (Predefined)

Here a predefined approval role can be selected.

Approvers (Custom)

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.

Amount

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.

Partners

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.

Countries

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.

Companies

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

Products

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.

Analytic Accounts

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.

Dynamic Approval Stage Python Conditions

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!

Disclaimer

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.

Logo
Need a demo, discount or any other help?
Reach me on Telegram:
https://t.me/xfanis

Contact me for Support, Customization, Implementation:

Stay in touch and updated:
Twitter: https://twitter.com/XFanis_Dev

You must log in to submit a review.