Repository
OCA/sale-workflow · module folder · Try on Runboat
Module version
2.1.1
Category
Warehouse Management
Folder size
0.1 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/sale-workflow
Last tracking update
2026-08-07 07:47:29
Authors
Camptocamp, Odoo Community Association (OCA)
Maintainers
Camptocamp, Odoo Community Association (OCA)
Committers
Simone Orsi, Thierry Ducrest, Iryna Vyshnevska, Sébastien BEAU, Weblate, OCA Transbot, OCA-git-bot, oca-travis, oca-ci, KevinKhao, Hai Lang
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
sale_product_set_sale_by_packaging
Description

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
product_packaging_form_view_inherit product.packaging.form.view.inherit product.packaging form Inherits product.product_packaging_form_view
product_packaging_tree_view_inherit product.packaging.tree.view.inherit product.packaging tree Inherits product.product_packaging_tree_view
product_product_tree_view product.product.tree.inherit product.product tree Inherits product.product_product_tree_view
product_template_form_view product.template.form.view product.template form Inherits product.product_template_form_view
product_template_tree_view product.template.tree.inherit product.template tree Inherits product.product_template_tree_view
view_order_form_inherit_sale_stock_inherit sale.order.form.sale.stock.inherit sale.order form Inherits sale_stock.view_order_form_inherit_sale_stock
view_product_packaging_type_form product.packaging.type form Inherits product_packaging_type.view_product_packaging_type_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (5)

New fields (3)
  • active Boolean
    default=True
  • can_be_sold Boolean
    compute='_compute_can_be_sold' readonly=False store=True string='Can be sold'
  • force_sale_qty Boolean
    help='Determine if during the creation of a sale order line, the quantity should be forced with a multiple of the packaging.\nExample:\nYou sell a product by packaging of 5 products.\nWhen the user will put 3 as quantity, the system can force the quantity to the superior unit (5 for this example).' string='Force sale quantity'
Public methods (1)
  • write(self, vals)

New fields (2)
  • can_be_sold Boolean
    default=True string='Can be sold'
  • packaging_ids One2many → product.packaging
    comodel_name='product.packaging' inverse_name='packaging_type_id'
Public methods (0)

No public methods.

New fields (1)
  • min_sellable_qty Float
    compute='_compute_variant_min_sellable_qty' help='Minimum sellable quantity, according to the available packagings, if Only Sell by Packaging is set.' readonly=True
Public methods (1)
  • get_first_packaging_with_multiple_qty(self, qty)
    Return multiple of product packaging for one quantity if exist.

New fields (2)
  • min_sellable_qty Float
    compute='_compute_template_min_sellable_qty' help='Minimum sellable quantity, according to the available packagings, if Only Sell by Packaging is set.' readonly=True
  • sell_only_by_packaging Boolean
    copy=False default=False help='Restrict the usage of this product on sale order lines without packaging defined' string='Only sell by packaging'
Public methods (0)

No public methods.

New fields (1)
  • product_packaging Many2one
    ondelete='restrict'
Public methods (2)
  • create(self, vals)
    @api.model
    Auto assign packaging if needed
  • write(self, vals)
    Auto assign packaging if needed

Loading…