diff --git a/account_banking_sepa_credit_transfer/__init__.py b/account_banking_sepa_credit_transfer/__init__.py new file mode 100644 index 000000000..c30bd487e --- /dev/null +++ b/account_banking_sepa_credit_transfer/__init__.py @@ -0,0 +1,24 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# SEPA Credit Transfer module for OpenERP +# Copyright (C) 2010-2013 Akretion (http://www.akretion.com) +# @author: Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from . import wizard +from . import models diff --git a/account_banking_sepa_credit_transfer/__openerp__.py b/account_banking_sepa_credit_transfer/__openerp__.py new file mode 100644 index 000000000..89b56c189 --- /dev/null +++ b/account_banking_sepa_credit_transfer/__openerp__.py @@ -0,0 +1,59 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# SEPA Credit Transfer module for OpenERP +# Copyright (C) 2010-2013 Akretion (http://www.akretion.com) +# @author: Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +{ + 'name': 'Account Banking SEPA Credit Transfer', + 'summary': 'Create SEPA XML files for Credit Transfers', + 'version': '0.2', + 'license': 'AGPL-3', + 'author': 'Akretion', + 'website': 'http://www.akretion.com', + 'contributors': ['Pedro M. Baeza '], + 'category': 'Banking addons', + 'depends': ['account_banking_pain_base'], + 'external_dependencies': { + 'python': ['unidecode', 'lxml'], + }, + 'data': [ + 'views/account_banking_sepa_view.xml', + 'wizard/export_sepa_view.xml', + 'data/payment_type_sepa_sct.xml', + 'security/ir.model.access.csv', + ], + 'demo': [ + 'demo/sepa_credit_transfer_demo.xml' + ], + 'description': ''' +Module to export payment orders in SEPA XML file format. + +SEPA PAIN (PAyment INitiation) is the new european standard for +Customer-to-Bank payment instructions. This module implements SEPA Credit +Transfer (SCT), more specifically PAIN versions 001.001.02, 001.001.03, +001.001.04 and 001.001.05. It is part of the ISO 20022 standard, available on +http://www.iso20022.org. + +The Implementation Guidelines for SEPA Credit Transfer published by the +European Payments Council (http://http://www.europeanpaymentscouncil.eu) use +PAIN version 001.001.03, so it's probably the version of PAIN that you should +try first. + ''', + 'installable': True, +} diff --git a/account_banking_sepa_credit_transfer/account_banking_sepa.py b/account_banking_sepa_credit_transfer/account_banking_sepa.py new file mode 100644 index 000000000..99d5b022b --- /dev/null +++ b/account_banking_sepa_credit_transfer/account_banking_sepa.py @@ -0,0 +1,90 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# SEPA Credit Transfer module for OpenERP +# Copyright (C) 2010-2013 Akretion (http://www.akretion.com) +# @author: Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp.osv import orm, fields +from openerp.addons.decimal_precision import decimal_precision as dp +from unidecode import unidecode + + +class banking_export_sepa(orm.Model): + '''SEPA export''' + _name = 'banking.export.sepa' + _description = __doc__ + _rec_name = 'filename' + + def _generate_filename(self, cr, uid, ids, name, arg, context=None): + res = {} + for sepa_file in self.browse(cr, uid, ids, context=context): + ref = sepa_file.payment_order_ids[0].reference + if ref: + label = unidecode(ref.replace('/', '-')) + else: + label = 'error' + res[sepa_file.id] = 'sct_%s.xml' % label + return res + + _columns = { + 'payment_order_ids': fields.many2many( + 'payment.order', + 'account_payment_order_sepa_rel', + 'banking_export_sepa_id', 'account_order_id', + 'Payment Orders', + readonly=True), + 'nb_transactions': fields.integer( + 'Number of Transactions', readonly=True), + 'total_amount': fields.float( + 'Total Amount', digits_compute=dp.get_precision('Account'), + readonly=True), + 'batch_booking': fields.boolean( + 'Batch Booking', readonly=True, + help="If true, the bank statement will display only one debit " + "line for all the wire transfers of the SEPA XML file ; " + "if false, the bank statement will display one debit line " + "per wire transfer of the SEPA XML file."), + 'charge_bearer': fields.selection([ + ('SLEV', 'Following Service Level'), + ('SHAR', 'Shared'), + ('CRED', 'Borne by Creditor'), + ('DEBT', 'Borne by Debtor'), + ], 'Charge Bearer', readonly=True, + help="Following service level : transaction charges are to be " + "applied following the rules agreed in the service level and/or " + "scheme (SEPA Core messages must use this). Shared : " + "transaction charges on the creditor side are to be borne by " + "the creditor, transaction charges on the debtor side are to " + "be borne by the debtor. Borne by creditor : all transaction " + "charges are to be borne by the creditor. Borne by debtor : " + "all transaction charges are to be borne by the debtor."), + 'create_date': fields.datetime('Generation Date', readonly=True), + 'file': fields.binary('SEPA XML File', readonly=True), + 'filename': fields.function( + _generate_filename, type='char', size=256, string='Filename', + readonly=True), + 'state': fields.selection([ + ('draft', 'Draft'), + ('sent', 'Sent'), + ], 'State', readonly=True), + } + + _defaults = { + 'state': 'draft', + } diff --git a/account_banking_sepa_credit_transfer/account_banking_sepa_view.xml b/account_banking_sepa_credit_transfer/account_banking_sepa_view.xml new file mode 100644 index 000000000..a5896c757 --- /dev/null +++ b/account_banking_sepa_credit_transfer/account_banking_sepa_view.xml @@ -0,0 +1,77 @@ + + + + + + + account.banking.export.sepa.form + banking.export.sepa + +
+
+ +
+ + + + + + + + + + + + + + + + +
+
+
+ + + + account.banking.export.sepa.tree + banking.export.sepa + + + + + + + + + + + + + SEPA Credit Transfer Files + banking.export.sepa + form + tree,form + + + + + + + +
+
diff --git a/account_banking_sepa_credit_transfer/data/pain.001.001.02.xsd b/account_banking_sepa_credit_transfer/data/pain.001.001.02.xsd new file mode 100644 index 000000000..43529da1b --- /dev/null +++ b/account_banking_sepa_credit_transfer/data/pain.001.001.02.xsd @@ -0,0 +1,784 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/account_banking_sepa_credit_transfer/data/pain.001.001.03.xsd b/account_banking_sepa_credit_transfer/data/pain.001.001.03.xsd new file mode 100644 index 000000000..864977991 --- /dev/null +++ b/account_banking_sepa_credit_transfer/data/pain.001.001.03.xsd @@ -0,0 +1,921 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/account_banking_sepa_credit_transfer/data/pain.001.001.04.xsd b/account_banking_sepa_credit_transfer/data/pain.001.001.04.xsd new file mode 100644 index 000000000..813c7fe29 --- /dev/null +++ b/account_banking_sepa_credit_transfer/data/pain.001.001.04.xsd @@ -0,0 +1,968 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/account_banking_sepa_credit_transfer/data/pain.001.001.05.xsd b/account_banking_sepa_credit_transfer/data/pain.001.001.05.xsd new file mode 100644 index 000000000..18bd0cc7c --- /dev/null +++ b/account_banking_sepa_credit_transfer/data/pain.001.001.05.xsd @@ -0,0 +1,931 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/account_banking_sepa_credit_transfer/data/payment_type_sepa_sct.xml b/account_banking_sepa_credit_transfer/data/payment_type_sepa_sct.xml new file mode 100644 index 000000000..31d851edb --- /dev/null +++ b/account_banking_sepa_credit_transfer/data/payment_type_sepa_sct.xml @@ -0,0 +1,45 @@ + + + + + + + + SEPA Credit Transfer v05 + pain.001.001.05 + payment + + + + + + SEPA Credit Transfer v04 + pain.001.001.04 + payment + + + + + + SEPA Credit Transfer v03 (recommended) + pain.001.001.03 + payment + + + + + + SEPA Credit Transfer v02 + pain.001.001.02 + payment + + + + + + + diff --git a/account_banking_sepa_credit_transfer/demo/sepa_credit_transfer_demo.xml b/account_banking_sepa_credit_transfer/demo/sepa_credit_transfer_demo.xml new file mode 100644 index 000000000..77abf1b34 --- /dev/null +++ b/account_banking_sepa_credit_transfer/demo/sepa_credit_transfer_demo.xml @@ -0,0 +1,15 @@ + + + + + + + SEPA Credit Transfer La Banque Postale + + + + + + + + diff --git a/account_banking_sepa_credit_transfer/i18n/account_banking_sepa_credit_transfer.pot b/account_banking_sepa_credit_transfer/i18n/account_banking_sepa_credit_transfer.pot new file mode 100644 index 000000000..38feaadd4 --- /dev/null +++ b/account_banking_sepa_credit_transfer/i18n/account_banking_sepa_credit_transfer.pot @@ -0,0 +1,207 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_banking_sepa_credit_transfer +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-12-23 22:49+0000\n" +"PO-Revision-Date: 2013-12-23 22:49+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa.wizard,state:0 +msgid "Create" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,nb_transactions:0 +#: field:banking.export.sepa.wizard,nb_transactions:0 +msgid "Number of Transactions" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,filename:0 +#: field:banking.export.sepa.wizard,filename:0 +msgid "Filename" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,state:0 +#: field:banking.export.sepa.wizard,state:0 +msgid "State" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,state:0 +msgid "Draft" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: help:banking.export.sepa.wizard,charge_bearer:0 +msgid "Following service level : transaction charges are to be applied following the rules agreed in the service level and/or scheme (SEPA Core messages must use this). Shared : transaction charges on the debtor side are to be borne by the debtor, transaction charges on the creditor side are to be borne by the creditor. Borne by creditor : all transaction charges are to be borne by the creditor. Borne by debtor : all transaction charges are to be borne by the debtor." +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,charge_bearer:0 +#: selection:banking.export.sepa.wizard,charge_bearer:0 +msgid "Shared" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,batch_booking:0 +#: field:banking.export.sepa.wizard,batch_booking:0 +msgid "Batch Booking" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,state:0 +msgid "Sent" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: model:ir.model,name:account_banking_sepa_credit_transfer.model_banking_export_sepa_wizard +msgid "Export SEPA Credit Transfer File" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa:0 +msgid "SEPA Credit Transfer" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa.wizard,state:0 +msgid "Finish" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,state:0 +msgid "Reconciled" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,charge_bearer:0 +#: selection:banking.export.sepa.wizard,charge_bearer:0 +msgid "Following Service Level" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,charge_bearer:0 +#: selection:banking.export.sepa.wizard,charge_bearer:0 +msgid "Borne by Creditor" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa.wizard:0 +msgid "Validate" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa.wizard:0 +msgid "Generate" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,charge_bearer:0 +#: selection:banking.export.sepa.wizard,charge_bearer:0 +msgid "Borne by Debtor" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:128 +#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:245 +#, python-format +msgid "Error:" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,total_amount:0 +#: field:banking.export.sepa.wizard,total_amount:0 +msgid "Total Amount" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,charge_bearer:0 +#: field:banking.export.sepa.wizard,charge_bearer:0 +msgid "Charge Bearer" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa.wizard:0 +msgid "SEPA File Generation" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: model:ir.model,name:account_banking_sepa_credit_transfer.model_banking_export_sepa +msgid "SEPA export" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:246 +#, python-format +msgid "Missing Bank Account on invoice '%s' (payment order line reference '%s')." +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,file:0 +#: field:banking.export.sepa.wizard,file_id:0 +msgid "SEPA XML File" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: help:banking.export.sepa,charge_bearer:0 +msgid "Following service level : transaction charges are to be applied following the rules agreed in the service level and/or scheme (SEPA Core messages must use this). Shared : transaction charges on the creditor side are to be borne by the creditor, transaction charges on the debtor side are to be borne by the debtor. Borne by creditor : all transaction charges are to be borne by the creditor. Borne by debtor : all transaction charges are to be borne by the debtor." +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:129 +#, python-format +msgid "Payment Type Code '%s' is not supported. The only Payment Type Codes supported for SEPA Credit Transfers are 'pain.001.001.02', 'pain.001.001.03', 'pain.001.001.04' and 'pain.001.001.05'." +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa:0 +#: field:banking.export.sepa,payment_order_ids:0 +#: field:banking.export.sepa.wizard,payment_order_ids:0 +msgid "Payment Orders" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa:0 +msgid "General Information" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: model:ir.actions.act_window,name:account_banking_sepa_credit_transfer.act_banking_export_sepa_payment_order +#: model:ir.actions.act_window,name:account_banking_sepa_credit_transfer.action_account_banking_sepa +#: model:ir.ui.menu,name:account_banking_sepa_credit_transfer.menu_account_banking_sepa +msgid "SEPA Credit Transfer Files" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: help:banking.export.sepa,batch_booking:0 +#: help:banking.export.sepa.wizard,batch_booking:0 +msgid "If true, the bank statement will display only one debit line for all the wire transfers of the SEPA XML file ; if false, the bank statement will display one debit line per wire transfer of the SEPA XML file." +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa.wizard,file:0 +msgid "File" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa.wizard:0 +msgid "Cancel" +msgstr "" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,create_date:0 +msgid "Generation Date" +msgstr "" + diff --git a/account_banking_sepa_credit_transfer/i18n/fr.po b/account_banking_sepa_credit_transfer/i18n/fr.po new file mode 100644 index 000000000..b4bb7235f --- /dev/null +++ b/account_banking_sepa_credit_transfer/i18n/fr.po @@ -0,0 +1,365 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_banking_sepa_credit_transfer +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-12-23 22:49+0000\n" +"PO-Revision-Date: 2014-02-01 04:49+0000\n" +"Last-Translator: Alexis de Lattre \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-05-31 06:02+0000\n" +"X-Generator: Launchpad (build 17031)\n" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa.wizard,state:0 +msgid "Create" +msgstr "Créer" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,nb_transactions:0 +#: field:banking.export.sepa.wizard,nb_transactions:0 +msgid "Number of Transactions" +msgstr "Nombre de transactions" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,filename:0 +#: field:banking.export.sepa.wizard,filename:0 +msgid "Filename" +msgstr "Nom du fichier" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,state:0 +#: field:banking.export.sepa.wizard,state:0 +msgid "State" +msgstr "État" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,state:0 +msgid "Draft" +msgstr "Brouillon" + +#. module: account_banking_sepa_credit_transfer +#: help:banking.export.sepa.wizard,charge_bearer:0 +msgid "" +"Following service level : transaction charges are to be applied following " +"the rules agreed in the service level and/or scheme (SEPA Core messages must " +"use this). Shared : transaction charges on the debtor side are to be borne " +"by the debtor, transaction charges on the creditor side are to be borne by " +"the creditor. Borne by creditor : all transaction charges are to be borne by " +"the creditor. Borne by debtor : all transaction charges are to be borne by " +"the debtor." +msgstr "" +"Suivant le niveau de service : la répartition des frais bancaires suit les " +"règles pré-établies dans le schema ou dans le contrat avec la banque (les " +"messages SEPA Core doivent utiliser ce paramètre). Partagés : les frais " +"bancaires côté débiteur sont à la charge du débiteur, les frais bancaires " +"côté créancier sont à la charge du créancier. Supportés par le créancier : " +"tous les frais bancaires sont à la charge du créancier. Supportés par le " +"débiteur : tous les frais bancaires sont à la charge du débiteur." + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,charge_bearer:0 +#: selection:banking.export.sepa.wizard,charge_bearer:0 +msgid "Shared" +msgstr "Partagé" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,batch_booking:0 +#: field:banking.export.sepa.wizard,batch_booking:0 +msgid "Batch Booking" +msgstr "Débit groupé" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,state:0 +msgid "Sent" +msgstr "Envoyé" + +#. module: account_banking_sepa_credit_transfer +#: model:ir.model,name:account_banking_sepa_credit_transfer.model_banking_export_sepa_wizard +msgid "Export SEPA Credit Transfer File" +msgstr "Exporte le fichier de virement SEPA" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa:0 +msgid "SEPA Credit Transfer" +msgstr "Virement SEPA" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa.wizard,state:0 +msgid "Finish" +msgstr "Finir" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,state:0 +msgid "Reconciled" +msgstr "Réconcilié" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,charge_bearer:0 +#: selection:banking.export.sepa.wizard,charge_bearer:0 +msgid "Following Service Level" +msgstr "Suivant le niveau de service" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,charge_bearer:0 +#: selection:banking.export.sepa.wizard,charge_bearer:0 +msgid "Borne by Creditor" +msgstr "Supportés par le destinataire" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa.wizard:0 +msgid "Validate" +msgstr "Valider" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa.wizard:0 +msgid "Generate" +msgstr "Générer" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,charge_bearer:0 +#: selection:banking.export.sepa.wizard,charge_bearer:0 +msgid "Borne by Debtor" +msgstr "Supportés par l'émetteur" + +#. module: account_banking_sepa_credit_transfer +#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:128 +#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:245 +#, python-format +msgid "Error:" +msgstr "Erreur :" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,total_amount:0 +#: field:banking.export.sepa.wizard,total_amount:0 +msgid "Total Amount" +msgstr "Montant total" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,charge_bearer:0 +#: field:banking.export.sepa.wizard,charge_bearer:0 +msgid "Charge Bearer" +msgstr "Répartition des frais" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa.wizard:0 +msgid "SEPA File Generation" +msgstr "Génération du fichier SEPA" + +#. module: account_banking_sepa_credit_transfer +#: model:ir.model,name:account_banking_sepa_credit_transfer.model_banking_export_sepa +msgid "SEPA export" +msgstr "Export SEPA" + +#. module: account_banking_sepa_credit_transfer +#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:246 +#, python-format +msgid "" +"Missing Bank Account on invoice '%s' (payment order line reference '%s')." +msgstr "" +"Compte bancaire manquant sur la facture '%s' (référence de la ligne de " +"paiement : '%s')." + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,file:0 +#: field:banking.export.sepa.wizard,file_id:0 +msgid "SEPA XML File" +msgstr "Fichier SEPA XML" + +#. module: account_banking_sepa_credit_transfer +#: help:banking.export.sepa,charge_bearer:0 +msgid "" +"Following service level : transaction charges are to be applied following " +"the rules agreed in the service level and/or scheme (SEPA Core messages must " +"use this). Shared : transaction charges on the creditor side are to be borne " +"by the creditor, transaction charges on the debtor side are to be borne by " +"the debtor. Borne by creditor : all transaction charges are to be borne by " +"the creditor. Borne by debtor : all transaction charges are to be borne by " +"the debtor." +msgstr "" +"Suivant le niveau de service : la répartition des frais bancaires suit les " +"règles pré-établies dans le schema ou dans le contrat avec la banque (les " +"messages SEPA Core doivent utiliser ce paramètre). Partagés : les frais " +"bancaires côté débiteur sont à la charge du débiteur, les frais bancaires " +"côté créancier sont à la charge du créancier. Supportés par le créancier : " +"tous les frais bancaires sont à la charge du créancier. Supportés par le " +"débiteur : tous les frais bancaires sont à la charge du débiteur." + +#. module: account_banking_sepa_credit_transfer +#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:129 +#, python-format +msgid "" +"Payment Type Code '%s' is not supported. The only Payment Type Codes " +"supported for SEPA Credit Transfers are 'pain.001.001.02', " +"'pain.001.001.03', 'pain.001.001.04' and 'pain.001.001.05'." +msgstr "" +"Le code du Type de paiement '%s' n'est pas supporté. Les seuls codes de Type " +"de paiement supportés pour les virements SEPA sont 'pain.001.001.02', " +"'pain.001.001.03', 'pain.001.001.04' et 'pain.001.001.05'." + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa:0 +#: field:banking.export.sepa,payment_order_ids:0 +#: field:banking.export.sepa.wizard,payment_order_ids:0 +msgid "Payment Orders" +msgstr "Ordres de paiement" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa:0 +msgid "General Information" +msgstr "Informations générales" + +#. module: account_banking_sepa_credit_transfer +#: model:ir.actions.act_window,name:account_banking_sepa_credit_transfer.act_banking_export_sepa_payment_order +#: model:ir.actions.act_window,name:account_banking_sepa_credit_transfer.action_account_banking_sepa +#: model:ir.ui.menu,name:account_banking_sepa_credit_transfer.menu_account_banking_sepa +msgid "SEPA Credit Transfer Files" +msgstr "Fichiers de virement SEPA" + +#. module: account_banking_sepa_credit_transfer +#: help:banking.export.sepa,batch_booking:0 +#: help:banking.export.sepa.wizard,batch_booking:0 +msgid "" +"If true, the bank statement will display only one debit line for all the " +"wire transfers of the SEPA XML file ; if false, the bank statement will " +"display one debit line per wire transfer of the SEPA XML file." +msgstr "" +"Si coché, le relevé de compte ne comportera qu'une ligne de débit pour tous " +"les virements du fichier SEPA XML ; si non coché, le relevé de compte " +"comportera une ligne de débit pour chaque virement du fichier SEPA XML." + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa.wizard,file:0 +msgid "File" +msgstr "Fichier" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa.wizard:0 +msgid "Cancel" +msgstr "Annuler" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,create_date:0 +msgid "Generation Date" +msgstr "Date de génération" + +#~ msgid "SEPA XML file" +#~ msgstr "Fichier SEPA XML" + +#~ msgid "Payment order" +#~ msgstr "Ordre de paiement" + +#~ msgid "" +#~ "This is the message identification of the entire SEPA XML file. 35 " +#~ "characters max." +#~ msgstr "" +#~ "Ceci est le libellé d'identification du fichier SEPA XML. 35 caractères " +#~ "maximum." + +#~ msgid "Prefered execution date" +#~ msgstr "Date d'exécution demandée" + +#~ msgid "Generation date" +#~ msgstr "Date de génération" + +#~ msgid "Export SEPA Credit Transfer XML file" +#~ msgstr "Exporte the fichier de virement SEPA XML" + +#~ msgid "Message identification" +#~ msgstr "Libellé d'identification" + +#, python-format +#~ msgid "" +#~ "The generated XML file is not valid against the official XML Schema " +#~ "Definition. The generated XML file and the full error have been written in " +#~ "the server logs. Here is the error, which may give you an idea on the cause " +#~ "of the problem : %s" +#~ msgstr "" +#~ "Le fichier XML généré n'est pas valide par rapport à la Définition du Schéma " +#~ "XML officiel. Le fichier XML généré et le message d'erreur complet ont été " +#~ "écrits dans les logs du serveur. Voici l'erreur, qui vous donnera peut-être " +#~ "une idée sur la cause du problème : %s" + +#~ msgid "Total amount" +#~ msgstr "Montant total" + +#~ msgid "" +#~ "Shared : transaction charges on the sender side are to be borne by the " +#~ "debtor, transaction charges on the receiver side are to be borne by the " +#~ "creditor (most transfers use this). Borne by creditor : all transaction " +#~ "charges are to be borne by the creditor. Borne by debtor : all transaction " +#~ "charges are to be borne by the debtor. Following service level : transaction " +#~ "charges are to be applied following the rules agreed in the service level " +#~ "and/or scheme." +#~ msgstr "" +#~ "Partagés : les frais bancaires côté émetteur sont à la charge de l'émetteur " +#~ "et les frais bancaires côté destinataire sont à la charge du destinataire " +#~ "(la plupart des virements utilisent cette répartition). Supportés par le " +#~ "destinataire : tous les frais bancaires sont à la charge du destinataire. " +#~ "Supportés par l'émetteur : tous les frais bancaires sont à la charge de " +#~ "l'émetteur. Suivant le niveau de service : la répartition des frais " +#~ "bancaires suit les règles pré-établies dans le contrat avec la banque." + +#~ msgid "Borne by creditor" +#~ msgstr "Supportés par le destinataire" + +#~ msgid "Payment orders" +#~ msgstr "Ordres de paiement" + +#, python-format +#~ msgid "This IBAN is not valid : %s" +#~ msgstr "Cet IBAN n'est pas valide : %s" + +#~ msgid "SEPA XML file generation" +#~ msgstr "Génération du fichier SEPA XML" + +#~ msgid "Reference for further communication" +#~ msgstr "Référence pour communication ultérieure" + +#~ msgid "Processing details" +#~ msgstr "Paramètres" + +#~ msgid "Borne by debtor" +#~ msgstr "Supportés par l'émetteur" + +#~ msgid "Number of transactions" +#~ msgstr "Nombre de transactions" + +#~ msgid "Following service level" +#~ msgstr "Suivant le niveau de service" + +#~ msgid "Charge bearer" +#~ msgstr "Répartition des frais" + +#~ msgid "" +#~ "This is the date on which the file should be processed by the bank. Please " +#~ "keep in mind that banks only execute on working days and typically use a " +#~ "delay of two days between execution date and effective transfer date." +#~ msgstr "" +#~ "C'est la date à laquelle le fichier doit être traité par la banque. Gardez " +#~ "en tête que les banques réalisent des traitements seulement les jours ouvrés " +#~ "et ont habituellement un délai de 2 jours entre la date de traitement et la " +#~ "date du transfert effectif." + +#, python-format +#~ msgid "" +#~ "Payment Type Code '%s' is not supported. The only Payment Type Codes " +#~ "supported for SEPA Credit Transfers are 'pain.001.001.02', 'pain.001.001.03' " +#~ "and 'pain.001.001.04'." +#~ msgstr "" +#~ "Le code '%s' pour le Type de Paiment n'est pas supporté. Les seuls codes de " +#~ "Types de Paiement supportés pour les virements SEPA sont 'pain.001.001.02', " +#~ "'pain.001.001.03' et 'pain.001.001.04'." + +#, python-format +#~ msgid "Error :" +#~ msgstr "Erreur :" + +#~ msgid "Batch booking" +#~ msgstr "Débit groupé" diff --git a/account_banking_sepa_credit_transfer/i18n/nl.po b/account_banking_sepa_credit_transfer/i18n/nl.po new file mode 100644 index 000000000..541366292 --- /dev/null +++ b/account_banking_sepa_credit_transfer/i18n/nl.po @@ -0,0 +1,356 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_banking_sepa_credit_transfer +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-12-23 22:49+0000\n" +"PO-Revision-Date: 2014-04-24 10:34+0000\n" +"Last-Translator: Erwin van der Ploeg (BAS Solutions) \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-05-31 06:02+0000\n" +"X-Generator: Launchpad (build 17031)\n" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa.wizard,state:0 +msgid "Create" +msgstr "Aanmaken" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,nb_transactions:0 +#: field:banking.export.sepa.wizard,nb_transactions:0 +msgid "Number of Transactions" +msgstr "Aantal transacties" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,filename:0 +#: field:banking.export.sepa.wizard,filename:0 +msgid "Filename" +msgstr "Bestandsnaam" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,state:0 +#: field:banking.export.sepa.wizard,state:0 +msgid "State" +msgstr "Status" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,state:0 +msgid "Draft" +msgstr "Concept" + +#. module: account_banking_sepa_credit_transfer +#: help:banking.export.sepa.wizard,charge_bearer:0 +msgid "" +"Following service level : transaction charges are to be applied following " +"the rules agreed in the service level and/or scheme (SEPA Core messages must " +"use this). Shared : transaction charges on the debtor side are to be borne " +"by the debtor, transaction charges on the creditor side are to be borne by " +"the creditor. Borne by creditor : all transaction charges are to be borne by " +"the creditor. Borne by debtor : all transaction charges are to be borne by " +"the debtor." +msgstr "" +"Volg service level: Transactie kosten worden toegepast volgens de " +"afgesproken regels in het service level en/of schema (Voor SEPA berichten " +"deze gebruiken). Gedeeld : De transactiekosten aan de debiteur zijde zijn " +"voor de schuldeiser, transactiekosten aan de crediteur kant zijn voor de " +"schuldenaar. Op rekening van de schuldenaar: Alle transactie kosten zijn " +"voor rekening van de schuldenaar. Op rekening van de schuldeiser: Alle " +"transactie kosten zijn voor rekening van de schuldeiser." + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,charge_bearer:0 +#: selection:banking.export.sepa.wizard,charge_bearer:0 +msgid "Shared" +msgstr "Gedeeld" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,batch_booking:0 +#: field:banking.export.sepa.wizard,batch_booking:0 +msgid "Batch Booking" +msgstr "Bach verwerking" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,state:0 +msgid "Sent" +msgstr "Verzonden" + +#. module: account_banking_sepa_credit_transfer +#: model:ir.model,name:account_banking_sepa_credit_transfer.model_banking_export_sepa_wizard +msgid "Export SEPA Credit Transfer File" +msgstr "Exporteer SEPA Credit Transfer bestand" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa:0 +msgid "SEPA Credit Transfer" +msgstr "SEPA overschrijving" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa.wizard,state:0 +msgid "Finish" +msgstr "Gereed" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,state:0 +msgid "Reconciled" +msgstr "Afgeletterd" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,charge_bearer:0 +#: selection:banking.export.sepa.wizard,charge_bearer:0 +msgid "Following Service Level" +msgstr "Volg service level" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,charge_bearer:0 +#: selection:banking.export.sepa.wizard,charge_bearer:0 +msgid "Borne by Creditor" +msgstr "Op rekening van schuldeiser" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa.wizard:0 +msgid "Validate" +msgstr "Bevestig" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa.wizard:0 +msgid "Generate" +msgstr "Genereer" + +#. module: account_banking_sepa_credit_transfer +#: selection:banking.export.sepa,charge_bearer:0 +#: selection:banking.export.sepa.wizard,charge_bearer:0 +msgid "Borne by Debtor" +msgstr "Op rekening van schuldenaar" + +#. module: account_banking_sepa_credit_transfer +#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:128 +#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:245 +#, python-format +msgid "Error:" +msgstr "Fout:" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,total_amount:0 +#: field:banking.export.sepa.wizard,total_amount:0 +msgid "Total Amount" +msgstr "Totaalbedrag" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,charge_bearer:0 +#: field:banking.export.sepa.wizard,charge_bearer:0 +msgid "Charge Bearer" +msgstr "Kostenverdeling" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa.wizard:0 +msgid "SEPA File Generation" +msgstr "SEPA bestand genereren" + +#. module: account_banking_sepa_credit_transfer +#: model:ir.model,name:account_banking_sepa_credit_transfer.model_banking_export_sepa +msgid "SEPA export" +msgstr "SEPA export" + +#. module: account_banking_sepa_credit_transfer +#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:246 +#, python-format +msgid "" +"Missing Bank Account on invoice '%s' (payment order line reference '%s')." +msgstr "" +"Ontbrekende bankrekening op factuur '%s' (betaalregel referentie '%s')" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,file:0 +#: field:banking.export.sepa.wizard,file_id:0 +msgid "SEPA XML File" +msgstr "SEPA XML bestand" + +#. module: account_banking_sepa_credit_transfer +#: help:banking.export.sepa,charge_bearer:0 +msgid "" +"Following service level : transaction charges are to be applied following " +"the rules agreed in the service level and/or scheme (SEPA Core messages must " +"use this). Shared : transaction charges on the creditor side are to be borne " +"by the creditor, transaction charges on the debtor side are to be borne by " +"the debtor. Borne by creditor : all transaction charges are to be borne by " +"the creditor. Borne by debtor : all transaction charges are to be borne by " +"the debtor." +msgstr "" +"Volg service level: Transactie kosten worden toegepast volgens de " +"afgesproken regels in het service level en/of schema (Voor SEPA berichten " +"deze gebruiken). Gedeeld : De transactiekosten aan de crediteur zijde zijn " +"voor de schuldenaar, transactiekosten aan de debiteur kant zijn voor de " +"schuldeiser. Op rekening van de schuldenaar: Alle transactie kosten zijn " +"voor rekening van de schuldenaar. Op rekening van de schuldeiser: Alle " +"transactie kosten zijn voor rekening van de schuldeiser." + +#. module: account_banking_sepa_credit_transfer +#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:129 +#, python-format +msgid "" +"Payment Type Code '%s' is not supported. The only Payment Type Codes " +"supported for SEPA Credit Transfers are 'pain.001.001.02', " +"'pain.001.001.03', 'pain.001.001.04' and 'pain.001.001.05'." +msgstr "" +"Betaal type code '%s' wordt niet ondersteund. De enige betaal type codes " +"voor SEPA credit boekingen zijn 'pain.001.001.02', 'pain.001.001.03' en " +"'pain.001.001.04'." + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa:0 +#: field:banking.export.sepa,payment_order_ids:0 +#: field:banking.export.sepa.wizard,payment_order_ids:0 +msgid "Payment Orders" +msgstr "Betaalopdrachten" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa:0 +msgid "General Information" +msgstr "Algemene informatie" + +#. module: account_banking_sepa_credit_transfer +#: model:ir.actions.act_window,name:account_banking_sepa_credit_transfer.act_banking_export_sepa_payment_order +#: model:ir.actions.act_window,name:account_banking_sepa_credit_transfer.action_account_banking_sepa +#: model:ir.ui.menu,name:account_banking_sepa_credit_transfer.menu_account_banking_sepa +msgid "SEPA Credit Transfer Files" +msgstr "SEPA Credit Transfer bestanden" + +#. module: account_banking_sepa_credit_transfer +#: help:banking.export.sepa,batch_booking:0 +#: help:banking.export.sepa.wizard,batch_booking:0 +msgid "" +"If true, the bank statement will display only one debit line for all the " +"wire transfers of the SEPA XML file ; if false, the bank statement will " +"display one debit line per wire transfer of the SEPA XML file." +msgstr "" +"Indien aangevinkt zal het bankafschrift maar één debet regel weergeven voor " +"alle overschrijvingen van het SEPA XML bestand. Indien uitgevinkt, zal het " +"bankafschrift een debet regel weergeven per SEPA XML bestand." + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa.wizard,file:0 +msgid "File" +msgstr "Bestand" + +#. module: account_banking_sepa_credit_transfer +#: view:banking.export.sepa.wizard:0 +msgid "Cancel" +msgstr "Annuleren" + +#. module: account_banking_sepa_credit_transfer +#: field:banking.export.sepa,create_date:0 +msgid "Generation Date" +msgstr "Aangemaakt op" + +#~ msgid "SEPA XML file" +#~ msgstr "SEPA XML bestand" + +#~ msgid "Number of transactions" +#~ msgstr "Aantal transacties" + +#~ msgid "" +#~ "This is the message identification of the entire SEPA XML file. 35 " +#~ "characters max." +#~ msgstr "" +#~ "Dit is een bericht identificatie van het gehele SEPA XML bestand. Maximaal " +#~ "35 karakters." + +#~ msgid "Prefered execution date" +#~ msgstr "Voorkeurs uitvoerdatum" + +#~ msgid "Generation date" +#~ msgstr "Aanmaakdatum" + +#~ msgid "Export SEPA Credit Transfer XML file" +#~ msgstr "Exporteer SEPA XML overschrijvingsbestand" + +#~ msgid "Message identification" +#~ msgstr "Bericht identificatie" + +#~ msgid "Total amount" +#~ msgstr "Totaal bedrag" + +#~ msgid "Borne by creditor" +#~ msgstr "Rekening van schuldeiser" + +#~ msgid "Payment orders" +#~ msgstr "Betaalopdrachten" + +#~ msgid "Generated SEPA Credit Transfer files" +#~ msgstr "Gegenereerde SEPA overschrijfbestanden" + +#~ msgid "SEPA XML file generation" +#~ msgstr "SEPA XML bestand generatie" + +#~ msgid "Reference for further communication" +#~ msgstr "Referentie voor verdere communicatie" + +#~ msgid "Processing details" +#~ msgstr "Verwerkings details" + +#~ msgid "Borne by debtor" +#~ msgstr "Rekening van schuldenaar" + +#~ msgid "Payment order" +#~ msgstr "Betaalopdracht" + +#~ msgid "Following service level" +#~ msgstr "Volg service level" + +#~ msgid "Charge bearer" +#~ msgstr "Kostenverdeling" + +#~ msgid "" +#~ "Shared : transaction charges on the sender side are to be borne by the " +#~ "debtor, transaction charges on the receiver side are to be borne by the " +#~ "creditor (most transfers use this). Borne by creditor : all transaction " +#~ "charges are to be borne by the creditor. Borne by debtor : all transaction " +#~ "charges are to be borne by the debtor. Following service level : transaction " +#~ "charges are to be applied following the rules agreed in the service level " +#~ "and/or scheme." +#~ msgstr "" +#~ "Gedeeld : De transactiekosten aan de verzender kant zijn voor de " +#~ "schuldeiser, transactiekosten aan de ontvanger kant zijn voor de schuldenaar " +#~ "(deze keuze wordt het meest gebruikt). Rekening van de schuldenaar: Alle " +#~ "transactie kosten zijn voor rekening van de schuldenaar. Rekening van de " +#~ "schuldeiser: Alle transactie kosten zijn voor rekening van de schuldeiser. " +#~ "Volg service level: Transactie kosten worden toegepast volgens de " +#~ "afgesporken regels in het service level en/of schema." + +#~ msgid "Batch booking" +#~ msgstr "Batch boeking" + +#~ msgid "Generated SEPA Credit Transfer XML files" +#~ msgstr "Gengenereerde SEPA XML overschrijf bestanden" + +#, python-format +#~ msgid "This IBAN is not valid : %s" +#~ msgstr "Deze IBAN is niet geldig : %s" + +#~ msgid "" +#~ "This is the date on which the file should be processed by the bank. Please " +#~ "keep in mind that banks only execute on working days and typically use a " +#~ "delay of two days between execution date and effective transfer date." +#~ msgstr "" +#~ "Dit is de datum waarop het bestand zou moeten worden verwerkt door de bank. " +#~ "Houdt u er rekening mee dat banken alleen op werkdagen de bestanden " +#~ "verwerken en veelal een vertraging hebben van twee dagen tussen de " +#~ "verwerkingsdatum en de effectieve overschrijfdatum." + +#, python-format +#~ msgid "" +#~ "The generated XML file is not valid against the official XML Schema " +#~ "Definition. The generated XML file and the full error have been written in " +#~ "the server logs. Here is the error, which may give you an idea on the cause " +#~ "of the problem : %s" +#~ msgstr "" +#~ "Het gegenereerde XML bestand is niet geldig volgens de officiële XML schema " +#~ "definities. Het gegenereerde XML bestand en de volledige fout zijn " +#~ "weggeschreven in de server log bestanden. Hier is de fout, wat u een idee " +#~ "kunt geven over de oorzaak van het probleem: %s\"" diff --git a/account_banking_sepa_credit_transfer/models/__init__.py b/account_banking_sepa_credit_transfer/models/__init__.py new file mode 100644 index 000000000..90e481210 --- /dev/null +++ b/account_banking_sepa_credit_transfer/models/__init__.py @@ -0,0 +1,23 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# SEPA Credit Transfer module for OpenERP +# Copyright (C) 2010-2013 Akretion (http://www.akretion.com) +# @author: Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from . import account_banking_sepa diff --git a/account_banking_sepa_credit_transfer/models/account_banking_sepa.py b/account_banking_sepa_credit_transfer/models/account_banking_sepa.py new file mode 100644 index 000000000..69b7d20ae --- /dev/null +++ b/account_banking_sepa_credit_transfer/models/account_banking_sepa.py @@ -0,0 +1,76 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# SEPA Credit Transfer module for OpenERP +# Copyright (C) 2010-2013 Akretion (http://www.akretion.com) +# @author: Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp import models, fields, api +from openerp.addons.decimal_precision import decimal_precision as dp +from unidecode import unidecode + + +class BankingExportSepa(models.Model): + """SEPA export""" + _name = 'banking.export.sepa' + _description = __doc__ + _rec_name = 'filename' + + @api.one + def _generate_filename(self): + ref = self.payment_order_ids[0].reference + if ref: + label = unidecode(ref.replace('/', '-')) + else: + label = 'error' + self.filename = 'sct_%s.xml' % label + + payment_order_ids = fields.Many2many( + comodel_name='payment.order', column1='banking_export_sepa_id', + column2='account_order_id', relation='account_payment_order_sepa_rel', + string='Payment Orders', readonly=True) + nb_transactions = fields.Integer(string='Number of Transactions', + readonly=True) + total_amount = fields.Float(string='Total Amount', + digits_compute=dp.get_precision('Account'), + readonly=True) + batch_booking = fields.Boolean( + 'Batch Booking', readonly=True, + help="If true, the bank statement will display only one debit line " + "for all the wire transfers of the SEPA XML file ; if false, " + "the bank statement will display one debit line per wire " + "transfer of the SEPA XML file.") + charge_bearer = fields.Selection( + [('SLEV', 'Following Service Level'), + ('SHAR', 'Shared'), + ('CRED', 'Borne by Creditor'), + ('DEBT', 'Borne by Debtor')], string='Charge Bearer', readonly=True, + help="Following service level : transaction charges are to be applied " + "following the rules agreed in the service level and/or scheme " + "(SEPA Core messages must use this). Shared : transaction " + "charges on the creditor side are to be borne by the creditor, " + "transaction charges on the debtor side are to be borne by the " + "debtor. Borne by creditor : all transaction charges are to be " + "borne by the creditor. Borne by debtor : all transaction " + "charges are to be borne by the debtor.") + create_date = fields.Datetime('Generation Date', readonly=True) + file = fields.Binary('SEPA XML File', readonly=True) + filename = fields.Char(string='Filename', size=256, readonly=True, + compute=_generate_filename) + state = fields.Selection([('draft', 'Draft'), ('sent', 'Sent')], + string='State', readonly=True, default='draft') diff --git a/account_banking_sepa_credit_transfer/security/ir.model.access.csv b/account_banking_sepa_credit_transfer/security/ir.model.access.csv new file mode 100644 index 000000000..96fda5eec --- /dev/null +++ b/account_banking_sepa_credit_transfer/security/ir.model.access.csv @@ -0,0 +1,2 @@ +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_banking_export_sepa","Full access on banking.export.sepa","model_banking_export_sepa","account_payment.group_account_payment",1,1,1,1 diff --git a/account_banking_sepa_credit_transfer/sepa_credit_transfer_demo.xml b/account_banking_sepa_credit_transfer/sepa_credit_transfer_demo.xml new file mode 100644 index 000000000..77abf1b34 --- /dev/null +++ b/account_banking_sepa_credit_transfer/sepa_credit_transfer_demo.xml @@ -0,0 +1,15 @@ + + + + + + + SEPA Credit Transfer La Banque Postale + + + + + + + + diff --git a/account_banking_sepa_credit_transfer/static/description/icon.svg b/account_banking_sepa_credit_transfer/static/description/icon.svg new file mode 100644 index 000000000..266ef8442 --- /dev/null +++ b/account_banking_sepa_credit_transfer/static/description/icon.svg @@ -0,0 +1,92 @@ + + + +image/svg+xmlCREDITTRANSFER + \ No newline at end of file diff --git a/account_banking_sepa_credit_transfer/static/src/img/icon.png b/account_banking_sepa_credit_transfer/static/src/img/icon.png new file mode 100644 index 000000000..12ecf91ce Binary files /dev/null and b/account_banking_sepa_credit_transfer/static/src/img/icon.png differ diff --git a/account_banking_sepa_credit_transfer/views/account_banking_sepa_view.xml b/account_banking_sepa_credit_transfer/views/account_banking_sepa_view.xml new file mode 100644 index 000000000..a5896c757 --- /dev/null +++ b/account_banking_sepa_credit_transfer/views/account_banking_sepa_view.xml @@ -0,0 +1,77 @@ + + + + + + + account.banking.export.sepa.form + banking.export.sepa + +
+
+ +
+ + + + + + + + + + + + + + + + +
+
+
+ + + + account.banking.export.sepa.tree + banking.export.sepa + + + + + + + + + + + + + SEPA Credit Transfer Files + banking.export.sepa + form + tree,form + + + + + + + +
+
diff --git a/account_banking_sepa_credit_transfer/wizard/__init__.py b/account_banking_sepa_credit_transfer/wizard/__init__.py new file mode 100644 index 000000000..05230383b --- /dev/null +++ b/account_banking_sepa_credit_transfer/wizard/__init__.py @@ -0,0 +1,23 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# SEPA Credit Transfer module for OpenERP +# Copyright (C) 2010-2013 Akretion (http://www.akretion.com) +# @author: Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from . import export_sepa diff --git a/account_banking_sepa_credit_transfer/wizard/export_sepa.py b/account_banking_sepa_credit_transfer/wizard/export_sepa.py new file mode 100644 index 000000000..7b2c94ef9 --- /dev/null +++ b/account_banking_sepa_credit_transfer/wizard/export_sepa.py @@ -0,0 +1,279 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# SEPA Credit Transfer module for OpenERP +# Copyright (C) 2010-2013 Akretion (http://www.akretion.com) +# @author: Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + + +from openerp.osv import orm, fields +from openerp.tools.translate import _ +from openerp import netsvc +from lxml import etree + + +class banking_export_sepa_wizard(orm.TransientModel): + _name = 'banking.export.sepa.wizard' + _inherit = ['banking.export.pain'] + _description = 'Export SEPA Credit Transfer File' + + _columns = { + 'state': fields.selection([ + ('create', 'Create'), + ('finish', 'Finish'), + ], 'State', readonly=True), + 'batch_booking': fields.boolean( + 'Batch Booking', + help="If true, the bank statement will display only one debit " + "line for all the wire transfers of the SEPA XML file ; if " + "false, the bank statement will display one debit line per wire " + "transfer of the SEPA XML file."), + 'charge_bearer': fields.selection([ + ('SLEV', 'Following Service Level'), + ('SHAR', 'Shared'), + ('CRED', 'Borne by Creditor'), + ('DEBT', 'Borne by Debtor'), + ], 'Charge Bearer', required=True, + help="Following service level : transaction charges are to be " + "applied following the rules agreed in the service level and/or " + "scheme (SEPA Core messages must use this). Shared : transaction " + "charges on the debtor side are to be borne by the debtor, " + "transaction charges on the creditor side are to be borne by " + "the creditor. Borne by creditor : all transaction charges are " + "to be borne by the creditor. Borne by debtor : all transaction " + "charges are to be borne by the debtor."), + 'nb_transactions': fields.related( + 'file_id', 'nb_transactions', type='integer', + string='Number of Transactions', readonly=True), + 'total_amount': fields.related( + 'file_id', 'total_amount', type='float', string='Total Amount', + readonly=True), + 'file_id': fields.many2one( + 'banking.export.sepa', 'SEPA XML File', readonly=True), + 'file': fields.related( + 'file_id', 'file', string="File", type='binary', readonly=True), + 'filename': fields.related( + 'file_id', 'filename', string="Filename", type='char', + size=256, readonly=True), + 'payment_order_ids': fields.many2many( + 'payment.order', 'wiz_sepa_payorders_rel', 'wizard_id', + 'payment_order_id', 'Payment Orders', readonly=True), + } + + _defaults = { + 'charge_bearer': 'SLEV', + 'state': 'create', + } + + def create(self, cr, uid, vals, context=None): + payment_order_ids = context.get('active_ids', []) + vals.update({ + 'payment_order_ids': [[6, 0, payment_order_ids]], + }) + return super(banking_export_sepa_wizard, self).create( + cr, uid, vals, context=context) + + def create_sepa(self, cr, uid, ids, context=None): + """Creates the SEPA Credit Transfer file. That's the important code!""" + if context is None: + context = {} + sepa_export = self.browse(cr, uid, ids[0], context=context) + pain_flavor = sepa_export.payment_order_ids[0].mode.type.code + convert_to_ascii = \ + sepa_export.payment_order_ids[0].mode.convert_to_ascii + if pain_flavor == 'pain.001.001.02': + bic_xml_tag = 'BIC' + name_maxsize = 70 + root_xml_tag = 'pain.001.001.02' + elif pain_flavor == 'pain.001.001.03': + bic_xml_tag = 'BIC' + # size 70 -> 140 for with pain.001.001.03 + # BUT the European Payment Council, in the document + # "SEPA Credit Transfer Scheme Customer-to-bank + # Implementation guidelines" v6.0 available on + # http://www.europeanpaymentscouncil.eu/knowledge_bank.cfm + # says that 'Nm' should be limited to 70 + # so we follow the "European Payment Council" + # and we put 70 and not 140 + name_maxsize = 70 + root_xml_tag = 'CstmrCdtTrfInitn' + elif pain_flavor == 'pain.001.001.04': + bic_xml_tag = 'BICFI' + name_maxsize = 140 + root_xml_tag = 'CstmrCdtTrfInitn' + elif pain_flavor == 'pain.001.001.05': + bic_xml_tag = 'BICFI' + name_maxsize = 140 + root_xml_tag = 'CstmrCdtTrfInitn' + else: + raise orm.except_orm( + _('Error:'), + _("Payment Type Code '%s' is not supported. The only " + "Payment Type Codes supported for SEPA Credit Transfers " + "are 'pain.001.001.02', 'pain.001.001.03', " + "'pain.001.001.04' and 'pain.001.001.05'.") % + pain_flavor) + gen_args = { + 'bic_xml_tag': bic_xml_tag, + 'name_maxsize': name_maxsize, + 'convert_to_ascii': convert_to_ascii, + 'payment_method': 'TRF', + 'pain_flavor': pain_flavor, + 'sepa_export': sepa_export, + 'file_obj': self.pool['banking.export.sepa'], + 'pain_xsd_file': + 'account_banking_sepa_credit_transfer/data/%s.xsd' + % pain_flavor, + } + pain_ns = { + 'xsi': 'http://www.w3.org/2001/XMLSchema-instance', + None: 'urn:iso:std:iso:20022:tech:xsd:%s' % pain_flavor, + } + xml_root = etree.Element('Document', nsmap=pain_ns) + pain_root = etree.SubElement(xml_root, root_xml_tag) + pain_03_to_05 = \ + ['pain.001.001.03', 'pain.001.001.04', 'pain.001.001.05'] + # A. Group header + group_header_1_0, nb_of_transactions_1_6, control_sum_1_7 = \ + self.generate_group_header_block( + cr, uid, pain_root, gen_args, context=context) + transactions_count_1_6 = 0 + total_amount = 0.0 + amount_control_sum_1_7 = 0.0 + lines_per_group = {} + # key = (requested_date, priority) + # values = list of lines as object + today = fields.date.context_today(self, cr, uid, context=context) + for payment_order in sepa_export.payment_order_ids: + total_amount = total_amount + payment_order.total + for line in payment_order.line_ids: + priority = line.priority + if payment_order.date_prefered == 'due': + requested_date = line.ml_maturity_date or today + elif payment_order.date_prefered == 'fixed': + requested_date = payment_order.date_scheduled or today + else: + requested_date = today + key = (requested_date, priority) + if key in lines_per_group: + lines_per_group[key].append(line) + else: + lines_per_group[key] = [line] + # Write requested_date on 'Payment date' of the pay line + if requested_date != line.date: + self.pool['payment.line'].write( + cr, uid, line.id, + {'date': requested_date}, context=context) + for (requested_date, priority), lines in lines_per_group.items(): + # B. Payment info + payment_info_2_0, nb_of_transactions_2_4, control_sum_2_5 = \ + self.generate_start_payment_info_block( + cr, uid, pain_root, + "sepa_export.payment_order_ids[0].reference + '-' " + "+ requested_date.replace('-', '') + '-' + priority", + priority, False, False, requested_date, { + 'sepa_export': sepa_export, + 'priority': priority, + 'requested_date': requested_date, + }, gen_args, context=context) + self.generate_party_block( + cr, uid, payment_info_2_0, 'Dbtr', 'B', + 'sepa_export.payment_order_ids[0].mode.bank_id.partner_id.' + 'name', + 'sepa_export.payment_order_ids[0].mode.bank_id.acc_number', + 'sepa_export.payment_order_ids[0].mode.bank_id.bank.bic', + {'sepa_export': sepa_export}, + gen_args, context=context) + charge_bearer_2_24 = etree.SubElement(payment_info_2_0, 'ChrgBr') + charge_bearer_2_24.text = sepa_export.charge_bearer + transactions_count_2_4 = 0 + amount_control_sum_2_5 = 0.0 + for line in lines: + transactions_count_1_6 += 1 + transactions_count_2_4 += 1 + # C. Credit Transfer Transaction Info + credit_transfer_transaction_info_2_27 = etree.SubElement( + payment_info_2_0, 'CdtTrfTxInf') + payment_identification_2_28 = etree.SubElement( + credit_transfer_transaction_info_2_27, 'PmtId') + end2end_identification_2_30 = etree.SubElement( + payment_identification_2_28, 'EndToEndId') + end2end_identification_2_30.text = self._prepare_field( + cr, uid, 'End to End Identification', 'line.name', + {'line': line}, 35, gen_args=gen_args, + context=context) + currency_name = self._prepare_field( + cr, uid, 'Currency Code', 'line.currency.name', + {'line': line}, 3, gen_args=gen_args, + context=context) + amount_2_42 = etree.SubElement( + credit_transfer_transaction_info_2_27, 'Amt') + instructed_amount_2_43 = etree.SubElement( + amount_2_42, 'InstdAmt', Ccy=currency_name) + instructed_amount_2_43.text = '%.2f' % line.amount_currency + amount_control_sum_1_7 += line.amount_currency + amount_control_sum_2_5 += line.amount_currency + if not line.bank_id: + raise orm.except_orm( + _('Error:'), + _("Missing Bank Account on invoice '%s' (payment " + "order line reference '%s').") + % (line.ml_inv_ref.number, line.name)) + self.generate_party_block( + cr, uid, credit_transfer_transaction_info_2_27, 'Cdtr', + 'C', 'line.partner_id.name', 'line.bank_id.acc_number', + 'line.bank_id.bank.bic', {'line': line}, gen_args, + context=context) + self.generate_remittance_info_block( + cr, uid, credit_transfer_transaction_info_2_27, + line, gen_args, context=context) + if pain_flavor in pain_03_to_05: + nb_of_transactions_2_4.text = str(transactions_count_2_4) + control_sum_2_5.text = '%.2f' % amount_control_sum_2_5 + if pain_flavor in pain_03_to_05: + nb_of_transactions_1_6.text = str(transactions_count_1_6) + control_sum_1_7.text = '%.2f' % amount_control_sum_1_7 + else: + nb_of_transactions_1_6.text = str(transactions_count_1_6) + control_sum_1_7.text = '%.2f' % amount_control_sum_1_7 + return self.finalize_sepa_file_creation( + cr, uid, ids, xml_root, total_amount, transactions_count_1_6, + gen_args, context=context) + + def cancel_sepa(self, cr, uid, ids, context=None): + """Cancel the SEPA file: just drop the file""" + sepa_export = self.browse(cr, uid, ids[0], context=context) + self.pool['banking.export.sepa'].unlink( + cr, uid, sepa_export.file_id.id, context=context) + return {'type': 'ir.actions.act_window_close'} + + def save_sepa(self, cr, uid, ids, context=None): + """Save the SEPA file: send the done signal to all payment + orders in the file. With the default workflow, they will + transition to 'done', while with the advanced workflow in + account_banking_payment they will transition to 'sent' waiting + reconciliation. + """ + sepa_export = self.browse(cr, uid, ids[0], context=context) + self.pool['banking.export.sepa'].write( + cr, uid, sepa_export.file_id.id, {'state': 'sent'}, + context=context) + wf_service = netsvc.LocalService('workflow') + for order in sepa_export.payment_order_ids: + wf_service.trg_validate(uid, 'payment.order', order.id, 'done', cr) + return {'type': 'ir.actions.act_window_close'} diff --git a/account_banking_sepa_credit_transfer/wizard/export_sepa_view.xml b/account_banking_sepa_credit_transfer/wizard/export_sepa_view.xml new file mode 100644 index 000000000..c85acf454 --- /dev/null +++ b/account_banking_sepa_credit_transfer/wizard/export_sepa_view.xml @@ -0,0 +1,37 @@ + + + + + + + banking.export.sepa.wizard.view + banking.export.sepa.wizard + +
+ + + + + + + + + + + + + +
+
+ +
+