Merge pull request #570 from p-tombez/10.0-allow_address_override

[10.0] account_banking_pain_base: Allow override of address block
This commit is contained in:
Pedro M. Baeza
2019-03-25 16:07:08 +01:00
committed by GitHub
2 changed files with 38 additions and 29 deletions

View File

@@ -7,7 +7,7 @@
{
'name': 'Account Banking PAIN Base Module',
'summary': 'Base module for PAIN file generation',
'version': '10.0.1.1.1',
'version': '10.0.1.1.2',
'license': 'AGPL-3',
'author': "Akretion, "
"Noviat, "

View File

@@ -424,35 +424,11 @@ class AccountPaymentOrder(models.Model):
return True
@api.model
def generate_party_block(
self, parent_node, party_type, order, partner_bank, gen_args,
bank_line=None):
"""Generate the piece of the XML file corresponding to Name+IBAN+BIC
This code is mutualized between TRF and DD
In some localization (l10n_ch_sepa for example), they need the
bank_line argument"""
assert order in ('B', 'C'), "Order can be 'B' or 'C'"
if party_type == 'Cdtr':
party_type_label = 'Creditor'
elif party_type == 'Dbtr':
party_type_label = 'Debtor'
name = 'partner_bank.partner_id.name'
eval_ctx = {'partner_bank': partner_bank}
party_name = self._prepare_field(
'%s Name' % party_type_label, name, eval_ctx,
gen_args.get('name_maxsize'), gen_args=gen_args)
# At C level, the order is : BIC, Name, IBAN
# At B level, the order is : Name, IBAN, BIC
if order == 'C':
self.generate_party_agent(
parent_node, party_type, order, partner_bank, gen_args,
bank_line=bank_line)
party = etree.SubElement(parent_node, party_type)
party_nm = etree.SubElement(party, 'Nm')
party_nm.text = party_name
partner = partner_bank.partner_id
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(party, 'PstlAdr')
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.'):
@@ -481,6 +457,39 @@ class AccountPaymentOrder(models.Model):
'Address Line2', 'partner.street2',
{'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,
bank_line=None):
"""Generate the piece of the XML file corresponding to Name+IBAN+BIC
This code is mutualized between TRF and DD
In some localization (l10n_ch_sepa for example), they need the
bank_line argument"""
assert order in ('B', 'C'), "Order can be 'B' or 'C'"
if party_type == 'Cdtr':
party_type_label = 'Creditor'
elif party_type == 'Dbtr':
party_type_label = 'Debtor'
name = 'partner_bank.partner_id.name'
eval_ctx = {'partner_bank': partner_bank}
party_name = self._prepare_field(
'%s Name' % party_type_label, name, eval_ctx,
gen_args.get('name_maxsize'), gen_args=gen_args)
# At C level, the order is : BIC, Name, IBAN
# At B level, the order is : Name, IBAN, BIC
if order == 'C':
self.generate_party_agent(
parent_node, party_type, order, partner_bank, gen_args,
bank_line=bank_line)
party = etree.SubElement(parent_node, party_type)
party_nm = etree.SubElement(party, 'Nm')
party_nm.text = party_name
partner = partner_bank.partner_id
self.generate_address_block(party, partner, gen_args)
self.generate_party_id(party, party_type, partner)
self.generate_party_acc_number(