From 1c1e0f3691f6e499a8d90f06114b8262b8e5f5a1 Mon Sep 17 00:00:00 2001 From: Patrick Tombez Date: Wed, 20 Mar 2019 14:46:47 +0100 Subject: [PATCH] [11.0] account_banking_pain_base: Allow override of address block --- account_banking_pain_base/__manifest__.py | 2 +- .../models/account_payment_order.py | 57 +++++++++++-------- 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/account_banking_pain_base/__manifest__.py b/account_banking_pain_base/__manifest__.py index ee604cd4b..280a5c69a 100644 --- a/account_banking_pain_base/__manifest__.py +++ b/account_banking_pain_base/__manifest__.py @@ -6,7 +6,7 @@ { 'name': 'Account Banking PAIN Base Module', 'summary': 'Base module for PAIN file generation', - 'version': '12.0.1.0.0', + 'version': '12.0.1.0.1', 'license': 'AGPL-3', 'author': "Akretion, " "Noviat, " diff --git a/account_banking_pain_base/models/account_payment_order.py b/account_banking_pain_base/models/account_payment_order.py index 5c6a0580f..3f14960db 100644 --- a/account_banking_pain_base/models/account_payment_order.py +++ b/account_banking_pain_base/models/account_payment_order.py @@ -379,6 +379,37 @@ class AccountPaymentOrder(models.Model): party_account_other_id.text = partner_bank.sanitized_acc_number return True + @api.model + def generate_address_block( + self, parent_node, partner, gen_args): + """Generate the piece of the XML corresponding to PstlAdr""" + if partner.country_id: + postal_address = etree.SubElement(parent_node, 'PstlAdr') + if gen_args.get('pain_flavor').startswith( + 'pain.001.001.') or gen_args.get('pain_flavor').startswith( + 'pain.008.001.'): + if partner.zip: + pstcd = etree.SubElement(postal_address, 'PstCd') + pstcd.text = self._prepare_field( + 'Postal Code', 'partner.zip', + {'partner': partner}, 16, gen_args=gen_args) + if partner.city: + twnnm = etree.SubElement(postal_address, 'TwnNm') + twnnm.text = self._prepare_field( + 'Town Name', 'partner.city', + {'partner': partner}, 35, gen_args=gen_args) + country = etree.SubElement(postal_address, 'Ctry') + country.text = self._prepare_field( + 'Country', 'partner.country_id.code', + {'partner': partner}, 2, gen_args=gen_args) + if partner.street: + adrline1 = etree.SubElement(postal_address, 'AdrLine') + adrline1.text = self._prepare_field( + 'Adress Line1', 'partner.street', + {'partner': partner}, 70, gen_args=gen_args) + + return True + @api.model def generate_party_block( self, parent_node, party_type, order, partner_bank, gen_args, @@ -407,30 +438,8 @@ class AccountPaymentOrder(models.Model): party_nm = etree.SubElement(party, 'Nm') party_nm.text = party_name partner = partner_bank.partner_id - if partner.country_id: - postal_address = etree.SubElement(party, 'PstlAdr') - if gen_args.get('pain_flavor').startswith( - 'pain.001.001.') or gen_args.get('pain_flavor').startswith( - 'pain.008.001.'): - if partner.zip: - pstcd = etree.SubElement(postal_address, 'PstCd') - pstcd.text = self._prepare_field( - 'Postal Code', 'partner.zip', - {'partner': partner}, 16, gen_args=gen_args) - if partner.city: - twnnm = etree.SubElement(postal_address, 'TwnNm') - twnnm.text = self._prepare_field( - 'Town Name', 'partner.city', - {'partner': partner}, 35, gen_args=gen_args) - country = etree.SubElement(postal_address, 'Ctry') - country.text = self._prepare_field( - 'Country', 'partner.country_id.code', - {'partner': partner}, 2, gen_args=gen_args) - if partner.street: - adrline1 = etree.SubElement(postal_address, 'AdrLine') - adrline1.text = self._prepare_field( - 'Adress Line1', 'partner.street', - {'partner': partner}, 70, gen_args=gen_args) + + self.generate_address_block(party, partner, gen_args) self.generate_party_id(party, party_type, partner)