From 311d87e40c85ef80f80535ff5441caefff70fdee Mon Sep 17 00:00:00 2001 From: "Nathan Marotte (nama)" Date: Thu, 29 Jul 2021 13:14:02 +0000 Subject: [PATCH] [FIX] stock: Wrong rounding on returning a delivery with different UoM Issue: When making a return for a transfer, the precision_rounding was taken from the UoM of the product given in the transfer, but the quantity was taken in the UoM of the product defined on its form Steps to reproduce : 1) Create a UoM "Hundreds", rounding precision 1 (has to be different than "Dozen"), Bigger than the reference Unit of Measure, ratio 100 2) Create a test product with "Dozen" as UoM 3) Inventory > Operations > Transfers > Create 4) Add test product, Demand=2, Unit of Measure=Hundreds 5) Validate 6) Create a Return for that transfer 7) Quantity is set to 17 Dozen instead of 16.67 Why is that a bug: The quantity to return is `quantity = stock_move.product_qty` (in UoM of the product form) but the rounding is made with rounding precision `stock_move.product_uom.rounding` (in UoM of the line of the transfer) which can be different in case of manual transfer creation for example opw-2543304 closes odoo/odoo#74588 X-original-commit: 4f962846ad0e47f7939f0181ecbae7954c23b615 Signed-off-by: Arnold Moyaux Signed-off-by: Nathan Marotte --- addons/stock/wizard/stock_picking_return.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/stock/wizard/stock_picking_return.py b/addons/stock/wizard/stock_picking_return.py index b7591fa70c6..67f453933e5 100644 --- a/addons/stock/wizard/stock_picking_return.py +++ b/addons/stock/wizard/stock_picking_return.py @@ -85,7 +85,7 @@ class ReturnPicking(models.TransientModel): quantity -= sum(move.move_line_ids.mapped('product_qty')) elif move.state in ('done'): quantity -= move.product_qty - quantity = float_round(quantity, precision_rounding=stock_move.product_uom.rounding) + quantity = float_round(quantity, precision_rounding=stock_move.product_id.uom_id.rounding) return { 'product_id': stock_move.product_id.id, 'quantity': quantity,