Compare commits
merge into: OCA:11.0
OCA:10.0
OCA:11.0
OCA:12.0
OCA:12.0_PR200
OCA:12.0_PR215
OCA:12.0_bank_statement_import_test
OCA:12.0_fix_qonto_2022_date
OCA:7.0
OCA:8.0
OCA:9.0
pull from: OCA:10.0
OCA:10.0
OCA:11.0
OCA:12.0
OCA:12.0_PR200
OCA:12.0_PR215
OCA:12.0_bank_statement_import_test
OCA:12.0_fix_qonto_2022_date
OCA:7.0
OCA:8.0
OCA:9.0
No commits in common. '11.0' and '10.0' have entirely different histories.
261 changed files with 4482 additions and 3505 deletions
-
8.travis.yml
-
34README.md
-
19account_bank_statement_import_camt/README.rst
-
1account_bank_statement_import_camt/__init__.py
-
3account_bank_statement_import_camt/__manifest__.py
-
50account_bank_statement_import_camt/i18n/account_bank_statement_import_camt.pot
-
17account_bank_statement_import_camt/i18n/account_bank_statement_import_camt_oca.pot
-
30account_bank_statement_import_camt/i18n/de.po
-
55account_bank_statement_import_camt/i18n/es.po
-
30account_bank_statement_import_camt/i18n/fi.po
-
55account_bank_statement_import_camt/i18n/fr.po
-
30account_bank_statement_import_camt/i18n/fr_CH.po
-
30account_bank_statement_import_camt/i18n/gl.po
-
55account_bank_statement_import_camt/i18n/hr.po
-
30account_bank_statement_import_camt/i18n/lt_LT.po
-
30account_bank_statement_import_camt/i18n/nb_NO.po
-
55account_bank_statement_import_camt/i18n/nl.po
-
30account_bank_statement_import_camt/i18n/pt_BR.po
-
30account_bank_statement_import_camt/i18n/pt_PT.po
-
30account_bank_statement_import_camt/i18n/sl.po
-
1account_bank_statement_import_camt/models/__init__.py
-
7account_bank_statement_import_camt/models/account_bank_statement_import.py
-
12account_bank_statement_import_camt/models/parser.py
-
0account_bank_statement_import_camt/static/description/icon.png
-
0account_bank_statement_import_camt/test_files/golden-camt053-no-ntry.pydata
-
4account_bank_statement_import_camt/test_files/golden-camt053-txdtls.pydata
-
0account_bank_statement_import_camt/test_files/golden-camt053.pydata
-
0account_bank_statement_import_camt/test_files/test-camt053
-
0account_bank_statement_import_camt/test_files/test-camt053-no-ntry
-
0account_bank_statement_import_camt/test_files/test-camt053-txdtls
-
0account_bank_statement_import_camt/test_files/test-camt053.zip
-
1account_bank_statement_import_camt/tests/__init__.py
-
132account_bank_statement_import_camt/tests/test_import_bank_statement.py
-
0account_bank_statement_import_camt/views/account_bank_statement_import.xml
-
48account_bank_statement_import_camt_details/README.rst
-
4account_bank_statement_import_camt_details/__init__.py
-
20account_bank_statement_import_camt_details/__manifest__.py
-
50account_bank_statement_import_camt_details/i18n/account_bank_statement_import_camt_details.pot
-
5account_bank_statement_import_camt_details/models/__init__.py
-
27account_bank_statement_import_camt_details/models/account_bank_statement_line.py
-
65account_bank_statement_import_camt_details/models/camt_parser.py
-
BINaccount_bank_statement_import_camt_details/static/description/icon.png
-
12account_bank_statement_import_camt_details/static/src/xml/camt_details_reconciliation_layout.xml
-
5account_bank_statement_import_camt_details/tests/__init__.py
-
69account_bank_statement_import_camt_details/tests/test_import_bank_statement.py
-
17account_bank_statement_import_camt_details/views/account_bank_statement_line.xml
-
1account_bank_statement_import_camt_oca
-
54account_bank_statement_import_camt_oca/i18n/es.po
-
55account_bank_statement_import_camt_oca/i18n/fa.po
-
54account_bank_statement_import_camt_oca/i18n/fr.po
-
55account_bank_statement_import_camt_oca/i18n/hr.po
-
59account_bank_statement_import_camt_oca/i18n/nl.po
-
150account_bank_statement_import_camt_oca/tests/test_import_bank_statement.py
-
69account_bank_statement_import_move_line/README.rst
-
1account_bank_statement_import_move_line/__init__.py
-
4account_bank_statement_import_move_line/__manifest__.py
-
4account_bank_statement_import_move_line/i18n/account_bank_statement_import_move_line.pot
-
2account_bank_statement_import_move_line/i18n/de.po
-
2account_bank_statement_import_move_line/i18n/es.po
-
2account_bank_statement_import_move_line/i18n/fr.po
-
2account_bank_statement_import_move_line/i18n/hr.po
-
2account_bank_statement_import_move_line/i18n/nl.po
-
2account_bank_statement_import_move_line/i18n/pt_BR.po
-
2account_bank_statement_import_move_line/i18n/pt_PT.po
-
2account_bank_statement_import_move_line/i18n/sl.po
-
1account_bank_statement_import_move_line/models/__init__.py
-
1account_bank_statement_import_move_line/models/account_move_line.py
-
1account_bank_statement_import_move_line/readme/CONTRIBUTORS.rst
-
3account_bank_statement_import_move_line/readme/DESCRIPTION.rst
-
8account_bank_statement_import_move_line/readme/USAGE.rst
-
435account_bank_statement_import_move_line/static/description/index.html
-
1account_bank_statement_import_move_line/tests/__init__.py
-
1account_bank_statement_import_move_line/tests/test_account_bank_statement_import_move_line.py
-
1account_bank_statement_import_move_line/wizards/__init__.py
-
1account_bank_statement_import_move_line/wizards/account_statement_line_create.py
-
3account_bank_statement_import_mt940_base/__manifest__.py
-
2account_bank_statement_import_mt940_base/i18n/account_bank_statement_import_mt940_base.pot
-
5account_bank_statement_import_mt940_base/mt940.py
-
156account_bank_statement_import_mt940_base/test_files/test-sns.940
-
1account_bank_statement_import_mt940_base/tests/test_import_bank_statement.py
-
51account_bank_statement_import_mt940_nl_ing/README.rst
-
1account_bank_statement_import_mt940_nl_ing/__init__.py
-
34account_bank_statement_import_mt940_nl_ing/__manifest__.py
-
44account_bank_statement_import_mt940_nl_ing/account_bank_statement_import.py
-
26account_bank_statement_import_mt940_nl_ing/demo/demo_data.xml
-
23account_bank_statement_import_mt940_nl_ing/i18n/es.po
-
23account_bank_statement_import_mt940_nl_ing/i18n/fr.po
-
23account_bank_statement_import_mt940_nl_ing/i18n/lt_LT.po
-
23account_bank_statement_import_mt940_nl_ing/i18n/nl.po
-
23account_bank_statement_import_mt940_nl_ing/i18n/pt_BR.po
-
23account_bank_statement_import_mt940_nl_ing/i18n/sl.po
-
66account_bank_statement_import_mt940_nl_ing/mt940.py
-
61account_bank_statement_import_mt940_nl_ing/test_files/test-ing-old.940
-
62account_bank_statement_import_mt940_nl_ing/test_files/test-ing.940
-
25account_bank_statement_import_mt940_nl_ing/tests/__init__.py
-
53account_bank_statement_import_mt940_nl_ing/tests/test_import_bank_statement.py
-
47account_bank_statement_import_mt940_nl_rabo/README.rst
-
20account_bank_statement_import_mt940_nl_rabo/__init__.py
-
32account_bank_statement_import_mt940_nl_rabo/__manifest__.py
-
46account_bank_statement_import_mt940_nl_rabo/account_bank_statement_import.py
@ -1,3 +1,4 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2013-2016 Therp BV <http://therp.nl> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
from . import models |
@ -1,8 +1,9 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2013-2017 Therp BV <http://therp.nl> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
{ |
|||
'name': 'CAMT Format Bank Statements Import', |
|||
'version': '11.0.1.0.4', |
|||
'version': '10.0.1.1.5', |
|||
'license': 'AGPL-3', |
|||
'author': 'Odoo Community Association (OCA), Therp BV', |
|||
'website': 'https://github.com/OCA/bank-statement-import', |
@ -0,0 +1,50 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_camt |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 10.0\n" |
|||
"Report-Msgid-Bugs-To: \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 |
|||
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view |
|||
msgid "CAMT" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt.field_account_bank_statement_import_camt_parser_display_name |
|||
msgid "Display Name" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt.field_account_bank_statement_import_camt_parser_id |
|||
msgid "ID" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import |
|||
msgid "Import Bank Statement" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt.field_account_bank_statement_import_camt_parser___last_update |
|||
msgid "Last Modified on" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import_camt_parser |
|||
msgid "account.bank.statement.import.camt.parser" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view |
|||
msgid "zipped CAMT" |
|||
msgstr "" |
|||
|
@ -0,0 +1,55 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_camt |
|||
# |
|||
# Translators: |
|||
# OCA Transbot <transbot@odoo-community.org>, 2017 |
|||
# enjolras <yo@miguelrevilla.com>, 2018 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 10.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2018-02-21 01:41+0000\n" |
|||
"PO-Revision-Date: 2018-02-21 01:41+0000\n" |
|||
"Last-Translator: enjolras <yo@miguelrevilla.com>, 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 |
|||
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view |
|||
msgid "CAMT" |
|||
msgstr "CAMT" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt.field_account_bank_statement_import_camt_parser_display_name |
|||
msgid "Display Name" |
|||
msgstr "Nombre a mostrar" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt.field_account_bank_statement_import_camt_parser_id |
|||
msgid "ID" |
|||
msgstr "ID" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import |
|||
msgid "Import Bank Statement" |
|||
msgstr "Importar extracto bancario" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt.field_account_bank_statement_import_camt_parser___last_update |
|||
msgid "Last Modified on" |
|||
msgstr "Última modificación en" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import_camt_parser |
|||
msgid "account.bank.statement.import.camt.parser" |
|||
msgstr "account.bank.statement.import.camt.parser" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view |
|||
msgid "zipped CAMT" |
|||
msgstr "CAMT en .zip" |
@ -0,0 +1,55 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_camt |
|||
# |
|||
# Translators: |
|||
# Quentin THEURET <odoo@kerpeo.com>, 2017 |
|||
# OCA Transbot <transbot@odoo-community.org>, 2017 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 10.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2017-11-21 01:42+0000\n" |
|||
"PO-Revision-Date: 2017-11-21 01:42+0000\n" |
|||
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\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 |
|||
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view |
|||
msgid "CAMT" |
|||
msgstr "CAMT" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt.field_account_bank_statement_import_camt_parser_display_name |
|||
msgid "Display Name" |
|||
msgstr "Nom affiché" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt.field_account_bank_statement_import_camt_parser_id |
|||
msgid "ID" |
|||
msgstr "ID" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import |
|||
msgid "Import Bank Statement" |
|||
msgstr "Importer Relevé Bancaire" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt.field_account_bank_statement_import_camt_parser___last_update |
|||
msgid "Last Modified on" |
|||
msgstr "Dernière modification le" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import_camt_parser |
|||
msgid "account.bank.statement.import.camt.parser" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view |
|||
msgid "zipped CAMT" |
|||
msgstr "CAMT zippé" |
@ -0,0 +1,55 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_camt |
|||
# |
|||
# Translators: |
|||
# Bole <bole@dajmi5.com>, 2018 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 10.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2018-02-21 01:41+0000\n" |
|||
"PO-Revision-Date: 2018-02-21 01:41+0000\n" |
|||
"Last-Translator: Bole <bole@dajmi5.com>, 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 |
|||
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view |
|||
msgid "CAMT" |
|||
msgstr "CAMT" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt.field_account_bank_statement_import_camt_parser_display_name |
|||
msgid "Display Name" |
|||
msgstr "Naziv" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt.field_account_bank_statement_import_camt_parser_id |
|||
msgid "ID" |
|||
msgstr "ID" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import |
|||
msgid "Import Bank Statement" |
|||
msgstr "Uvoz bankovnog izvoda" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt.field_account_bank_statement_import_camt_parser___last_update |
|||
msgid "Last Modified on" |
|||
msgstr "Zadnje modificirano" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import_camt_parser |
|||
msgid "account.bank.statement.import.camt.parser" |
|||
msgstr "account.bank.statement.import.camt.parser" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view |
|||
msgid "zipped CAMT" |
|||
msgstr "kompresirani CAMT" |
@ -0,0 +1,55 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_camt |
|||
# |
|||
# Translators: |
|||
# Erwin van der Ploeg <erwin@bas-solutions.nl>, 2015 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: bank-statement-import (8.0)\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-07-24 21:51+0000\n" |
|||
"PO-Revision-Date: 2015-07-31 06:44+0000\n" |
|||
"Last-Translator: Erwin van der Ploeg <erwin@bas-solutions.nl>\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" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view |
|||
msgid "CAMT" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt.field_account_bank_statement_import_camt_parser_display_name |
|||
msgid "Display Name" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt.field_account_bank_statement_import_camt_parser_id |
|||
msgid "ID" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import |
|||
msgid "Import Bank Statement" |
|||
msgstr "Importeer bankafschrift" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt.field_account_bank_statement_import_camt_parser___last_update |
|||
msgid "Last Modified on" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import_camt_parser |
|||
msgid "account.bank.statement.import.camt.parser" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt |
|||
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view |
|||
msgid "zipped CAMT" |
|||
msgstr "" |
@ -1,3 +1,4 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2013-2016 Therp BV <http://therp.nl> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
from . import parser |
Before Width: 128 | Height: 128 | Size: 9.2 KiB After Width: 128 | Height: 128 | Size: 9.2 KiB |
@ -1,3 +1,4 @@ |
|||
# -*- encoding: utf-8 -*- |
|||
"""Test import of bank statement for camt.053.""" |
|||
# © 2013-2016 Therp BV <http://therp.nl> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
@ -0,0 +1,132 @@ |
|||
# -*- coding: utf-8 -*- |
|||
"""Run test to import camt.053 import.""" |
|||
# © 2013-2016 Therp BV <http://therp.nl> |
|||
# Copyright 2017 Open Net Sàrl |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
import base64 |
|||
import difflib |
|||
import pprint |
|||
import tempfile |
|||
|
|||
from odoo.tests.common import TransactionCase |
|||
from odoo.tools.misc import file_open |
|||
|
|||
|
|||
DATA_DIR = 'account_bank_statement_import_camt/test_files/' |
|||
|
|||
|
|||
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): |
|||
with file_open(inputfile) as testfile: |
|||
data = testfile.read() |
|||
res = self.parser.parse(data) |
|||
with tempfile.NamedTemporaryFile(suffix='.pydata') as temp: |
|||
pprint.pprint(res, temp) |
|||
with file_open(goldenfile) 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 exptected output:\n%s" % |
|||
"".join(diff)) |
|||
|
|||
def test_parse(self): |
|||
self._do_parse_test( |
|||
DATA_DIR + 'test-camt053', |
|||
DATA_DIR + 'golden-camt053.pydata') |
|||
|
|||
def test_parse_txdtls(self): |
|||
self._do_parse_test( |
|||
DATA_DIR + 'test-camt053-txdtls', |
|||
DATA_DIR + 'golden-camt053-txdtls.pydata') |
|||
|
|||
def test_parse_no_ntry(self): |
|||
self._do_parse_test( |
|||
DATA_DIR + 'test-camt053-no-ntry', |
|||
DATA_DIR + 'golden-camt053-no-ntry.pydata', |
|||
) |
|||
|
|||
|
|||
class TestImport(TransactionCase): |
|||
"""Run test to import camt import.""" |
|||
transactions = [ |
|||
{ |
|||
'account_number': 'NL46ABNA0499998748', |
|||
'amount': -754.25, |
|||
'date': '2014-01-05', |
|||
'ref': '435005714488-ABNO33052620', |
|||
}, |
|||
{ |
|||
'remote_account': 'NL46ABNA0499998748', |
|||
'transferred_amount': -564.05, |
|||
'value_date': '2014-01-05', |
|||
'ref': 'TESTBANK/NL/20141229/01206408', |
|||
}, |
|||
{ |
|||
'remote_account': 'NL46ABNA0499998748', |
|||
'transferred_amount': -100.0, |
|||
'value_date': '2014-01-05', |
|||
'ref': 'TESTBANK/NL/20141229/01206407', |
|||
}, |
|||
{ |
|||
'remote_account': 'NL69ABNA0522123643', |
|||
'transferred_amount': 1405.31, |
|||
'value_date': '2014-01-05', |
|||
'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['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.""" |
|||
action = {} |
|||
with file_open(DATA_DIR + 'test-camt053') as testfile: |
|||
action = self.env['account.bank.statement.import'].create({ |
|||
'data_file': base64.b64encode(testfile.read()), |
|||
}).import_file() |
|||
for statement in self.env['account.bank.statement'].browse( |
|||
action['context']['statement_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.line_ids |
|||
)) |
|||
|
|||
def test_zip_import(self): |
|||
"""Test import of multiple statements from zip file.""" |
|||
with file_open( |
|||
'account_bank_statement_import_camt/test_files/test-camt053.zip' |
|||
) as testfile: |
|||
action = self.env['account.bank.statement.import'].create({ |
|||
'data_file': base64.b64encode(testfile.read()), |
|||
}).import_file() |
|||
for statement in self.env['account.bank.statement'].browse( |
|||
action['context']['statement_ids'] |
|||
): |
|||
self.assertTrue(statement.line_ids) |
@ -0,0 +1,48 @@ |
|||
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg |
|||
:alt: License: AGPL-3 |
|||
|
|||
Bank Statement Parse Camt Debitor Details |
|||
========================================= |
|||
|
|||
Module to add debitor details in bank statement lines from SEPA CAMT.053 Format bank statement files. |
|||
|
|||
Based on the Banking addons framework. |
|||
|
|||
Known issues / Roadmap |
|||
====================== |
|||
|
|||
* None |
|||
|
|||
Bug Tracker |
|||
=========== |
|||
|
|||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/bank-statement-import/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 |
|||
`here <https://github.com/OCA/bank-statement-import/issues/new?body=module:%20account_bank_statement_import%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. |
|||
|
|||
|
|||
Credits |
|||
======= |
|||
|
|||
Contributors |
|||
------------ |
|||
|
|||
* Emanuel Cino <ecino@compassion.ch> |
|||
|
|||
Maintainer |
|||
---------- |
|||
|
|||
.. image:: https://odoo-community.org/logo.png |
|||
:alt: Odoo Community Association |
|||
:target: https://odoo-community.org |
|||
|
|||
This module is maintained by the OCA. |
|||
|
|||
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. |
|||
|
|||
To contribute to this module, please visit http://odoo-community.org. |
|||
This module should make it easy to migrate bank statement import |
|||
modules written for earlies versions of Odoo/OpenERP. |
@ -0,0 +1,4 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2017 Compassion CH <http://www.compassion.ch> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
from . import models |
@ -0,0 +1,20 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2017 Compassion CH <http://www.compassion.ch> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
{ |
|||
'name': 'CAMT Debitor Details Bank Statements Import', |
|||
'version': '10.0.1.0.0', |
|||
'license': 'AGPL-3', |
|||
'author': 'Odoo Community Association (OCA), Compassion CH', |
|||
'website': 'https://github.com/OCA/bank-statement-import', |
|||
'category': 'Banking addons', |
|||
'depends': [ |
|||
'account_bank_statement_import_camt', |
|||
], |
|||
'data': [ |
|||
'views/account_bank_statement_line.xml', |
|||
], |
|||
'qweb': [ |
|||
'static/src/xml/camt_details_reconciliation_layout.xml', |
|||
] |
|||
} |
@ -0,0 +1,50 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_camt_details |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 10.0\n" |
|||
"Report-Msgid-Bugs-To: \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_details |
|||
#. openerp-web |
|||
#: code:addons/account_bank_statement_import_camt_details/static/src/xml/camt_details_reconciliation_layout.xml:6 |
|||
#, python-format |
|||
msgid "Address" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt_details |
|||
#: model:ir.model,name:account_bank_statement_import_camt_details.model_account_bank_statement_line |
|||
msgid "Bank Statement Line" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt_details |
|||
#. openerp-web |
|||
#: code:addons/account_bank_statement_import_camt_details/static/src/xml/camt_details_reconciliation_layout.xml:9 |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_details.field_account_bank_statement_line_partner_account |
|||
#, python-format |
|||
msgid "Partner account" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt_details |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_details.field_account_bank_statement_line_partner_address |
|||
msgid "Partner address" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt_details |
|||
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_details.field_account_bank_statement_line_partner_bic |
|||
msgid "Partner bic" |
|||
msgstr "" |
|||
|
|||
#. module: account_bank_statement_import_camt_details |
|||
#: model:ir.model,name:account_bank_statement_import_camt_details.model_account_bank_statement_import_camt_parser |
|||
msgid "account.bank.statement.import.camt.parser" |
|||
msgstr "" |
|||
|
@ -0,0 +1,5 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2017 Compassion CH <http://www.compassion.ch> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
from . import account_bank_statement_line |
|||
from . import camt_parser |
@ -0,0 +1,27 @@ |
|||
# -*- coding: utf-8 -*- |
|||
"""Add process_camt method to account.bank.statement.import.""" |
|||
# © 2017 Compassion CH <http://www.compassion.ch> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
from odoo import models, fields |
|||
|
|||
|
|||
class AccountBankStatementLine(models.Model): |
|||
"""Add process_camt method to account.bank.statement.import.""" |
|||
_inherit = 'account.bank.statement.line' |
|||
|
|||
partner_address = fields.Char() |
|||
partner_account = fields.Char() |
|||
partner_bic = fields.Char() |
|||
|
|||
def get_statement_line_for_reconciliation_widget(self): |
|||
""" Returns the data required by the bank statement |
|||
reconciliation widget to display a statement line |
|||
""" |
|||
data = super(AccountBankStatementLine, |
|||
self).get_statement_line_for_reconciliation_widget() |
|||
if self.partner_address: |
|||
data['partner_address'] = self.partner_address |
|||
if self.partner_account: |
|||
data['partner_account'] = self.partner_account |
|||
|
|||
return data |
@ -0,0 +1,65 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2017 Compassion CH <http://www.compassion.ch> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
from odoo import models |
|||
from odoo.tools import OrderedDict |
|||
|
|||
|
|||
class CamtDetailsParser(models.AbstractModel): |
|||
"""Parser for camt bank statement import files.""" |
|||
_inherit = 'account.bank.statement.import.camt.parser' |
|||
|
|||
def parse_transaction_details(self, ns, node, transaction): |
|||
"""Parse transaction details (message, party, account...).""" |
|||
super(CamtDetailsParser, self).parse_transaction_details( |
|||
ns, node, transaction) |
|||
|
|||
# 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' |
|||
address_node = node.xpath( |
|||
'./ns:RltdPties/ns:%s/ns:PstlAdr' % party_type, |
|||
namespaces={'ns': ns}) |
|||
if address_node and not transaction.get('partner_address'): |
|||
address_values = OrderedDict() |
|||
street_node = address_node[0].xpath( |
|||
'./ns:StrtNm', namespaces={'ns': ns}) |
|||
if street_node: |
|||
address_values['street'] = street_node[0].text |
|||
building_node = address_node[0].xpath( |
|||
'./ns:BldgNb', namespaces={'ns': ns}) |
|||
if building_node: |
|||
address_values['building'] = building_node[0].text |
|||
zip_node = address_node[0].xpath( |
|||
'./ns:PstCd', namespaces={'ns': ns}) |
|||
if zip_node: |
|||
address_values['zip'] = zip_node[0].text |
|||
city_node = address_node[0].xpath( |
|||
'./ns:TwnNm', namespaces={'ns': ns}) |
|||
if city_node: |
|||
address_values['city'] = city_node[0].text |
|||
transaction['partner_address'] = self._format_partner_address( |
|||
address_values) |
|||
|
|||
# BIC node |
|||
bic_node = node.xpath( |
|||
'./ns:RltdAgts/ns:%sAgt/ns:FinInstnId/ns:BIC' % party_type, |
|||
namespaces={'ns': ns}) |
|||
if bic_node: |
|||
transaction['partner_bic'] = bic_node[0].text |
|||
|
|||
# Transfer account info in fields |
|||
transaction['partner_account'] = transaction.get('account_number') |
|||
|
|||
def _format_partner_address(self, address_values): |
|||
""" |
|||
Hook for formatting the partner address read in CAMT bank statement. |
|||
:param address_values: dict: all address values found in statement |
|||
Possible keys are ['street', 'building', 'zip', 'city'] |
|||
Not all keys may be present. |
|||
:return: str: formatted address |
|||
""" |
|||
return ', '.join(address_values.values()) |
After Width: 128 | Height: 128 | Size: 9.2 KiB |
@ -0,0 +1,12 @@ |
|||
<?xml version="1.0" encoding="utf-8" ?> |
|||
<templates id="template" xml:space="preserve"> |
|||
<t t-extend="bank_statement_reconciliation_statement_line_details"> |
|||
|
|||
<t t-jquery="table.details > tr:nth-child(2)" t-operation="after"> |
|||
<tr t-if="line.partner_address"><td>Address</td><td><t t-esc="line.partner_address"/></td></tr> |
|||
</t> |
|||
<t t-jquery="table.details > tr:nth-child(6)" t-operation="after"> |
|||
<tr t-if="line.partner_account"><td>Partner account</td><td><t t-esc="line.partner_account"/></td></tr> |
|||
</t> |
|||
</t> |
|||
</templates> |
@ -0,0 +1,5 @@ |
|||
# -*- encoding: utf-8 -*- |
|||
"""Test import of bank statement for camt.053.""" |
|||
# © 2017 Compassion CH <http://www.compassion.ch> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
from . import test_import_bank_statement |
@ -0,0 +1,69 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2017 CompassionCH <http://therp.nl> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
import base64 |
|||
from odoo.tests.common import TransactionCase |
|||
from odoo.tools.misc import file_open |
|||
|
|||
|
|||
class TestImport(TransactionCase): |
|||
"""Run test to import camt import.""" |
|||
|
|||
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['account.journal'].create({ |
|||
'name': 'Bank Journal - (test camt)', |
|||
'code': 'TBNKCAMT', |
|||
'type': 'bank', |
|||
'bank_account_id': bank.id, |
|||
}) |
|||
|
|||
def test_statement_import(self): |
|||
"""Test that transaction details are correctly imported.""" |
|||
line_details = [ |
|||
{ |
|||
'partner_account': 'NL69ABNA0522123643', |
|||
'partner_bic': 'ABNANL2A', |
|||
'partner_name': '3rd party Media', |
|||
'partner_address': 'SOMESTREET 570-A, 1276 ML HOUSCITY' |
|||
}, |
|||
{ |
|||
'partner_account': 'NL46ABNA0499998748', |
|||
'partner_bic': 'ABNANL2A', |
|||
'partner_name': 'Test Customer', |
|||
}, |
|||
{ |
|||
'partner_account': 'NL46ABNA0499998748', |
|||
'partner_bic': 'ABNANL2A', |
|||
'partner_name': 'Test Customer', |
|||
}, |
|||
{ |
|||
'partner_account': 'NL46ABNA0499998748', |
|||
'partner_bic': 'ABNANL2A', |
|||
'partner_name': 'INSURANCE COMPANY TESTX', |
|||
'partner_address': 'TEST STREET 20, 1234 AB TESTCITY' |
|||
}, |
|||
] |
|||
with file_open( |
|||
'account_bank_statement_import_camt/test_files/test-camt053' |
|||
) as testfile: |
|||
action = self.env['account.bank.statement.import'].create({ |
|||
'data_file': base64.b64encode(testfile.read()), |
|||
}).import_file() |
|||
statement_lines = self.env['account.bank.statement'].browse( |
|||
action['context']['statement_ids']).mapped('line_ids') |
|||
for i in range(0, len(line_details)): |
|||
line = statement_lines[i] |
|||
rec_data = line.get_statement_line_for_reconciliation_widget() |
|||
for key, val in line_details[i].iteritems(): |
|||
# test data is in reconcile data view |
|||
if key in ('partner_account', 'partner_address'): |
|||
self.assertEqual(val, rec_data.get(key)) |
|||
# test field is set in model |
|||
self.assertEqual(getattr(line, key), val) |
@ -0,0 +1,17 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<odoo> |
|||
<record id="statement_line_details" model="ir.ui.view"> |
|||
<field name="name">bank.statement.line.details</field> |
|||
<field name="model">account.bank.statement.line</field> |
|||
<field name="type">form</field> |
|||
<field name="inherit_id" ref="account.view_bank_statement_line_form" /> |
|||
<field name="arch" type="xml"> |
|||
<field name="partner_id" position="after"> |
|||
<field name="partner_name"/> |
|||
<field name="partner_account"/> |
|||
<field name="partner_address"/> |
|||
<field name="partner_bic"/> |
|||
</field> |
|||
</field> |
|||
</record> |
|||
</odoo> |
@ -0,0 +1 @@ |
|||
account_bank_statement_import_camt |
@ -1,54 +0,0 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_camt_oca |
|||
# |
|||
# Translators: |
|||
# OCA Transbot <transbot@odoo-community.org>, 2018 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 11.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2018-06-08 08:27+0000\n" |
|||
"PO-Revision-Date: 2018-06-08 08:27+0000\n" |
|||
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 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.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.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 |
|||
#: 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 "account.bank.statement.import.camt.parser" |
|||
|
|||
#. module: account_bank_statement_import_camt_oca |
|||
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view |
|||
msgid "zipped CAMT" |
|||
msgstr "CAMT en .zip" |
@ -1,55 +0,0 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_camt_oca |
|||
# |
|||
# Translators: |
|||
# Mehdi Zarrinkolah <mehdi1811@gmail.com>, 2018 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 11.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2018-06-08 08:27+0000\n" |
|||
"PO-Revision-Date: 2018-07-22 10:30+0000\n" |
|||
"Last-Translator: derKonig <fshahy@gmail.com>\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.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.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 |
|||
#: 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:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view |
|||
msgid "zipped CAMT" |
|||
msgstr "CAMT زیپ شده" |
@ -1,54 +0,0 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_camt_oca |
|||
# |
|||
# Translators: |
|||
# OCA Transbot <transbot@odoo-community.org>, 2018 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 11.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2018-06-08 08:27+0000\n" |
|||
"PO-Revision-Date: 2018-06-08 08:27+0000\n" |
|||
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 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.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.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 |
|||
#: 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:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view |
|||
msgid "zipped CAMT" |
|||
msgstr "CAMT zippé" |
@ -1,55 +0,0 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_camt_oca |
|||
# |
|||
# Translators: |
|||
# OCA Transbot <transbot@odoo-community.org>, 2018 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 11.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2018-06-08 08:27+0000\n" |
|||
"PO-Revision-Date: 2018-06-08 08:27+0000\n" |
|||
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 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.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.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 |
|||
#: 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 "account.bank.statement.import.camt.parser" |
|||
|
|||
#. module: account_bank_statement_import_camt_oca |
|||
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view |
|||
msgid "zipped CAMT" |
|||
msgstr "kompresirani CAMT" |
@ -1,59 +0,0 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_camt_oca |
|||
# |
|||
# Translators: |
|||
# Erwin van der Ploeg <erwin@bas-solutions.nl>, 2015 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: bank-statement-import (8.0)\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-07-24 21:51+0000\n" |
|||
"PO-Revision-Date: 2018-12-03 10:43+0000\n" |
|||
"Last-Translator: Yung-Wa <yw.ng@onestein.nl>\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.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.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 |
|||
#: 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:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view |
|||
msgid "zipped CAMT" |
|||
msgstr "zip formaat CAMT" |
@ -1,150 +0,0 @@ |
|||
"""Run test to import camt.053 import.""" |
|||
# © 2013-2016 Therp BV <http://therp.nl> |
|||
# Copyright 2017 Open Net Sàrl |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
import base64 |
|||
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': '2014-01-05', |
|||
'ref': '435005714488-ABNO33052620', |
|||
}, |
|||
{ |
|||
'remote_account': 'NL46ABNA0499998748', |
|||
'transferred_amount': -564.05, |
|||
'value_date': '2014-01-05', |
|||
'ref': 'TESTBANK/NL/20141229/01206408', |
|||
}, |
|||
{ |
|||
'remote_account': 'NL46ABNA0499998748', |
|||
'transferred_amount': -100.0, |
|||
'value_date': '2014-01-05', |
|||
'ref': 'TESTBANK/NL/20141229/01206407', |
|||
}, |
|||
{ |
|||
'remote_account': 'NL69ABNA0522123643', |
|||
'transferred_amount': 1405.31, |
|||
'value_date': '2014-01-05', |
|||
'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['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() |
|||
|
|||
for statement in self.env['account.bank.statement'].browse( |
|||
action['context']['statement_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.line_ids |
|||
)) |
|||
|
|||
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) |
@ -1,3 +1,4 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html |
|||
|
|||
from . import models |
|||
|
@ -1,3 +1,4 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html |
|||
|
|||
from . import account_move_line |
@ -1 +0,0 @@ |
|||
* Luis M. Ontalba luis.martinez@tecnativa.com> |
@ -1,3 +0,0 @@ |
|||
This module adds a button to bank statement form view to open a wizard to allow |
|||
filtering, selecting and importing lines form journal items into the bank |
|||
statement. |
@ -1,8 +0,0 @@ |
|||
#. Go to Invoicing > Dashboard. |
|||
#. Create a new bank statement from a bank journal. |
|||
#. Click button "Import Journal Items". |
|||
#. Select filtering options. |
|||
#. Click on button "Add All Move Lines" to auto-select the move lines matching |
|||
the selected criteria or click on Add an item to manually select the move |
|||
lines filtered by the criteria. |
|||
#. Click on button "Create Statement Lines". |
@ -1,435 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8" ?> |
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|||
<head> |
|||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
|||
<meta name="generator" content="Docutils 0.14: http://docutils.sourceforge.net/" /> |
|||
<title>Bank statement import move lines</title> |
|||
<style type="text/css"> |
|||
|
|||
/* |
|||
:Author: David Goodger (goodger@python.org) |
|||
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $ |
|||
:Copyright: This stylesheet has been placed in the public domain. |
|||
|
|||
Default cascading style sheet for the HTML output of Docutils. |
|||
|
|||
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to |
|||
customize this style sheet. |
|||
*/ |
|||
|
|||
/* used to remove borders from tables and images */ |
|||
.borderless, table.borderless td, table.borderless th { |
|||
border: 0 } |
|||
|
|||
table.borderless td, table.borderless th { |
|||
/* Override padding for "table.docutils td" with "! important". |
|||
The right padding separates the table cells. */ |
|||
padding: 0 0.5em 0 0 ! important } |
|||
|
|||
.first { |
|||
/* Override more specific margin styles with "! important". */ |
|||
margin-top: 0 ! important } |
|||
|
|||
.last, .with-subtitle { |
|||
margin-bottom: 0 ! important } |
|||
|
|||
.hidden { |
|||
display: none } |
|||
|
|||
.subscript { |
|||
vertical-align: sub; |
|||
font-size: smaller } |
|||
|
|||
.superscript { |
|||
vertical-align: super; |
|||
font-size: smaller } |
|||
|
|||
a.toc-backref { |
|||
text-decoration: none ; |
|||
color: black } |
|||
|
|||
blockquote.epigraph { |
|||
margin: 2em 5em ; } |
|||
|
|||
dl.docutils dd { |
|||
margin-bottom: 0.5em } |
|||
|
|||
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] { |
|||
overflow: hidden; |
|||
} |
|||
|
|||
/* Uncomment (and remove this text!) to get bold-faced definition list terms |
|||
dl.docutils dt { |
|||
font-weight: bold } |
|||
*/ |
|||
|
|||
div.abstract { |
|||
margin: 2em 5em } |
|||
|
|||
div.abstract p.topic-title { |
|||
font-weight: bold ; |
|||
text-align: center } |
|||
|
|||
div.admonition, div.attention, div.caution, div.danger, div.error, |
|||
div.hint, div.important, div.note, div.tip, div.warning { |
|||
margin: 2em ; |
|||
border: medium outset ; |
|||
padding: 1em } |
|||
|
|||
div.admonition p.admonition-title, div.hint p.admonition-title, |
|||
div.important p.admonition-title, div.note p.admonition-title, |
|||
div.tip p.admonition-title { |
|||
font-weight: bold ; |
|||
font-family: sans-serif } |
|||
|
|||
div.attention p.admonition-title, div.caution p.admonition-title, |
|||
div.danger p.admonition-title, div.error p.admonition-title, |
|||
div.warning p.admonition-title, .code .error { |
|||
color: red ; |
|||
font-weight: bold ; |
|||
font-family: sans-serif } |
|||
|
|||
/* Uncomment (and remove this text!) to get reduced vertical space in |
|||
compound paragraphs. |
|||
div.compound .compound-first, div.compound .compound-middle { |
|||
margin-bottom: 0.5em } |
|||
|
|||
div.compound .compound-last, div.compound .compound-middle { |
|||
margin-top: 0.5em } |
|||
*/ |
|||
|
|||
div.dedication { |
|||
margin: 2em 5em ; |
|||
text-align: center ; |
|||
font-style: italic } |
|||
|
|||
div.dedication p.topic-title { |
|||
font-weight: bold ; |
|||
font-style: normal } |
|||
|
|||
div.figure { |
|||
margin-left: 2em ; |
|||
margin-right: 2em } |
|||
|
|||
div.footer, div.header { |
|||
clear: both; |
|||
font-size: smaller } |
|||
|
|||
div.line-block { |
|||
display: block ; |
|||
margin-top: 1em ; |
|||
margin-bottom: 1em } |
|||
|
|||
div.line-block div.line-block { |
|||
margin-top: 0 ; |
|||
margin-bottom: 0 ; |
|||
margin-left: 1.5em } |
|||
|
|||
div.sidebar { |
|||
margin: 0 0 0.5em 1em ; |
|||
border: medium outset ; |
|||
padding: 1em ; |
|||
background-color: #ffffee ; |
|||
width: 40% ; |
|||
float: right ; |
|||
clear: right } |
|||
|
|||
div.sidebar p.rubric { |
|||
font-family: sans-serif ; |
|||
font-size: medium } |
|||
|
|||
div.system-messages { |
|||
margin: 5em } |
|||
|
|||
div.system-messages h1 { |
|||
color: red } |
|||
|
|||
div.system-message { |
|||
border: medium outset ; |
|||
padding: 1em } |
|||
|
|||
div.system-message p.system-message-title { |
|||
color: red ; |
|||
font-weight: bold } |
|||
|
|||
div.topic { |
|||
margin: 2em } |
|||
|
|||
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, |
|||
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { |
|||
margin-top: 0.4em } |
|||
|
|||
h1.title { |
|||
text-align: center } |
|||
|
|||
h2.subtitle { |
|||
text-align: center } |
|||
|
|||
hr.docutils { |
|||
width: 75% } |
|||
|
|||
img.align-left, .figure.align-left, object.align-left, table.align-left { |
|||
clear: left ; |
|||
float: left ; |
|||
margin-right: 1em } |
|||
|
|||
img.align-right, .figure.align-right, object.align-right, table.align-right { |
|||
clear: right ; |
|||
float: right ; |
|||
margin-left: 1em } |
|||
|
|||
img.align-center, .figure.align-center, object.align-center { |
|||
display: block; |
|||
margin-left: auto; |
|||
margin-right: auto; |
|||
} |
|||
|
|||
table.align-center { |
|||
margin-left: auto; |
|||
margin-right: auto; |
|||
} |
|||
|
|||
.align-left { |
|||
text-align: left } |
|||
|
|||
.align-center { |
|||
clear: both ; |
|||
text-align: center } |
|||
|
|||
.align-right { |
|||
text-align: right } |
|||
|
|||
/* reset inner alignment in figures */ |
|||
div.align-right { |
|||
text-align: inherit } |
|||
|
|||
/* div.align-center * { */ |
|||
/* text-align: left } */ |
|||
|
|||
.align-top { |
|||
vertical-align: top } |
|||
|
|||
.align-middle { |
|||
vertical-align: middle } |
|||
|
|||
.align-bottom { |
|||
vertical-align: bottom } |
|||
|
|||
ol.simple, ul.simple { |
|||
margin-bottom: 1em } |
|||
|
|||
ol.arabic { |
|||
list-style: decimal } |
|||
|
|||
ol.loweralpha { |
|||
list-style: lower-alpha } |
|||
|
|||
ol.upperalpha { |
|||
list-style: upper-alpha } |
|||
|
|||
ol.lowerroman { |
|||
list-style: lower-roman } |
|||
|
|||
ol.upperroman { |
|||
list-style: upper-roman } |
|||
|
|||
p.attribution { |
|||
text-align: right ; |
|||
margin-left: 50% } |
|||
|
|||
p.caption { |
|||
font-style: italic } |
|||
|
|||
p.credits { |
|||
font-style: italic ; |
|||
font-size: smaller } |
|||
|
|||
p.label { |
|||
white-space: nowrap } |
|||
|
|||
p.rubric { |
|||
font-weight: bold ; |
|||
font-size: larger ; |
|||
color: maroon ; |
|||
text-align: center } |
|||
|
|||
p.sidebar-title { |
|||
font-family: sans-serif ; |
|||
font-weight: bold ; |
|||
font-size: larger } |
|||
|
|||
p.sidebar-subtitle { |
|||
font-family: sans-serif ; |
|||
font-weight: bold } |
|||
|
|||
p.topic-title { |
|||
font-weight: bold } |
|||
|
|||
pre.address { |
|||
margin-bottom: 0 ; |
|||
margin-top: 0 ; |
|||
font: inherit } |
|||
|
|||
pre.literal-block, pre.doctest-block, pre.math, pre.code { |
|||
margin-left: 2em ; |
|||
margin-right: 2em } |
|||
|
|||
pre.code .ln { color: grey; } /* line numbers */ |
|||
pre.code, code { background-color: #eeeeee } |
|||
pre.code .comment, code .comment { color: #5C6576 } |
|||
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } |
|||
pre.code .literal.string, code .literal.string { color: #0C5404 } |
|||
pre.code .name.builtin, code .name.builtin { color: #352B84 } |
|||
pre.code .deleted, code .deleted { background-color: #DEB0A1} |
|||
pre.code .inserted, code .inserted { background-color: #A3D289} |
|||
|
|||
span.classifier { |
|||
font-family: sans-serif ; |
|||
font-style: oblique } |
|||
|
|||
span.classifier-delimiter { |
|||
font-family: sans-serif ; |
|||
font-weight: bold } |
|||
|
|||
span.interpreted { |
|||
font-family: sans-serif } |
|||
|
|||
span.option { |
|||
white-space: nowrap } |
|||
|
|||
span.pre { |
|||
white-space: pre } |
|||
|
|||
span.problematic { |
|||
color: red } |
|||
|
|||
span.section-subtitle { |
|||
/* font-size relative to parent (h1..h6 element) */ |
|||
font-size: 80% } |
|||
|
|||
table.citation { |
|||
border-left: solid 1px gray; |
|||
margin-left: 1px } |
|||
|
|||
table.docinfo { |
|||
margin: 2em 4em } |
|||
|
|||
table.docutils { |
|||
margin-top: 0.5em ; |
|||
margin-bottom: 0.5em } |
|||
|
|||
table.footnote { |
|||
border-left: solid 1px black; |
|||
margin-left: 1px } |
|||
|
|||
table.docutils td, table.docutils th, |
|||
table.docinfo td, table.docinfo th { |
|||
padding-left: 0.5em ; |
|||
padding-right: 0.5em ; |
|||
vertical-align: top } |
|||
|
|||
table.docutils th.field-name, table.docinfo th.docinfo-name { |
|||
font-weight: bold ; |
|||
text-align: left ; |
|||
white-space: nowrap ; |
|||
padding-left: 0 } |
|||
|
|||
/* "booktabs" style (no vertical lines) */ |
|||
table.docutils.booktabs { |
|||
border: 0px; |
|||
border-top: 2px solid; |
|||
border-bottom: 2px solid; |
|||
border-collapse: collapse; |
|||
} |
|||
table.docutils.booktabs * { |
|||
border: 0px; |
|||
} |
|||
table.docutils.booktabs th { |
|||
border-bottom: thin solid; |
|||
text-align: left; |
|||
} |
|||
|
|||
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, |
|||
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { |
|||
font-size: 100% } |
|||
|
|||
ul.auto-toc { |
|||
list-style-type: none } |
|||
|
|||
</style> |
|||
</head> |
|||
<body> |
|||
<div class="document" id="bank-statement-import-move-lines"> |
|||
<h1 class="title">Bank statement import move lines</h1> |
|||
|
|||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|||
!! This file is generated by oca-gen-addon-readme !! |
|||
!! changes will be overwritten. !! |
|||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> |
|||
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/bank-statement-import/tree/11.0/account_bank_statement_import_move_line"><img alt="OCA/bank-statement-import" src="https://img.shields.io/badge/github-OCA%2Fbank--statement--import-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/bank-statement-import-11-0/bank-statement-import-11-0-account_bank_statement_import_move_line"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/174/11.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p> |
|||
<p>This module adds a button to bank statement form view to open a wizard to allow |
|||
filtering, selecting and importing lines form journal items into the bank |
|||
statement.</p> |
|||
<p><strong>Table of contents</strong></p> |
|||
<div class="contents local topic" id="contents"> |
|||
<ul class="simple"> |
|||
<li><a class="reference internal" href="#usage" id="id1">Usage</a></li> |
|||
<li><a class="reference internal" href="#bug-tracker" id="id2">Bug Tracker</a></li> |
|||
<li><a class="reference internal" href="#credits" id="id3">Credits</a><ul> |
|||
<li><a class="reference internal" href="#authors" id="id4">Authors</a></li> |
|||
<li><a class="reference internal" href="#contributors" id="id5">Contributors</a></li> |
|||
<li><a class="reference internal" href="#maintainers" id="id6">Maintainers</a></li> |
|||
</ul> |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
<div class="section" id="usage"> |
|||
<h1><a class="toc-backref" href="#id1">Usage</a></h1> |
|||
<ol class="arabic simple"> |
|||
<li>Go to Invoicing > Dashboard.</li> |
|||
<li>Create a new bank statement from a bank journal.</li> |
|||
<li>Click button “Import Journal Items”.</li> |
|||
<li>Select filtering options.</li> |
|||
<li>Click on button “Add All Move Lines” to auto-select the move lines matching |
|||
the selected criteria or click on Add an item to manually select the move |
|||
lines filtered by the criteria.</li> |
|||
<li>Click on button “Create Statement Lines”.</li> |
|||
</ol> |
|||
</div> |
|||
<div class="section" id="bug-tracker"> |
|||
<h1><a class="toc-backref" href="#id2">Bug Tracker</a></h1> |
|||
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/bank-statement-import/issues">GitHub Issues</a>. |
|||
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 |
|||
<a class="reference external" href="https://github.com/OCA/bank-statement-import/issues/new?body=module:%20account_bank_statement_import_move_line%0Aversion:%2011.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p> |
|||
<p>Do not contact contributors directly about support or help with technical issues.</p> |
|||
</div> |
|||
<div class="section" id="credits"> |
|||
<h1><a class="toc-backref" href="#id3">Credits</a></h1> |
|||
<div class="section" id="authors"> |
|||
<h2><a class="toc-backref" href="#id4">Authors</a></h2> |
|||
<ul class="simple"> |
|||
<li>Tecnativa</li> |
|||
</ul> |
|||
</div> |
|||
<div class="section" id="contributors"> |
|||
<h2><a class="toc-backref" href="#id5">Contributors</a></h2> |
|||
<ul class="simple"> |
|||
<li>Luis M. Ontalba <a class="reference external" href="mailto:luis.martinez@tecnativa.com">luis.martinez@tecnativa.com</a>></li> |
|||
</ul> |
|||
</div> |
|||
<div class="section" id="maintainers"> |
|||
<h2><a class="toc-backref" href="#id6">Maintainers</a></h2> |
|||
<p>This module is maintained by the OCA.</p> |
|||
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a> |
|||
<p>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.</p> |
|||
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/bank-statement-import/tree/11.0/account_bank_statement_import_move_line">OCA/bank-statement-import</a> project on GitHub.</p> |
|||
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</body> |
|||
</html> |
@ -1,3 +1,4 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0 |
|||
|
|||
from . import test_account_bank_statement_import_move_line |
@ -1,3 +1,4 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html |
|||
|
|||
from . import account_statement_line_create |
@ -1,78 +1,78 @@ |
|||
{1:F01SNSBNL2AXXXX0000000000}{2:O940SNSBNL2AXXXXN}{3:}{4: |
|||
:20:0000000000 |
|||
:25:NL05SNSB0908244436 |
|||
:28C:361/1 |
|||
:60F:C171227EUR3026,96 |
|||
:61:1712271227D713,13NOVBNL49RABO0166416932 |
|||
gerrits glas en schilderwerk |
|||
:86:NL49RABO0166416932 gerrits glas en schilderwerk |
|||
|
|||
Factuur 17227/248/20 |
|||
|
|||
|
|||
|
|||
:61:1712271227D10,18NBEA//228ohu/972795 |
|||
:86: |
|||
|
|||
Jumbo Wijchen B.V. >WIJCHEN 27.12.2017 13U38 KV005 4XZJ4Z M |
|||
CC:5411 Contactloze betaling |
|||
|
|||
|
|||
:61:1712271227D13,52NINCNL94INGB0000869000 |
|||
vitens nv |
|||
:86:NL94INGB0000869000 vitens nv |
|||
|
|||
Europese incasso door:VITENS NV NL-Factuurnr 072304597540 VNKlant |
|||
nr 00000000000 BTW 0,77PC 6605 DW 6223, DEC-Incassant ID: NL84ZZZ0 |
|||
50695810000-Kenmerk Machtiging: bla |
|||
|
|||
:61:1712271227D25,61NBEA//229hro/195867 |
|||
:86: |
|||
|
|||
Albert Heijn 1370 >WIJCHEN 27.12.2017 19U13 KV006 70X708 M |
|||
CC:5411 |
|||
|
|||
|
|||
:62F:C171227EUR2264,52 |
|||
-}{5:} |
|||
{1:F01SNSBNL2AXXXX0000000000}{2:O940SNSBNL2AXXXXN}{3:}{4: |
|||
:20:0000000000 |
|||
:25:NL05SNSB0908244436 |
|||
:28C:362/1 |
|||
:60F:C171228EUR2264,52 |
|||
:61:1712281228D10,95NINCNL40RABO0127859497 |
|||
antagonist b.v. |
|||
:86:NL40RABO0127859497 antagonist b.v. |
|||
|
|||
Europese incasso door:ANTAGONIST B.V. NL-DDWPN954156 AI529942Cweb |
|||
share.nl-Incassant ID: NL65ZZZ091364410000-Kenmerk Machtiging: bla |
|||
|
|||
:61:1712281228C0,00NDIV |
|||
:86: |
|||
|
|||
Mobiel betalen is vanaf nu niet meer mogelijk voor B |
|||
ERG M A VAN DEN met Lenovo P2 |
|||
|
|||
|
|||
:62F:C171228EUR2253,57 |
|||
-}{5:} |
|||
{1:F01SNSBNL2AXXXX0000000000}{2:O940SNSBNL2AXXXXN}{3:}{4: |
|||
:20:0000000000 |
|||
:25:NL05SNSB0908244436 |
|||
:28C:363/1 |
|||
:60F:C171229EUR2253,57 |
|||
:61:1712291229D907,29NINCNL19ABNA0427093546 |
|||
florius |
|||
:86:NL19ABNA0427093546 florius |
|||
|
|||
Europese incasso door:FLORIUS NL-Verschuldigde bedragen PERIODE 1 |
|||
2-2017-Incassant ID: NL42ZZZ080242850000-Kenmerk Machtiging: bla |
|||
|
|||
:61:1712291229D35,00NINCNL28DEUT0265186439 |
|||
stichting derdengelden bucka |
|||
:86:NL28DEUT0265186439 stichting derdengelden bucka |
|||
|
|||
Europese incasso door:STICHTING DERDENGELDEN BUCKAROO-T-Mobile Th |
|||
uis B.V.: Rekening dec 2017. Bekijk je rekening op thuismy.t-mobi |
|||
le.nl-Incassant ID: NL39ZZZ302317620000-Kenmerk Machtiging: bla |
|||
-}{5:} |
|||
{1:F01SNSBNL2AXXXX0000000000}{2:O940SNSBNL2AXXXXN}{3:}{4: |
|||
:20:0000000000 |
|||
:25:NL05SNSB0908244436 |
|||
:28C:361/1 |
|||
:60F:C171227EUR3026,96 |
|||
:61:1712271227D713,13NOVBNL49RABO0166416932 |
|||
gerrits glas en schilderwerk |
|||
:86:NL49RABO0166416932 gerrits glas en schilderwerk |
|||
|
|||
Factuur 17227/248/20 |
|||
|
|||
|
|||
|
|||
:61:1712271227D10,18NBEA//228ohu/972795 |
|||
:86: |
|||
|
|||
Jumbo Wijchen B.V. >WIJCHEN 27.12.2017 13U38 KV005 4XZJ4Z M |
|||
CC:5411 Contactloze betaling |
|||
|
|||
|
|||
:61:1712271227D13,52NINCNL94INGB0000869000 |
|||
vitens nv |
|||
:86:NL94INGB0000869000 vitens nv |
|||
|
|||
Europese incasso door:VITENS NV NL-Factuurnr 072304597540 VNKlant |
|||
nr 00000000000 BTW 0,77PC 6605 DW 6223, DEC-Incassant ID: NL84ZZZ0 |
|||
50695810000-Kenmerk Machtiging: bla |
|||
|
|||
:61:1712271227D25,61NBEA//229hro/195867 |
|||
:86: |
|||
|
|||
Albert Heijn 1370 >WIJCHEN 27.12.2017 19U13 KV006 70X708 M |
|||
CC:5411 |
|||
|
|||
|
|||
:62F:C171227EUR2264,52 |
|||
-}{5:} |
|||
{1:F01SNSBNL2AXXXX0000000000}{2:O940SNSBNL2AXXXXN}{3:}{4: |
|||
:20:0000000000 |
|||
:25:NL05SNSB0908244436 |
|||
:28C:362/1 |
|||
:60F:C171228EUR2264,52 |
|||
:61:1712281228D10,95NINCNL40RABO0127859497 |
|||
antagonist b.v. |
|||
:86:NL40RABO0127859497 antagonist b.v. |
|||
|
|||
Europese incasso door:ANTAGONIST B.V. NL-DDWPN954156 AI529942Cweb |
|||
share.nl-Incassant ID: NL65ZZZ091364410000-Kenmerk Machtiging: bla |
|||
|
|||
:61:1712281228C0,00NDIV |
|||
:86: |
|||
|
|||
Mobiel betalen is vanaf nu niet meer mogelijk voor B |
|||
ERG M A VAN DEN met Lenovo P2 |
|||
|
|||
|
|||
:62F:C171228EUR2253,57 |
|||
-}{5:} |
|||
{1:F01SNSBNL2AXXXX0000000000}{2:O940SNSBNL2AXXXXN}{3:}{4: |
|||
:20:0000000000 |
|||
:25:NL05SNSB0908244436 |
|||
:28C:363/1 |
|||
:60F:C171229EUR2253,57 |
|||
:61:1712291229D907,29NINCNL19ABNA0427093546 |
|||
florius |
|||
:86:NL19ABNA0427093546 florius |
|||
|
|||
Europese incasso door:FLORIUS NL-Verschuldigde bedragen PERIODE 1 |
|||
2-2017-Incassant ID: NL42ZZZ080242850000-Kenmerk Machtiging: bla |
|||
|
|||
:61:1712291229D35,00NINCNL28DEUT0265186439 |
|||
stichting derdengelden bucka |
|||
:86:NL28DEUT0265186439 stichting derdengelden bucka |
|||
|
|||
Europese incasso door:STICHTING DERDENGELDEN BUCKAROO-T-Mobile Th |
|||
uis B.V.: Rekening dec 2017. Bekijk je rekening op thuismy.t-mobi |
|||
le.nl-Incassant ID: NL39ZZZ302317620000-Kenmerk Machtiging: bla |
|||
-}{5:} |
@ -0,0 +1,51 @@ |
|||
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg |
|||
:alt: License: AGPL-3 |
|||
|
|||
Import MT940 IBAN ING Bank Statements |
|||
===================================== |
|||
|
|||
This module allows you to import the MT940 IBAN files from the Dutch ING bank |
|||
in Odoo as bank statements. |
|||
The specifications are published at: |
|||
https://www.ing.nl/media/ING_ming_mt940s_24_juli_tcm162-46356.pdf |
|||
and were last updated august 2014. |
|||
|
|||
Known issues / Roadmap |
|||
====================== |
|||
|
|||
* None |
|||
|
|||
Bug Tracker |
|||
=========== |
|||
|
|||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/bank-statement-import/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 |
|||
`here <https://github.com/OCA/bank-statement-import/issues/new?body=module:%20account_bank_statement_import%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. |
|||
|
|||
|
|||
Credits |
|||
======= |
|||
|
|||
Contributors |
|||
------------ |
|||
|
|||
* Stefan Rijnhart <srijnhart@therp.nl> |
|||
* Ronald Portier <rportier@therp.nl> |
|||
|
|||
Maintainer |
|||
---------- |
|||
|
|||
.. image:: https://odoo-community.org/logo.png |
|||
:alt: Odoo Community Association |
|||
:target: https://odoo-community.org |
|||
|
|||
This module is maintained by the OCA. |
|||
|
|||
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. |
|||
|
|||
To contribute to this module, please visit http://odoo-community.org. |
|||
This module should make it easy to migrate bank statement import |
|||
modules written for earlies versions of Odoo/OpenERP. |
@ -0,0 +1 @@ |
|||
from . import account_bank_statement_import |
@ -0,0 +1,34 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Copyright (C) 2013-2015 Therp BV <http://therp.nl> |
|||
# |
|||
# 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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
{ |
|||
'name': 'MT940 IBAN ING Format Bank Statements Import', |
|||
'version': '8.0.0.3.0', |
|||
'license': 'AGPL-3', |
|||
'author': 'Odoo Community Association (OCA), Therp BV', |
|||
'website': 'https://github.com/OCA/bank-statement-import', |
|||
'category': 'Banking addons', |
|||
'depends': [ |
|||
'account_bank_statement_import_mt940_base' |
|||
], |
|||
'demo': [ |
|||
'demo/demo_data.xml', |
|||
], |
|||
'installable': False |
|||
} |
@ -0,0 +1,44 @@ |
|||
# -*- coding: utf-8 -*- |
|||
"""Parse a MT940 ING file.""" |
|||
############################################################################## |
|||
# |
|||
# Copyright (C) 2013-2015 Therp BV <http://therp.nl> |
|||
# |
|||
# 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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
import logging |
|||
from openerp import models |
|||
from .mt940 import MT940Parser as Parser |
|||
|
|||
|
|||
_logger = logging.getLogger(__name__) |
|||
|
|||
|
|||
class AccountBankStatementImport(models.TransientModel): |
|||
"""Add parsing of mt940 files to bank statement import.""" |
|||
_inherit = 'account.bank.statement.import' |
|||
|
|||
def _parse_file(self, cr, uid, data_file, context=None): |
|||
"""Parse a MT940 IBAN ING file.""" |
|||
parser = Parser() |
|||
try: |
|||
_logger.debug("Try parsing with MT940 IBAN ING.") |
|||
return parser.parse(data_file) |
|||
except ValueError: |
|||
# Returning super will call next candidate: |
|||
_logger.debug("Statement file was not a MT940 IBAN ING file.", |
|||
exc_info=True) |
|||
return super(AccountBankStatementImport, self)._parse_file( |
|||
cr, uid, data_file, context=context) |
@ -0,0 +1,26 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<openerp> |
|||
<data> |
|||
|
|||
<record id="mt940_ing_bank_journal" model="account.journal"> |
|||
<field name="name">Bank Journal - (test mt940 ING)</field> |
|||
<field name="code">TBNKMT940ING</field> |
|||
<field name="type">bank</field> |
|||
<field name="sequence_id" ref="account.sequence_bank_journal"/> |
|||
<field name="default_debit_account_id" ref="account.bnk"/> |
|||
<field name="default_credit_account_id" ref="account.bnk"/> |
|||
<field name="user_id" ref="base.user_root"/> |
|||
</record> |
|||
|
|||
<record id="mt940_ing_company_bank" model="res.partner.bank"> |
|||
<field name="owner_name">Your Company</field> |
|||
<field name="acc_number">NL77INGB0574908765</field> |
|||
<field name="partner_id" ref="base.partner_root"></field> |
|||
<field name="company_id" ref="base.main_company"></field> |
|||
<field name="journal_id" ref="mt940_ing_bank_journal"></field> |
|||
<field name="state">bank</field> |
|||
<field name="bank" ref="base.res_bank_1"/> |
|||
</record> |
|||
</data> |
|||
|
|||
</openerp> |
@ -0,0 +1,23 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_mt940_nl_ing |
|||
# |
|||
# Translators: |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: bank-statement-import (8.0)\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-07-24 21:51+0000\n" |
|||
"PO-Revision-Date: 2015-07-24 07:41+0000\n" |
|||
"Last-Translator: <>\n" |
|||
"Language-Team: Spanish (http://www.transifex.com/oca/OCA-bank-statement-import-8-0/language/es/)\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Language: es\n" |
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
|||
|
|||
#. module: account_bank_statement_import_mt940_nl_ing |
|||
#: model:ir.model,name:account_bank_statement_import_mt940_nl_ing.model_account_bank_statement_import |
|||
msgid "Import Bank Statement" |
|||
msgstr "Importar extracto bancario" |
@ -0,0 +1,23 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_mt940_nl_ing |
|||
# |
|||
# Translators: |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: bank-statement-import (8.0)\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-07-24 21:51+0000\n" |
|||
"PO-Revision-Date: 2015-07-24 07:41+0000\n" |
|||
"Last-Translator: <>\n" |
|||
"Language-Team: French (http://www.transifex.com/oca/OCA-bank-statement-import-8-0/language/fr/)\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Language: fr\n" |
|||
"Plural-Forms: nplurals=2; plural=(n > 1);\n" |
|||
|
|||
#. module: account_bank_statement_import_mt940_nl_ing |
|||
#: model:ir.model,name:account_bank_statement_import_mt940_nl_ing.model_account_bank_statement_import |
|||
msgid "Import Bank Statement" |
|||
msgstr "Importer Relevé Bancaire" |
@ -0,0 +1,23 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_mt940_nl_ing |
|||
# |
|||
# Translators: |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: bank-statement-import (8.0)\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-07-24 21:51+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" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Language: lt_LT\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_mt940_nl_ing |
|||
#: model:ir.model,name:account_bank_statement_import_mt940_nl_ing.model_account_bank_statement_import |
|||
msgid "Import Bank Statement" |
|||
msgstr "Importuoti banko išrašą" |
@ -0,0 +1,23 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_mt940_nl_ing |
|||
# |
|||
# Translators: |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: bank-statement-import (8.0)\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-07-24 21:51+0000\n" |
|||
"PO-Revision-Date: 2015-07-31 06:44+0000\n" |
|||
"Last-Translator: Erwin van der Ploeg <erwin@bas-solutions.nl>\n" |
|||
"Language-Team: Dutch (http://www.transifex.com/oca/OCA-bank-statement-import-8-0/language/nl/)\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Language: nl\n" |
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
|||
|
|||
#. module: account_bank_statement_import_mt940_nl_ing |
|||
#: model:ir.model,name:account_bank_statement_import_mt940_nl_ing.model_account_bank_statement_import |
|||
msgid "Import Bank Statement" |
|||
msgstr "Geïmporteerd bankafschrift" |
@ -0,0 +1,23 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_mt940_nl_ing |
|||
# |
|||
# Translators: |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: bank-statement-import (8.0)\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-10-09 09:23+0000\n" |
|||
"PO-Revision-Date: 2015-10-09 00:26+0000\n" |
|||
"Last-Translator: danimaribeiro <danimaribeiro@gmail.com>\n" |
|||
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-bank-statement-import-8-0/language/pt_BR/)\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Language: pt_BR\n" |
|||
"Plural-Forms: nplurals=2; plural=(n > 1);\n" |
|||
|
|||
#. module: account_bank_statement_import_mt940_nl_ing |
|||
#: model:ir.model,name:account_bank_statement_import_mt940_nl_ing.model_account_bank_statement_import |
|||
msgid "Import Bank Statement" |
|||
msgstr "Importar Extrato Bancário" |
@ -0,0 +1,23 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * account_bank_statement_import_mt940_nl_ing |
|||
# |
|||
# Translators: |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: bank-statement-import (8.0)\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-07-24 21:51+0000\n" |
|||
"PO-Revision-Date: 2015-07-25 12:19+0000\n" |
|||
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>\n" |
|||
"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-bank-statement-import-8-0/language/sl/)\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Language: sl\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_mt940_nl_ing |
|||
#: model:ir.model,name:account_bank_statement_import_mt940_nl_ing.model_account_bank_statement_import |
|||
msgid "Import Bank Statement" |
|||
msgstr "Uvoz bančnega izpiska" |
@ -0,0 +1,66 @@ |
|||
# -*- coding: utf-8 -*- |
|||
"""Implement BankStatementParser for MT940 IBAN ING files.""" |
|||
############################################################################## |
|||
# |
|||
# Copyright (C) 2014-2015 Therp BV <http://therp.nl>. |
|||
# |
|||
# 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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
import re |
|||
from openerp.addons.account_bank_statement_import_mt940_base.mt940 import ( |
|||
MT940, str2amount, get_subfields, handle_common_subfields) |
|||
|
|||
|
|||
class MT940Parser(MT940): |
|||
"""Parser for ing MT940 bank statement import files.""" |
|||
|
|||
tag_61_regex = re.compile( |
|||
r'^(?P<date>\d{6})(?P<line_date>\d{0,4})' |
|||
r'(?P<sign>[CD])(?P<amount>\d+,\d{2})N(?P<type>.{3})' |
|||
r'(?P<reference>\w{1,50})' |
|||
) |
|||
|
|||
def __init__(self): |
|||
"""Initialize parser - override at least header_regex.""" |
|||
super(MT940Parser, self).__init__() |
|||
self.mt940_type = 'ING' |
|||
|
|||
def handle_tag_61(self, data): |
|||
"""get transaction values""" |
|||
super(MT940Parser, self).handle_tag_61(data) |
|||
re_61 = self.tag_61_regex.match(data) |
|||
if not re_61: |
|||
raise ValueError("Cannot parse %s" % data) |
|||
parsed_data = re_61.groupdict() |
|||
self.current_transaction.transferred_amount = ( |
|||
str2amount(parsed_data['sign'], parsed_data['amount'])) |
|||
self.current_transaction.eref = parsed_data['reference'] |
|||
|
|||
def handle_tag_86(self, data): |
|||
"""Parse 86 tag containing reference data.""" |
|||
if not self.current_transaction: |
|||
return |
|||
codewords = ['RTRN', 'BENM', 'ORDP', 'CSID', 'BUSP', 'MARF', 'EREF', |
|||
'PREF', 'REMI', 'ID', 'PURP', 'ULTB', 'ULTD', |
|||
'CREF', 'IREF', 'CNTP', 'ULTC', 'EXCH', 'CHGS'] |
|||
subfields = get_subfields(data, codewords) |
|||
transaction = self.current_transaction |
|||
# If we have no subfields, set message to whole of data passed: |
|||
if not subfields: |
|||
transaction.message = data |
|||
else: |
|||
handle_common_subfields(transaction, subfields) |
|||
# Prevent handling tag 86 later for non transaction details: |
|||
self.current_transaction = None |
@ -0,0 +1,61 @@ |
|||
0000 01INGBNL2AXXXX00001 |
|||
0000 01INGBNL2AXXXX00001 |
|||
940 00 |
|||
:20:P140120000000001 |
|||
:25:NL77INGB0574908765EUR |
|||
:28C:0000 |
|||
0 |
|||
:60F:C140119EUR662,23 |
|||
:61:1401200220C1,56NTRFEREF//00000000001 |
|||
005 |
|||
/TRCD/00100/ |
|||
:86:/EREF/EV12341REP1231456T1234//CNTP/NL32INGB0000012345/INGBNL2 |
|||
A/ING BANK NV INZAKE WEB///REMI/USTD//EV10001REP1000000T1000/ |
|||
:61:1401200220D1,57NTRFPREF//00000000001006 |
|||
/TRCD/00200/ |
|||
:86:/PREF/M000000003333333//REMI/USTD//TOTAAL 1 VZ/ |
|||
:61:1401200220C1,57NRTIEREF//00000000001007 |
|||
/TRCD/00190/ |
|||
:86:/RTRN/MS03//EREF/20120123456789//CNTP/NL32INGB0000012345/INGB |
|||
NL2A/J.Janssen///REMI/USTD//Factuurnr 123456 Klantnr 00123/ |
|||
:61:1401200220D1,14NDDTEREF//00000000001009 |
|||
/TRCD/010 |
|||
16 |
|||
/ |
|||
:86:/EREF/EV123R |
|||
EP123412T1234//MARF/MND |
|||
- |
|||
EV01//CSID/NL32ZZZ9999999 |
|||
91234//CNTP/NL32INGB0000012345/INGBNL2A/ING Bank N.V. inzake WeB/ |
|||
//REMI/USTD//EV123REP123412T1234/ |
|||
:61:1401200220C1,45NDDTPREF//00000000001008 |
|||
/TRCD/01000/ |
|||
:86:/PREF/M000000001111111/ |
|||
/CSID/ |
|||
NL32ZZZ999999991234 |
|||
/ |
|||
/REMI/USTD// |
|||
TOTAAL 1 POSTEN/ |
|||
:61:1401200220D12,75NRTIEREF//00000000001010 |
|||
/TRCD/01315/ |
|||
:86:/RTRN/MS03//EREF/20120501P0123478//MARF/MND |
|||
- |
|||
120123//CSID/NL32 |
|||
ZZZ999999991234//CNTP/NL32INGB0000012345/INGBNL2A/J.Janssen///REM |
|||
I/USTD//CO |
|||
NTRIBUTIE FEB 2014/ |
|||
:61:1401200220C32,00NTRF9001123412341234//00000000001011 |
|||
/TRCD/00108/ |
|||
:86:/EREF/15814016000676480//CNTP/NL32INGB0000012345/INGBNL2A/J.J |
|||
anssen///REMI/STRD/CUR/9001123412341234/ |
|||
:61:1401200220D119,00NTRF1070123412341234//00000000001012 |
|||
/ |
|||
TRCD/00108/ |
|||
:86:/EREF/15614016000384600//CNTP/NL32INGB0000012345/INGBNL2A/ING |
|||
BANK NV///REMI/STRD/CUR/1070123412341234/ |
|||
:62F:C140120EUR564,35 |
|||
:64:C140120EUR564,35 |
|||
:65:C140121EUR564,35 |
|||
:65:C140124EUR564,35 |
|||
:86:/SUM/4/4/134,46/36,58/ |
|||
-XXX |
@ -0,0 +1,62 @@ |
|||
{1:F01INGBNL2ABXXX0000000000} |
|||
{2:I940INGBNL2AXXXN} |
|||
{4: |
|||
:20:P140220000000001 |
|||
:25:NL77INGB0574908765EUR |
|||
:28C:0000 |
|||
0 |
|||
:60F:C140219EUR662,23 |
|||
:61:1402200220C1,56NTRFEREF//00000000001 |
|||
005 |
|||
/TRCD/00100/ |
|||
:86:/EREF/EV12341REP1231456T1234//CNTP/NL32INGB0000012345/INGBNL2 |
|||
A/ING BANK NV INZAKE WEB///REMI/USTD//EV10001REP1000000T1000/ |
|||
:61:1402200220D1,57NTRFPREF//00000000001006 |
|||
/TRCD/00200/ |
|||
:86:/PREF/M000000003333333//REMI/USTD//TOTAAL 1 VZ/ |
|||
:61:1402200220C1,57NRTIEREF//00000000001007 |
|||
/TRCD/00190/ |
|||
:86:/RTRN/MS03//EREF/20120123456789//CNTP/NL32INGB0000012345/INGB |
|||
NL2A/J.Janssen///REMI/USTD//Factuurnr 123456 Klantnr 00123/ |
|||
:61:1402200220D1,14NDDTEREF//00000000001009 |
|||
/TRCD/010 |
|||
16 |
|||
/ |
|||
:86:/EREF/EV123R |
|||
EP123412T1234//MARF/MND |
|||
- |
|||
EV01//CSID/NL32ZZZ9999999 |
|||
91234//CNTP/NL32INGB0000012345/INGBNL2A/ING Bank N.V. inzake WeB/ |
|||
//REMI/USTD//EV123REP123412T1234/ |
|||
:61:1402200220C1,45NDDTPREF//00000000001008 |
|||
/TRCD/01000/ |
|||
:86:/PREF/M000000001111111/ |
|||
/CSID/ |
|||
NL32ZZZ999999991234 |
|||
/ |
|||
/REMI/USTD// |
|||
TOTAAL 1 POSTEN/ |
|||
:61:1402200220D12,75NRTIEREF//00000000001010 |
|||
/TRCD/01315/ |
|||
:86:/RTRN/MS03//EREF/20120501P0123478//MARF/MND |
|||
- |
|||
120123//CSID/NL32 |
|||
ZZZ999999991234//CNTP/NL32INGB0000012345/INGBNL2A/J.Janssen///REM |
|||
I/USTD//CO |
|||
NTRIBUTIE FEB 2014/ |
|||
:61:1402200220C32,00NTRF9001123412341234//00000000001011 |
|||
/TRCD/00108/ |
|||
:86:/EREF/15814016000676480//CNTP/NL32INGB0000012345/INGBNL2A/J.J |
|||
anssen///REMI/STRD/CUR/9001123412341234/ |
|||
:61:1402200220D119,00NTRF1070123412341234//00000000001012 |
|||
/ |
|||
TRCD/00108/ |
|||
:86:/EREF/15614016000384600//CNTP/NL32INGB0000012345/INGBNL2A/ING |
|||
BANK NV///REMI/STRD/CUR/1070123412341234/ |
|||
:62F:C140220EUR564,35 |
|||
:64:C140220EUR564,35 |
|||
:65:C140221EUR564,35 |
|||
:65:C140224EUR564,35 |
|||
:86:/SUM/4/4/134,46/36,58/ |
|||
- |
|||
} |
@ -0,0 +1,25 @@ |
|||
# -*- encoding: utf-8 -*- |
|||
"""Test import of bank statement for MT940 ING.""" |
|||
############################################################################## |
|||
# |
|||
# Copyright (C) 2015 Therp BV <http://therp.nl>. |
|||
# |
|||
# All other contributions are (C) by their respective contributors |
|||
# |
|||
# All Rights Reserved |
|||
# |
|||
# 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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
from . import test_import_bank_statement |
@ -0,0 +1,53 @@ |
|||
# -*- coding: utf-8 -*- |
|||
"""Run test to import MT940 IBAN ING import.""" |
|||
############################################################################## |
|||
# |
|||
# Copyright (C) 2015 Therp BV <http://therp.nl>. |
|||
# |
|||
# All other contributions are (C) by their respective contributors |
|||
# |
|||
# 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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
from openerp.addons.account_bank_statement_import.tests import ( |
|||
TestStatementFile) |
|||
|
|||
|
|||
class TestImport(TestStatementFile): |
|||
"""Run test to import MT940 ING import.""" |
|||
|
|||
def test_old_statement_import(self): |
|||
"""Test correct creation of single statement from old format.""" |
|||
self._test_statement_import( |
|||
'account_bank_statement_import_mt940_nl_ing', 'test-ing-old.940', |
|||
'NL77INGB0574908765-2014-01-20', |
|||
start_balance=662.23, end_balance=564.35 |
|||
) |
|||
|
|||
def test_statement_import(self): |
|||
"""Test correct creation of single statement.""" |
|||
transactions = [ |
|||
{ |
|||
'remote_account': 'NL32INGB0000012345', |
|||
'transferred_amount': 1.56, |
|||
'value_date': '2014-02-20', |
|||
'ref': 'EV12341REP1231456T1234', |
|||
}, |
|||
] |
|||
self._test_statement_import( |
|||
'account_bank_statement_import_mt940_nl_ing', 'test-ing.940', |
|||
'NL77INGB0574908765-2014-02-20', |
|||
start_balance=662.23, end_balance=564.35, |
|||
transactions=transactions |
|||
) |
@ -0,0 +1,47 @@ |
|||
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg |
|||
:alt: License: AGPL-3 |
|||
|
|||
Bank Statement NL Rabobank MT940 |
|||
================================ |
|||
|
|||
This addon imports the structured MT940 format as offered by |
|||
the dutch Rabobank. |
|||
|
|||
Known issues / Roadmap |
|||
====================== |
|||
|
|||
* None |
|||
|
|||
Bug Tracker |
|||
=========== |
|||
|
|||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/bank-statement-import/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 |
|||
`here <https://github.com/OCA/bank-statement-import/issues/new?body=module:%20account_bank_statement_import%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. |
|||
|
|||
|
|||
Credits |
|||
======= |
|||
|
|||
Contributors |
|||
------------ |
|||
|
|||
* Ronald Portier <rportier@therp.nl> |
|||
|
|||
Maintainer |
|||
---------- |
|||
|
|||
.. image:: https://odoo-community.org/logo.png |
|||
:alt: Odoo Community Association |
|||
:target: https://odoo-community.org |
|||
|
|||
This module is maintained by the OCA. |
|||
|
|||
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. |
|||
|
|||
To contribute to this module, please visit http://odoo-community.org. |
|||
This module should make it easy to migrate bank statement import |
|||
modules written for earlies versions of Odoo/OpenERP. |
@ -0,0 +1,20 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Copyright (C) 2014-2015 Therp BV (<http://therp.nl>). |
|||
# |
|||
# 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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
from . import account_bank_statement_import |
@ -0,0 +1,32 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Copyright (C) 2014-2015 Therp BV <http://therp.nl>. |
|||
# |
|||
# 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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
{ |
|||
'name': 'MT940 import for dutch Rabobank', |
|||
'version': '8.0.1.1.0', |
|||
'author': 'Odoo Community Association (OCA), Therp BV', |
|||
'website': 'https://github.com/OCA/bank-statement-import', |
|||
'category': 'Banking addons', |
|||
'depends': [ |
|||
'account_bank_statement_import_mt940_base' |
|||
], |
|||
'auto_install': False, |
|||
'installable': False, |
|||
'application': False, |
|||
} |
@ -0,0 +1,46 @@ |
|||
# -*- coding: utf-8 -*- |
|||
"""Parse a MT940 RABO file.""" |
|||
############################################################################## |
|||
# |
|||
# Copyright (C) 2013-2015 Therp BV <http://therp.nl> |
|||
# |
|||
# 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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
import logging |
|||
|
|||
from openerp import models |
|||
from .mt940 import MT940Parser as Parser |
|||
|
|||
|
|||
_logger = logging.getLogger(__name__) |
|||
|
|||
|
|||
class AccountBankStatementImport(models.TransientModel): |
|||
"""Add parsing of RABO mt940 files to bank statement import.""" |
|||
_inherit = 'account.bank.statement.import' |
|||
|
|||
def _parse_file(self, cr, uid, data_file, context=None): |
|||
"""Parse a MT940 RABO file.""" |
|||
parser = Parser() |
|||
try: |
|||
_logger.debug("Try parsing with MT940 RABO.") |
|||
statements = parser.parse(data_file) |
|||
return statements |
|||
except ValueError: |
|||
# Returning super will call next candidate: |
|||
_logger.debug("Statement file was not a MT940 RABO file.", |
|||
exc_info=True) |
|||
return super(AccountBankStatementImport, self)._parse_file( |
|||
cr, uid, data_file, context=context) |
Some files were not shown because too many files changed in this diff
Write
Preview
Loading…
Cancel
Save
Reference in new issue