[8.0] Adapts SEPA files to new rules that takes effect in November 19th (#419)

This commit is contained in:
omar7r
2018-06-20 01:01:08 +02:00
committed by Pedro M. Baeza
parent 321ec8ddc9
commit 61e7452073
9 changed files with 35 additions and 28 deletions

View File

@@ -56,13 +56,14 @@ Contributors
* Alexis de Lattre
* Pedro M. Baeza
* Stéphane Bidoul <stephane.bidoul@acsone.eu>
* Stéphane Bidoul <stephane.bidoul@acsone.eu>
* Ignacio Ibeas - Acysos S.L.
* Alexandre Fayolle
* Raphaël Valyi
* Sandy Carter
* Stefan Rijnhart (Therp)
* Antonio Espinosa <antonioea@antiun.com>
* Omar Castiñeira <omar@comunitea.com>
Maintainer
----------

View File

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

View File

@@ -301,16 +301,20 @@ class BankingExportPain(models.AbstractModel):
return True
@api.model
def generate_party_block(
self, parent_node, party_type, order, name, iban, bic,
eval_ctx, gen_args):
def generate_party_block(self, parent_node, party_type, order,
partner_bank, gen_args):
"""Generate the piece of the XML file corresponding to Name+IBAN+BIC
This code is mutualized between TRF and DD"""
assert order in ('B', 'C'), "Order can be 'B' or 'C'"
partner = partner_bank.partner_id
if party_type == 'Cdtr':
party_type_label = 'Creditor'
elif party_type == 'Dbtr':
party_type_label = 'Debtor'
name = 'partner_bank.partner_id.name'
iban = 'partner_bank.acc_number'
bic = 'partner_bank.bank.bic or partner_bank.bank_bic'
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)
@@ -328,6 +332,23 @@ class BankingExportPain(models.AbstractModel):
party = etree.SubElement(parent_node, party_type)
party_nm = etree.SubElement(party, 'Nm')
party_nm.text = party_name
if partner.country_id:
postal_address = etree.SubElement(party, 'PstlAdr')
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)
if partner.city and partner.zip:
adrline2 = etree.SubElement(postal_address, 'AdrLine')
adrline2.text = self._prepare_field(
'Address Line2', "partner.zip + ' ' + partner.city",
{'partner': partner}, 70, gen_args=gen_args)
party_account = etree.SubElement(
parent_node, '%sAcct' % party_type)
party_account_id = etree.SubElement(party_account, 'Id')

View File

@@ -72,6 +72,7 @@ Contributors
* Erwin van der Ploeg
* Sandy Carter
* Antonio Espinosa <antonioea@antiun.com>
* Omar Castiñeira <omar@comunitea.com>
Maintainer
----------

View File

@@ -7,7 +7,7 @@
{
'name': 'Account Banking SEPA Credit Transfer',
'summary': 'Create SEPA XML files for Credit Transfers',
'version': '8.0.0.5.0',
'version': '8.0.0.5.1',
'license': 'AGPL-3',
'author': "Akretion, "
"Serv. Tecnol. Avanzados - Pedro M. Baeza, "

View File

@@ -160,13 +160,7 @@ class BankingExportSepaWizard(models.TransientModel):
}, gen_args)
self.generate_party_block(
payment_info_2_0, 'Dbtr', 'B',
'self.payment_order_ids[0].mode.bank_id.partner_id.'
'name',
'self.payment_order_ids[0].mode.bank_id.acc_number',
'self.payment_order_ids[0].mode.bank_id.bank.bic or '
'self.payment_order_ids[0].mode.bank_id.bank_bic',
{'self': self},
gen_args)
self.payment_order_ids[0].mode.bank_id, gen_args)
charge_bearer_2_24 = etree.SubElement(payment_info_2_0, 'ChrgBr')
charge_bearer_2_24.text = self.charge_bearer
transactions_count_2_4 = 0
@@ -201,9 +195,7 @@ class BankingExportSepaWizard(models.TransientModel):
% (line.partner_id.name, line.name))
self.generate_party_block(
credit_transfer_transaction_info_2_27, 'Cdtr',
'C', 'line.partner_id.name', 'line.bank_id.acc_number',
'line.bank_id.bank.bic or '
'line.bank_id.bank_bic', {'line': line}, gen_args)
'C', line.bank_id, gen_args)
self.generate_remittance_info_block(
credit_transfer_transaction_info_2_27, line, gen_args)
if pain_flavor in pain_03_to_05:

View File

@@ -72,6 +72,7 @@ Contributors
* Sandy Carter
* Antonio Espinosa <antonioea@antiun.com>
* Sergio Teruel <sergio.teruel@tecnativa.com>
* Omar Castiñeira <omar@comunitea.com>
Maintainer

View File

@@ -7,7 +7,7 @@
{
'name': 'Account Banking SEPA Direct Debit',
'summary': 'Create SEPA files for Direct Debit',
'version': '8.0.0.5.0',
'version': '8.0.0.5.1',
'license': 'AGPL-3',
'author': "Akretion, "
"Serv. Tecnol. Avanzados - Pedro M. Baeza, "

View File

@@ -212,12 +212,7 @@ class BankingExportSddWizard(models.TransientModel):
self.generate_party_block(
payment_info_2_0, 'Cdtr', 'B',
'self.payment_order_ids[0].mode.bank_id.partner_id.'
'name',
'self.payment_order_ids[0].mode.bank_id.acc_number',
'self.payment_order_ids[0].mode.bank_id.bank.bic or '
'self.payment_order_ids[0].mode.bank_id.bank_bic',
{'self': self}, gen_args)
self.payment_order_ids[0].mode.bank_id, gen_args)
charge_bearer_2_24 = etree.SubElement(payment_info_2_0, 'ChrgBr')
charge_bearer_2_24.text = self.charge_bearer
creditor_scheme_identification_2_27 = etree.SubElement(
@@ -289,11 +284,7 @@ class BankingExportSddWizard(models.TransientModel):
self.generate_party_block(
dd_transaction_info_2_28, 'Dbtr', 'C',
'line.partner_id.name',
'line.bank_id.acc_number',
'line.bank_id.bank.bic or '
'line.bank_id.bank_bic',
{'line': line}, gen_args)
line.bank_id, gen_args)
self.generate_remittance_info_block(
dd_transaction_info_2_28, line, gen_args)