From b916d1316110bcb1789cd711a49938a80fbf5b8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul=20=28ACSONE=29?= Date: Wed, 7 Nov 2018 16:38:43 +0100 Subject: [PATCH 1/2] Revert "Revert "[IMP] support bank postal address in CdtrAgt and DbtrAgt"" This reverts commit 1faefbf717f805079c53dda9f9b05e5715c683ea. --- .../models/account_payment_order.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/account_banking_pain_base/models/account_payment_order.py b/account_banking_pain_base/models/account_payment_order.py index 3d563021e..657fcd245 100644 --- a/account_banking_pain_base/models/account_payment_order.py +++ b/account_banking_pain_base/models/account_payment_order.py @@ -313,6 +313,16 @@ class AccountPaymentOrder(models.Model): % self.company_id.name) return True + @api.model + def generate_fininst_postal_address(self, parent_node, bank): + if not (bank.country or bank.city): + return + postal_address = etree.SubElement(parent_node, 'PstlAdr') + if bank.city: + etree.SubElement(postal_address, 'TwnNm').text = bank.city + if bank.country: + etree.SubElement(postal_address, 'Ctry').text = bank.country.code + @api.model def generate_party_agent( self, parent_node, party_type, order, partner_bank, gen_args, @@ -333,6 +343,8 @@ class AccountPaymentOrder(models.Model): party_agent_bic = etree.SubElement( party_agent_institution, gen_args.get('bic_xml_tag')) party_agent_bic.text = partner_bank.bank_bic + self.generate_fininst_postal_address( + party_agent_institution, partner_bank.bank_id) else: if order == 'B' or ( order == 'C' and gen_args['payment_method'] == 'DD'): @@ -340,6 +352,8 @@ class AccountPaymentOrder(models.Model): parent_node, '%sAgt' % party_type) party_agent_institution = etree.SubElement( party_agent, 'FinInstnId') + self.generate_fininst_postal_address( + party_agent_institution, partner_bank.bank_id) party_agent_other = etree.SubElement( party_agent_institution, 'Othr') party_agent_other_identification = etree.SubElement( From 5a52b81a130c3d99a5d57996fa15706a1b0bf119 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul=20=28ACSONE=29?= Date: Wed, 7 Nov 2018 16:56:33 +0100 Subject: [PATCH 2/2] [FIX] only generate FinInstId PstlAdr for some pain flavors --- .../models/account_payment_order.py | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/account_banking_pain_base/models/account_payment_order.py b/account_banking_pain_base/models/account_payment_order.py index 657fcd245..d15f2c339 100644 --- a/account_banking_pain_base/models/account_payment_order.py +++ b/account_banking_pain_base/models/account_payment_order.py @@ -313,6 +313,18 @@ class AccountPaymentOrder(models.Model): % self.company_id.name) return True + @api.model + def has_fininst_postal_address(self, gen_args): + pain_flavor = gen_args.get('pain_flavor') + return ( + pain_flavor.startswith("pain.001.001.03") + or pain_flavor.startswith("pain.001.001.04") + or pain_flavor.startswith("pain.001.001.05") + or pain_flavor.startswith("pain.008.001.02") + or pain_flavor.startswith("pain.008.001.03") + or pain_flavor.startswith("pain.008.001.04") + ) + @api.model def generate_fininst_postal_address(self, parent_node, bank): if not (bank.country or bank.city): @@ -343,8 +355,9 @@ class AccountPaymentOrder(models.Model): party_agent_bic = etree.SubElement( party_agent_institution, gen_args.get('bic_xml_tag')) party_agent_bic.text = partner_bank.bank_bic - self.generate_fininst_postal_address( - party_agent_institution, partner_bank.bank_id) + if self.has_fininst_postal_address(gen_args): + self.generate_fininst_postal_address( + party_agent_institution, partner_bank.bank_id) else: if order == 'B' or ( order == 'C' and gen_args['payment_method'] == 'DD'): @@ -352,8 +365,9 @@ class AccountPaymentOrder(models.Model): parent_node, '%sAgt' % party_type) party_agent_institution = etree.SubElement( party_agent, 'FinInstnId') - self.generate_fininst_postal_address( - party_agent_institution, partner_bank.bank_id) + if self.has_fininst_postal_address(gen_args): + self.generate_fininst_postal_address( + party_agent_institution, partner_bank.bank_id) party_agent_other = etree.SubElement( party_agent_institution, 'Othr') party_agent_other_identification = etree.SubElement(