Sale Order line discount Validation
This module allows Sales Managers to review and approve discounts above the limit before the salesperson sends, prints or confirms the quotation.
auto_awesome What this module does
AI-generated from the code · Odoo 14.0Sales managers can review and approve quotations that contain discounts above a company-defined limit before they are sent, printed or confirmed.
This module adds a discount approval step to quotations in Odoo Sales. A company-wide "Discount Limit" (default 20%) is set in the Sales settings, and each quotation line's discount is compared against it.
- If any line has a discount equal to or above the limit, the quotation cannot be sent, printed or confirmed until it is approved. Instead, its status changes to "Waiting Approval" and an email is sent to all users in the Sales Manager group.
- Sales managers see "Approve" and "Refuse" buttons on the quotation. Approving sets the status to "Approved", records who approved it and the approval date, and emails the salesperson. Refusing returns the quotation to draft and clears the approval information.
- While a quotation is waiting for approval or approved, the discount field on its lines is locked, and the price unit is always read-only.
- The status bar shows the new steps: draft, waiting approval, approved, sent, sale. The send and confirm buttons are only visible in the appropriate states.
- The quotation form also shows the "Approved By" and "Approved On" fields next to the salesperson.
The module touches sale.order, res.company, res.config.settings and the sale order report, and uses an email template named "Sales Order: Request approval".
Depends on
Models and fields (4)
- sale.order · extends an existing modelstate, approve_date (Approved On), approver_user_id (Approved By)
- res.company · extends an existing modelsale_discount_limit (Discount Limit)
- res.config.settings · extends an existing modelsale_discount_limit (Discount Limit)
- report.sale.report_saleorder · new model
Text generated by AI (DeepSeek) from reading the Odoo 14.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 14.0
Confirmed on 2026-11-03 in branch 14.0 of OCA/sale-workflow.
terminal Installation and usage
OCA documentation · Odoo 14.0Configuration
Source · Odoo 14.0To configure this module, you need to set the discount limit on the Sales settings.
Usage
Source · Odoo 14.0To use this module, you need to:
- Create a sales order, select a product and enter a discount above the limit.
- When clicking on “Send”, “Print” or “Confirm”, sale order goes to "Waiting Approval" state.
- When Approved, a notification is sent to the salesperson. and (s)he can send, print or confirm the quotation. The discount field is read-only.
- Reset the quotation to draft to edit the discount.
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.