mirror of
https://github.com/OCA/bank-payment.git
synced 2025-02-02 10:37:31 +02:00
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:
@@ -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, "
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user