- APPS
- Odoo Approval All in One 17.0
Odoo Approval All in One
Technical name | multi_level_approval_configuration |
License | OPL-1 |
Approval Dashboard
The manager can manage all request in one place

You can create a new approval type for each business model. There are 2 cases:
Approval type for new model. Each model needs different fields, you can choose those ones fit your company requirement.
Approval type for existed business model. Sale Order, Purchase Order, Stock Transfer, MRP Order, HR Recruitment, Invoice and Payment.. are defined in other modules. you don't need to choose fields but declare the domain, which the approval flow will be applied on


Approval Flow
This flow is applied consistency for all request
or even not a manager.
Approval All in One
Put everything in one place: employee requests, manager reviews and makes the decision
Live preview is alway available for you to have a look, don't be hesitate !
Using this account to create a purchase order; username: [email protected] / password: 1
username: [email protected] / password: 1
username: [email protected] / password: 1
username: [email protected] / password: 1
Using this account to approve; username: demo / password: demo
You can either watch our demo on Youtube
We create 3 modules to implement the feature "All in one approval":
1. Odoo Approval
2. Odoo Approval: HR Extension
3. Odoo Approval: All in One
Odoo Approval
Needed Version: 1.1 (if you have bought v1.0, please re-download v1.1)
It's a base module, support configuring approval flow for new model only: Stationary, payment, business trip,..
Dependencies: Discuss, Product & Pricelist
HR Extension
You can set the approver as a coach, or a manager, or a manager of department of an employee
Dependencies: Odoo Approval, Employees
All in One
You can setup the approval flow for all models, even when they are defined in another modules: Sales, Purchase, MRP,..
Dependencies: Odoo Approval
Free modules for you
After buying this module, you can get these modules for free
Odoo Approval:
2020-02-22: version 1.0
2020-04-20: version 1.1
HR Extension:
2020-04-20: version 1.0. Need Odoo Approval version 1.1
Odoo Approval All in One:
2024-01-09: Trigger the next approval flow
There is a case of Timeoff which need the second approval.
You can create 2 Approval types: Timeoff: To Approve (for the first approval) and Timeoff: Second Approval (for the second approval).
Then, setup "Timeoff: Second Approval" as the possible next move for "Timeoff: To Approve"

2020-11-04: version 1.2: Change the approver, cancel request and update description template
* You can watch video demo on youtube Here

2020-10-07: version 1.1: Allow many approval types for a model
* Apply caching to save the performance
* Many approval types for a single model: we add a new tab where you can define the company and the groups of user
- If the company is defined, this approval type impacts only on the users of that company
- If the groups is defined, this approval type impacts only on the users of those groups

2020-04-20: version 1.0. Need Odoo Approval version 1.1
Groups and Record Rules
We create 2 groups to let the user access the approval application, and create 4 record rules in order to protect the privacy.
2 access groups
They are in the application "Approval"
-
Settings: can create / edit the approval type
-
User: can create / approve the approval request
Grant one of them to the user

4 record rules
They protect user's privacy:
-
An employee can only see their requests.
-
A manager can review and approve employee's request (of his department only).
-
Admin can see all.

Approval Types
Approval types is displayed from the menu Approval | Dashboard by the Kanban view. Click on the button Create to add a new type, its form looks like below:

Name: it could be a title, or a short summary of your approval type.
Description: you can write a long description to help your employee know which kind of request should be added to this type.
Fields: there are many fields to choose for your approval type. Some are required, some are optional, and some are no need.
Approvers: you can choose a person who can review and approve the request. if his decision is important, set "Type of Approval" is Required. Otherwise, set it as "Optional".
Approval Requests
Could be created by 2 ways: from the approval dashboard, or from the menu Approval | Approvals | My Requests
On approval dashboard
you click on the button "Create New Request" of the block of the approval type you want create request.

From menu My Requests
This menu will shown all requests created by you. You could click on the button "Create" to add a new record as usual.

The form view of the request will look like this

Meaning of fields:
Title: a short summary about your request
Request by:
track a person who create the request
Request Date: track a date you create the request
Type: it's approval type. After choosing it, these fields may be shown (or not, depending on your setting in approval type): Contact, Period, Date, Item, Quantity, Payment, Amount, Location, Reference.
Description: write detail of your request here. It could help your manager make a decision more quickly !
Flow:
When your request looks good, click on the button "Submit" to send it to your manager (or a person who's in charge ). its state changes from Draft to Submitted. And a new tab "Approver (s)" is shown.


Review a request
Login as Financial Manager, you will see 2 new buttons appear: Approve and Refuse.
If you refuse, a new popup will show out to ask for the refused reason.
Tracking
All activities related to this request will be tracked in a log chatter. It helps you manage the history

New option in approval type
Coach, Line Manager, and Department are set on employee form view.
If they are missed, approver will be re-assigned to a person who is set in column "User"

Approval All in One
This module allows you to set a approval flow for model which defined in another modules. There a new option in Approval Type "Apply for model?". Tick it, a new option "Model Setting" will be displayed.

From above picture, a purchase order which has a total amount > 5,000$, must be approved by purchase manager. I set up like below:
Model: I choose Purchase Order, it links to ir.model.
Domain: It means that, when an order changes its state to to_approve: if its total amount > 5000, it must be approved by Purchase Manager.
Hide Buttons from Model View?: tick this option to hide all buttons on Purchase form view when an order is waiting for approval, only 2 button Approve and Refuse are displayed .
Approved Action: it's technical field - python code, when an order is approved, the function record.button_approve() will be executed automatically.
Refused Action: It's technical field too, but is call when an order is refused.
Example:
I log in as a purchaser, and create a new purchase order to buy 5 large desk.

I will confirm it by clicking on button "Confirm Order"

You can see its state changed to "To Approve" and a new button "Request Approval" as well as a new message, are shown.
Now, i will click on "Request Approval", and a new popup displayed:

All data are filled automatically, you could update them. Then, click on button "Submit Request". A new request is created and shown as below:

I cannot see 2 button: Approve, and, Refuse. Because i'm login as a purchaser. Let's come back to Purchase form view:

I can only see a button "View Approval" ( because the option "Hide buttons from Model View?" of Approval type is on ), this button will open a request form view.
Now, let me log out and log in again as Purchase Manager. Check menu Approvals | Approvals | To Review

You can see that, i have 1 request to review. Open it:

Now, purchase manager can see 2 button: Approve, and, Refuse. Let me approve this request. Come back to purchase form view, you can see like this:

Its state change from "To Approve" to "Purchase order", and many buttons are displayed.
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.