From b9e223c15af5d84fc531befa70e108d4285c4ec6 Mon Sep 17 00:00:00 2001 From: Julien Van Roy Date: Sat, 8 Apr 2023 09:18:47 +0000 Subject: [PATCH] [FIX] account_edi_ubl_cii: UBLVersionID should not be present for Bis 3 Tag UBLVersionID should not be present for UBL Bis 3 and its inheriting formats. The fonction infering the format from an xml etree needed to be apdated too, since we can no longer rely on the `UBLVersionID` node for UBL Bis 3 and its inheriting formats. The `CustomizationID` node is used. opw-3249153 closes odoo/odoo#118125 X-original-commit: 8b1fc42af5471872da4ff0b335d04e769e286628 Signed-off-by: Josse Colpaert Signed-off-by: Julien Van Roy --- .../models/account_edi_xml_ubl_bis3.py | 1 + .../account_edi_ubl_cii/models/account_move.py | 18 +++++++++++------- .../test_files/from_odoo/a_nz_out_invoice.xml | 1 - .../test_files/from_odoo/a_nz_out_refund.xml | 1 - .../test_files/from_odoo/bis3_out_invoice.xml | 1 - .../test_files/from_odoo/bis3_out_refund.xml | 1 - .../from_odoo/nlcius_out_invoice.xml | 1 - .../test_files/from_odoo/nlcius_out_refund.xml | 1 - .../from_odoo/xrechnung_ubl_out_invoice.xml | 1 - .../from_odoo/xrechnung_ubl_out_refund.xml | 1 - 10 files changed, 12 insertions(+), 15 deletions(-) diff --git a/addons/account_edi_ubl_cii/models/account_edi_xml_ubl_bis3.py b/addons/account_edi_ubl_cii/models/account_edi_xml_ubl_bis3.py index d8d23cf5d54..31189c578fd 100644 --- a/addons/account_edi_ubl_cii/models/account_edi_xml_ubl_bis3.py +++ b/addons/account_edi_ubl_cii/models/account_edi_xml_ubl_bis3.py @@ -227,6 +227,7 @@ class AccountEdiXmlUBLBIS3(models.AbstractModel): 'customization_id': 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0', 'profile_id': 'urn:fdc:peppol.eu:2017:poacc:billing:01:1.0', 'currency_dp': 2, + 'ubl_version_id': None, }) vals['vals']['legal_monetary_total_vals']['currency_dp'] = 2 diff --git a/addons/account_edi_ubl_cii/models/account_move.py b/addons/account_edi_ubl_cii/models/account_move.py index 7fcf7974f1f..1d4e31a2ef9 100644 --- a/addons/account_edi_ubl_cii/models/account_move.py +++ b/addons/account_edi_ubl_cii/models/account_move.py @@ -26,19 +26,23 @@ class AccountMove(models.Model): customization_id = tree.find('{*}CustomizationID') if tree.tag == '{urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100}CrossIndustryInvoice': return self.env['account.edi.xml.cii'] - if customization_id is not None: - if 'xrechnung' in customization_id.text: - return self.env['account.edi.xml.ubl_de'] - if customization_id.text == 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0': - return self.env['account.edi.xml.ubl_bis3'] - if customization_id.text == 'urn:cen.eu:en16931:2017#compliant#urn:fdc:nen.nl:nlcius:v1.0': - return self.env['account.edi.xml.ubl_nl'] ubl_version = tree.find('{*}UBLVersionID') if ubl_version is not None: if ubl_version.text == '2.0': return self.env['account.edi.xml.ubl_20'] if ubl_version.text == '2.1': return self.env['account.edi.xml.ubl_21'] + if customization_id is not None: + if 'xrechnung' in customization_id.text: + return self.env['account.edi.xml.ubl_de'] + if customization_id.text == 'urn:cen.eu:en16931:2017#compliant#urn:fdc:nen.nl:nlcius:v1.0': + return self.env['account.edi.xml.ubl_nl'] + if customization_id.text == 'urn:cen.eu:en16931:2017#conformant#urn:fdc:peppol.eu:2017:poacc:billing:international:aunz:3.0': + return self.env['account.edi.xml.ubl_a_nz'] + if customization_id.text == 'urn:cen.eu:en16931:2017#conformant#urn:fdc:peppol.eu:2017:poacc:billing:international:sg:3.0': + return self.env['account.edi.xml.ubl_sg'] + if 'urn:cen.eu:en16931:2017' in customization_id.text: + return self.env['account.edi.xml.ubl_bis3'] def _get_edi_decoder(self, file_data, new=False): # EXTENDS 'account' diff --git a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/a_nz_out_invoice.xml b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/a_nz_out_invoice.xml index 5d65d48a31b..5f199af10ec 100644 --- a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/a_nz_out_invoice.xml +++ b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/a_nz_out_invoice.xml @@ -1,6 +1,5 @@ - 2.1 urn:cen.eu:en16931:2017#conformant#urn:fdc:peppol.eu:2017:poacc:billing:international:aunz:3.0 urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 INV/2017/00001 diff --git a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/a_nz_out_refund.xml b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/a_nz_out_refund.xml index 6e277933d11..850825c91ea 100644 --- a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/a_nz_out_refund.xml +++ b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/a_nz_out_refund.xml @@ -1,6 +1,5 @@ - 2.1 urn:cen.eu:en16931:2017#conformant#urn:fdc:peppol.eu:2017:poacc:billing:international:aunz:3.0 urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 RINV/2017/00001 diff --git a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/bis3_out_invoice.xml b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/bis3_out_invoice.xml index 09122661b4c..cc706e3362c 100644 --- a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/bis3_out_invoice.xml +++ b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/bis3_out_invoice.xml @@ -1,6 +1,5 @@ - 2.1 urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0 urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 INV/2017/01/0002 diff --git a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/bis3_out_refund.xml b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/bis3_out_refund.xml index f9f7d6825c6..4b903b80038 100644 --- a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/bis3_out_refund.xml +++ b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/bis3_out_refund.xml @@ -1,6 +1,5 @@ - 2.1 urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0 urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 RINV/2017/01/0001 diff --git a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/nlcius_out_invoice.xml b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/nlcius_out_invoice.xml index ae7d4e06e63..d1d6fd17f01 100644 --- a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/nlcius_out_invoice.xml +++ b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/nlcius_out_invoice.xml @@ -1,6 +1,5 @@ - 2.1 urn:cen.eu:en16931:2017#compliant#urn:fdc:nen.nl:nlcius:v1.0 urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 INV/2017/00002 diff --git a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/nlcius_out_refund.xml b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/nlcius_out_refund.xml index 53b796314ab..30cb0b9b0b7 100644 --- a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/nlcius_out_refund.xml +++ b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/nlcius_out_refund.xml @@ -1,6 +1,5 @@ - 2.1 urn:cen.eu:en16931:2017#compliant#urn:fdc:nen.nl:nlcius:v1.0 urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 RINV/2017/00001 diff --git a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/xrechnung_ubl_out_invoice.xml b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/xrechnung_ubl_out_invoice.xml index 0a84f196fc2..a08b31a4aa4 100644 --- a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/xrechnung_ubl_out_invoice.xml +++ b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/xrechnung_ubl_out_invoice.xml @@ -1,6 +1,5 @@ - 2.1 urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_2.2#conformant#urn:xoev-de:kosit:extension:xrechnung_2.2 urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 INV/2017/01/0002 diff --git a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/xrechnung_ubl_out_refund.xml b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/xrechnung_ubl_out_refund.xml index 103a200b451..2e2fb191e4a 100644 --- a/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/xrechnung_ubl_out_refund.xml +++ b/addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/xrechnung_ubl_out_refund.xml @@ -1,6 +1,5 @@ - 2.1 urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_2.2#conformant#urn:xoev-de:kosit:extension:xrechnung_2.2 urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 RINV/2017/01/0001