[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) <ayh@odoo.com> Signed-off-by: Antoine Boonen (aboo) <aboo@odoo.com>
This commit is contained in:
@@ -96,7 +96,7 @@
|
||||
xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
|
||||
xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
|
||||
<!-- Contact. -->
|
||||
<ram:Name t-out="partner.name"/>
|
||||
<ram:Name t-out="partner.display_name"/>
|
||||
<ram:SpecifiedLegalOrganization t-if="specified_legal_organization_val">
|
||||
<ram:ID t-att-schemeID="str('0002')"
|
||||
t-out="specified_legal_organization_val"/>
|
||||
@@ -189,7 +189,7 @@
|
||||
<ram:BuyerTradeParty>
|
||||
<!-- Address. -->
|
||||
<t t-call="account_edi_ubl_cii.account_invoice_partner_facturx_export_22">
|
||||
<t t-set="partner" t-value="record.commercial_partner_id"/>
|
||||
<t t-set="partner" t-value="record.partner_id"/>
|
||||
<t t-set="specified_legal_organization_val" t-value="buyer_specified_legal_organization"/>
|
||||
</t>
|
||||
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user