diff --git a/addons/stock/models/stock_move.py b/addons/stock/models/stock_move.py index d283b8a9ee0..12a60569086 100644 --- a/addons/stock/models/stock_move.py +++ b/addons/stock/models/stock_move.py @@ -1743,11 +1743,12 @@ class StockMove(models.Model): def _recompute_state(self): moves_state_to_write = defaultdict(set) for move in self: + rounding = move.product_uom.rounding if move.state in ('cancel', 'done', 'draft'): continue - elif move.reserved_availability == move.product_uom_qty: + elif float_compare(move.reserved_availability, move.product_uom_qty, precision_rounding=rounding) == 0: moves_state_to_write['assigned'].add(move.id) - elif move.reserved_availability and move.reserved_availability <= move.product_uom_qty: + elif move.reserved_availability and float_compare(move.reserved_availability, move.product_uom_qty, precision_rounding=rounding) <= 0: moves_state_to_write['partially_available'].add(move.id) elif move.procure_method == 'make_to_order' and not move.move_orig_ids: moves_state_to_write['waiting'].add(move.id)