Sale Triple Discount

sale_triple_discount
REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/16.0/sale_triple_discount
VERSION
VERSION 1.0.7
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), ADHOC SA, Agile Business Group
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), ADHOC SA, Agile Business Group
COMMITTERS
COMMITTERSLaurent Mignon (ACSONE), Denis Roussel, sbejaoui, Weblate, OCA-git-bot, Simone Rubino, Anna Janiszewska, oca-ci, Eduard Brahas
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:45
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-invoicing:
    - account_invoice_triple_discount
odoo/odoo:
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
report_saleorder_document_triple_discount report_saleorder_document_triple_discount ir.ui.view qweb Inherits sale.report_saleorder_document
sale_order_triple_discount_form_view sale.order.triple.discount.form sale.order xpath Inherits sale.view_order_form
Models touched (1)

New fields (3)
  • discount2 Float
    default=0.0 digits='Discount' string='Disc. 2 (%)'
  • discount3 Float
    default=0.0 digits='Discount' string='Disc. 3 (%)'
  • discounting_type Selection
    default='multiplicative' help='Specifies whether discounts should be additive or multiplicative.\nAdditive discounts are summed first and then applied.\nMultiplicative discounts are applied sequentially.\nMultiplicative discounts are default' required=True selection=[('additive', 'Additive'), ('multiplicative', 'Multiplicative')]
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/15.0/sale_triple_discount
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), ADHOC SA, Agile Business Group
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), ADHOC SA, Agile Business Group
COMMITTERS
COMMITTERSmanu, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:34
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-invoicing:
    - account_invoice_triple_discount
odoo/odoo:
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
report_saleorder_document_triple_discount report_saleorder_document_triple_discount ir.ui.view qweb Inherits sale.report_saleorder_document
sale_order_triple_discount_form_view sale.order.triple.discount.form sale.order xpath Inherits sale.view_order_form
Models touched (2)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • discount2 Float
    default=0.0 digits='Discount' string='Disc. 2 (%)'
  • discount3 Float
    default=0.0 digits='Discount' string='Disc. 3 (%)'
  • discounting_type Selection
    default='multiplicative' help='Specifies whether discounts should be additive or multiplicative.\nAdditive discounts are summed first and then applied.\nMultiplicative discounts are applied sequentially.\nMultiplicative discounts are default' required=True selection=[('additive', 'Additive'), ('multiplicative', 'Multiplicative')]
Public methods (2)
  • triple_discount_postprocess(self, prev_values)
    @api.model
    Restore the discounts of the lines in the dictionary prev_values. Updating the cache provides consistency through recomputations.
  • triple_discount_preprocess(self)
    Prepare data for post processing. Save the values of the discounts in a dictionary, to be restored in postprocess. Resetting discount2 and discount3 to 0.0 avoids issues if this method is called multiple times. Updating the cache provides consistency through recomputations.
REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/14.0/sale_triple_discount
VERSION
VERSION 2.0.1
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), ADHOC SA, Agile Business Group
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), ADHOC SA, Agile Business Group
COMMITTERS
COMMITTERSOCA Transbot, oca-travis, Weblate, OCA-git-bot, ferran-73, Alessio Renda, Eduard Brahas
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:58
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-invoicing:
    - account_invoice_triple_discount
odoo/odoo:
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
report_saleorder_document_triple_discount report_saleorder_document_triple_discount ir.ui.view qweb Inherits sale.report_saleorder_document
sale_order_triple_discount_form_view sale.order.triple.discount.form sale.order xpath Inherits sale.view_order_form
Models touched (2)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • discount2 Float
    default=0.0 digits='Discount' string='Disc. 2 (%)'
  • discount3 Float
    default=0.0 digits='Discount' string='Disc. 3 (%)'
  • discounting_type Selection
    default='multiplicative' help='Specifies whether discounts should be additive or multiplicative.\nAdditive discounts are summed first and then applied.\nMultiplicative discounts are applied sequentially.\nMultiplicative discounts are default' required=True selection=[('additive', 'Additive'), ('multiplicative', 'Multiplicative')] string='Discounting type'
Public methods (2)
  • triple_discount_postprocess(self, prev_values)
    @api.model
    Restore the discounts of the lines in the dictionary prev_values. Updating the cache provides consistency through re-computations.
  • triple_discount_preprocess(self)
    Save the values of the discounts in a dictionary, to be restored in postprocess. Resetting every discount except the main one to 0.0 avoids issues if this method is called multiple times. Updating the cache provides consistency through re-computations.
REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/12.0/sale_triple_discount
VERSION
VERSION 1.2.1
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), ADHOC SA, Agile Business Group
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), ADHOC SA, Agile Business Group
COMMITTERS
COMMITTERSeLBati, Pedro M. Baeza, GitHub, Denis Roussel, tafaRU, OCA Transbot, oca-travis, Weblate, OCA-git-bot, SimoRubi, c-amara
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:17
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-invoicing:
    - account_invoice_triple_discount
odoo/odoo:
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - decimal_precision
    - uom
    - analytic
    - portal
    - http_routing
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
account_invoice_supplier_triple_discount_form_view account.invoice.supplier.triple.discount.group.form account.invoice data Inherits account_invoice_triple_discount.invoice_supplier_triple_discount_form_view
invoice_line_triple_discount_form_view account.invoice.line.triple.discount.group.form account.invoice.line data Inherits account_invoice_triple_discount.invoice_line_triple_discount_form_view
invoice_triple_discount_form_view Account Invoice account.invoice data Inherits account_invoice_triple_discount.invoice_triple_discount_form_view
report_saleorder_document_triple_discount report_saleorder_document_triple_discount ir.ui.view qweb Inherits sale.report_saleorder_document
sale_order_triple_discount_form_view sale.order.triple.discount.form sale.order xpath Inherits sale.view_order_form
Models touched (2)

New fields (0)

No new fields.

Public methods (1)
  • action_invoice_create(self, grouped=False, final=False)
    @api.multi

New fields (3)
  • discount2 Float
    default=0.0 digits=dp.get_precision('Discount') args: 'Disc. 2 (%)'
  • discount3 Float
    default=0.0 digits=dp.get_precision('Discount') args: 'Disc. 3 (%)'
  • discounting_type Selection
    default='multiplicative' help='Specifies whether discounts should be additive or multiplicative.\nAdditive discounts are summed first and then applied.\nMultiplicative discounts are applied sequentially.\nMultiplicative discounts are default' required=True selection=[('additive', 'Additive'), ('multiplicative', 'Multiplicative')] string='Discounting type'
Public methods (2)
  • triple_discount_postprocess(self, prev_values)
    @api.model
    Restore the discounts of the lines in the dictionary prev_values.
  • triple_discount_preprocess(self)
    @api.multi
    Save the values of the discounts in a dictionary, to be restored in postprocess. Resetting discount2 and discount3 to 0.0 avoids issues if this method is called multiple times.
REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/10.0/sale_triple_discount
VERSION
VERSION 1.1.3
CATEGORY
CATEGORYSales Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), ADHOC SA, Agile Business Group
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), ADHOC SA, Agile Business Group
COMMITTERS
COMMITTERSAlexandre Fayolle, Pedro M. Baeza, Laurent Mignon (ACSONE), Denis Roussel, Akim Juillerat, OCA Transbot, oca-travis, Weblate, OCA-git-bot, SimoRubi
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:56
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-invoicing:
    - account_invoice_triple_discount
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - account
    - product
    - decimal_precision
    - report
    - analytic
    - web_planner
    - procurement
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
sale_order_triple_discount_form_view sale.order.triple.discount.form sale.order xpath Inherits sale.view_order_form
Models touched (2)

New fields (0)

No new fields.

Public methods (1)
  • action_invoice_create(self, grouped=False, final=False)
    @api.multi

New fields (3)
  • discount2 Float
    default=0.0 digits=dp.get_precision('Discount') args: 'Disc. 2 (%)'
  • discount3 Float
    default=0.0 digits=dp.get_precision('Discount') args: 'Disc. 3 (%)'
  • discounting_type Selection
    default='multiplicative' help='Specifies whether discounts should be additive or multiplicative.\nAdditive discounts are summed first and then applied.\nMultiplicative discounts are applied sequentially.\nMultiplicative discounts are default' required=True selection=[('additive', 'Additive'), ('multiplicative', 'Multiplicative')] string='Discounting type'
Public methods (2)
  • triple_discount_postprocess(self, prev_values)
    @api.model
    Restore the discounts of the lines in the dictionary prev_values. Updating the cache provides consistency through recomputations.
  • triple_discount_preprocess(self)
    @api.multi
    Save the values of the discounts in a dictionary, to be restored in postprocess. Resetting discount2 and discount3 to 0.0 avoids issues if this method is called multiple times. Updating the cache provides consistency through recomputations.
REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/8.0/sale_triple_discount
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), ADHOC SA, Agile Business Group
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), ADHOC SA, Agile Business Group
COMMITTERS
COMMITTERSOCA Transbot, oca-travis, Weblate, OCA-git-bot, SimoRubi
WEBSITE
WEBSITEhttps://odoo-community.org
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:22
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-invoicing:
    - account_invoice_triple_discount
odoo/odoo:
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - web_kanban_sparkline
    - account_voucher
    - account
    - product
    - decimal_precision
    - report
    - analytic
    - board
    - edi
    - email_template
    - procurement
    - stock_account
    - stock
    - web_kanban_gauge
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
sale_order_triple_discount_form_view sale.order.triple.discount.form sale.order xpath Inherits sale.view_order_form
Models touched (3)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • discount2 Float
    default=0.0 digits=dp.get_precision('Discount') args: 'Disc. 2 (%)'
  • discount3 Float
    default=0.0 digits=dp.get_precision('Discount') args: 'Disc. 3 (%)'
Public methods (2)
  • triple_discount_postprocess(self, prev_values)
    @api.model
    Restore the discounts of the lines in the dictionary prev_values. Updating the cache provides consistency through recomputations.
  • triple_discount_preprocess(self)
    @api.multi
    Save the values of the discounts in a dictionary, to be restored in postprocess. Resetting discount2 and discount3 to 0.0 avoids issues if this method is called multiple times. Updating the cache provides consistency through recomputations.

New fields (0)

No new fields.

Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/sale-workflow
PULL REQUEST
PULL REQUEST[18.0][MIG] sale_triple_discount: Migration to 18.0 (#4249)
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/sale-workflow
PULL REQUEST
PULL REQUEST[17.0][MIG] sale_triple_discount (#3929)
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/sale-workflow
PULL REQUEST
PULL REQUEST[19.0][MIG] sale_triple_discount: Migration to 19.0 (#3965)