Odoo Mindscape. Understand Odoo faster. Explore modules, fields, dependencies and version differences in one place instead of digging through the source code.

Module: Inventory

Entity: stock.move.line

Compute Method: _compute_quantity

View 19.0 View 20.0
Inputs Method Outputs
  • quant_id
  • quantity
  • product_id
  • product_id.uom_id
  • product_uom_id
  • move_id
  • move_id.product_uom
  • move_id.product_uom_qty
  • quant_id.available_quantity
  • uom_id
  • move_id.uom_id
for record in self:
            if not record.quant_id or record.quantity:
                continue
-             product_uom = record.product_id.uom_id
-             sml_uom = record.product_uom_id
+             uom_id = record.product_id.uom_id
+             sml_uom = record.uom_id
            move_visible_quantity = record.move_id and record.move_id._visible_quantity() or 0.0

-             move_demand = record.move_id.product_uom._compute_quantity(record.move_id.product_uom_qty, sml_uom, rounding_method='HALF-UP')
-             move_quantity = record.move_id.product_uom._compute_quantity(move_visible_quantity, sml_uom, rounding_method='HALF-UP')
-             quant_qty = product_uom._compute_quantity(record.quant_id.available_quantity, sml_uom, rounding_method='HALF-UP')
+             move_demand = record.move_id.uom_id._compute_quantity(record.move_id.product_uom_qty, sml_uom, rounding_method='HALF-UP')
+             move_quantity = record.move_id.uom_id._compute_quantity(move_visible_quantity, sml_uom, rounding_method='HALF-UP')
+             quant_qty = uom_id._compute_quantity(record.quant_id.available_quantity, sml_uom, rounding_method='HALF-UP')

            if sml_uom.compare(move_demand, move_quantity) > 0:
                record.quantity = max(0, min(quant_qty, move_demand - move_quantity))
            else:
                record.quantity = max(0, quant_qty)
  • quantity

Back to entity