diff --git a/.gitignore b/.gitignore index 890ff01..7f2d438 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ var/ *.egg-info/ .installed.cfg *.egg +*.eggs # Installer logs pip-log.txt diff --git a/account_bank_statement_import_camt_oca/README.rst b/account_bank_statement_import_camt_oca/README.rst new file mode 100644 index 0000000..4ac6a90 --- /dev/null +++ b/account_bank_statement_import_camt_oca/README.rst @@ -0,0 +1,77 @@ +================================== +CAMT Format Bank Statements Import +================================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fbank--statement--import-lightgray.png?logo=github + :target: https://github.com/OCA/bank-statement-import/tree/12.0/account_bank_statement_import_camt_oca + :alt: OCA/bank-statement-import +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/bank-statement-import-12-0/bank-statement-import-12-0-account_bank_statement_import_camt_oca + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/174/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Module to import SEPA CAMT.053 and CAMT.054 Format bank statement files. + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Therp BV + +Contributors +~~~~~~~~~~~~ + +* Holger Brunn +* Stefan Rijnhart +* Ronald Portier +* Andrea Stirpe +* Maxence Groine + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/bank-statement-import `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_bank_statement_import_camt_oca/__init__.py b/account_bank_statement_import_camt_oca/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/account_bank_statement_import_camt_oca/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/account_bank_statement_import_camt_oca/__manifest__.py b/account_bank_statement_import_camt_oca/__manifest__.py new file mode 100644 index 0000000..6ae6089 --- /dev/null +++ b/account_bank_statement_import_camt_oca/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright 2013-2017 Therp BV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +{ + 'name': 'CAMT Format Bank Statements Import', + 'version': '12.0.1.0.0', + 'license': 'AGPL-3', + 'author': 'Therp BV, Odoo Community Association (OCA)', + 'website': 'https://github.com/OCA/bank-statement-import', + 'category': 'Banking addons', + 'depends': [ + 'account_bank_statement_import', + ], + 'data': [ + 'views/account_bank_statement_import.xml', + ], +} diff --git a/account_bank_statement_import_camt_oca/i18n/account_bank_statement_import_camt_oca.pot b/account_bank_statement_import_camt_oca/i18n/account_bank_statement_import_camt_oca.pot new file mode 100644 index 0000000..bf2d8b9 --- /dev/null +++ b/account_bank_statement_import_camt_oca/i18n/account_bank_statement_import_camt_oca.pot @@ -0,0 +1,69 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_bank_statement_import_camt_oca +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-16 08:08+0000\n" +"PO-Revision-Date: 2019-04-16 08:08+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_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser +msgid "Account Bank Statement Import CAMT parser" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "CAMT" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__display_name +msgid "Display Name" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__id +msgid "ID" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import +msgid "Import Bank Statement" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser____last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.053.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.054.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "zipped CAMT" +msgstr "" + diff --git a/account_bank_statement_import_camt_oca/i18n/de.po b/account_bank_statement_import_camt_oca/i18n/de.po new file mode 100644 index 0000000..25b8463 --- /dev/null +++ b/account_bank_statement_import_camt_oca/i18n/de.po @@ -0,0 +1,72 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_bank_statement_import_camt_oca +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: bank-statement-import (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-16 08:08+0000\n" +"PO-Revision-Date: 2015-10-04 11:43+0200\n" +"Last-Translator: Rudolf Schnapka \n" +"Language-Team: French (http://www.transifex.com/oca/OCA-bank-statement-" +"import-8-0/language/fr/)\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 1.8.3\n" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser +msgid "Account Bank Statement Import CAMT parser" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "CAMT" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__display_name +msgid "Display Name" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__id +msgid "ID" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import +msgid "Import Bank Statement" +msgstr "Kontoauszug importieren" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser____last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.053.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.054.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "zipped CAMT" +msgstr "" diff --git a/account_bank_statement_import_camt_oca/i18n/es.po b/account_bank_statement_import_camt_oca/i18n/es.po new file mode 100644 index 0000000..731b3d9 --- /dev/null +++ b/account_bank_statement_import_camt_oca/i18n/es.po @@ -0,0 +1,72 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_bank_statement_import_camt_oca +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-16 08:08+0000\n" +"PO-Revision-Date: 2018-06-08 08:27+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser +#, fuzzy +msgid "Account Bank Statement Import CAMT parser" +msgstr "account.bank.statement.import.camt.parser" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "CAMT" +msgstr "CAMT" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__display_name +msgid "Display Name" +msgstr "Nombre a mostrar" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__id +msgid "ID" +msgstr "ID" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import +msgid "Import Bank Statement" +msgstr "Importar extracto bancario" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser____last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.053.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.054.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "zipped CAMT" +msgstr "CAMT en .zip" diff --git a/account_bank_statement_import_camt_oca/i18n/fa.po b/account_bank_statement_import_camt_oca/i18n/fa.po new file mode 100644 index 0000000..28f89e7 --- /dev/null +++ b/account_bank_statement_import_camt_oca/i18n/fa.po @@ -0,0 +1,73 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_bank_statement_import_camt_oca +# +# Translators: +# Mehdi Zarrinkolah , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-16 08:08+0000\n" +"PO-Revision-Date: 2018-07-22 10:30+0000\n" +"Last-Translator: derKonig \n" +"Language-Team: Persian (https://www.transifex.com/oca/teams/23907/fa/)\n" +"Language: fa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 3.0.1\n" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser +#, fuzzy +msgid "Account Bank Statement Import CAMT parser" +msgstr "گزارش .حساب بانکی .وارد کننده .تقسیم کننده .تجزیه کننده" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "CAMT" +msgstr "CAMT" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__display_name +msgid "Display Name" +msgstr "نام صفحه نمایش" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__id +msgid "ID" +msgstr "شناسه" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import +msgid "Import Bank Statement" +msgstr "ورود بیانیه بانکی" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser____last_update +msgid "Last Modified on" +msgstr "آخرین تغییر در" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.053.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.054.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "zipped CAMT" +msgstr "CAMT زیپ شده" diff --git a/account_bank_statement_import_camt_oca/i18n/fi.po b/account_bank_statement_import_camt_oca/i18n/fi.po new file mode 100644 index 0000000..8a2775e --- /dev/null +++ b/account_bank_statement_import_camt_oca/i18n/fi.po @@ -0,0 +1,71 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_bank_statement_import_camt_oca +# +# Translators: +# Jarmo Kortetjärvi , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-16 08:08+0000\n" +"PO-Revision-Date: 2016-12-10 05:00+0000\n" +"Last-Translator: Jarmo Kortetjärvi , 2017\n" +"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser +msgid "Account Bank Statement Import CAMT parser" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "CAMT" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__display_name +msgid "Display Name" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__id +msgid "ID" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import +msgid "Import Bank Statement" +msgstr "Tuo pankkiaineisto" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser____last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.053.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.054.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "zipped CAMT" +msgstr "" diff --git a/account_bank_statement_import_camt_oca/i18n/fr.po b/account_bank_statement_import_camt_oca/i18n/fr.po new file mode 100644 index 0000000..3bbcf6e --- /dev/null +++ b/account_bank_statement_import_camt_oca/i18n/fr.po @@ -0,0 +1,71 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_bank_statement_import_camt_oca +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-16 08:08+0000\n" +"PO-Revision-Date: 2018-06-08 08:27+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser +msgid "Account Bank Statement Import CAMT parser" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "CAMT" +msgstr "CAMT" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__id +msgid "ID" +msgstr "ID" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import +msgid "Import Bank Statement" +msgstr "Importer Relevé Bancaire" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.053.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.054.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "zipped CAMT" +msgstr "CAMT zippé" diff --git a/account_bank_statement_import_camt_oca/i18n/fr_CH.po b/account_bank_statement_import_camt_oca/i18n/fr_CH.po new file mode 100644 index 0000000..be18357 --- /dev/null +++ b/account_bank_statement_import_camt_oca/i18n/fr_CH.po @@ -0,0 +1,72 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_bank_statement_import_camt_oca +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-16 08:08+0000\n" +"PO-Revision-Date: 2016-12-09 17:00+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: French (Switzerland) (https://www.transifex.com/oca/" +"teams/23907/fr_CH/)\n" +"Language: fr_CH\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser +msgid "Account Bank Statement Import CAMT parser" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "CAMT" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__display_name +msgid "Display Name" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__id +msgid "ID" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import +msgid "Import Bank Statement" +msgstr "Importer Relevé" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser____last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.053.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.054.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "zipped CAMT" +msgstr "" diff --git a/account_bank_statement_import_camt_oca/i18n/gl.po b/account_bank_statement_import_camt_oca/i18n/gl.po new file mode 100644 index 0000000..460359a --- /dev/null +++ b/account_bank_statement_import_camt_oca/i18n/gl.po @@ -0,0 +1,71 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_bank_statement_import_camt_oca +# +# Translators: +# Alejandro Santana , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-16 08:08+0000\n" +"PO-Revision-Date: 2016-12-09 17:00+0000\n" +"Last-Translator: Alejandro Santana , 2016\n" +"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/gl/)\n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser +msgid "Account Bank Statement Import CAMT parser" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "CAMT" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__display_name +msgid "Display Name" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__id +msgid "ID" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import +msgid "Import Bank Statement" +msgstr "Importar extracto bancario" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser____last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.053.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.054.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "zipped CAMT" +msgstr "" diff --git a/account_bank_statement_import_camt_oca/i18n/hr.po b/account_bank_statement_import_camt_oca/i18n/hr.po new file mode 100644 index 0000000..b3078a9 --- /dev/null +++ b/account_bank_statement_import_camt_oca/i18n/hr.po @@ -0,0 +1,73 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_bank_statement_import_camt_oca +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-16 08:08+0000\n" +"PO-Revision-Date: 2018-06-08 08:27+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser +#, fuzzy +msgid "Account Bank Statement Import CAMT parser" +msgstr "account.bank.statement.import.camt.parser" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "CAMT" +msgstr "CAMT" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__display_name +msgid "Display Name" +msgstr "Naziv" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__id +msgid "ID" +msgstr "ID" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import +msgid "Import Bank Statement" +msgstr "Uvoz bankovnog izvoda" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser____last_update +msgid "Last Modified on" +msgstr "Zadnje modificirano" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.053.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.054.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "zipped CAMT" +msgstr "kompresirani CAMT" diff --git a/account_bank_statement_import_camt_oca/i18n/lt_LT.po b/account_bank_statement_import_camt_oca/i18n/lt_LT.po new file mode 100644 index 0000000..54b4add --- /dev/null +++ b/account_bank_statement_import_camt_oca/i18n/lt_LT.po @@ -0,0 +1,72 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_bank_statement_import_camt_oca +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: bank-statement-import (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-16 08:08+0000\n" +"PO-Revision-Date: 2015-07-24 07:41+0000\n" +"Last-Translator: <>\n" +"Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/oca/OCA-bank-" +"statement-import-8-0/language/lt_LT/)\n" +"Language: lt_LT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" +"%100<10 || n%100>=20) ? 1 : 2);\n" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser +msgid "Account Bank Statement Import CAMT parser" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "CAMT" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__display_name +msgid "Display Name" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__id +msgid "ID" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import +msgid "Import Bank Statement" +msgstr "Importuoti banko išrašą" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser____last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.053.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.054.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "zipped CAMT" +msgstr "" diff --git a/account_bank_statement_import_camt_oca/i18n/nb_NO.po b/account_bank_statement_import_camt_oca/i18n/nb_NO.po new file mode 100644 index 0000000..554d13e --- /dev/null +++ b/account_bank_statement_import_camt_oca/i18n/nb_NO.po @@ -0,0 +1,72 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_bank_statement_import_camt_oca +# +# Translators: +# Imre Kristoffer Eilertsen , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-16 08:08+0000\n" +"PO-Revision-Date: 2016-12-09 17:00+0000\n" +"Last-Translator: Imre Kristoffer Eilertsen , 2016\n" +"Language-Team: Norwegian Bokmål (Norway) (https://www.transifex.com/oca/" +"teams/23907/nb_NO/)\n" +"Language: nb_NO\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser +msgid "Account Bank Statement Import CAMT parser" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "CAMT" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__display_name +msgid "Display Name" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__id +msgid "ID" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import +msgid "Import Bank Statement" +msgstr "Importer bankutsagn" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser____last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.053.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.054.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "zipped CAMT" +msgstr "" diff --git a/account_bank_statement_import_camt_oca/i18n/nl.po b/account_bank_statement_import_camt_oca/i18n/nl.po new file mode 100644 index 0000000..7e8927f --- /dev/null +++ b/account_bank_statement_import_camt_oca/i18n/nl.po @@ -0,0 +1,76 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_bank_statement_import_camt_oca +# +# Translators: +# Erwin van der Ploeg , 2015 +msgid "" +msgstr "" +"Project-Id-Version: bank-statement-import (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-16 08:08+0000\n" +"PO-Revision-Date: 2018-12-03 10:43+0000\n" +"Last-Translator: Yung-Wa \n" +"Language-Team: Dutch (http://www.transifex.com/oca/OCA-bank-statement-" +"import-8-0/language/nl/)\n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.3\n" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser +#, fuzzy +msgid "Account Bank Statement Import CAMT parser" +msgstr "account.bank.statement.import.camt.parser" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +#, fuzzy +msgid "CAMT" +msgstr "CAMT" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__display_name +msgid "Display Name" +msgstr "Weergave naam" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__id +#, fuzzy +msgid "ID" +msgstr "ID" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import +msgid "Import Bank Statement" +msgstr "Importeer bankafschrift" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser____last_update +msgid "Last Modified on" +msgstr "Laatst gewijzigd op" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.053.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.054.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "zipped CAMT" +msgstr "zip formaat CAMT" diff --git a/account_bank_statement_import_camt_oca/i18n/pt_BR.po b/account_bank_statement_import_camt_oca/i18n/pt_BR.po new file mode 100644 index 0000000..be6a700 --- /dev/null +++ b/account_bank_statement_import_camt_oca/i18n/pt_BR.po @@ -0,0 +1,71 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_bank_statement_import_camt_oca +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: bank-statement-import (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-16 08:08+0000\n" +"PO-Revision-Date: 2015-10-09 00:26+0000\n" +"Last-Translator: danimaribeiro \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-bank-" +"statement-import-8-0/language/pt_BR/)\n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser +msgid "Account Bank Statement Import CAMT parser" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "CAMT" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__display_name +msgid "Display Name" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__id +msgid "ID" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import +msgid "Import Bank Statement" +msgstr "Importar Extrato Bancário" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser____last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.053.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.054.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "zipped CAMT" +msgstr "" diff --git a/account_bank_statement_import_camt_oca/i18n/pt_PT.po b/account_bank_statement_import_camt_oca/i18n/pt_PT.po new file mode 100644 index 0000000..096f26a --- /dev/null +++ b/account_bank_statement_import_camt_oca/i18n/pt_PT.po @@ -0,0 +1,71 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_bank_statement_import_camt_oca +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: bank-statement-import (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-16 08:08+0000\n" +"PO-Revision-Date: 2015-07-24 07:41+0000\n" +"Last-Translator: <>\n" +"Language-Team: Portuguese (Portugal) (http://www.transifex.com/oca/OCA-bank-" +"statement-import-8-0/language/pt_PT/)\n" +"Language: pt_PT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser +msgid "Account Bank Statement Import CAMT parser" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "CAMT" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__display_name +msgid "Display Name" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__id +msgid "ID" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import +msgid "Import Bank Statement" +msgstr "Importar Extrato Bancário" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser____last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.053.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.054.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "zipped CAMT" +msgstr "" diff --git a/account_bank_statement_import_camt_oca/i18n/sl.po b/account_bank_statement_import_camt_oca/i18n/sl.po new file mode 100644 index 0000000..65462d0 --- /dev/null +++ b/account_bank_statement_import_camt_oca/i18n/sl.po @@ -0,0 +1,72 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_bank_statement_import_camt_oca +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: bank-statement-import (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-16 08:08+0000\n" +"PO-Revision-Date: 2015-07-25 12:19+0000\n" +"Last-Translator: Matjaž Mozetič \n" +"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-bank-statement-" +"import-8-0/language/sl/)\n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser +msgid "Account Bank Statement Import CAMT parser" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "CAMT" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__display_name +msgid "Display Name" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser__id +msgid "ID" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import +msgid "Import Bank Statement" +msgstr "Uvoz bančnega izpiska" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_journal +msgid "Journal" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser____last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.053.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: code:addons/account_bank_statement_import_camt_oca/models/account_journal.py:13 +#, python-format +msgid "camt.054.001.02" +msgstr "" + +#. module: account_bank_statement_import_camt_oca +#: model_terms:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view +msgid "zipped CAMT" +msgstr "" diff --git a/account_bank_statement_import_camt_oca/models/__init__.py b/account_bank_statement_import_camt_oca/models/__init__.py new file mode 100644 index 0000000..a1ecc88 --- /dev/null +++ b/account_bank_statement_import_camt_oca/models/__init__.py @@ -0,0 +1,3 @@ +from . import parser +from . import account_bank_statement_import +from . import account_journal diff --git a/account_bank_statement_import_camt_oca/models/account_bank_statement_import.py b/account_bank_statement_import_camt_oca/models/account_bank_statement_import.py new file mode 100644 index 0000000..75f68d3 --- /dev/null +++ b/account_bank_statement_import_camt_oca/models/account_bank_statement_import.py @@ -0,0 +1,38 @@ +# Copyright 2013-2016 Therp BV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +import logging +from io import BytesIO +import zipfile +from odoo import api, models + +_logger = logging.getLogger(__name__) + + +class AccountBankStatementImport(models.TransientModel): + _inherit = 'account.bank.statement.import' + + @api.model + def _parse_file(self, data_file): + """Parse a CAMT053 XML file.""" + try: + parser = self.env['account.bank.statement.import.camt.parser'] + _logger.debug("Try parsing with camt.") + return parser.parse(data_file) + except ValueError: + try: + with zipfile.ZipFile(BytesIO(data_file)) as data: + currency = None + account_number = None + transactions = [] + for member in data.namelist(): + currency, account_number, new = self._parse_file( + data.open(member).read() + ) + transactions.extend(new) + return currency, account_number, transactions + except (zipfile.BadZipFile, ValueError): + pass + # Not a camt file, returning super will call next candidate: + _logger.debug("Statement file was not a camt file.", + exc_info=True) + return super(AccountBankStatementImport, self)._parse_file(data_file) diff --git a/account_bank_statement_import_camt_oca/models/account_journal.py b/account_bank_statement_import_camt_oca/models/account_journal.py new file mode 100644 index 0000000..ccc523c --- /dev/null +++ b/account_bank_statement_import_camt_oca/models/account_journal.py @@ -0,0 +1,14 @@ +# Copyright 2019 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import models, _ + + +class AccountJournal(models.Model): + _inherit = "account.journal" + + def _get_bank_statements_available_import_formats(self): + res = super(AccountJournal, self).\ + _get_bank_statements_available_import_formats() + res.extend([_('camt.053.001.02'), _('camt.054.001.02')]) + return res diff --git a/account_bank_statement_import_camt_oca/models/parser.py b/account_bank_statement_import_camt_oca/models/parser.py new file mode 100644 index 0000000..1e6fd9d --- /dev/null +++ b/account_bank_statement_import_camt_oca/models/parser.py @@ -0,0 +1,248 @@ +"""Class to parse camt files.""" +# Copyright 2013-2016 Therp BV +# Copyright 2017 Open Net Sàrl +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +import re +from lxml import etree + +from odoo import models + + +class CamtParser(models.AbstractModel): + _name = 'account.bank.statement.import.camt.parser' + _description = 'Account Bank Statement Import CAMT parser' + + def parse_amount(self, ns, node): + """Parse element that contains Amount and CreditDebitIndicator.""" + if node is None: + return 0.0 + sign = 1 + amount = 0.0 + sign_node = node.xpath('ns:CdtDbtInd', namespaces={'ns': ns}) + if not sign_node: + sign_node = node.xpath( + '../../ns:CdtDbtInd', namespaces={'ns': ns}) + if sign_node and sign_node[0].text == 'DBIT': + sign = -1 + amount_node = node.xpath('ns:Amt', namespaces={'ns': ns}) + if not amount_node: + amount_node = node.xpath( + './ns:AmtDtls/ns:TxAmt/ns:Amt', namespaces={'ns': ns}) + if amount_node: + amount = sign * float(amount_node[0].text) + return amount + + def add_value_from_node( + self, ns, node, xpath_str, obj, attr_name, join_str=None): + """Add value to object from first or all nodes found with xpath. + + If xpath_str is a list (or iterable), it will be seen as a series + of search path's in order of preference. The first item that results + in a found node will be used to set a value.""" + if not isinstance(xpath_str, (list, tuple)): + xpath_str = [xpath_str] + for search_str in xpath_str: + found_node = node.xpath(search_str, namespaces={'ns': ns}) + if found_node: + if join_str is None: + attr_value = found_node[0].text + else: + attr_value = join_str.join([x.text for x in found_node]) + obj[attr_name] = attr_value + break + + def parse_transaction_details(self, ns, node, transaction): + """Parse TxDtls node.""" + # message + self.add_value_from_node( + ns, node, [ + './ns:RmtInf/ns:Ustrd|./ns:RtrInf/ns:AddtlInf', + './ns:AddtlNtryInf', + './ns:Refs/ns:InstrId', + ], transaction, 'name', join_str='\n') + # name + self.add_value_from_node( + ns, node, [ + './ns:AddtlTxInf', + ], transaction, 'note', join_str='\n') + # eref + self.add_value_from_node( + ns, node, [ + './ns:RmtInf/ns:Strd/ns:CdtrRefInf/ns:Ref', + './ns:Refs/ns:EndToEndId', + './ns:Ntry/ns:AcctSvcrRef' + ], + transaction, 'ref' + ) + amount = self.parse_amount(ns, node) + if amount != 0.0: + transaction['amount'] = amount + # remote party values + party_type = 'Dbtr' + party_type_node = node.xpath( + '../../ns:CdtDbtInd', namespaces={'ns': ns}) + if party_type_node and party_type_node[0].text != 'CRDT': + party_type = 'Cdtr' + party_node = node.xpath( + './ns:RltdPties/ns:%s' % party_type, namespaces={'ns': ns}) + if party_node: + self.add_value_from_node( + ns, party_node[0], './ns:Nm', transaction, 'partner_name') + # Get remote_account from iban or from domestic account: + account_node = node.xpath( + './ns:RltdPties/ns:%sAcct/ns:Id' % party_type, + namespaces={'ns': ns} + ) + if account_node: + iban_node = account_node[0].xpath( + './ns:IBAN', namespaces={'ns': ns}) + if iban_node: + transaction['account_number'] = iban_node[0].text + else: + self.add_value_from_node( + ns, account_node[0], './ns:Othr/ns:Id', transaction, + 'account_number' + ) + + def parse_entry(self, ns, node): + """Parse an Ntry node and yield transactions""" + transaction = {'name': '/', 'amount': 0} # fallback defaults + self.add_value_from_node( + ns, node, './ns:BookgDt/ns:Dt', transaction, 'date') + amount = self.parse_amount(ns, node) + if amount != 0.0: + transaction['amount'] = amount + self.add_value_from_node( + ns, node, './ns:AddtlNtryInf', transaction, 'name') + self.add_value_from_node( + ns, node, [ + './ns:NtryDtls/ns:RmtInf/ns:Strd/ns:CdtrRefInf/ns:Ref', + './ns:NtryDtls/ns:Btch/ns:PmtInfId', + './ns:NtryDtls/ns:TxDtls/ns:Refs/ns:AcctSvcrRef' + ], + transaction, 'ref' + ) + + details_nodes = node.xpath( + './ns:NtryDtls/ns:TxDtls', namespaces={'ns': ns}) + if len(details_nodes) == 0: + yield transaction + return + transaction_base = transaction + for node in details_nodes: + transaction = transaction_base.copy() + self.parse_transaction_details(ns, node, transaction) + yield transaction + + def get_balance_amounts(self, ns, node): + """Return opening and closing balance. + + Depending on kind of balance and statement, the balance might be in a + different kind of node: + OPBD = OpeningBalance + PRCD = PreviousClosingBalance + ITBD = InterimBalance (first ITBD is start-, second is end-balance) + CLBD = ClosingBalance + """ + start_balance_node = None + end_balance_node = None + for node_name in ['OPBD', 'PRCD', 'CLBD', 'ITBD']: + code_expr = ( + './ns:Bal/ns:Tp/ns:CdOrPrtry/ns:Cd[text()="%s"]/../../..' % + node_name + ) + balance_node = node.xpath(code_expr, namespaces={'ns': ns}) + if balance_node: + if node_name in ['OPBD', 'PRCD']: + start_balance_node = balance_node[0] + elif node_name == 'CLBD': + end_balance_node = balance_node[0] + else: + if not start_balance_node: + start_balance_node = balance_node[0] + if not end_balance_node: + end_balance_node = balance_node[-1] + return ( + self.parse_amount(ns, start_balance_node), + self.parse_amount(ns, end_balance_node) + ) + + def parse_statement(self, ns, node): + """Parse a single Stmt node.""" + result = {} + self.add_value_from_node( + ns, node, [ + './ns:Acct/ns:Id/ns:IBAN', + './ns:Acct/ns:Id/ns:Othr/ns:Id', + ], result, 'account_number' + ) + self.add_value_from_node( + ns, node, './ns:Id', result, 'name') + self.add_value_from_node( + ns, node, './ns:Acct/ns:Ccy', result, 'currency') + result['balance_start'], result['balance_end_real'] = ( + self.get_balance_amounts(ns, node)) + entry_nodes = node.xpath('./ns:Ntry', namespaces={'ns': ns}) + transactions = [] + for entry_node in entry_nodes: + transactions.extend(self.parse_entry(ns, entry_node)) + result['transactions'] = transactions + result['date'] = None + if transactions: + result['date'] = sorted(transactions, + key=lambda x: x['date'], + reverse=True + )[0]['date'] + return result + + def check_version(self, ns, root): + """Validate validity of camt file.""" + # Check whether it is camt at all: + re_camt = re.compile( + r'(^urn:iso:std:iso:20022:tech:xsd:camt.' + r'|^ISO:camt.)' + ) + if not re_camt.search(ns): + raise ValueError('no camt: ' + ns) + # Check whether version 052 ,053 or 054: + re_camt_version = re.compile( + r'(^urn:iso:std:iso:20022:tech:xsd:camt.054.' + r'|^urn:iso:std:iso:20022:tech:xsd:camt.053.' + r'|^urn:iso:std:iso:20022:tech:xsd:camt.052.' + r'|^ISO:camt.054.' + r'|^ISO:camt.053.' + r'|^ISO:camt.052.)' + ) + if not re_camt_version.search(ns): + raise ValueError('no camt 052 or 053 or 054: ' + ns) + # Check GrpHdr element: + root_0_0 = root[0][0].tag[len(ns) + 2:] # strip namespace + if root_0_0 != 'GrpHdr': + raise ValueError('expected GrpHdr, got: ' + root_0_0) + + def parse(self, data): + """Parse a camt.052 or camt.053 or camt.054 file.""" + try: + root = etree.fromstring( + data, parser=etree.XMLParser(recover=True)) + except etree.XMLSyntaxError: + # ABNAmro is known to mix up encodings + root = etree.fromstring( + data.decode('iso-8859-15').encode('utf-8')) + if root is None: + raise ValueError( + 'Not a valid xml file, or not an xml file at all.') + ns = root.tag[1:root.tag.index("}")] + self.check_version(ns, root) + statements = [] + currency = None + account_number = None + for node in root[0][1:]: + statement = self.parse_statement(ns, node) + if len(statement['transactions']): + if 'currency' in statement: + currency = statement.pop('currency') + if 'account_number' in statement: + account_number = statement.pop('account_number') + statements.append(statement) + return currency, account_number, statements diff --git a/account_bank_statement_import_camt_oca/readme/CONTRIBUTORS.rst b/account_bank_statement_import_camt_oca/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000..e10c70b --- /dev/null +++ b/account_bank_statement_import_camt_oca/readme/CONTRIBUTORS.rst @@ -0,0 +1,5 @@ +* Holger Brunn +* Stefan Rijnhart +* Ronald Portier +* Andrea Stirpe +* Maxence Groine diff --git a/account_bank_statement_import_camt_oca/readme/DESCRIPTION.rst b/account_bank_statement_import_camt_oca/readme/DESCRIPTION.rst new file mode 100644 index 0000000..c795774 --- /dev/null +++ b/account_bank_statement_import_camt_oca/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +Module to import SEPA CAMT.053 and CAMT.054 Format bank statement files. diff --git a/account_bank_statement_import_camt_oca/static/description/index.html b/account_bank_statement_import_camt_oca/static/description/index.html new file mode 100644 index 0000000..76b8f32 --- /dev/null +++ b/account_bank_statement_import_camt_oca/static/description/index.html @@ -0,0 +1,423 @@ + + + + + + +CAMT Format Bank Statements Import + + + +
+

CAMT Format Bank Statements Import

+ + +

Beta License: AGPL-3 OCA/bank-statement-import Translate me on Weblate Try me on Runbot

+

Module to import SEPA CAMT.053 and CAMT.054 Format bank statement files.

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Therp BV
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/bank-statement-import project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/account_bank_statement_import_camt_oca/test_files/golden-camt053-no-ntry.pydata b/account_bank_statement_import_camt_oca/test_files/golden-camt053-no-ntry.pydata new file mode 100644 index 0000000..ca89faa --- /dev/null +++ b/account_bank_statement_import_camt_oca/test_files/golden-camt053-no-ntry.pydata @@ -0,0 +1 @@ +(None, None, []) diff --git a/account_bank_statement_import_camt_oca/test_files/golden-camt053-txdtls.pydata b/account_bank_statement_import_camt_oca/test_files/golden-camt053-txdtls.pydata new file mode 100644 index 0000000..9b73d97 --- /dev/null +++ b/account_bank_statement_import_camt_oca/test_files/golden-camt053-txdtls.pydata @@ -0,0 +1,18 @@ +(None, + 'CH1111000000123456789', + [{'balance_end_real': 79443.15, + 'balance_start': 75960.15, + 'date': '2017-03-22', + 'name': '20170323123456789012345', + 'transactions': [{'account_number': 'CH2222000000123456789', + 'amount': 2187.0, + 'date': '2017-03-22', + 'name': 'CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ID: 123456CHCAFEBABE', + 'partner_name': 'Banque Cantonale Vaudoise', + 'ref': '302388292000011111111111111'}, + {'account_number': 'CH3333000000123456789', + 'amount': 1296.0, + 'date': '2017-03-22', + 'name': 'CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ID: 123456CHCAFEBABE', + 'partner_name': 'Banque Cantonale Vaudoise', + 'ref': '302388292000022222222222222'}]}]) diff --git a/account_bank_statement_import_camt_oca/test_files/golden-camt053.pydata b/account_bank_statement_import_camt_oca/test_files/golden-camt053.pydata new file mode 100644 index 0000000..4bcdee9 --- /dev/null +++ b/account_bank_statement_import_camt_oca/test_files/golden-camt053.pydata @@ -0,0 +1,34 @@ +(None, + 'NL77ABNA0574908765', + [{'balance_end_real': 15121.12, + 'balance_start': 15568.27, + 'date': '2014-01-05', + 'name': '1234Test/1', + 'transactions': [{'account_number': 'NL46ABNA0499998748', + 'amount': -754.25, + 'date': '2014-01-05', + 'name': 'Insurance policy 857239PERIOD 01.01.2014 - 31.12.2014', + 'note': 'MKB Insurance 859239PERIOD 01.01.2014 - 31.12.2014', + 'partner_name': 'INSURANCE COMPANY TESTX', + 'ref': '435005714488-ABNO33052620'}, + {'account_number': 'NL46ABNA0499998748', + 'amount': -564.05, + 'date': '2014-01-05', + 'name': 'Direct Debit S14 0410', + 'note': 'Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408', + 'partner_name': 'Test Customer', + 'ref': 'TESTBANK/NL/20141229/01206408'}, + {'account_number': 'NL46ABNA0499998748', + 'amount': -100.0, + 'date': '2014-01-05', + 'name': 'Direct Debit S14 0410', + 'note': 'Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408', + 'partner_name': 'Test Customer', + 'ref': 'TESTBANK/NL/20141229/01206407'}, + {'account_number': 'NL69ABNA0522123643', + 'amount': 1405.31, + 'date': '2014-01-05', + 'name': 'INNDNL2U20140105000217200000708', + 'note': '#RD PARTY MEDIA CUSNO 90782 4210773', + 'partner_name': '3rd party Media', + 'ref': '115'}]}]) diff --git a/account_bank_statement_import_camt_oca/test_files/test-camt053 b/account_bank_statement_import_camt_oca/test_files/test-camt053 new file mode 100644 index 0000000..1f15c84 --- /dev/null +++ b/account_bank_statement_import_camt_oca/test_files/test-camt053 @@ -0,0 +1,289 @@ + + + + TESTBANK/NL/1420561226673 + 2014-01-06T16:20:26.673Z + + + 1234Test/1 + 2 + 2014-01-06T16:20:26.673Z + + 2014-01-05T00:00:00.000Z + 2014-01-05T23:59:59.999Z + + + + NL77ABNA0574908765 + + Example company + + + ABNANL2A + + + + + + + OPBD + + + 15568.27 + CRDT +
+
2014-01-05
+ +
+ + + + CLBD + + + 15121.12 + CRDT +
+
2014-01-05
+ +
+ + 754.25 + DBIT + BOOK + +
2014-01-05
+
+ +
2014-01-05
+
+ + + PMNT + + RDDT + ESDD + + + + EI + + + + + + INNDNL2U20141231000142300002844 + 435005714488-ABNO33052620 + 1880000341866 + + + + 754.25 + + + + + INSURANCE COMPANY TESTX + + TEST STREET 20 + 1234 AB TESTCITY + NL + + + + + NL46ABNA0499998748 + + + + + + + ABNANL2A + + + + + Insurance policy 857239PERIOD 01.01.2014 - 31.12.2014 + + MKB Insurance 859239PERIOD 01.01.2014 - 31.12.2014 + + +
+ + 664.05 + DBIT + true + BOOK + +
2014-01-05
+
+ +
2014-01-05
+
+ + + PMNT + + IDDT + UPDD + + + + EIST + + + + + 2014/125 + 2018/125-20141229-NORM + 2 + 664.05 + DBIT + + + + TESTBANK/NL/20141229/01206408 + TESTBANK/NL/20141229/01206408 + NL22ZZZ524885430000-C0125.1 + + + + 564.05 + + + + + Test Customer + + NL + + + + + NL46ABNA0499998748 + + + + + + + ABNANL2A + + + + + Direct Debit S14 0410 + + + + AC06 + + + Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408 + + + + TESTBANK/NL/20141229/01206407 + TESTBANK/NL/20141229/01206407 + NL22ZZZ524885430000-C0125.2 + + + + 100.00 + + + + + Test Customer + + NL + + + + + NL46ABNA0499998748 + + + + + + + ABNANL2A + + + + + Direct Debit S14 0410 + + + + AC06 + + + Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408 + + +
+ + 1405.31 + CRDT + BOOK + +
2014-01-05
+
+ +
2014-01-05
+
+ + + PMNT + + RCDT + ESCT + + + + ET + + + + + + INNDNL2U20140105000217200000708 + 115 + + + + 1405.31 + + + + + 3rd party Media + + SOMESTREET 570-A + 1276 ML HOUSCITY + NL + + + + + NL69ABNA0522123643 + + + + + + + ABNANL2A + + + + #RD PARTY MEDIA CUSNO 90782 4210773 + + +
+
+
+
diff --git a/account_bank_statement_import_camt_oca/test_files/test-camt053-no-ntry b/account_bank_statement_import_camt_oca/test_files/test-camt053-no-ntry new file mode 100644 index 0000000..03f8f62 --- /dev/null +++ b/account_bank_statement_import_camt_oca/test_files/test-camt053-no-ntry @@ -0,0 +1,52 @@ + + + + TESTBANK/NL/1420561226673 + 2014-01-06T16:20:26.673Z + + + 1234Test/1 + 2 + 2014-01-06T16:20:26.673Z + + 2014-01-05T00:00:00.000Z + 2014-01-05T23:59:59.999Z + + + + NL77ABNA0574908765 + + Example company + + + ABNANL2A + + + + + + + OPBD + + + 1520.76 + CRDT +
+
2014-01-05
+ +
+ + + + CLBD + + + 1520.76 + CRDT +
+
2014-01-05
+ +
+
+
+
diff --git a/account_bank_statement_import_camt_oca/test_files/test-camt053-txdtls b/account_bank_statement_import_camt_oca/test_files/test-camt053-txdtls new file mode 100644 index 0000000..cf7c38f --- /dev/null +++ b/account_bank_statement_import_camt_oca/test_files/test-camt053-txdtls @@ -0,0 +1,214 @@ + + + + + 20170323312345678900000 + 2017-03-23T14:47:00 + + 1 + true + + Test + + + 20170323123456789012345 + 58 + 2017-03-23T14:47:00 + + 2017-03-23T00:00:00 + 2017-03-23T23:59:59 + + + + CH1111000000123456789 + + + Open Net S. à r.l. Prilly + + + + + + OPBD + + + 75960.15 + CRDT +
+
2017-03-22
+ +
+ + + + CLBD + + + 79443.15 + CRDT +
+
2017-03-23
+ +
+ + 012345678 + 3483.00 + CRDT + false + BOOK + +
2017-03-22
+
+ +
2017-03-23
+
+ 20170323001234567891234567891234 + + + PMNT + + RCDT + VCOM + + + + + + 2 + + + + 123456CHCAFEBABE + + 01 + 123456CHCAFEBABE + + + 2187.00 + CRDT + + + PMNT + + RCDT + AUTT + + + + + + Banque Cantonale Vaudoise + + Place Saint-François + 14 + 1003 + Lausanne + CH1 + + + + + CH2222000000123456789 + + + + + + + POFICHBEXXX + POSTFINANCE AG + + MINGERSTRASSE 20 + 3030 BERNE + + + + + + + + + + ISR Reference + + + 302388292000011111111111111 + + ?REJECT?0 + + + + 2017-03-22T20:00:00 + + + + + 123456CHCAFEBABE + + 01 + 123456CHCAFEBABE + + + 1296.00 + CRDT + + + PMNT + + RCDT + AUTT + + + + + + Banque Cantonale Vaudoise + + Place Saint-François + 14 + 1003 + Lausanne + CH2 + + + + + CH3333000000123456789 + + + + + + + POFICHBEYYY + POSTFINANCE AG + + MINGERSTRASSE 20 + 3030 BERNE + + + + + + + + + + ISR Reference + + + 302388292000022222222222222 + + ?REJECT?0 + + + + 2017-03-22T20:00:00 + + + + CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ID: 123456CHCAFEBABE +
+
+
+
diff --git a/account_bank_statement_import_camt_oca/test_files/test-camt053.zip b/account_bank_statement_import_camt_oca/test_files/test-camt053.zip new file mode 100644 index 0000000..ccf5b3c Binary files /dev/null and b/account_bank_statement_import_camt_oca/test_files/test-camt053.zip differ diff --git a/account_bank_statement_import_camt_oca/tests/__init__.py b/account_bank_statement_import_camt_oca/tests/__init__.py new file mode 100644 index 0000000..bb3456a --- /dev/null +++ b/account_bank_statement_import_camt_oca/tests/__init__.py @@ -0,0 +1 @@ +from . import test_import_bank_statement diff --git a/account_bank_statement_import_camt_oca/tests/test_import_bank_statement.py b/account_bank_statement_import_camt_oca/tests/test_import_bank_statement.py new file mode 100644 index 0000000..7340845 --- /dev/null +++ b/account_bank_statement_import_camt_oca/tests/test_import_bank_statement.py @@ -0,0 +1,155 @@ +# Copyright 2013-2016 Therp BV +# Copyright 2017 Open Net Sàrl +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +import base64 +from datetime import date +import difflib +import pprint +import tempfile + + +from odoo.tests.common import TransactionCase +from odoo.modules.module import get_module_resource + + +class TestParser(TransactionCase): + """Tests for the camt parser itself.""" + def setUp(self): + super(TestParser, self).setUp() + self.parser = self.env['account.bank.statement.import.camt.parser'] + + def _do_parse_test(self, inputfile, goldenfile): + testfile = get_module_resource( + 'account_bank_statement_import_camt_oca', + 'test_files', + inputfile, + ) + with open(testfile, 'rb') as data: + res = self.parser.parse(data.read()) + with tempfile.NamedTemporaryFile(mode='w+', + suffix='.pydata') as temp: + pprint.pprint(res, temp, width=160) + goldenfile_res = get_module_resource( + 'account_bank_statement_import_camt_oca', + 'test_files', + goldenfile, + ) + with open(goldenfile_res, 'r') as golden: + temp.seek(0) + diff = list( + difflib.unified_diff(golden.readlines(), + temp.readlines(), + golden.name, + temp.name)) + if len(diff) > 2: + self.fail( + "actual output doesn't match expected " + + "output:\n%s" % + "".join(diff)) + + def test_parse(self): + self._do_parse_test( + 'test-camt053', + 'golden-camt053.pydata') + + def test_parse_txdtls(self): + self._do_parse_test( + 'test-camt053-txdtls', + 'golden-camt053-txdtls.pydata') + + def test_parse_no_ntry(self): + self._do_parse_test( + 'test-camt053-no-ntry', + 'golden-camt053-no-ntry.pydata') + + +class TestImport(TransactionCase): + """Run test to import camt import.""" + transactions = [ + { + 'account_number': 'NL46ABNA0499998748', + 'amount': -754.25, + 'date': date(year=2014, month=1, day=5), + 'ref': '435005714488-ABNO33052620', + }, + { + 'remote_account': 'NL46ABNA0499998748', + 'transferred_amount': -564.05, + 'value_date': date(year=2014, month=1, day=5), + 'ref': 'TESTBANK/NL/20141229/01206408', + }, + { + 'remote_account': 'NL46ABNA0499998748', + 'transferred_amount': -100.0, + 'value_date': date(year=2014, month=1, day=5), + 'ref': 'TESTBANK/NL/20141229/01206407', + }, + { + 'remote_account': 'NL69ABNA0522123643', + 'transferred_amount': 1405.31, + 'value_date': date(year=2014, month=1, day=5), + 'ref': '115', + }, + ] + + def setUp(self): + super(TestImport, self).setUp() + bank = self.env['res.partner.bank'].create({ + 'acc_number': 'NL77ABNA0574908765', + 'partner_id': self.env.ref('base.main_partner').id, + 'company_id': self.env.ref('base.main_company').id, + 'bank_id': self.env.ref('base.res_bank_1').id, + }) + self.env['res.partner.bank'].create({ + 'acc_number': 'NL46ABNA0499998748', + 'partner_id': self.env.ref('base.main_partner').id, + 'company_id': self.env.ref('base.main_company').id, + 'bank_id': self.env.ref('base.res_bank_1').id, + }) + self.env['account.journal'].create({ + 'name': 'Bank Journal - (test camt)', + 'code': 'TBNKCAMT', + 'type': 'bank', + 'bank_account_id': bank.id, + }) + + def test_statement_import(self): + """Test correct creation of single statement.""" + testfile = get_module_resource( + 'account_bank_statement_import_camt_oca', + 'test_files', + 'test-camt053', + ) + with open(testfile, 'rb') as datafile: + action = self.env['account.bank.statement.import'].create({ + 'data_file': base64.b64encode(datafile.read()) + }).import_file() + + statement_lines = self.env['account.bank.statement'].browse( + action['context']['statement_ids'] + ).line_ids + self.assertTrue(any( + all( + line[key] == self.transactions[0][key] + for key in ['amount', 'date', 'ref'] + ) and + line.bank_account_id.acc_number == + self.transactions[0]['account_number'] + for line in statement_lines + )) + + def test_zip_import(self): + """Test import of multiple statements from zip file.""" + testfile = get_module_resource( + 'account_bank_statement_import_camt_oca', + 'test_files', + 'test-camt053.zip', + ) + with open(testfile, 'rb') as datafile: + action = self.env['account.bank.statement.import'].create({ + 'data_file': base64.b64encode(datafile.read()), + }).import_file() + + for statement in self.env['account.bank.statement'].browse( + action['context']['statement_ids']): + self.assertTrue(statement.line_ids) diff --git a/account_bank_statement_import_camt_oca/views/account_bank_statement_import.xml b/account_bank_statement_import_camt_oca/views/account_bank_statement_import.xml new file mode 100644 index 0000000..92d3c08 --- /dev/null +++ b/account_bank_statement_import_camt_oca/views/account_bank_statement_import.xml @@ -0,0 +1,13 @@ + + + + account.bank.statement.import + + +
    +
  • CAMT
  • +
  • zipped CAMT
  • +
+
+
+
diff --git a/setup/account_bank_statement_import_camt_oca/odoo/addons/account_bank_statement_import_camt_oca b/setup/account_bank_statement_import_camt_oca/odoo/addons/account_bank_statement_import_camt_oca new file mode 120000 index 0000000..ceba169 --- /dev/null +++ b/setup/account_bank_statement_import_camt_oca/odoo/addons/account_bank_statement_import_camt_oca @@ -0,0 +1 @@ +../../../../account_bank_statement_import_camt_oca \ No newline at end of file diff --git a/setup/account_bank_statement_import_camt_oca/setup.py b/setup/account_bank_statement_import_camt_oca/setup.py new file mode 100644 index 0000000..28c57bb --- /dev/null +++ b/setup/account_bank_statement_import_camt_oca/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)