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

Module: Products & Pricelists

Entity: product.product

Compute Method: _compute_quantities

Inputs Method Outputs
""" Simple per company compute overriden by Stock._compute_quantities """
self.virtual_available = 0
self.incoming_qty = 0
self.outgoing_qty = 0
self.free_qty = 0
products = self.filtered(lambda p: p.type != 'service' and p.is_storable)
forecasted = products._compute_forecasted_without_stock()
for product in products:
            vals = forecasted.get(product.id)
            if not vals:
                continue
            product.virtual_available = vals['virtual_available']
            product.incoming_qty = vals['incoming_qty']
            product.outgoing_qty = vals['outgoing_qty']
            product.free_qty = max(0, product.qty_available - vals['outgoing_qty'])

Back to entity