Loyalty Limit

loyalty_limit
REPOSITORY
REPOSITORYOCA/sale-promotion
GIT
GIThttps://github.com/OCA/sale-promotion.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-promotion/tree/18.0/loyalty_limit
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Bhavesh Heliconia
WEBSITE
WEBSITEhttps://github.com/OCA/sale-promotion
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - loyalty
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - account
    - onboarding
    - analytic
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows to configure a limit on the times a promotion can be
applied. It's a technical base to be extended with top level
functionality (sales, pos).

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
loyalty_program_view_form loyalty.program field Inherits loyalty.loyalty_program_view_form
Models touched (2)

New fields (5)
  • max_customer_application Integer
    default=0 help='Maximum times that a program can be applied to a customer. 0 for no limit.' string='Maximum Customer Applications'
  • salesmen_limit_count Integer
    compute='_compute_salesmen_limit_count' string='Salesmen maximum promotions'
  • salesmen_limit_ids One2many → loyalty.salesmen.limit
    comodel_name='loyalty.salesmen.limit' help='Maximum times salesmen can apply a program. Empty for no limit.' inverse_name='program_id' string='Salesmen Limits'
  • salesmen_limit_used_count Integer
    compute='_compute_salesmen_limit_count' string='Salesmen promotions used'
  • salesmen_strict_limit Boolean
    default=False help='If marked, promotion will only be allowed for the list of salesmen with their quantities' string='Strict limit'
Public methods (0)

No public methods.

New fields (4)
  • max_salesman_application Integer
    default=0 help='Maximum times a salesman can apply a program. 0 for no limit.' string='Maximum Salesman Applications'
  • program_id Many2one → loyalty.program
    auto_join=True comodel_name='loyalty.program' ondelete='cascade' required=True
  • times_used Integer
    compute='_compute_times_used' string='Uses'
  • user_id Many2one → res.users
    comodel_name='res.users' ondelete='cascade' required=True string='Salesman'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/sale-promotion
GIT
GIThttps://github.com/OCA/sale-promotion.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-promotion/tree/17.0/loyalty_limit
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, arantxa-s73
WEBSITE
WEBSITEhttps://github.com/OCA/sale-promotion
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - loyalty
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows to configure a limit on the times a promotion can be
applied. It's a technical base to be extended with top level
functionality (sales, pos).

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
loyalty_program_view_form loyalty.program field Inherits loyalty.loyalty_program_view_form
Models touched (2)

New fields (5)
  • max_customer_application Integer
    default=0 help='Maximum times that a program can be applied to a customer. 0 for no limit.' string='Maximum Customer Applications'
  • salesmen_limit_count Integer
    compute='_compute_salesmen_limit_count' string='Salesmen maximum promotions'
  • salesmen_limit_ids One2many → loyalty.salesmen.limit
    comodel_name='loyalty.salesmen.limit' help='Maximum times salesmen can apply a program. Empty for no limit.' inverse_name='program_id' string='Salesmen Limits'
  • salesmen_limit_used_count Integer
    compute='_compute_salesmen_limit_count' string='Salesmen promotions used'
  • salesmen_strict_limit Boolean
    default=False help='If marked, promotion will only be allowed for the list of salesmen with their quantities' string='Strict limit'
Public methods (0)

No public methods.

New fields (4)
  • max_salesman_application Integer
    default=0 help='Maximum times a salesman can apply a program. 0 for no limit.' string='Maximum Salesman Applications'
  • program_id Many2one → loyalty.program
    auto_join=True comodel_name='loyalty.program' ondelete='cascade' required=True
  • times_used Integer
    compute='_compute_times_used' string='Uses'
  • user_id Many2one → res.users
    comodel_name='res.users' ondelete='cascade' required=True string='Salesman'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/sale-promotion
GIT
GIThttps://github.com/OCA/sale-promotion.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-promotion/tree/16.0/loyalty_limit
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSWeblate, oca-ci, pilarvargas-tecnativa
WEBSITE
WEBSITEhttps://github.com/OCA/sale-promotion
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:41
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - loyalty
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
loyalty_program_view_form loyalty.program field Inherits loyalty.loyalty_program_view_form
Models touched (2)

New fields (5)
  • max_customer_application Integer
    default=0 help='Maximum times that a program can be applied to a customer. 0 for no limit.' string='Maximum Customer Applications'
  • salesmen_limit_count Integer
    compute='_compute_salesmen_limit_count' string='Salesmen maximum promotions'
  • salesmen_limit_ids One2many → loyalty.salesmen.limit
    comodel_name='loyalty.salesmen.limit' help='Maximum times salesmen can apply a program. Empty for no limit.' inverse_name='program_id' string='Salesmen Limits'
  • salesmen_limit_used_count Integer
    compute='_compute_salesmen_limit_count' string='Salesmen promotions used'
  • salesmen_strict_limit Boolean
    default=False help='If marked, promotion will only be allowed for the list of salesmen with their quantities' string='Strict limit'
Public methods (0)

No public methods.

New fields (4)
  • max_salesman_application Integer
    default=0 help='Maximum times a salesman can apply a program. 0 for no limit.' string='Maximum Salesman Applications'
  • program_id Many2one → loyalty.program
    auto_join=True comodel_name='loyalty.program' ondelete='cascade' required=True
  • times_used Integer
    compute='_compute_times_used' string='Uses'
  • user_id Many2one → res.users
    comodel_name='res.users' ondelete='cascade' required=True string='Salesman'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/sale-promotion
PULL REQUEST
PULL REQUEST[19.0][MIG] loyalty_limit: Migration to 19.0 (#324)