[11.0] account_banking_pain_base: Allow override of address block

This commit is contained in:
Patrick Tombez
2019-03-20 14:46:47 +01:00
committed by Pedro M. Baeza
parent 6d9129d12b
commit c0472aef10
2 changed files with 34 additions and 25 deletions

View File

@@ -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, "

View File

@@ -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)