mirror of
https://github.com/OCA/bank-payment.git
synced 2025-02-02 10:37:31 +02:00
[8.0] Adapts SEPA files to new rules that takes effect in November 19th (#419)
This commit is contained in:
@@ -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
|
||||
----------
|
||||
|
||||
@@ -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, "
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -72,6 +72,7 @@ Contributors
|
||||
* Erwin van der Ploeg
|
||||
* Sandy Carter
|
||||
* Antonio Espinosa <antonioea@antiun.com>
|
||||
* Omar Castiñeira <omar@comunitea.com>
|
||||
|
||||
Maintainer
|
||||
----------
|
||||
|
||||
@@ -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, "
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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, "
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user