Sale line locking by pricelist

sale_order_line_price_lock_by_pricelist
REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/18.0/sale_order_line_price_lock_by_pricelist
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYSales Management
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Moduon
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Moduon
COMMITTERS
COMMITTERSOCA-git-bot, David Vidal, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - 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
This module allows to lock price edition based on the applied pricelist rule scope.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
product_pricelist_view product.pricelist xpath Inherits product.product_pricelist_view
view_order_form sale.order xpath Inherits sale.view_order_form
Models touched (2)

New fields (1)
  • lock_product_prices_applied_on Selection
    help='Avoid that salesmen change prices based on this scope. Rules applied on base pricelist take into account the items of those pricelists with the rule of the pricelist applied on the sale order' selection=[('3_global', 'All products'), ('2_product_category', 'Product Category'), ('1_product', 'Product'), ('0_product_variant', 'Product Variant')] string='Lock price when rule is applied on'
Public methods (0)

No public methods.

New fields (2)
  • origin_pricelist_item_id Many2one → product.pricelist.item
    comodel_name='product.pricelist.item' compute='_compute_origin_pricelist_item_id' help='Technical field to get the base pricelist item that has the origin price calculation'
  • price_locked Boolean
    compute='_compute_price_locked' help='This flag will make the price_unit and discount readonly based on the pricelist locking criterias'
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/16.0/sale_order_line_price_lock_by_pricelist
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYSales Management
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Moduon
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Moduon
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Emilio Pascual
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:11:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-tools:
    - base_view_inheritance_extension
odoo/odoo:
    - 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 astor
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows to lock price edition based on the applied pricelist rule scope.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
product_pricelist_view product.pricelist group Inherits product.product_pricelist_view
view_order_form sale.order xpath Inherits sale.view_order_form
Models touched (2)

New fields (1)
  • lock_product_prices_applied_on Selection
    help='Avoid that salesmen change prices based on this scope. Rules applied on base pricelist take into account the items of those pricelists with the rule of the pricelist applied on the sale order' selection=[('3_global', 'All products'), ('2_product_category', 'Product Category'), ('1_product', 'Product'), ('0_product_variant', 'Product Variant')] string='Lock price when rule is applied on'
Public methods (0)

No public methods.

New fields (2)
  • origin_pricelist_item_id Many2one → product.pricelist.item
    comodel_name='product.pricelist.item' compute='_compute_origin_pricelist_item_id' help='Technical field to get the base pricelist item that has the origin price calculation'
  • price_locked Boolean
    compute='_compute_price_locked' help='This flag will make the price_unit and discount readonly based on the pricelist locking criterias'
Public methods (0)

No public methods.