From 38d876e709fcc90a0a1e9798ba07098c1c848dd6 Mon Sep 17 00:00:00 2001 From: Jacques-Etienne Baudoux Date: Mon, 15 Jan 2024 18:14:48 +0100 Subject: [PATCH] base_ubl: street3 export MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In an address, the real street is usually put on the last "street" field. Ensure we get this in StreetName or AdditionalStreetName but not in another element. Example: - name: Ms H Williams - street: Finance and Accounting - street2: Australia Post - street3: 219–241 Cleveland St --- base_ubl/models/ubl.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/base_ubl/models/ubl.py b/base_ubl/models/ubl.py index e7f3f2b0d8..5bf4d285a4 100644 --- a/base_ubl/models/ubl.py +++ b/base_ubl/models/ubl.py @@ -38,17 +38,31 @@ def _ubl_add_country(self, country, parent_node, ns, version="2.1"): @api.model def _ubl_add_address(self, partner, node_name, parent_node, ns, version="2.1"): address = etree.SubElement(parent_node, ns["cac"] + node_name) - if partner.street: + if partner.street or partner.street2: streetname = etree.SubElement(address, ns["cbc"] + "StreetName") - streetname.text = partner.street - if partner.street2: + streetname.text = partner.street or partner.street2 + if partner.street and partner.street2: addstreetname = etree.SubElement( address, ns["cbc"] + "AdditionalStreetName" ) addstreetname.text = partner.street2 + # if oca/partner-contact/partner_address_street3 is installed if hasattr(partner, "street3") and partner.street3: - blockname = etree.SubElement(address, ns["cbc"] + "BlockName") - blockname.text = partner.street3 + # In an address, the real street is usually put in the last field + if partner.street and partner.street2: + # The first field is usually the Department + department = etree.SubElement(address, ns["cbc"] + "Department") + department.text = partner.street + streetname.text = partner.street2 + addstreetname.text = partner.street3 + elif partner.street or partner.street2: + addstreetname = etree.SubElement( + address, ns["cbc"] + "AdditionalStreetName" + ) + addstreetname.text = partner.street3 + else: + streetname = etree.SubElement(address, ns["cbc"] + "StreetName") + streetname.text = partner.street3 if partner.city: city = etree.SubElement(address, ns["cbc"] + "CityName") city.text = partner.city