From e353da27d4ecf700dc2c88ec44ae841b32afdbda Mon Sep 17 00:00:00 2001 From: Antoine Boonen Date: Fri, 23 Feb 2024 12:52:06 +0000 Subject: [PATCH] [FIX] account_edi_*: Fix EDI addresses * = facturx, ubl, ubl_bis3, ubl_cii Problem --------- Currently, the EDI use the commercial partner to craft the XML document. However, this causes issues when users add, for example, an invoice address to a partner. Indeed, the address of the main partner will be used and not the invoice address. This caused issue; see the relevant OPW-3624205. Objective --------- Make sure that the correct address is used when generating the XML. Solution --------- Make sure the commercial partner // partner value is used at the correct spot. - `partner` should be used for addresses - `commercial_partner` for everything else. OPW-3624205 task-3636315 closes odoo/odoo#158219 X-original-commit: 95d3a5ac16c341acc4b680f19e404a9f2334b582 Signed-off-by: Habib Ayob (ayh) Signed-off-by: Antoine Boonen (aboo) --- .../data/cii_22_templates.xml | 4 ++-- .../models/account_edi_xml_ubl_20.py | 21 ++++++++----------- .../models/account_edi_xml_ubl_bis3.py | 3 ++- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/addons/account_edi_ubl_cii/data/cii_22_templates.xml b/addons/account_edi_ubl_cii/data/cii_22_templates.xml index 71a8bc5b682..d4fd53e51db 100644 --- a/addons/account_edi_ubl_cii/data/cii_22_templates.xml +++ b/addons/account_edi_ubl_cii/data/cii_22_templates.xml @@ -96,7 +96,7 @@ xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100"> - + @@ -189,7 +189,7 @@ - + diff --git a/addons/account_edi_ubl_cii/models/account_edi_xml_ubl_20.py b/addons/account_edi_ubl_cii/models/account_edi_xml_ubl_20.py index 91ca469361d..582aac1b9a2 100644 --- a/addons/account_edi_ubl_cii/models/account_edi_xml_ubl_20.py +++ b/addons/account_edi_ubl_cii/models/account_edi_xml_ubl_20.py @@ -55,14 +55,11 @@ class AccountEdiXmlUBL20(models.AbstractModel): }] def _get_partner_party_legal_entity_vals_list(self, partner): - commercial_partner = partner.commercial_partner_id - return [{ - 'commercial_partner': commercial_partner, - - 'registration_name': commercial_partner.name, - 'company_id': commercial_partner.vat, - 'registration_address_vals': self._get_partner_address_vals(commercial_partner), + 'commercial_partner': partner, + 'registration_name': partner.name, + 'company_id': partner.vat, + 'registration_address_vals': self._get_partner_address_vals(partner), }] def _get_partner_contact_vals(self, partner): @@ -76,11 +73,11 @@ class AccountEdiXmlUBL20(models.AbstractModel): def _get_partner_party_vals(self, partner, role): return { 'partner': partner, - 'party_identification_vals': self._get_partner_party_identification_vals_list(partner), - 'party_name_vals': [{'name': partner.name}], + 'party_identification_vals': self._get_partner_party_identification_vals_list(partner.commercial_partner_id), + 'party_name_vals': [{'name': partner.display_name}], 'postal_address_vals': self._get_partner_address_vals(partner), - 'party_tax_scheme_vals': self._get_partner_party_tax_scheme_vals_list(partner, role), - 'party_legal_entity_vals': self._get_partner_party_legal_entity_vals_list(partner), + 'party_tax_scheme_vals': self._get_partner_party_tax_scheme_vals_list(partner.commercial_partner_id, role), + 'party_legal_entity_vals': self._get_partner_party_legal_entity_vals_list(partner.commercial_partner_id), 'contact_vals': self._get_partner_contact_vals(partner), } @@ -480,7 +477,7 @@ class AccountEdiXmlUBL20(models.AbstractModel): charge_total_amount += allowance_charge_vals['amount'] supplier = invoice.company_id.partner_id.commercial_partner_id - customer = invoice.commercial_partner_id + customer = invoice.partner_id # OrderReference/SalesOrderID (sales_order_id) is optional sales_order_id = 'sale_line_ids' in invoice.invoice_line_ids._fields \ 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 c17b5b11579..e23124fce5e 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 @@ -113,6 +113,7 @@ class AccountEdiXmlUBLBIS3(models.AbstractModel): # EXTENDS account.edi.xml.ubl_21 vals = super()._get_partner_party_vals(partner, role) + partner = partner.commercial_partner_id vals.update({ 'endpoint_id': partner.peppol_endpoint, 'endpoint_id_attrs': {'schemeID': partner.peppol_eas}, @@ -133,7 +134,7 @@ class AccountEdiXmlUBLBIS3(models.AbstractModel): def _get_delivery_vals_list(self, invoice): # EXTENDS account.edi.xml.ubl_21 supplier = invoice.company_id.partner_id.commercial_partner_id - customer = invoice.commercial_partner_id + customer = invoice.partner_id economic_area = self.env.ref('base.europe').country_ids.mapped('code') + ['NO'] intracom_delivery = (customer.country_id.code in economic_area