Repository
OCA/sale-workflow · module folder · Try on Runboat
Module version
2.0.0
Category
Sales
Folder size
0.05 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/sale-workflow
Last tracking update
2026-08-07 09:06:23
Authors
Camptocamp, Odoo Community Association (OCA)
Maintainers
Camptocamp, Odoo Community Association (OCA)
Committers
Ricardoalso, Weblate, OCA-git-bot, oca-ci
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description
This module tracks from where each sale order line unit price comes
from.

It extends `sale.order.line` with: - `price_source` (`pricelist`,
`product`, `manual`) - `price_source_pricelist_item_id` (the applied
`product.pricelist.item` when source is `pricelist`)

Price source is computed from core pricing behavior, including
manual-price detection based on `technical_price_unit` versus
`price_unit`.

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_order_form_inherit_price_source sale.order.form.inherit.price.source sale.order form Inherits sale.view_order_form
view_order_line_form_inherit_price_source sale.order.line.form.inherit.price.source sale.order.line form Inherits sale.sale_order_line_view_form_readonly
view_order_line_tree_inherit_price_source sale.order.line.tree.inherit.price.source sale.order.line tree Inherits sale.view_order_line_tree
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (1)

New fields (3)
  • price_source Selection
    default='product' help='Indicates the source of the unit price: Pricelist rule, product base price, or manual override.' args: [('pricelist', 'Pricelist Rule'), ('product', 'Product Sales Price'), ('manual', 'Manual Override')]
  • price_source_pricelist_item_id Many2one → product.pricelist.item
    help="The pricelist rule that determined this line's price (if source is Pricelist)." args: 'product.pricelist.item'
  • pricelist_id Many2one → product.pricelist
    help="The pricelist that determined this line's price (if source is Pricelist)." related='price_source_pricelist_item_id.pricelist_id' string='Price Source Pricelist' args: 'product.pricelist'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, values)