Skip to content

Commit f17bdb0

Browse files
committed
[IMP] account_invoice_edifact: update address export
1 parent 993cd5a commit f17bdb0

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

account_invoice_edifact/models/account_move.py

+15-2
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,20 @@ def _edifact_invoice_get_interchange(self):
4040
sender_edifact, recipient_edifact, self.id, syntax_identifier
4141
)
4242

43+
def _edifact_invoice_get_address(self, partner):
44+
# We apply the same logic as:
45+
# https://github.com/OCA/edi/blob/
46+
# c41829a8d986c6751c07299807c808d15adbf4db/base_ubl/models/ubl.py#L39
47+
48+
# oca/partner-contact/partner_address_street3 is installed
49+
if hasattr(partner, "street3"):
50+
return partner.street3 or partner.street2 or partner.street
51+
else:
52+
return partner.street2 or partner.street
53+
4354
def _edifact_invoice_get_buyer(self):
4455
buyer = self.partner_id
56+
street = self._edifact_invoice_get_address(buyer)
4557
return [
4658
# Invoice information
4759
(
@@ -50,7 +62,7 @@ def _edifact_invoice_get_buyer(self):
5062
[buyer.id, "", "92"],
5163
"",
5264
buyer.commercial_company_name,
53-
[buyer.street, ""],
65+
[street, ""],
5466
buyer.city,
5567
"",
5668
buyer.zip,
@@ -78,6 +90,7 @@ def _edifact_invoice_get_seller(self):
7890
id_number = self.env["res.partner.id_number"]
7991
seller = self.invoice_user_id.partner_id
8092
seller_id_number = id_number.search([("partner_id", "=", seller.id)], limit=1)
93+
street = self._edifact_invoice_get_address(seller)
8194
return [
8295
# Seller information
8396
(
@@ -86,7 +99,7 @@ def _edifact_invoice_get_seller(self):
8699
[seller_id_number.name, "", "92"],
87100
"",
88101
seller.commercial_company_name,
89-
[seller.street, ""],
102+
[street, ""],
90103
seller.city,
91104
"",
92105
seller.zip,

account_invoice_edifact/tests/test_account_move.py

+12
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,15 @@ def test_edifact_invoice_get_summary(self):
7979
vals = {"tax": {0: 533.72}, "total_line_item": 2}
8080
segments = self.invoice._edifact_invoice_get_summary(vals)
8181
self.assertEqual(len(segments), 9)
82+
83+
def test_edifact_invoice_get_address(self):
84+
partner = self.invoice.partner_id
85+
if hasattr(partner, "street3"):
86+
partner.street3 = "Address"
87+
self.assertEqual(
88+
self.invoice._edifact_invoice_get_address(partner), partner.street3
89+
)
90+
else:
91+
self.assertEqual(
92+
self.invoice._edifact_invoice_get_address(partner), partner.street
93+
)

0 commit comments

Comments
 (0)