OdooWiki OCA HUB

Sale Order line discount Validation

sale_order_line_discount_validation folder_open OCA/sale-workflow open_in_new
Uncategorised License: AGPL-3

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

Sales 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

sale_management
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-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation 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.0

To configure this module, you need to set the discount limit on the Sales settings.

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

info

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.