From aec840bb568fcd10acdfe04b440ba38f0e44c3b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=E1=BB=8Bnh=20Ng=E1=BB=8Dc=20H=C6=B0ng?= Date: Mon, 12 Jun 2023 04:31:17 +0000 Subject: [PATCH] [FIX] account: sanitize vals, field explicitely empty other one is not MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Create invoice with default `invoice_line_ids`. In the Values both fields `invoice_line_ids` and `line_ids`, field `line_ids` is empty, filed `invoice_line_ids` not empty. function _sanitize_vals return vals with del `invoice_line_ids`, but function `_add_missing_default_values` update value default of filed `invoice_line_ids` in to values. And as a result, the invoice is generated with 2 duplicated lines. closes odoo/odoo#124764 X-original-commit: 87f14b051ee5e7c8f1f86aaf758a98d7b2d2421e Signed-off-by: William André (wan) --- addons/account/models/account_move.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py index bef59e4282e..0f0384b4cb7 100644 --- a/addons/account/models/account_move.py +++ b/addons/account/models/account_move.py @@ -2254,7 +2254,7 @@ class AccountMove(models.Model): return copied_am def _sanitize_vals(self, vals): - if 'invoice_line_ids' in vals and 'line_ids' in vals: + if vals.get('invoice_line_ids') and vals.get('line_ids'): # values can sometimes be in only one of the two fields, sometimes in # both fields, sometimes one field can be explicitely empty while the other # one is not, sometimes not...