From 047fba515a699f57e200f0af6cc0a100ed2518b8 Mon Sep 17 00:00:00 2001 From: "Ricardo Gomes Rodrigues (rigr)" Date: Wed, 30 Aug 2023 17:37:02 +0200 Subject: [PATCH] [FIX] l10n_it_stock_ddt: condition to create the l10n_it_ddt_sequence_id The condition to create is wrongly evaluated and does not take into account the country code and the picking type code. This commit fixes this by reordering the conditions. closes odoo/odoo#133637 X-original-commit: d57bffae3b13a58580dc82db878ce8809878ff04 Signed-off-by: Josse Colpaert Signed-off-by: Ricardo Gomes Rodrigues (rigr) --- addons/l10n_it_stock_ddt/models/stock_picking.py | 3 +-- addons/l10n_it_stock_ddt/tests/test_ddt.py | 6 ++++++ addons/l10n_it_stock_ddt/tests/test_edi.py | 7 +++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/addons/l10n_it_stock_ddt/models/stock_picking.py b/addons/l10n_it_stock_ddt/models/stock_picking.py index c1943aefc13..f4c02199354 100644 --- a/addons/l10n_it_stock_ddt/models/stock_picking.py +++ b/addons/l10n_it_stock_ddt/models/stock_picking.py @@ -73,8 +73,7 @@ class StockPickingType(models.Model): def create(self, vals_list): for vals in vals_list: company = self.env['res.company'].browse(vals.get('company_id', False)) or self.env.company - if 'l10n_it_ddt_sequence_id' not in vals or not vals['l10n_it_ddt_sequence_id'] and vals['code'] == 'outgoing' \ - and company.country_id.code == 'IT': + if company.country_id.code == 'IT' and vals['code'] == 'outgoing' and ('l10n_it_ddt_sequence_id' not in vals or not vals['l10n_it_ddt_sequence_id']): ir_seq_name, ir_seq_prefix = self._get_dtt_ir_seq_vals(vals.get('warehouse_id'), vals['sequence_code']) vals['l10n_it_ddt_sequence_id'] = self.env['ir.sequence'].create({ 'name': ir_seq_name, diff --git a/addons/l10n_it_stock_ddt/tests/test_ddt.py b/addons/l10n_it_stock_ddt/tests/test_ddt.py index 2354616ac0f..0969ddc1761 100644 --- a/addons/l10n_it_stock_ddt/tests/test_ddt.py +++ b/addons/l10n_it_stock_ddt/tests/test_ddt.py @@ -36,6 +36,12 @@ class TestDDT(TestSaleCommon): # Needed when `l10n_it_edi_sdiscoop` is installed settings._create_proxy_user(cls.company_data['company'], 'demo') + @classmethod + def setup_company_data(cls, company_name, **kwargs): + return super().setup_company_data(company_name, **{ + **kwargs, + 'country_id': cls.env.ref('base.it').id, + }) def test_ddt_flow(self): """ diff --git a/addons/l10n_it_stock_ddt/tests/test_edi.py b/addons/l10n_it_stock_ddt/tests/test_edi.py index 65b93faa101..810b70c21ac 100644 --- a/addons/l10n_it_stock_ddt/tests/test_edi.py +++ b/addons/l10n_it_stock_ddt/tests/test_edi.py @@ -91,6 +91,13 @@ class TestItEdiDDT(TestItEdi): } ]) + @classmethod + def setup_company_data(cls, company_name, **kwargs): + return super().setup_company_data(company_name, **{ + **kwargs, + 'country_id': cls.env.ref('base.it').id, + }) + def test_deferred_invoice(self): """ Create a sale order with multiple DDTs, and create an invoice with a later date. The export has to have the TipoDocumento TD24 for Deferred Invoice.