Compare commits

...

No commits in common. '11.0' and '10.0' have entirely different histories.
11.0 ... 10.0

  1. 8
      .travis.yml
  2. 34
      README.md
  3. 19
      account_bank_statement_import_camt/README.rst
  4. 1
      account_bank_statement_import_camt/__init__.py
  5. 3
      account_bank_statement_import_camt/__manifest__.py
  6. 50
      account_bank_statement_import_camt/i18n/account_bank_statement_import_camt.pot
  7. 17
      account_bank_statement_import_camt/i18n/account_bank_statement_import_camt_oca.pot
  8. 30
      account_bank_statement_import_camt/i18n/de.po
  9. 55
      account_bank_statement_import_camt/i18n/es.po
  10. 30
      account_bank_statement_import_camt/i18n/fi.po
  11. 55
      account_bank_statement_import_camt/i18n/fr.po
  12. 30
      account_bank_statement_import_camt/i18n/fr_CH.po
  13. 30
      account_bank_statement_import_camt/i18n/gl.po
  14. 55
      account_bank_statement_import_camt/i18n/hr.po
  15. 30
      account_bank_statement_import_camt/i18n/lt_LT.po
  16. 30
      account_bank_statement_import_camt/i18n/nb_NO.po
  17. 55
      account_bank_statement_import_camt/i18n/nl.po
  18. 30
      account_bank_statement_import_camt/i18n/pt_BR.po
  19. 30
      account_bank_statement_import_camt/i18n/pt_PT.po
  20. 30
      account_bank_statement_import_camt/i18n/sl.po
  21. 1
      account_bank_statement_import_camt/models/__init__.py
  22. 7
      account_bank_statement_import_camt/models/account_bank_statement_import.py
  23. 12
      account_bank_statement_import_camt/models/parser.py
  24. 0
      account_bank_statement_import_camt/static/description/icon.png
  25. 0
      account_bank_statement_import_camt/test_files/golden-camt053-no-ntry.pydata
  26. 4
      account_bank_statement_import_camt/test_files/golden-camt053-txdtls.pydata
  27. 0
      account_bank_statement_import_camt/test_files/golden-camt053.pydata
  28. 0
      account_bank_statement_import_camt/test_files/test-camt053
  29. 0
      account_bank_statement_import_camt/test_files/test-camt053-no-ntry
  30. 0
      account_bank_statement_import_camt/test_files/test-camt053-txdtls
  31. 0
      account_bank_statement_import_camt/test_files/test-camt053.zip
  32. 1
      account_bank_statement_import_camt/tests/__init__.py
  33. 132
      account_bank_statement_import_camt/tests/test_import_bank_statement.py
  34. 0
      account_bank_statement_import_camt/views/account_bank_statement_import.xml
  35. 48
      account_bank_statement_import_camt_details/README.rst
  36. 4
      account_bank_statement_import_camt_details/__init__.py
  37. 20
      account_bank_statement_import_camt_details/__manifest__.py
  38. 50
      account_bank_statement_import_camt_details/i18n/account_bank_statement_import_camt_details.pot
  39. 5
      account_bank_statement_import_camt_details/models/__init__.py
  40. 27
      account_bank_statement_import_camt_details/models/account_bank_statement_line.py
  41. 65
      account_bank_statement_import_camt_details/models/camt_parser.py
  42. BIN
      account_bank_statement_import_camt_details/static/description/icon.png
  43. 12
      account_bank_statement_import_camt_details/static/src/xml/camt_details_reconciliation_layout.xml
  44. 5
      account_bank_statement_import_camt_details/tests/__init__.py
  45. 69
      account_bank_statement_import_camt_details/tests/test_import_bank_statement.py
  46. 17
      account_bank_statement_import_camt_details/views/account_bank_statement_line.xml
  47. 1
      account_bank_statement_import_camt_oca
  48. 54
      account_bank_statement_import_camt_oca/i18n/es.po
  49. 55
      account_bank_statement_import_camt_oca/i18n/fa.po
  50. 54
      account_bank_statement_import_camt_oca/i18n/fr.po
  51. 55
      account_bank_statement_import_camt_oca/i18n/hr.po
  52. 59
      account_bank_statement_import_camt_oca/i18n/nl.po
  53. 150
      account_bank_statement_import_camt_oca/tests/test_import_bank_statement.py
  54. 69
      account_bank_statement_import_move_line/README.rst
  55. 1
      account_bank_statement_import_move_line/__init__.py
  56. 4
      account_bank_statement_import_move_line/__manifest__.py
  57. 4
      account_bank_statement_import_move_line/i18n/account_bank_statement_import_move_line.pot
  58. 2
      account_bank_statement_import_move_line/i18n/de.po
  59. 2
      account_bank_statement_import_move_line/i18n/es.po
  60. 2
      account_bank_statement_import_move_line/i18n/fr.po
  61. 2
      account_bank_statement_import_move_line/i18n/hr.po
  62. 2
      account_bank_statement_import_move_line/i18n/nl.po
  63. 2
      account_bank_statement_import_move_line/i18n/pt_BR.po
  64. 2
      account_bank_statement_import_move_line/i18n/pt_PT.po
  65. 2
      account_bank_statement_import_move_line/i18n/sl.po
  66. 1
      account_bank_statement_import_move_line/models/__init__.py
  67. 1
      account_bank_statement_import_move_line/models/account_move_line.py
  68. 1
      account_bank_statement_import_move_line/readme/CONTRIBUTORS.rst
  69. 3
      account_bank_statement_import_move_line/readme/DESCRIPTION.rst
  70. 8
      account_bank_statement_import_move_line/readme/USAGE.rst
  71. 435
      account_bank_statement_import_move_line/static/description/index.html
  72. 1
      account_bank_statement_import_move_line/tests/__init__.py
  73. 1
      account_bank_statement_import_move_line/tests/test_account_bank_statement_import_move_line.py
  74. 1
      account_bank_statement_import_move_line/wizards/__init__.py
  75. 1
      account_bank_statement_import_move_line/wizards/account_statement_line_create.py
  76. 3
      account_bank_statement_import_mt940_base/__manifest__.py
  77. 2
      account_bank_statement_import_mt940_base/i18n/account_bank_statement_import_mt940_base.pot
  78. 5
      account_bank_statement_import_mt940_base/mt940.py
  79. 156
      account_bank_statement_import_mt940_base/test_files/test-sns.940
  80. 1
      account_bank_statement_import_mt940_base/tests/test_import_bank_statement.py
  81. 51
      account_bank_statement_import_mt940_nl_ing/README.rst
  82. 1
      account_bank_statement_import_mt940_nl_ing/__init__.py
  83. 34
      account_bank_statement_import_mt940_nl_ing/__manifest__.py
  84. 44
      account_bank_statement_import_mt940_nl_ing/account_bank_statement_import.py
  85. 26
      account_bank_statement_import_mt940_nl_ing/demo/demo_data.xml
  86. 23
      account_bank_statement_import_mt940_nl_ing/i18n/es.po
  87. 23
      account_bank_statement_import_mt940_nl_ing/i18n/fr.po
  88. 23
      account_bank_statement_import_mt940_nl_ing/i18n/lt_LT.po
  89. 23
      account_bank_statement_import_mt940_nl_ing/i18n/nl.po
  90. 23
      account_bank_statement_import_mt940_nl_ing/i18n/pt_BR.po
  91. 23
      account_bank_statement_import_mt940_nl_ing/i18n/sl.po
  92. 66
      account_bank_statement_import_mt940_nl_ing/mt940.py
  93. 61
      account_bank_statement_import_mt940_nl_ing/test_files/test-ing-old.940
  94. 62
      account_bank_statement_import_mt940_nl_ing/test_files/test-ing.940
  95. 25
      account_bank_statement_import_mt940_nl_ing/tests/__init__.py
  96. 53
      account_bank_statement_import_mt940_nl_ing/tests/test_import_bank_statement.py
  97. 47
      account_bank_statement_import_mt940_nl_rabo/README.rst
  98. 20
      account_bank_statement_import_mt940_nl_rabo/__init__.py
  99. 32
      account_bank_statement_import_mt940_nl_rabo/__manifest__.py
  100. 46
      account_bank_statement_import_mt940_nl_rabo/account_bank_statement_import.py

8
.travis.yml

@ -1,7 +1,7 @@
language: python language: python
python: python:
- "3.5"
- "2.7"
sudo: false sudo: false
cache: pip cache: pip
@ -14,16 +14,18 @@ addons:
env: env:
global: global:
- VERSION="11.0" TESTS="0" LINT_CHECK="0" TRANSIFEX="0"
- VERSION="10.0" TESTS="0" LINT_CHECK="0" TRANSIFEX="0"
- TRANSIFEX_USER='transbot@odoo-community.org' - TRANSIFEX_USER='transbot@odoo-community.org'
- secure: "G39Lpe4r3QDkivRJrcIX+JDsji/zc+wXrcQ0i2X4L66wrOEcG+SU8Lzp57Odyq+Li7lRa0XQ6rxq7+40Lm4EIoumsYbddp2VjgiR0Bkv8xHOQ2hdrODWbl0ZKhWWpzwGkPs90i39fnFKbPd86XjcvYbPmdapQ/vpUO7ht8WxCRM=" - secure: "G39Lpe4r3QDkivRJrcIX+JDsji/zc+wXrcQ0i2X4L66wrOEcG+SU8Lzp57Odyq+Li7lRa0XQ6rxq7+40Lm4EIoumsYbddp2VjgiR0Bkv8xHOQ2hdrODWbl0ZKhWWpzwGkPs90i39fnFKbPd86XjcvYbPmdapQ/vpUO7ht8WxCRM="
matrix: matrix:
- LINT_CHECK="1" - LINT_CHECK="1"
- TRANSIFEX="1" - TRANSIFEX="1"
- TESTS="1" ODOO_REPO="OCA/OCB"
- TESTS="1" ODOO_REPO="odoo/odoo" - TESTS="1" ODOO_REPO="odoo/odoo"
- TESTS="1" ODOO_REPO="OCA/OCB"
virtualenv:
system_site_packages: true
install: install:
- git clone https://github.com/OCA/maintainer-quality-tools.git ${HOME}/maintainer-quality-tools - git clone https://github.com/OCA/maintainer-quality-tools.git ${HOME}/maintainer-quality-tools

34
README.md

@ -1,18 +1,40 @@
[![Build Status](https://travis-ci.org/OCA/bank-statement-import.svg?branch=11.0)](https://travis-ci.org/OCA/bank-statement-import)
[![Coverage Status](https://coveralls.io/repos/OCA/bank-statement-import/badge.svg?branch=11.0)](https://coveralls.io/r/OCA/bank-statement-import?branch=11.0)
[![Build Status](https://travis-ci.org/OCA/bank-statement-import.svg?branch=10.0)](https://travis-ci.org/OCA/bank-statement-import)
[![Coverage Status](https://coveralls.io/repos/OCA/bank-statement-import/badge.svg?branch=10.0)](https://coveralls.io/r/OCA/bank-statement-import?branch=10.0)
OCA bank statement import modules for Odoo OCA bank statement import modules for Odoo
========================================== ==========================================
This repository hosts additionnal parsers and import features inspired by v7.0 branch from https://github.com/OCA/bank-payment and https://github.com/OCA/bank-statement-reconcile This repository hosts additionnal parsers and import features inspired by v7.0 branch from https://github.com/OCA/bank-payment and https://github.com/OCA/bank-statement-reconcile
Contributing
------------
Do you want to contribute? Please read our [contributing guidelines](https://github.com/OCA/maintainer-tools/blob/master/CONTRIBUTING.md).
[//]: # (addons)
Available addons
----------------
addon | version | summary
--- | --- | ---
[account_bank_statement_import_camt](account_bank_statement_import_camt/) | 10.0.1.1.5 | CAMT Format Bank Statements Import
[account_bank_statement_import_camt_details](account_bank_statement_import_camt_details/) | 10.0.1.0.0 | CAMT Debitor Details Bank Statements Import
[account_bank_statement_import_camt_oca](account_bank_statement_import_camt_oca/) | 10.0.1.1.5 | CAMT Format Bank Statements Import
[account_bank_statement_import_move_line](account_bank_statement_import_move_line/) | 10.0.1.0.0 | Bank statement import move lines
[account_bank_statement_import_mt940_base](account_bank_statement_import_mt940_base/) | 10.0.1.0.0 | MT940 Bank Statements Import
[account_bank_statement_import_ofx](account_bank_statement_import_ofx/) | 10.0.1.0.0 | Import OFX Bank Statement
[account_bank_statement_import_qif](account_bank_statement_import_qif/) | 10.0.1.0.2 | Import QIF Bank Statements
[account_bank_statement_import_save_file](account_bank_statement_import_save_file/) | 10.0.1.0.0 | Keep imported bank statements as raw data
Unported addons
---------------
addon | version | summary
--- | --- | ---
[account_bank_statement_import_mt940_nl_ing](account_bank_statement_import_mt940_nl_ing/) | 8.0.0.3.0 (unported) | MT940 IBAN ING Format Bank Statements Import
[account_bank_statement_import_mt940_nl_rabo](account_bank_statement_import_mt940_nl_rabo/) | 8.0.1.1.0 (unported) | MT940 import for dutch Rabobank
[base_bank_account_number_unique](base_bank_account_number_unique/) | 8.0.1.0.0 (unported) | Enforce uniqueness on bank accounts
[//]: # (end addons)
Translation Status Translation Status
------------------ ------------------
[![Transifex Status](https://www.transifex.com/projects/p/OCA-bank-statement-import-11-0/chart/image_png)](https://www.transifex.com/projects/p/OCA-bank-statement-import-11-0)
[![Transifex Status](https://www.transifex.com/projects/p/OCA-bank-statement-import-10-0/chart/image_png)](https://www.transifex.com/projects/p/OCA-bank-statement-import-10-0)
---- ----

19
account_bank_statement_import_camt_oca/README.rst → account_bank_statement_import_camt/README.rst

@ -1,8 +1,6 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: https://www.gnu.com/licenses/agpl
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:alt: License: AGPL-3 :alt: License: AGPL-3
=========================
Bank Statement Parse Camt Bank Statement Parse Camt
========================= =========================
@ -10,16 +8,18 @@ Module to import SEPA CAMT.053 and CAMT.054 Format bank statement files.
Based on the Banking addons framework. Based on the Banking addons framework.
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/174/11.0
Known issues / Roadmap
======================
* None
Bug Tracker Bug Tracker
=========== ===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/bank-statement-import/issues>`_. 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 smash it by providing a detailed and welcomed feedback.
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 Credits
@ -32,9 +32,6 @@ Contributors
* Stefan Rijnhart <srijnhart@therp.nl> * Stefan Rijnhart <srijnhart@therp.nl>
* Ronald Portier <rportier@therp.nl> * Ronald Portier <rportier@therp.nl>
* Andrea Stirpe <a.stirpe@onestein.nl> * Andrea Stirpe <a.stirpe@onestein.nl>
* Maxence Groine <mgroine@fiefmanage.ch>
Do not contact contributors directly about support or help with technical issues.
Maintainer Maintainer
---------- ----------
@ -50,3 +47,5 @@ mission is to support the collaborative development of Odoo features and
promote its widespread use. promote its widespread use.
To contribute to this module, please visit http://odoo-community.org. 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.

1
account_bank_statement_import_camt_oca/__init__.py → account_bank_statement_import_camt/__init__.py

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
# © 2013-2016 Therp BV <http://therp.nl> # © 2013-2016 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import models from . import models

3
account_bank_statement_import_camt_oca/__manifest__.py → account_bank_statement_import_camt/__manifest__.py

@ -1,8 +1,9 @@
# -*- coding: utf-8 -*-
# © 2013-2017 Therp BV <http://therp.nl> # © 2013-2017 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{ {
'name': 'CAMT Format Bank Statements Import', 'name': 'CAMT Format Bank Statements Import',
'version': '11.0.1.0.4',
'version': '10.0.1.1.5',
'license': 'AGPL-3', 'license': 'AGPL-3',
'author': 'Odoo Community Association (OCA), Therp BV', 'author': 'Odoo Community Association (OCA), Therp BV',
'website': 'https://github.com/OCA/bank-statement-import', 'website': 'https://github.com/OCA/bank-statement-import',

50
account_bank_statement_import_camt/i18n/account_bank_statement_import_camt.pot

@ -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 ""

17
account_bank_statement_import_camt_oca/i18n/account_bank_statement_import_camt_oca.pot → account_bank_statement_import_camt/i18n/account_bank_statement_import_camt_oca.pot

@ -4,7 +4,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
@ -18,26 +18,11 @@ msgstr ""
msgid "CAMT" msgid "CAMT"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_camt_oca #. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import #: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
msgid "Import Bank Statement" msgid "Import Bank Statement"
msgstr "" 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 #. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser #: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import_camt_parser
msgid "account.bank.statement.import.camt.parser" msgid "account.bank.statement.import.camt.parser"

30
account_bank_statement_import_camt_oca/i18n/de.po → account_bank_statement_import_camt/i18n/de.po

@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * account_bank_statement_import_camt_oca
# * account_bank_statement_import_camt
# #
# Translators: # Translators:
msgid "" msgid ""
@ -19,37 +19,37 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 1.8.3\n" "X-Generator: Poedit 1.8.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
#. module: account_bank_statement_import_camt
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view
msgid "CAMT" msgid "CAMT"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
#. 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" msgid "Display Name"
msgstr "" 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
#. 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" msgid "ID"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
#. module: account_bank_statement_import_camt
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import
msgid "Import Bank Statement" msgid "Import Bank Statement"
msgstr "Kontoauszug importieren" msgstr "Kontoauszug importieren"
#. 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
#. 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" msgid "Last Modified on"
msgstr "" 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
#. 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" msgid "account.bank.statement.import.camt.parser"
msgstr "" 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
#. 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" msgid "zipped CAMT"
msgstr "" msgstr ""

55
account_bank_statement_import_camt/i18n/es.po

@ -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"

30
account_bank_statement_import_camt_oca/i18n/fi.po → account_bank_statement_import_camt/i18n/fi.po

@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * account_bank_statement_import_camt_oca
# * account_bank_statement_import_camt
# #
# Translators: # Translators:
# Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 2017 # Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 2017
@ -18,37 +18,37 @@ msgstr ""
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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
#. module: account_bank_statement_import_camt
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view
msgid "CAMT" msgid "CAMT"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
#. 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" msgid "Display Name"
msgstr "" 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
#. 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" msgid "ID"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
#. module: account_bank_statement_import_camt
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import
msgid "Import Bank Statement" msgid "Import Bank Statement"
msgstr "Tuo pankkiaineisto" msgstr "Tuo pankkiaineisto"
#. 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
#. 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" msgid "Last Modified on"
msgstr "" 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
#. 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" msgid "account.bank.statement.import.camt.parser"
msgstr "" 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
#. 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" msgid "zipped CAMT"
msgstr "" msgstr ""

55
account_bank_statement_import_camt/i18n/fr.po

@ -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é"

30
account_bank_statement_import_camt_oca/i18n/fr_CH.po → account_bank_statement_import_camt/i18n/fr_CH.po

@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * account_bank_statement_import_camt_oca
# * account_bank_statement_import_camt
# #
# Translators: # Translators:
# OCA Transbot <transbot@odoo-community.org>, 2016 # OCA Transbot <transbot@odoo-community.org>, 2016
@ -19,37 +19,37 @@ msgstr ""
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\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
#. module: account_bank_statement_import_camt
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view
msgid "CAMT" msgid "CAMT"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
#. 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" msgid "Display Name"
msgstr "" 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
#. 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" msgid "ID"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
#. module: account_bank_statement_import_camt
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import
msgid "Import Bank Statement" msgid "Import Bank Statement"
msgstr "Importer Relevé" msgstr "Importer Relevé"
#. 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
#. 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" msgid "Last Modified on"
msgstr "" 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
#. 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" msgid "account.bank.statement.import.camt.parser"
msgstr "" 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
#. 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" msgid "zipped CAMT"
msgstr "" msgstr ""

30
account_bank_statement_import_camt_oca/i18n/gl.po → account_bank_statement_import_camt/i18n/gl.po

@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * account_bank_statement_import_camt_oca
# * account_bank_statement_import_camt
# #
# Translators: # Translators:
# Alejandro Santana <alejandrosantana@anubia.es>, 2016 # Alejandro Santana <alejandrosantana@anubia.es>, 2016
@ -18,37 +18,37 @@ msgstr ""
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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
#. module: account_bank_statement_import_camt
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view
msgid "CAMT" msgid "CAMT"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
#. 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" msgid "Display Name"
msgstr "" 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
#. 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" msgid "ID"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
#. module: account_bank_statement_import_camt
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import
msgid "Import Bank Statement" msgid "Import Bank Statement"
msgstr "Importar extracto bancario" 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
#. 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" msgid "Last Modified on"
msgstr "" 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
#. 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" msgid "account.bank.statement.import.camt.parser"
msgstr "" 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
#. 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" msgid "zipped CAMT"
msgstr "" msgstr ""

55
account_bank_statement_import_camt/i18n/hr.po

@ -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"

30
account_bank_statement_import_camt_oca/i18n/lt_LT.po → account_bank_statement_import_camt/i18n/lt_LT.po

@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * account_bank_statement_import_camt_oca
# * account_bank_statement_import_camt
# #
# Translators: # Translators:
msgid "" msgid ""
@ -19,37 +19,37 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (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" "%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
#. module: account_bank_statement_import_camt
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view
msgid "CAMT" msgid "CAMT"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
#. 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" msgid "Display Name"
msgstr "" 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
#. 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" msgid "ID"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
#. module: account_bank_statement_import_camt
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import
msgid "Import Bank Statement" msgid "Import Bank Statement"
msgstr "Importuoti banko išrašą" msgstr "Importuoti banko išrašą"
#. 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
#. 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" msgid "Last Modified on"
msgstr "" 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
#. 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" msgid "account.bank.statement.import.camt.parser"
msgstr "" 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
#. 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" msgid "zipped CAMT"
msgstr "" msgstr ""

30
account_bank_statement_import_camt_oca/i18n/nb_NO.po → account_bank_statement_import_camt/i18n/nb_NO.po

@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * account_bank_statement_import_camt_oca
# * account_bank_statement_import_camt
# #
# Translators: # Translators:
# Imre Kristoffer Eilertsen <imreeil42@gmail.com>, 2016 # Imre Kristoffer Eilertsen <imreeil42@gmail.com>, 2016
@ -19,37 +19,37 @@ msgstr ""
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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
#. module: account_bank_statement_import_camt
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view
msgid "CAMT" msgid "CAMT"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
#. 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" msgid "Display Name"
msgstr "" 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
#. 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" msgid "ID"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
#. module: account_bank_statement_import_camt
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import
msgid "Import Bank Statement" msgid "Import Bank Statement"
msgstr "Importer bankutsagn" msgstr "Importer bankutsagn"
#. 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
#. 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" msgid "Last Modified on"
msgstr "" 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
#. 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" msgid "account.bank.statement.import.camt.parser"
msgstr "" 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
#. 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" msgid "zipped CAMT"
msgstr "" msgstr ""

55
account_bank_statement_import_camt/i18n/nl.po

@ -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 ""

30
account_bank_statement_import_camt_oca/i18n/pt_BR.po → account_bank_statement_import_camt/i18n/pt_BR.po

@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * account_bank_statement_import_camt_oca
# * account_bank_statement_import_camt
# #
# Translators: # Translators:
msgid "" msgid ""
@ -18,37 +18,37 @@ msgstr ""
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\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
#. module: account_bank_statement_import_camt
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view
msgid "CAMT" msgid "CAMT"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
#. 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" msgid "Display Name"
msgstr "" 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
#. 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" msgid "ID"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
#. module: account_bank_statement_import_camt
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import
msgid "Import Bank Statement" msgid "Import Bank Statement"
msgstr "Importar Extrato Bancário" msgstr "Importar Extrato Bancário"
#. 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
#. 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" msgid "Last Modified on"
msgstr "" 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
#. 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" msgid "account.bank.statement.import.camt.parser"
msgstr "" 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
#. 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" msgid "zipped CAMT"
msgstr "" msgstr ""

30
account_bank_statement_import_camt_oca/i18n/pt_PT.po → account_bank_statement_import_camt/i18n/pt_PT.po

@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * account_bank_statement_import_camt_oca
# * account_bank_statement_import_camt
# #
# Translators: # Translators:
msgid "" msgid ""
@ -18,37 +18,37 @@ msgstr ""
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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
#. module: account_bank_statement_import_camt
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view
msgid "CAMT" msgid "CAMT"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
#. 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" msgid "Display Name"
msgstr "" 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
#. 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" msgid "ID"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
#. module: account_bank_statement_import_camt
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import
msgid "Import Bank Statement" msgid "Import Bank Statement"
msgstr "Importar Extrato Bancário" msgstr "Importar Extrato Bancário"
#. 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
#. 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" msgid "Last Modified on"
msgstr "" 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
#. 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" msgid "account.bank.statement.import.camt.parser"
msgstr "" 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
#. 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" msgid "zipped CAMT"
msgstr "" msgstr ""

30
account_bank_statement_import_camt_oca/i18n/sl.po → account_bank_statement_import_camt/i18n/sl.po

@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * account_bank_statement_import_camt_oca
# * account_bank_statement_import_camt
# #
# Translators: # Translators:
msgid "" msgid ""
@ -19,37 +19,37 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n" "%100==4 ? 2 : 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
#. module: account_bank_statement_import_camt
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt.account_bank_statement_import_view
msgid "CAMT" msgid "CAMT"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
#. 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" msgid "Display Name"
msgstr "" 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
#. 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" msgid "ID"
msgstr "" msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
#. module: account_bank_statement_import_camt
#: model:ir.model,name:account_bank_statement_import_camt.model_account_bank_statement_import
msgid "Import Bank Statement" msgid "Import Bank Statement"
msgstr "Uvoz bančnega izpiska" msgstr "Uvoz bančnega izpiska"
#. 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
#. 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" msgid "Last Modified on"
msgstr "" 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
#. 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" msgid "account.bank.statement.import.camt.parser"
msgstr "" 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
#. 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" msgid "zipped CAMT"
msgstr "" msgstr ""

1
account_bank_statement_import_camt_oca/models/__init__.py → account_bank_statement_import_camt/models/__init__.py

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
# © 2013-2016 Therp BV <http://therp.nl> # © 2013-2016 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import parser from . import parser

7
account_bank_statement_import_camt_oca/models/account_bank_statement_import.py → account_bank_statement_import_camt/models/account_bank_statement_import.py

@ -1,8 +1,9 @@
# -*- coding: utf-8 -*-
"""Add process_camt method to account.bank.statement.import.""" """Add process_camt method to account.bank.statement.import."""
# © 2013-2016 Therp BV <http://therp.nl> # © 2013-2016 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import logging import logging
from io import BytesIO
import StringIO
import zipfile import zipfile
from odoo import api, models from odoo import api, models
@ -22,7 +23,7 @@ class AccountBankStatementImport(models.TransientModel):
return parser.parse(data_file) return parser.parse(data_file)
except ValueError: except ValueError:
try: try:
with zipfile.ZipFile(BytesIO(data_file)) as data:
with zipfile.ZipFile(StringIO.StringIO(data_file)) as data:
currency = None currency = None
account_number = None account_number = None
transactions = [] transactions = []
@ -32,7 +33,7 @@ class AccountBankStatementImport(models.TransientModel):
) )
transactions.extend(new) transactions.extend(new)
return currency, account_number, transactions return currency, account_number, transactions
except (zipfile.BadZipFile, ValueError):
except (zipfile.BadZipfile, ValueError):
pass pass
# Not a camt file, returning super will call next candidate: # Not a camt file, returning super will call next candidate:
_logger.debug("Statement file was not a camt file.", _logger.debug("Statement file was not a camt file.",

12
account_bank_statement_import_camt_oca/models/parser.py → account_bank_statement_import_camt/models/parser.py

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
"""Class to parse camt files.""" """Class to parse camt files."""
# © 2013-2016 Therp BV <http://therp.nl> # © 2013-2016 Therp BV <http://therp.nl>
# Copyright 2017 Open Net Sàrl # Copyright 2017 Open Net Sàrl
@ -9,8 +10,8 @@ from odoo import models
class CamtParser(models.AbstractModel): class CamtParser(models.AbstractModel):
"""Parser for camt bank statement import files."""
_name = 'account.bank.statement.import.camt.parser' _name = 'account.bank.statement.import.camt.parser'
"""Parser for camt bank statement import files."""
def parse_amount(self, ns, node): def parse_amount(self, ns, node):
"""Parse element that contains Amount and CreditDebitIndicator.""" """Parse element that contains Amount and CreditDebitIndicator."""
@ -104,9 +105,10 @@ class CamtParser(models.AbstractModel):
'account_number' 'account_number'
) )
def parse_entry(self, ns, node):
def parse_entry(self, ns, node, transaction=None):
"""Parse an Ntry node and yield transactions""" """Parse an Ntry node and yield transactions"""
transaction = {'name': '/', 'amount': 0} # fallback defaults
if transaction is None:
transaction = {'name': '/', 'amount': 0} # fallback defaults
self.add_value_from_node( self.add_value_from_node(
ns, node, './ns:BookgDt/ns:Dt', transaction, 'date') ns, node, './ns:BookgDt/ns:Dt', transaction, 'date')
amount = self.parse_amount(ns, node) amount = self.parse_amount(ns, node)
@ -197,14 +199,14 @@ class CamtParser(models.AbstractModel):
def check_version(self, ns, root): def check_version(self, ns, root):
"""Validate validity of camt file.""" """Validate validity of camt file."""
# Check whether it is camt at all:
# Check wether it is camt at all:
re_camt = re.compile( re_camt = re.compile(
r'(^urn:iso:std:iso:20022:tech:xsd:camt.' r'(^urn:iso:std:iso:20022:tech:xsd:camt.'
r'|^ISO:camt.)' r'|^ISO:camt.)'
) )
if not re_camt.search(ns): if not re_camt.search(ns):
raise ValueError('no camt: ' + ns) raise ValueError('no camt: ' + ns)
# Check whether version 052 ,053 or 054:
# Check wether version 052 ,053 or 054:
re_camt_version = re.compile( re_camt_version = re.compile(
r'(^urn:iso:std:iso:20022:tech:xsd:camt.054.' r'(^urn:iso:std:iso:20022:tech:xsd:camt.054.'
r'|^urn:iso:std:iso:20022:tech:xsd:camt.053.' r'|^urn:iso:std:iso:20022:tech:xsd:camt.053.'

0
account_bank_statement_import_camt_oca/static/description/icon.png → account_bank_statement_import_camt/static/description/icon.png

Before

Width: 128  |  Height: 128  |  Size: 9.2 KiB

After

Width: 128  |  Height: 128  |  Size: 9.2 KiB

0
account_bank_statement_import_camt_oca/test_files/golden-camt053-no-ntry.pydata → account_bank_statement_import_camt/test_files/golden-camt053-no-ntry.pydata

4
account_bank_statement_import_camt_oca/test_files/golden-camt053-txdtls.pydata → account_bank_statement_import_camt/test_files/golden-camt053-txdtls.pydata

@ -7,12 +7,12 @@
'transactions': [{'account_number': 'CH2222000000123456789', 'transactions': [{'account_number': 'CH2222000000123456789',
'amount': 2187.0, 'amount': 2187.0,
'date': '2017-03-22', 'date': '2017-03-22',
'name': 'CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ID: 123456CHCAFEBABE',
'name': u'CR\xc9DIT GROUP\xc9 BVR TRAITEMENT DU 22.03.2017 NUM\xc9RO CLIENT 01-70884-3 PAQUET ID: 123456CHCAFEBABE',
'partner_name': 'Banque Cantonale Vaudoise', 'partner_name': 'Banque Cantonale Vaudoise',
'ref': '302388292000011111111111111'}, 'ref': '302388292000011111111111111'},
{'account_number': 'CH3333000000123456789', {'account_number': 'CH3333000000123456789',
'amount': 1296.0, 'amount': 1296.0,
'date': '2017-03-22', 'date': '2017-03-22',
'name': 'CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ID: 123456CHCAFEBABE',
'name': u'CR\xc9DIT GROUP\xc9 BVR TRAITEMENT DU 22.03.2017 NUM\xc9RO CLIENT 01-70884-3 PAQUET ID: 123456CHCAFEBABE',
'partner_name': 'Banque Cantonale Vaudoise', 'partner_name': 'Banque Cantonale Vaudoise',
'ref': '302388292000022222222222222'}]}]) 'ref': '302388292000022222222222222'}]}])

0
account_bank_statement_import_camt_oca/test_files/golden-camt053.pydata → account_bank_statement_import_camt/test_files/golden-camt053.pydata

0
account_bank_statement_import_camt_oca/test_files/test-camt053 → account_bank_statement_import_camt/test_files/test-camt053

0
account_bank_statement_import_camt_oca/test_files/test-camt053-no-ntry → account_bank_statement_import_camt/test_files/test-camt053-no-ntry

0
account_bank_statement_import_camt_oca/test_files/test-camt053-txdtls → account_bank_statement_import_camt/test_files/test-camt053-txdtls

0
account_bank_statement_import_camt_oca/test_files/test-camt053.zip → account_bank_statement_import_camt/test_files/test-camt053.zip

1
account_bank_statement_import_camt_oca/tests/__init__.py → account_bank_statement_import_camt/tests/__init__.py

@ -1,3 +1,4 @@
# -*- encoding: utf-8 -*-
"""Test import of bank statement for camt.053.""" """Test import of bank statement for camt.053."""
# © 2013-2016 Therp BV <http://therp.nl> # © 2013-2016 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

132
account_bank_statement_import_camt/tests/test_import_bank_statement.py

@ -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
account_bank_statement_import_camt_oca/views/account_bank_statement_import.xml → account_bank_statement_import_camt/views/account_bank_statement_import.xml

48
account_bank_statement_import_camt_details/README.rst

@ -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.

4
account_bank_statement_import_camt_details/__init__.py

@ -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

20
account_bank_statement_import_camt_details/__manifest__.py

@ -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',
]
}

50
account_bank_statement_import_camt_details/i18n/account_bank_statement_import_camt_details.pot

@ -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 ""

5
account_bank_statement_import_camt_details/models/__init__.py

@ -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

27
account_bank_statement_import_camt_details/models/account_bank_statement_line.py

@ -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

65
account_bank_statement_import_camt_details/models/camt_parser.py

@ -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())

BIN
account_bank_statement_import_camt_details/static/description/icon.png

After

Width: 128  |  Height: 128  |  Size: 9.2 KiB

12
account_bank_statement_import_camt_details/static/src/xml/camt_details_reconciliation_layout.xml

@ -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>

5
account_bank_statement_import_camt_details/tests/__init__.py

@ -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

69
account_bank_statement_import_camt_details/tests/test_import_bank_statement.py

@ -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)

17
account_bank_statement_import_camt_details/views/account_bank_statement_line.xml

@ -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>

1
account_bank_statement_import_camt_oca

@ -0,0 +1 @@
account_bank_statement_import_camt

54
account_bank_statement_import_camt_oca/i18n/es.po

@ -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"

55
account_bank_statement_import_camt_oca/i18n/fa.po

@ -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 زیپ شده"

54
account_bank_statement_import_camt_oca/i18n/fr.po

@ -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é"

55
account_bank_statement_import_camt_oca/i18n/hr.po

@ -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"

59
account_bank_statement_import_camt_oca/i18n/nl.po

@ -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"

150
account_bank_statement_import_camt_oca/tests/test_import_bank_statement.py

@ -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)

69
account_bank_statement_import_move_line/README.rst

@ -1,39 +1,15 @@
================================
Bank statement import move lines
================================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3 :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fbank--statement--import-lightgray.png?logo=github
:target: https://github.com/OCA/bank-statement-import/tree/11.0/account_bank_statement_import_move_line
:alt: OCA/bank-statement-import
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/bank-statement-import-11-0/bank-statement-import-11-0-account_bank_statement_import_move_line
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/174/11.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
=======================================
Account Bank Statement Import Move Line
=======================================
This module adds a button to bank statement form view to open a wizard to allow 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 filtering, selecting and importing lines form journal items into the bank
statement. statement.
**Table of contents**
.. contents::
:local:
Usage Usage
===== =====
@ -46,42 +22,43 @@ Usage
lines filtered by the criteria. lines filtered by the criteria.
#. Click on button "Create Statement Lines". #. Click on button "Create Statement Lines".
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/174/10.0
Bug Tracker 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 <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**>`_.
Do not contact contributors directly about support or help with technical issues.
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 smash it by providing detailed and welcomed feedback.
Credits Credits
======= =======
Authors
~~~~~~~
Images
------
* Tecnativa
* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_.
Contributors Contributors
~~~~~~~~~~~~
------------
* Luis M. Ontalba luis.martinez@tecnativa.com> * Luis M. Ontalba luis.martinez@tecnativa.com>
Maintainers
~~~~~~~~~~~
This module is maintained by the OCA.
Maintainer
----------
.. image:: https://odoo-community.org/logo.png .. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association :alt: Odoo Community Association
:target: https://odoo-community.org :target: https://odoo-community.org
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and mission is to support the collaborative development of Odoo features and
promote its widespread use. promote its widespread use.
This module is part of the `OCA/bank-statement-import <https://github.com/OCA/bank-statement-import/tree/11.0/account_bank_statement_import_move_line>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
To contribute to this module, please visit https://odoo-community.org.

1
account_bank_statement_import_move_line/__init__.py

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from . import models from . import models

4
account_bank_statement_import_move_line/__manifest__.py

@ -1,11 +1,11 @@
# -*- coding: utf-8 -*-
# Copyright 2017 Tecnativa - Luis M. Ontalba # Copyright 2017 Tecnativa - Luis M. Ontalba
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
{ {
'name': 'Bank statement import move lines', 'name': 'Bank statement import move lines',
'version': '11.0.1.0.0',
'version': '10.0.1.0.0',
'category': 'Accounting', 'category': 'Accounting',
'summary': 'Import journal items into bank statement',
'author': 'Tecnativa, ' 'author': 'Tecnativa, '
'Odoo Community Association (OCA)', 'Odoo Community Association (OCA)',
'website': 'https://www.tecnativa.com', 'website': 'https://www.tecnativa.com',

4
account_bank_statement_import_move_line/i18n/account_bank_statement_import_move_line.pot

@ -4,7 +4,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
@ -146,7 +146,7 @@ msgid "Partner Related"
msgstr "" msgstr ""
#. module: account_bank_statement_import_move_line #. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:96
#, python-format #, python-format
msgid "Select Move Lines to Create Statement" msgid "Select Move Lines to Create Statement"
msgstr "" msgstr ""

2
account_bank_statement_import_move_line/i18n/de.po

@ -154,7 +154,7 @@ msgid "Partner Related"
msgstr "" msgstr ""
#. module: account_bank_statement_import_move_line #. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:96
#, python-format #, python-format
msgid "Select Move Lines to Create Statement" msgid "Select Move Lines to Create Statement"
msgstr "" msgstr ""

2
account_bank_statement_import_move_line/i18n/es.po

@ -156,7 +156,7 @@ msgid "Partner Related"
msgstr "Empresa relacionada" msgstr "Empresa relacionada"
#. module: account_bank_statement_import_move_line #. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:96
#, python-format #, python-format
msgid "Select Move Lines to Create Statement" msgid "Select Move Lines to Create Statement"
msgstr "Seleccionar apuntes para crear extracto" msgstr "Seleccionar apuntes para crear extracto"

2
account_bank_statement_import_move_line/i18n/fr.po

@ -159,7 +159,7 @@ msgid "Partner Related"
msgstr "Partenaire lié" msgstr "Partenaire lié"
#. module: account_bank_statement_import_move_line #. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:96
#, python-format #, python-format
msgid "Select Move Lines to Create Statement" msgid "Select Move Lines to Create Statement"
msgstr "Sélectionner les lignes de mouvement pour créer le relevé" msgstr "Sélectionner les lignes de mouvement pour créer le relevé"

2
account_bank_statement_import_move_line/i18n/hr.po

@ -155,7 +155,7 @@ msgid "Partner Related"
msgstr "" msgstr ""
#. module: account_bank_statement_import_move_line #. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:96
#, python-format #, python-format
msgid "Select Move Lines to Create Statement" msgid "Select Move Lines to Create Statement"
msgstr "" msgstr ""

2
account_bank_statement_import_move_line/i18n/nl.po

@ -154,7 +154,7 @@ msgid "Partner Related"
msgstr "" msgstr ""
#. module: account_bank_statement_import_move_line #. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:96
#, python-format #, python-format
msgid "Select Move Lines to Create Statement" msgid "Select Move Lines to Create Statement"
msgstr "" msgstr ""

2
account_bank_statement_import_move_line/i18n/pt_BR.po

@ -155,7 +155,7 @@ msgid "Partner Related"
msgstr "" msgstr ""
#. module: account_bank_statement_import_move_line #. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:96
#, python-format #, python-format
msgid "Select Move Lines to Create Statement" msgid "Select Move Lines to Create Statement"
msgstr "" msgstr ""

2
account_bank_statement_import_move_line/i18n/pt_PT.po

@ -155,7 +155,7 @@ msgid "Partner Related"
msgstr "" msgstr ""
#. module: account_bank_statement_import_move_line #. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:96
#, python-format #, python-format
msgid "Select Move Lines to Create Statement" msgid "Select Move Lines to Create Statement"
msgstr "" msgstr ""

2
account_bank_statement_import_move_line/i18n/sl.po

@ -155,7 +155,7 @@ msgid "Partner Related"
msgstr "" msgstr ""
#. module: account_bank_statement_import_move_line #. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:96
#, python-format #, python-format
msgid "Select Move Lines to Create Statement" msgid "Select Move Lines to Create Statement"
msgstr "" msgstr ""

1
account_bank_statement_import_move_line/models/__init__.py

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from . import account_move_line from . import account_move_line

1
account_bank_statement_import_move_line/models/account_move_line.py

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
# Copyright 2017 Tecnativa - Luis M. Ontalba # Copyright 2017 Tecnativa - Luis M. Ontalba
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

1
account_bank_statement_import_move_line/readme/CONTRIBUTORS.rst

@ -1 +0,0 @@
* Luis M. Ontalba luis.martinez@tecnativa.com>

3
account_bank_statement_import_move_line/readme/DESCRIPTION.rst

@ -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.

8
account_bank_statement_import_move_line/readme/USAGE.rst

@ -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".

435
account_bank_statement_import_move_line/static/description/index.html

@ -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 &gt; 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&#64;tecnativa.com">luis.martinez&#64;tecnativa.com</a>&gt;</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
account_bank_statement_import_move_line/tests/__init__.py

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0 # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0
from . import test_account_bank_statement_import_move_line from . import test_account_bank_statement_import_move_line

1
account_bank_statement_import_move_line/tests/test_account_bank_statement_import_move_line.py

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
# Copyright 2017 Tecnativa - Luis M. Ontalba # Copyright 2017 Tecnativa - Luis M. Ontalba
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0 # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0

1
account_bank_statement_import_move_line/wizards/__init__.py

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from . import account_statement_line_create from . import account_statement_line_create

1
account_bank_statement_import_move_line/wizards/account_statement_line_create.py

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
# Copyright 2017 Tecnativa - Luis M. Ontalba # Copyright 2017 Tecnativa - Luis M. Ontalba
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

3
account_bank_statement_import_mt940_base/__manifest__.py

@ -1,8 +1,9 @@
# -*- coding: utf-8 -*-
# Copyright (C) 2013-2015 Therp BV <http://therp.nl> # Copyright (C) 2013-2015 Therp BV <http://therp.nl>
{ {
'name': 'MT940 Bank Statements Import', 'name': 'MT940 Bank Statements Import',
'version': '11.0.1.0.0',
'version': '10.0.1.0.0',
'license': 'AGPL-3', 'license': 'AGPL-3',
'author': 'Odoo Community Association (OCA), Therp BV', 'author': 'Odoo Community Association (OCA), Therp BV',
'website': 'https://github.com/OCA/bank-statement-import', 'website': 'https://github.com/OCA/bank-statement-import',

2
account_bank_statement_import_mt940_base/i18n/account_bank_statement_import_mt940_base.pot

@ -3,7 +3,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"

5
account_bank_statement_import_mt940_base/mt940.py

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
# Copyright (C) 2014-2015 Therp BV <http://therp.nl>. # Copyright (C) 2014-2015 Therp BV <http://therp.nl>.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
"""Generic parser for MT940 files, base for customized versions per bank.""" """Generic parser for MT940 files, base for customized versions per bank."""
@ -162,7 +163,7 @@ class MT940(object):
if not self.current_statement: if not self.current_statement:
self.handle_header(line, iterator, self.handle_header(line, iterator,
header_lines=header_lines) header_lines=header_lines)
line = next(iterator)
line = iterator.next()
if not self.is_tag(line) and not self.is_footer(line): if not self.is_tag(line) and not self.is_footer(line):
record_line = self.add_record_line(line, record_line) record_line = self.add_record_line(line, record_line)
continue continue
@ -200,7 +201,7 @@ class MT940(object):
if not header_lines: if not header_lines:
header_lines = self.header_lines header_lines = self.header_lines
for dummy_i in range(header_lines): for dummy_i in range(header_lines):
next(iterator)
iterator.next()
self.current_statement = { self.current_statement = {
'name': None, 'name': None,
'date': None, 'date': None,

156
account_bank_statement_import_mt940_base/test_files/test-sns.940

@ -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:}

1
account_bank_statement_import_mt940_base/tests/test_import_bank_statement.py

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
# Copyright 2017 Onestein (<http://www.onestein.eu>) # Copyright 2017 Onestein (<http://www.onestein.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

51
account_bank_statement_import_mt940_nl_ing/README.rst

@ -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.

1
account_bank_statement_import_mt940_nl_ing/__init__.py

@ -0,0 +1 @@
from . import account_bank_statement_import

34
account_bank_statement_import_mt940_nl_ing/__manifest__.py

@ -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
}

44
account_bank_statement_import_mt940_nl_ing/account_bank_statement_import.py

@ -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)

26
account_bank_statement_import_mt940_nl_ing/demo/demo_data.xml

@ -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>

23
account_bank_statement_import_mt940_nl_ing/i18n/es.po

@ -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"

23
account_bank_statement_import_mt940_nl_ing/i18n/fr.po

@ -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"

23
account_bank_statement_import_mt940_nl_ing/i18n/lt_LT.po

@ -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šą"

23
account_bank_statement_import_mt940_nl_ing/i18n/nl.po

@ -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"

23
account_bank_statement_import_mt940_nl_ing/i18n/pt_BR.po

@ -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"

23
account_bank_statement_import_mt940_nl_ing/i18n/sl.po

@ -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"

66
account_bank_statement_import_mt940_nl_ing/mt940.py

@ -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

61
account_bank_statement_import_mt940_nl_ing/test_files/test-ing-old.940

@ -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

62
account_bank_statement_import_mt940_nl_ing/test_files/test-ing.940

@ -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/
-
}

25
account_bank_statement_import_mt940_nl_ing/tests/__init__.py

@ -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

53
account_bank_statement_import_mt940_nl_ing/tests/test_import_bank_statement.py

@ -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
)

47
account_bank_statement_import_mt940_nl_rabo/README.rst

@ -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.

20
account_bank_statement_import_mt940_nl_rabo/__init__.py

@ -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

32
account_bank_statement_import_mt940_nl_rabo/__manifest__.py

@ -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,
}

46
account_bank_statement_import_mt940_nl_rabo/account_bank_statement_import.py

@ -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

Loading…
Cancel
Save