From d51f457df93580af503c9c7b48bf6a206c8f3f2e Mon Sep 17 00:00:00 2001 From: lathuat1997 Date: Tue, 28 Feb 2023 03:54:02 +0000 Subject: [PATCH] [FIX] stock_account: check new qty_done before creating a SVL closes odoo/odoo#114962 X-original-commit: d26dc33dea43c51cb5a4d1f365a8ac4adf8c78a1 Signed-off-by: Tiffany Chang --- addons/stock_account/models/stock_move_line.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/stock_account/models/stock_move_line.py b/addons/stock_account/models/stock_move_line.py index e3860449ecc..d44bd9794d1 100644 --- a/addons/stock_account/models/stock_move_line.py +++ b/addons/stock_account/models/stock_move_line.py @@ -2,7 +2,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import api, models -from odoo.tools import float_is_zero +from odoo.tools import float_compare, float_is_zero class StockMoveLine(models.Model): @@ -41,8 +41,10 @@ class StockMoveLine(models.Model): if move_line.state != 'done': continue move = move_line.move_id + if float_compare(vals['qty_done'], move_line.qty_done, precision_rounding=move.product_uom.rounding) == 0: + continue rounding = move.product_id.uom_id.rounding - diff = move.product_uom._compute_quantity(vals['qty_done'] - move_line.qty_done, move.product_id.uom_id) + diff = move.product_uom._compute_quantity(vals['qty_done'] - move_line.qty_done, move.product_id.uom_id, rounding_method='HALF-UP') if float_is_zero(diff, precision_rounding=rounding): continue self._create_correction_svl(move, diff)