Compare commits

...

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

  1. 40
      .travis.yml
  2. 21
      README.md
  3. 52
      account_bank_statement_import_camt_oca/README.rst
  4. 3
      account_bank_statement_import_camt_oca/__init__.py
  5. 16
      account_bank_statement_import_camt_oca/__manifest__.py
  6. 50
      account_bank_statement_import_camt_oca/i18n/account_bank_statement_import_camt_oca.pot
  7. 55
      account_bank_statement_import_camt_oca/i18n/de.po
  8. 54
      account_bank_statement_import_camt_oca/i18n/es.po
  9. 55
      account_bank_statement_import_camt_oca/i18n/fa.po
  10. 54
      account_bank_statement_import_camt_oca/i18n/fi.po
  11. 54
      account_bank_statement_import_camt_oca/i18n/fr.po
  12. 55
      account_bank_statement_import_camt_oca/i18n/fr_CH.po
  13. 54
      account_bank_statement_import_camt_oca/i18n/gl.po
  14. 55
      account_bank_statement_import_camt_oca/i18n/hr.po
  15. 55
      account_bank_statement_import_camt_oca/i18n/lt_LT.po
  16. 55
      account_bank_statement_import_camt_oca/i18n/nb_NO.po
  17. 59
      account_bank_statement_import_camt_oca/i18n/nl.po
  18. 54
      account_bank_statement_import_camt_oca/i18n/pt_BR.po
  19. 54
      account_bank_statement_import_camt_oca/i18n/pt_PT.po
  20. 55
      account_bank_statement_import_camt_oca/i18n/sl.po
  21. 4
      account_bank_statement_import_camt_oca/models/__init__.py
  22. 40
      account_bank_statement_import_camt_oca/models/account_bank_statement_import.py
  23. 248
      account_bank_statement_import_camt_oca/models/parser.py
  24. BIN
      account_bank_statement_import_camt_oca/static/description/icon.png
  25. 1
      account_bank_statement_import_camt_oca/test_files/golden-camt053-no-ntry.pydata
  26. 18
      account_bank_statement_import_camt_oca/test_files/golden-camt053-txdtls.pydata
  27. 34
      account_bank_statement_import_camt_oca/test_files/golden-camt053.pydata
  28. 289
      account_bank_statement_import_camt_oca/test_files/test-camt053
  29. 52
      account_bank_statement_import_camt_oca/test_files/test-camt053-no-ntry
  30. 214
      account_bank_statement_import_camt_oca/test_files/test-camt053-txdtls
  31. BIN
      account_bank_statement_import_camt_oca/test_files/test-camt053.zip
  32. 4
      account_bank_statement_import_camt_oca/tests/__init__.py
  33. 150
      account_bank_statement_import_camt_oca/tests/test_import_bank_statement.py
  34. 13
      account_bank_statement_import_camt_oca/views/account_bank_statement_import.xml
  35. 87
      account_bank_statement_import_move_line/README.rst
  36. 4
      account_bank_statement_import_move_line/__init__.py
  37. 22
      account_bank_statement_import_move_line/__manifest__.py
  38. 178
      account_bank_statement_import_move_line/i18n/account_bank_statement_import_move_line.pot
  39. 185
      account_bank_statement_import_move_line/i18n/de.po
  40. 187
      account_bank_statement_import_move_line/i18n/es.po
  41. 190
      account_bank_statement_import_move_line/i18n/fr.po
  42. 186
      account_bank_statement_import_move_line/i18n/hr.po
  43. 185
      account_bank_statement_import_move_line/i18n/nl.po
  44. 186
      account_bank_statement_import_move_line/i18n/pt_BR.po
  45. 186
      account_bank_statement_import_move_line/i18n/pt_PT.po
  46. 186
      account_bank_statement_import_move_line/i18n/sl.po
  47. 3
      account_bank_statement_import_move_line/models/__init__.py
  48. 36
      account_bank_statement_import_move_line/models/account_move_line.py
  49. 1
      account_bank_statement_import_move_line/readme/CONTRIBUTORS.rst
  50. 3
      account_bank_statement_import_move_line/readme/DESCRIPTION.rst
  51. 8
      account_bank_statement_import_move_line/readme/USAGE.rst
  52. BIN
      account_bank_statement_import_move_line/static/description/icon.png
  53. 435
      account_bank_statement_import_move_line/static/description/index.html
  54. 3
      account_bank_statement_import_move_line/tests/__init__.py
  55. 72
      account_bank_statement_import_move_line/tests/test_account_bank_statement_import_move_line.py
  56. 19
      account_bank_statement_import_move_line/views/account_bank_statement_view.xml
  57. 3
      account_bank_statement_import_move_line/wizards/__init__.py
  58. 118
      account_bank_statement_import_move_line/wizards/account_statement_line_create.py
  59. 63
      account_bank_statement_import_move_line/wizards/account_statement_line_create_view.xml
  60. 55
      account_bank_statement_import_mt940_base/README.rst
  61. 1
      account_bank_statement_import_mt940_base/__init__.py
  62. 14
      account_bank_statement_import_mt940_base/__manifest__.py
  63. 14
      account_bank_statement_import_mt940_base/i18n/account_bank_statement_import_mt940_base.pot
  64. 310
      account_bank_statement_import_mt940_base/mt940.py
  65. BIN
      account_bank_statement_import_mt940_base/static/description/icon.png
  66. 61
      account_bank_statement_import_mt940_base/test_files/test-ing.940
  67. 29
      account_bank_statement_import_mt940_base/test_files/test-rabo.swi
  68. 78
      account_bank_statement_import_mt940_base/test_files/test-sns.940
  69. 11
      account_bank_statement_import_mt940_base/test_files/test-wrong-file.940
  70. 1
      account_bank_statement_import_mt940_base/tests/__init__.py
  71. 239
      account_bank_statement_import_mt940_base/tests/test_import_bank_statement.py
  72. 66
      account_bank_statement_import_ofx/README.rst
  73. 1
      account_bank_statement_import_ofx/__init__.py
  74. 23
      account_bank_statement_import_ofx/__manifest__.py
  75. 33
      account_bank_statement_import_ofx/i18n/account_bank_statement_import_ofx.pot
  76. 42
      account_bank_statement_import_ofx/i18n/de.po
  77. 38
      account_bank_statement_import_ofx/i18n/es.po
  78. 38
      account_bank_statement_import_ofx/i18n/fi.po
  79. 42
      account_bank_statement_import_ofx/i18n/fr.po
  80. 39
      account_bank_statement_import_ofx/i18n/fr_CH.po
  81. 38
      account_bank_statement_import_ofx/i18n/gl.po
  82. 43
      account_bank_statement_import_ofx/i18n/lt_LT.po
  83. 39
      account_bank_statement_import_ofx/i18n/nb_NO.po
  84. 42
      account_bank_statement_import_ofx/i18n/nl.po
  85. 43
      account_bank_statement_import_ofx/i18n/pt_BR.po
  86. 39
      account_bank_statement_import_ofx/i18n/pt_PT.po
  87. 42
      account_bank_statement_import_ofx/i18n/sl.po
  88. BIN
      account_bank_statement_import_ofx/static/description/icon.png
  89. 1
      account_bank_statement_import_ofx/tests/__init__.py
  90. 86
      account_bank_statement_import_ofx/tests/test_import_bank_statement.py
  91. 100
      account_bank_statement_import_ofx/tests/test_ofx_file/test_ofx.ofx
  92. 101
      account_bank_statement_import_ofx/tests/test_ofx_file/test_ofx_iban.ofx
  93. 100
      account_bank_statement_import_ofx/tests/test_ofx_file/test_ofx_wrong.ofx
  94. 12
      account_bank_statement_import_ofx/views/view_account_bank_statement_import.xml
  95. 1
      account_bank_statement_import_ofx/wizard/__init__.py
  96. 93
      account_bank_statement_import_ofx/wizard/account_bank_statement_import.py
  97. 106
      account_bank_statement_import_paypal/README.rst
  98. 2
      account_bank_statement_import_paypal/__init__.py
  99. 26
      account_bank_statement_import_paypal/__manifest__.py
  100. 116
      account_bank_statement_import_paypal/data/paypal_map_data.xml

40
.travis.yml

@ -1,40 +0,0 @@
language: python
python:
- "3.5"
sudo: false
cache: pip
addons:
apt:
packages:
- expect-dev # provides unbuffer utility
- python-lxml # because pip installation is slow
env:
global:
- VERSION="11.0" TESTS="0" LINT_CHECK="0" TRANSIFEX="0"
- TRANSIFEX_USER='transbot@odoo-community.org'
- secure: "G39Lpe4r3QDkivRJrcIX+JDsji/zc+wXrcQ0i2X4L66wrOEcG+SU8Lzp57Odyq+Li7lRa0XQ6rxq7+40Lm4EIoumsYbddp2VjgiR0Bkv8xHOQ2hdrODWbl0ZKhWWpzwGkPs90i39fnFKbPd86XjcvYbPmdapQ/vpUO7ht8WxCRM="
matrix:
- LINT_CHECK="1"
- TRANSIFEX="1"
- TESTS="1" ODOO_REPO="OCA/OCB"
- TESTS="1" ODOO_REPO="odoo/odoo"
install:
- git clone https://github.com/OCA/maintainer-quality-tools.git ${HOME}/maintainer-quality-tools
- export PATH=${HOME}/maintainer-quality-tools/travis:${PATH}
- pip install git+https://github.com/jseutter/ofxparse.git
- travis_install_nightly
# example: dependency
# - git clone https://github.com/OCA/webkit-tools -b ${VERSION} $HOME/webkit-tools
script:
- travis_run_tests
after_success:
- travis_after_tests_success

21
README.md

@ -1,23 +1,12 @@
[![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)
OCA bank statement import empty branch for 7.0
==============================================
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
Contributing
------------
Do you want to contribute? Please read our [contributing guidelines](https://github.com/OCA/maintainer-tools/blob/master/CONTRIBUTING.md).
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)
This branch avoids an error when having the repo as dependency on runbot.
----
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
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.
http://odoo-community.org/

52
account_bank_statement_import_camt_oca/README.rst

@ -1,52 +0,0 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: https://www.gnu.com/licenses/agpl
:alt: License: AGPL-3
=========================
Bank Statement Parse Camt
=========================
Module to import SEPA CAMT.053 and CAMT.054 Format bank statement files.
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
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 smash it by providing a detailed and welcomed feedback.
Credits
=======
Contributors
------------
* Holger Brunn <hbrunn@therp.nl>
* Stefan Rijnhart <srijnhart@therp.nl>
* Ronald Portier <rportier@therp.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
----------
.. 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.

3
account_bank_statement_import_camt_oca/__init__.py

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

16
account_bank_statement_import_camt_oca/__manifest__.py

@ -1,16 +0,0 @@
# © 2013-2017 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
'name': 'CAMT Format Bank Statements Import',
'version': '11.0.1.0.4',
'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',
],
'data': [
'views/account_bank_statement_import.xml',
],
}

50
account_bank_statement_import_camt_oca/i18n/account_bank_statement_import_camt_oca.pot

@ -1,50 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_camt_oca
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.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_oca
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view
msgid "CAMT"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.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 ""

55
account_bank_statement_import_camt_oca/i18n/de.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:
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-10-04 11:43+0200\n"
"Last-Translator: Rudolf Schnapka <rs@techno-flex.de>\n"
"Language-Team: French (http://www.transifex.com/oca/OCA-bank-statement-"
"import-8-0/language/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 1.8.3\n"
#. module: account_bank_statement_import_camt_oca
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view
msgid "CAMT"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Kontoauszug importieren"
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.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 ""

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/fi.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:
# Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-12-10 05:00+0000\n"
"PO-Revision-Date: 2016-12-10 05:00+0000\n"
"Last-Translator: Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 2017\n"
"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_bank_statement_import_camt_oca
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view
msgid "CAMT"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Tuo pankkiaineisto"
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.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 ""

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/fr_CH.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>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-12-09 17:00+0000\n"
"PO-Revision-Date: 2016-12-09 17:00+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2016\n"
"Language-Team: French (Switzerland) (https://www.transifex.com/oca/"
"teams/23907/fr_CH/)\n"
"Language: fr_CH\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: account_bank_statement_import_camt_oca
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view
msgid "CAMT"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importer Relevé"
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.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 ""

54
account_bank_statement_import_camt_oca/i18n/gl.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:
# Alejandro Santana <alejandrosantana@anubia.es>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-12-09 17:00+0000\n"
"PO-Revision-Date: 2016-12-09 17:00+0000\n"
"Last-Translator: Alejandro Santana <alejandrosantana@anubia.es>, 2016\n"
"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/gl/)\n"
"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_bank_statement_import_camt_oca
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view
msgid "CAMT"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importar extracto bancario"
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.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 ""

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"

55
account_bank_statement_import_camt_oca/i18n/lt_LT.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:
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"
"Language: lt_LT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
"%100<10 || n%100>=20) ? 1 : 2);\n"
#. module: account_bank_statement_import_camt_oca
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view
msgid "CAMT"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importuoti banko išrašą"
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.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 ""

55
account_bank_statement_import_camt_oca/i18n/nb_NO.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:
# Imre Kristoffer Eilertsen <imreeil42@gmail.com>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-12-09 17:00+0000\n"
"PO-Revision-Date: 2016-12-09 17:00+0000\n"
"Last-Translator: Imre Kristoffer Eilertsen <imreeil42@gmail.com>, 2016\n"
"Language-Team: Norwegian Bokmål (Norway) (https://www.transifex.com/oca/"
"teams/23907/nb_NO/)\n"
"Language: nb_NO\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_bank_statement_import_camt_oca
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view
msgid "CAMT"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importer bankutsagn"
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.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 ""

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"

54
account_bank_statement_import_camt_oca/i18n/pt_BR.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:
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"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: account_bank_statement_import_camt_oca
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view
msgid "CAMT"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importar Extrato Bancário"
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.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 ""

54
account_bank_statement_import_camt_oca/i18n/pt_PT.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:
msgid ""
msgstr ""
"Project-Id-Version: bank-statement-import (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-08-18 10:27+0000\n"
"PO-Revision-Date: 2015-07-24 07:41+0000\n"
"Last-Translator: <>\n"
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/oca/OCA-bank-"
"statement-import-8-0/language/pt_PT/)\n"
"Language: pt_PT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_bank_statement_import_camt_oca
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view
msgid "CAMT"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importar Extrato Bancário"
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.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 ""

55
account_bank_statement_import_camt_oca/i18n/sl.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:
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"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n"
#. module: account_bank_statement_import_camt_oca
#: model:ir.ui.view,arch_db:account_bank_statement_import_camt_oca.account_bank_statement_import_view
msgid "CAMT"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.fields,field_description:account_bank_statement_import_camt_oca.field_account_bank_statement_import_camt_parser_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_camt_oca
#: model:ir.model,name:account_bank_statement_import_camt_oca.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Uvoz bančnega izpiska"
#. module: account_bank_statement_import_camt_oca
#: model:ir.model.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 ""

4
account_bank_statement_import_camt_oca/models/__init__.py

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

40
account_bank_statement_import_camt_oca/models/account_bank_statement_import.py

@ -1,40 +0,0 @@
"""Add process_camt method to account.bank.statement.import."""
# © 2013-2016 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import logging
from io import BytesIO
import zipfile
from odoo import api, models
_logger = logging.getLogger(__name__)
class AccountBankStatementImport(models.TransientModel):
"""Add process_camt method to account.bank.statement.import."""
_inherit = 'account.bank.statement.import'
@api.model
def _parse_file(self, data_file):
"""Parse a CAMT053 XML file."""
try:
parser = self.env['account.bank.statement.import.camt.parser']
_logger.debug("Try parsing with camt.")
return parser.parse(data_file)
except ValueError:
try:
with zipfile.ZipFile(BytesIO(data_file)) as data:
currency = None
account_number = None
transactions = []
for member in data.namelist():
currency, account_number, new = self._parse_file(
data.open(member).read()
)
transactions.extend(new)
return currency, account_number, transactions
except (zipfile.BadZipFile, ValueError):
pass
# Not a camt file, returning super will call next candidate:
_logger.debug("Statement file was not a camt file.",
exc_info=True)
return super(AccountBankStatementImport, self)._parse_file(data_file)

248
account_bank_statement_import_camt_oca/models/parser.py

@ -1,248 +0,0 @@
"""Class to parse camt files."""
# © 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 re
from lxml import etree
from odoo import models
class CamtParser(models.AbstractModel):
"""Parser for camt bank statement import files."""
_name = 'account.bank.statement.import.camt.parser'
def parse_amount(self, ns, node):
"""Parse element that contains Amount and CreditDebitIndicator."""
if node is None:
return 0.0
sign = 1
amount = 0.0
sign_node = node.xpath('ns:CdtDbtInd', namespaces={'ns': ns})
if not sign_node:
sign_node = node.xpath(
'../../ns:CdtDbtInd', namespaces={'ns': ns})
if sign_node and sign_node[0].text == 'DBIT':
sign = -1
amount_node = node.xpath('ns:Amt', namespaces={'ns': ns})
if not amount_node:
amount_node = node.xpath(
'./ns:AmtDtls/ns:TxAmt/ns:Amt', namespaces={'ns': ns})
if amount_node:
amount = sign * float(amount_node[0].text)
return amount
def add_value_from_node(
self, ns, node, xpath_str, obj, attr_name, join_str=None):
"""Add value to object from first or all nodes found with xpath.
If xpath_str is a list (or iterable), it will be seen as a series
of search path's in order of preference. The first item that results
in a found node will be used to set a value."""
if not isinstance(xpath_str, (list, tuple)):
xpath_str = [xpath_str]
for search_str in xpath_str:
found_node = node.xpath(search_str, namespaces={'ns': ns})
if found_node:
if join_str is None:
attr_value = found_node[0].text
else:
attr_value = join_str.join([x.text for x in found_node])
obj[attr_name] = attr_value
break
def parse_transaction_details(self, ns, node, transaction):
"""Parse TxDtls node."""
# message
self.add_value_from_node(
ns, node, [
'./ns:RmtInf/ns:Ustrd|./ns:RtrInf/ns:AddtlInf',
'./ns:AddtlNtryInf',
'./ns:Refs/ns:InstrId',
], transaction, 'name', join_str='\n')
# name
self.add_value_from_node(
ns, node, [
'./ns:AddtlTxInf',
], transaction, 'note', join_str='\n')
# eref
self.add_value_from_node(
ns, node, [
'./ns:RmtInf/ns:Strd/ns:CdtrRefInf/ns:Ref',
'./ns:Refs/ns:EndToEndId',
'./ns:Ntry/ns:AcctSvcrRef'
],
transaction, 'ref'
)
amount = self.parse_amount(ns, node)
if amount != 0.0:
transaction['amount'] = amount
# remote party values
party_type = 'Dbtr'
party_type_node = node.xpath(
'../../ns:CdtDbtInd', namespaces={'ns': ns})
if party_type_node and party_type_node[0].text != 'CRDT':
party_type = 'Cdtr'
party_node = node.xpath(
'./ns:RltdPties/ns:%s' % party_type, namespaces={'ns': ns})
if party_node:
self.add_value_from_node(
ns, party_node[0], './ns:Nm', transaction, 'partner_name')
# Get remote_account from iban or from domestic account:
account_node = node.xpath(
'./ns:RltdPties/ns:%sAcct/ns:Id' % party_type,
namespaces={'ns': ns}
)
if account_node:
iban_node = account_node[0].xpath(
'./ns:IBAN', namespaces={'ns': ns})
if iban_node:
transaction['account_number'] = iban_node[0].text
else:
self.add_value_from_node(
ns, account_node[0], './ns:Othr/ns:Id', transaction,
'account_number'
)
def parse_entry(self, ns, node):
"""Parse an Ntry node and yield transactions"""
transaction = {'name': '/', 'amount': 0} # fallback defaults
self.add_value_from_node(
ns, node, './ns:BookgDt/ns:Dt', transaction, 'date')
amount = self.parse_amount(ns, node)
if amount != 0.0:
transaction['amount'] = amount
self.add_value_from_node(
ns, node, './ns:AddtlNtryInf', transaction, 'name')
self.add_value_from_node(
ns, node, [
'./ns:NtryDtls/ns:RmtInf/ns:Strd/ns:CdtrRefInf/ns:Ref',
'./ns:NtryDtls/ns:Btch/ns:PmtInfId',
'./ns:NtryDtls/ns:TxDtls/ns:Refs/ns:AcctSvcrRef'
],
transaction, 'ref'
)
details_nodes = node.xpath(
'./ns:NtryDtls/ns:TxDtls', namespaces={'ns': ns})
if len(details_nodes) == 0:
yield transaction
return
transaction_base = transaction
for node in details_nodes:
transaction = transaction_base.copy()
self.parse_transaction_details(ns, node, transaction)
yield transaction
def get_balance_amounts(self, ns, node):
"""Return opening and closing balance.
Depending on kind of balance and statement, the balance might be in a
different kind of node:
OPBD = OpeningBalance
PRCD = PreviousClosingBalance
ITBD = InterimBalance (first ITBD is start-, second is end-balance)
CLBD = ClosingBalance
"""
start_balance_node = None
end_balance_node = None
for node_name in ['OPBD', 'PRCD', 'CLBD', 'ITBD']:
code_expr = (
'./ns:Bal/ns:Tp/ns:CdOrPrtry/ns:Cd[text()="%s"]/../../..' %
node_name
)
balance_node = node.xpath(code_expr, namespaces={'ns': ns})
if balance_node:
if node_name in ['OPBD', 'PRCD']:
start_balance_node = balance_node[0]
elif node_name == 'CLBD':
end_balance_node = balance_node[0]
else:
if not start_balance_node:
start_balance_node = balance_node[0]
if not end_balance_node:
end_balance_node = balance_node[-1]
return (
self.parse_amount(ns, start_balance_node),
self.parse_amount(ns, end_balance_node)
)
def parse_statement(self, ns, node):
"""Parse a single Stmt node."""
result = {}
self.add_value_from_node(
ns, node, [
'./ns:Acct/ns:Id/ns:IBAN',
'./ns:Acct/ns:Id/ns:Othr/ns:Id',
], result, 'account_number'
)
self.add_value_from_node(
ns, node, './ns:Id', result, 'name')
self.add_value_from_node(
ns, node, './ns:Acct/ns:Ccy', result, 'currency')
result['balance_start'], result['balance_end_real'] = (
self.get_balance_amounts(ns, node))
entry_nodes = node.xpath('./ns:Ntry', namespaces={'ns': ns})
transactions = []
for entry_node in entry_nodes:
transactions.extend(self.parse_entry(ns, entry_node))
result['transactions'] = transactions
result['date'] = None
if transactions:
result['date'] = sorted(transactions,
key=lambda x: x['date'],
reverse=True
)[0]['date']
return result
def check_version(self, ns, root):
"""Validate validity of camt file."""
# Check whether it is camt at all:
re_camt = re.compile(
r'(^urn:iso:std:iso:20022:tech:xsd:camt.'
r'|^ISO:camt.)'
)
if not re_camt.search(ns):
raise ValueError('no camt: ' + ns)
# Check whether version 052 ,053 or 054:
re_camt_version = re.compile(
r'(^urn:iso:std:iso:20022:tech:xsd:camt.054.'
r'|^urn:iso:std:iso:20022:tech:xsd:camt.053.'
r'|^urn:iso:std:iso:20022:tech:xsd:camt.052.'
r'|^ISO:camt.054.'
r'|^ISO:camt.053.'
r'|^ISO:camt.052.)'
)
if not re_camt_version.search(ns):
raise ValueError('no camt 052 or 053 or 054: ' + ns)
# Check GrpHdr element:
root_0_0 = root[0][0].tag[len(ns) + 2:] # strip namespace
if root_0_0 != 'GrpHdr':
raise ValueError('expected GrpHdr, got: ' + root_0_0)
def parse(self, data):
"""Parse a camt.052 or camt.053 or camt.054 file."""
try:
root = etree.fromstring(
data, parser=etree.XMLParser(recover=True))
except etree.XMLSyntaxError:
# ABNAmro is known to mix up encodings
root = etree.fromstring(
data.decode('iso-8859-15').encode('utf-8'))
if root is None:
raise ValueError(
'Not a valid xml file, or not an xml file at all.')
ns = root.tag[1:root.tag.index("}")]
self.check_version(ns, root)
statements = []
currency = None
account_number = None
for node in root[0][1:]:
statement = self.parse_statement(ns, node)
if len(statement['transactions']):
if 'currency' in statement:
currency = statement.pop('currency')
if 'account_number' in statement:
account_number = statement.pop('account_number')
statements.append(statement)
return currency, account_number, statements

BIN
account_bank_statement_import_camt_oca/static/description/icon.png

Before

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

1
account_bank_statement_import_camt_oca/test_files/golden-camt053-no-ntry.pydata

@ -1 +0,0 @@
(None, None, [])

18
account_bank_statement_import_camt_oca/test_files/golden-camt053-txdtls.pydata

@ -1,18 +0,0 @@
(None,
'CH1111000000123456789',
[{'balance_end_real': 79443.15,
'balance_start': 75960.15,
'date': '2017-03-22',
'name': '20170323123456789012345',
'transactions': [{'account_number': 'CH2222000000123456789',
'amount': 2187.0,
'date': '2017-03-22',
'name': 'CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ID: 123456CHCAFEBABE',
'partner_name': 'Banque Cantonale Vaudoise',
'ref': '302388292000011111111111111'},
{'account_number': 'CH3333000000123456789',
'amount': 1296.0,
'date': '2017-03-22',
'name': 'CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ID: 123456CHCAFEBABE',
'partner_name': 'Banque Cantonale Vaudoise',
'ref': '302388292000022222222222222'}]}])

34
account_bank_statement_import_camt_oca/test_files/golden-camt053.pydata

@ -1,34 +0,0 @@
(None,
'NL77ABNA0574908765',
[{'balance_end_real': 15121.12,
'balance_start': 15568.27,
'date': '2014-01-05',
'name': '1234Test/1',
'transactions': [{'account_number': 'NL46ABNA0499998748',
'amount': -754.25,
'date': '2014-01-05',
'name': 'Insurance policy 857239PERIOD 01.01.2014 - 31.12.2014',
'note': 'MKB Insurance 859239PERIOD 01.01.2014 - 31.12.2014',
'partner_name': 'INSURANCE COMPANY TESTX',
'ref': '435005714488-ABNO33052620'},
{'account_number': 'NL46ABNA0499998748',
'amount': -564.05,
'date': '2014-01-05',
'name': 'Direct Debit S14 0410',
'note': 'Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408',
'partner_name': 'Test Customer',
'ref': 'TESTBANK/NL/20141229/01206408'},
{'account_number': 'NL46ABNA0499998748',
'amount': -100.0,
'date': '2014-01-05',
'name': 'Direct Debit S14 0410',
'note': 'Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408',
'partner_name': 'Test Customer',
'ref': 'TESTBANK/NL/20141229/01206407'},
{'account_number': 'NL69ABNA0522123643',
'amount': 1405.31,
'date': '2014-01-05',
'name': 'INNDNL2U20140105000217200000708',
'note': '#RD PARTY MEDIA CUSNO 90782 4210773',
'partner_name': '3rd party Media',
'ref': '115'}]}])

289
account_bank_statement_import_camt_oca/test_files/test-camt053

@ -1,289 +0,0 @@
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02">
<BkToCstmrStmt>
<GrpHdr>
<MsgId>TESTBANK/NL/1420561226673</MsgId>
<CreDtTm>2014-01-06T16:20:26.673Z</CreDtTm>
</GrpHdr>
<Stmt>
<Id>1234Test/1</Id>
<LglSeqNb>2</LglSeqNb>
<CreDtTm>2014-01-06T16:20:26.673Z</CreDtTm>
<FrToDt>
<FrDtTm>2014-01-05T00:00:00.000Z</FrDtTm>
<ToDtTm>2014-01-05T23:59:59.999Z</ToDtTm>
</FrToDt>
<Acct>
<Id>
<IBAN>NL77ABNA0574908765</IBAN>
</Id>
<Nm>Example company</Nm>
<Svcr>
<FinInstnId>
<BIC>ABNANL2A</BIC>
</FinInstnId>
</Svcr>
</Acct>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>OPBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">15568.27</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2014-01-05</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>CLBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">15121.12</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2014-01-05</Dt>
</Dt>
</Bal>
<Ntry>
<Amt Ccy="EUR">754.25</Amt>
<CdtDbtInd>DBIT</CdtDbtInd>
<Sts>BOOK</Sts>
<BookgDt>
<Dt>2014-01-05</Dt>
</BookgDt>
<ValDt>
<Dt>2014-01-05</Dt>
</ValDt>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>RDDT</Cd>
<SubFmlyCd>ESDD</SubFmlyCd>
</Fmly>
</Domn>
<Prtry>
<Cd>EI</Cd>
</Prtry>
</BkTxCd>
<NtryDtls>
<TxDtls>
<Refs>
<InstrId>INNDNL2U20141231000142300002844</InstrId>
<EndToEndId>435005714488-ABNO33052620</EndToEndId>
<MndtId>1880000341866</MndtId>
</Refs>
<AmtDtls>
<TxAmt>
<Amt Ccy="EUR">754.25</Amt>
</TxAmt>
</AmtDtls>
<RltdPties>
<Cdtr>
<Nm>INSURANCE COMPANY TESTX</Nm>
<PstlAdr>
<StrtNm>TEST STREET 20</StrtNm>
<TwnNm>1234 AB TESTCITY</TwnNm>
<Ctry>NL</Ctry>
</PstlAdr>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>NL46ABNA0499998748</IBAN>
</Id>
</CdtrAcct>
</RltdPties>
<RltdAgts>
<CdtrAgt>
<FinInstnId>
<BIC>ABNANL2A</BIC>
</FinInstnId>
</CdtrAgt>
</RltdAgts>
<RmtInf>
<Ustrd>Insurance policy 857239PERIOD 01.01.2014 - 31.12.2014</Ustrd>
</RmtInf>
<AddtlTxInf>MKB Insurance 859239PERIOD 01.01.2014 - 31.12.2014</AddtlTxInf>
</TxDtls>
</NtryDtls>
</Ntry>
<Ntry>
<Amt Ccy="EUR">664.05</Amt>
<CdtDbtInd>DBIT</CdtDbtInd>
<RvslInd>true</RvslInd>
<Sts>BOOK</Sts>
<BookgDt>
<Dt>2014-01-05</Dt>
</BookgDt>
<ValDt>
<Dt>2014-01-05</Dt>
</ValDt>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>IDDT</Cd>
<SubFmlyCd>UPDD</SubFmlyCd>
</Fmly>
</Domn>
<Prtry>
<Cd>EIST</Cd>
</Prtry>
</BkTxCd>
<NtryDtls>
<Btch>
<MsgId>2014/125</MsgId>
<PmtInfId>2018/125-20141229-NORM</PmtInfId>
<NbOfTxs>2</NbOfTxs>
<TtlAmt Ccy="EUR">664.05</TtlAmt>
<CdtDbtInd>DBIT</CdtDbtInd>
</Btch>
<TxDtls>
<Refs>
<InstrId>TESTBANK/NL/20141229/01206408</InstrId>
<EndToEndId>TESTBANK/NL/20141229/01206408</EndToEndId>
<MndtId>NL22ZZZ524885430000-C0125.1</MndtId>
</Refs>
<AmtDtls>
<TxAmt>
<Amt Ccy="EUR">564.05</Amt>
</TxAmt>
</AmtDtls>
<RltdPties>
<Cdtr>
<Nm>Test Customer</Nm>
<PstlAdr>
<Ctry>NL</Ctry>
</PstlAdr>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>NL46ABNA0499998748</IBAN>
</Id>
</CdtrAcct>
</RltdPties>
<RltdAgts>
<CdtrAgt>
<FinInstnId>
<BIC>ABNANL2A</BIC>
</FinInstnId>
</CdtrAgt>
</RltdAgts>
<RmtInf>
<Ustrd>Direct Debit S14 0410</Ustrd>
</RmtInf>
<RtrInf>
<Rsn>
<Cd>AC06</Cd>
</Rsn>
</RtrInf>
<AddtlTxInf>Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408</AddtlTxInf>
</TxDtls>
<TxDtls>
<Refs>
<InstrId>TESTBANK/NL/20141229/01206407</InstrId>
<EndToEndId>TESTBANK/NL/20141229/01206407</EndToEndId>
<MndtId>NL22ZZZ524885430000-C0125.2</MndtId>
</Refs>
<AmtDtls>
<TxAmt>
<Amt Ccy="EUR">100.00</Amt>
</TxAmt>
</AmtDtls>
<RltdPties>
<Cdtr>
<Nm>Test Customer</Nm>
<PstlAdr>
<Ctry>NL</Ctry>
</PstlAdr>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>NL46ABNA0499998748</IBAN>
</Id>
</CdtrAcct>
</RltdPties>
<RltdAgts>
<CdtrAgt>
<FinInstnId>
<BIC>ABNANL2A</BIC>
</FinInstnId>
</CdtrAgt>
</RltdAgts>
<RmtInf>
<Ustrd>Direct Debit S14 0410</Ustrd>
</RmtInf>
<RtrInf>
<Rsn>
<Cd>AC06</Cd>
</Rsn>
</RtrInf>
<AddtlTxInf>Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408</AddtlTxInf>
</TxDtls>
</NtryDtls>
</Ntry>
<Ntry>
<Amt Ccy="EUR">1405.31</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Sts>BOOK</Sts>
<BookgDt>
<Dt>2014-01-05</Dt>
</BookgDt>
<ValDt>
<Dt>2014-01-05</Dt>
</ValDt>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>RCDT</Cd>
<SubFmlyCd>ESCT</SubFmlyCd>
</Fmly>
</Domn>
<Prtry>
<Cd>ET</Cd>
</Prtry>
</BkTxCd>
<NtryDtls>
<TxDtls>
<Refs>
<InstrId>INNDNL2U20140105000217200000708</InstrId>
<EndToEndId>115</EndToEndId>
</Refs>
<AmtDtls>
<TxAmt>
<Amt Ccy="EUR">1405.31</Amt>
</TxAmt>
</AmtDtls>
<RltdPties>
<Dbtr>
<Nm>3rd party Media</Nm>
<PstlAdr>
<StrtNm>SOMESTREET 570-A</StrtNm>
<TwnNm>1276 ML HOUSCITY</TwnNm>
<Ctry>NL</Ctry>
</PstlAdr>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>NL69ABNA0522123643</IBAN>
</Id>
</DbtrAcct>
</RltdPties>
<RltdAgts>
<DbtrAgt>
<FinInstnId>
<BIC>ABNANL2A</BIC>
</FinInstnId>
</DbtrAgt>
</RltdAgts>
<AddtlTxInf>#RD PARTY MEDIA CUSNO 90782 4210773</AddtlTxInf>
</TxDtls>
</NtryDtls>
</Ntry>
</Stmt>
</BkToCstmrStmt>
</Document>

52
account_bank_statement_import_camt_oca/test_files/test-camt053-no-ntry

@ -1,52 +0,0 @@
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.04">
<BkToCstmrStmt>
<GrpHdr>
<MsgId>TESTBANK/NL/1420561226673</MsgId>
<CreDtTm>2014-01-06T16:20:26.673Z</CreDtTm>
</GrpHdr>
<Stmt>
<Id>1234Test/1</Id>
<LglSeqNb>2</LglSeqNb>
<CreDtTm>2014-01-06T16:20:26.673Z</CreDtTm>
<FrToDt>
<FrDtTm>2014-01-05T00:00:00.000Z</FrDtTm>
<ToDtTm>2014-01-05T23:59:59.999Z</ToDtTm>
</FrToDt>
<Acct>
<Id>
<IBAN>NL77ABNA0574908765</IBAN>
</Id>
<Nm>Example company</Nm>
<Svcr>
<FinInstnId>
<BIC>ABNANL2A</BIC>
</FinInstnId>
</Svcr>
</Acct>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>OPBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="CHF">1520.76</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2014-01-05</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>CLBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="CHF">1520.76</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2014-01-05</Dt>
</Dt>
</Bal>
</Stmt>
</BkToCstmrStmt>
</Document>

214
account_bank_statement_import_camt_oca/test_files/test-camt053-txdtls

@ -1,214 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.04" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.053.001.04 camt.053.001.04.xsd">
<BkToCstmrStmt>
<GrpHdr>
<MsgId>20170323312345678900000</MsgId>
<CreDtTm>2017-03-23T14:47:00</CreDtTm>
<MsgPgntn>
<PgNb>1</PgNb>
<LastPgInd>true</LastPgInd>
</MsgPgntn>
<AddtlInf>Test</AddtlInf>
</GrpHdr>
<Stmt>
<Id>20170323123456789012345</Id>
<ElctrncSeqNb>58</ElctrncSeqNb>
<CreDtTm>2017-03-23T14:47:00</CreDtTm>
<FrToDt>
<FrDtTm>2017-03-23T00:00:00</FrDtTm>
<ToDtTm>2017-03-23T23:59:59</ToDtTm>
</FrToDt>
<Acct>
<Id>
<IBAN>CH1111000000123456789</IBAN>
</Id>
<Ownr>
<Nm>Open Net S. à r.l. Prilly</Nm>
</Ownr>
</Acct>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>OPBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="CHF">75960.15</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2017-03-22</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>CLBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="CHF">79443.15</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2017-03-23</Dt>
</Dt>
</Bal>
<Ntry>
<NtryRef>012345678</NtryRef>
<Amt Ccy="CHF">3483.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<RvslInd>false</RvslInd>
<Sts>BOOK</Sts>
<BookgDt>
<Dt>2017-03-22</Dt>
</BookgDt>
<ValDt>
<Dt>2017-03-23</Dt>
</ValDt>
<AcctSvcrRef>20170323001234567891234567891234</AcctSvcrRef>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>RCDT</Cd>
<SubFmlyCd>VCOM</SubFmlyCd>
</Fmly>
</Domn>
</BkTxCd>
<NtryDtls>
<Btch>
<NbOfTxs>2</NbOfTxs>
</Btch>
<TxDtls>
<Refs>
<AcctSvcrRef>123456CHCAFEBABE</AcctSvcrRef>
<Prtry>
<Tp>01</Tp>
<Ref>123456CHCAFEBABE</Ref>
</Prtry>
</Refs>
<Amt Ccy="CHF">2187.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>RCDT</Cd>
<SubFmlyCd>AUTT</SubFmlyCd>
</Fmly>
</Domn>
</BkTxCd>
<RltdPties>
<Dbtr>
<Nm>Banque Cantonale Vaudoise</Nm>
<PstlAdr>
<StrtNm>Place Saint-François</StrtNm>
<BldgNb>14</BldgNb>
<PstCd>1003</PstCd>
<TwnNm>Lausanne</TwnNm>
<Ctry>CH1</Ctry>
</PstlAdr>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>CH2222000000123456789</IBAN>
</Id>
</DbtrAcct>
</RltdPties>
<RltdAgts>
<DbtrAgt>
<FinInstnId>
<BICFI>POFICHBEXXX</BICFI>
<Nm>POSTFINANCE AG</Nm>
<PstlAdr>
<AdrLine>MINGERSTRASSE 20</AdrLine>
<AdrLine>3030 BERNE</AdrLine>
</PstlAdr>
</FinInstnId>
</DbtrAgt>
</RltdAgts>
<RmtInf>
<Strd>
<CdtrRefInf>
<Tp>
<CdOrPrtry>
<Prtry>ISR Reference</Prtry>
</CdOrPrtry>
</Tp>
<Ref>302388292000011111111111111</Ref>
</CdtrRefInf>
<AddtlRmtInf>?REJECT?0</AddtlRmtInf>
</Strd>
</RmtInf>
<RltdDts>
<AccptncDtTm>2017-03-22T20:00:00</AccptncDtTm>
</RltdDts>
</TxDtls>
<TxDtls>
<Refs>
<AcctSvcrRef>123456CHCAFEBABE</AcctSvcrRef>
<Prtry>
<Tp>01</Tp>
<Ref>123456CHCAFEBABE</Ref>
</Prtry>
</Refs>
<Amt Ccy="CHF">1296.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>RCDT</Cd>
<SubFmlyCd>AUTT</SubFmlyCd>
</Fmly>
</Domn>
</BkTxCd>
<RltdPties>
<Dbtr>
<Nm>Banque Cantonale Vaudoise</Nm>
<PstlAdr>
<StrtNm>Place Saint-François</StrtNm>
<BldgNb>14</BldgNb>
<PstCd>1003</PstCd>
<TwnNm>Lausanne</TwnNm>
<Ctry>CH2</Ctry>
</PstlAdr>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>CH3333000000123456789</IBAN>
</Id>
</DbtrAcct>
</RltdPties>
<RltdAgts>
<DbtrAgt>
<FinInstnId>
<BICFI>POFICHBEYYY</BICFI>
<Nm>POSTFINANCE AG</Nm>
<PstlAdr>
<AdrLine>MINGERSTRASSE 20</AdrLine>
<AdrLine>3030 BERNE</AdrLine>
</PstlAdr>
</FinInstnId>
</DbtrAgt>
</RltdAgts>
<RmtInf>
<Strd>
<CdtrRefInf>
<Tp>
<CdOrPrtry>
<Prtry>ISR Reference</Prtry>
</CdOrPrtry>
</Tp>
<Ref>302388292000022222222222222</Ref>
</CdtrRefInf>
<AddtlRmtInf>?REJECT?0</AddtlRmtInf>
</Strd>
</RmtInf>
<RltdDts>
<AccptncDtTm>2017-03-22T20:00:00</AccptncDtTm>
</RltdDts>
</TxDtls>
</NtryDtls>
<AddtlNtryInf>CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ID: 123456CHCAFEBABE</AddtlNtryInf>
</Ntry>
</Stmt>
</BkToCstmrStmt>
</Document>

BIN
account_bank_statement_import_camt_oca/test_files/test-camt053.zip

4
account_bank_statement_import_camt_oca/tests/__init__.py

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

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)

13
account_bank_statement_import_camt_oca/views/account_bank_statement_import.xml

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="account_bank_statement_import_view" model="ir.ui.view">
<field name="model">account.bank.statement.import</field>
<field name="inherit_id" ref="account_bank_statement_import.account_bank_statement_import_view" />
<field name="arch" type="xml">
<ul id="statement_format" position="inside">
<li>CAMT</li>
<li>zipped CAMT</li>
</ul>
</field>
</record>
</odoo>

87
account_bank_statement_import_move_line/README.rst

@ -1,87 +0,0 @@
================================
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
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fbank--statement--import-lightgray.png?logo=github
:target: https://github.com/OCA/bank-statement-import/tree/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|
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.
**Table of contents**
.. contents::
:local:
Usage
=====
#. 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".
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.
Credits
=======
Authors
~~~~~~~
* Tecnativa
Contributors
~~~~~~~~~~~~
* Luis M. Ontalba luis.martinez@tecnativa.com>
Maintainers
~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
This module is part of the `OCA/bank-statement-import <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.

4
account_bank_statement_import_move_line/__init__.py

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

22
account_bank_statement_import_move_line/__manifest__.py

@ -1,22 +0,0 @@
# Copyright 2017 Tecnativa - Luis M. Ontalba
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
{
'name': 'Bank statement import move lines',
'version': '11.0.1.0.0',
'category': 'Accounting',
'summary': 'Import journal items into bank statement',
'author': 'Tecnativa, '
'Odoo Community Association (OCA)',
'website': 'https://www.tecnativa.com',
'depends': [
'account',
],
'data': [
'wizards/account_statement_line_create_view.xml',
'views/account_bank_statement_view.xml',
],
'license': 'AGPL-3',
'installable': True,
'auto_install': False,
}

178
account_bank_statement_import_move_line/i18n/account_bank_statement_import_move_line.pot

@ -1,178 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_move_line
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.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_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Add All Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Entries"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Posted Entries"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_allow_blocked
msgid "Allow Litigation Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_statement_id
msgid "Bank Statement"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Cancel"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Choose Move Lines Filter Options"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Click on Add All Move Lines to auto-select the move lines matching the above criteria or click on Add an item to manually select the move lines filtered by the above criteria."
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.actions.act_window,name:account_bank_statement_import_move_line.account_statement_line_create_action
msgid "Create Lines from Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Create Statement Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_uid
msgid "Created by"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_date
msgid "Created on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_due_date
msgid "Due Date"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.view_bank_statement_form
msgid "Import Journal Items"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_move_line
msgid "Journal Item"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_journal_ids
msgid "Journals Filter"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Keep empty for using all journals"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create___last_update
msgid "Last Modified on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_uid
msgid "Last Updated by"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_date
msgid "Last Updated on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_invoice
msgid "Linked to an Invoice or Refund"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_date
msgid "Move Date"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_line_ids
msgid "Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_partner_id
msgid "Partner Related"
msgstr ""
#. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#, python-format
msgid "Select Move Lines to Create Statement"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Selected Move Lines to Create Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_target_move
msgid "Target Moves"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Total Residual"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_date_type
msgid "Type of Date Filter"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_statement_line_create
msgid "Wizard to create statement lines"
msgstr ""

185
account_bank_statement_import_move_line/i18n/de.po

@ -1,185 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_move_line
#
# Translators:
# 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-08-11 02:41+0000\n"
"PO-Revision-Date: 2017-08-11 02:41+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
"Language: de\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_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Add All Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Entries"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Posted Entries"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_allow_blocked
msgid "Allow Litigation Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_statement_id
msgid "Bank Statement"
msgstr "Kontoauszug"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Cancel"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Choose Move Lines Filter Options"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid ""
"Click on Add All Move Lines to auto-select the move lines matching the above "
"criteria or click on Add an item to manually select the move lines filtered "
"by the above criteria."
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.actions.act_window,name:account_bank_statement_import_move_line.account_statement_line_create_action
msgid "Create Lines from Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Create Statement Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_uid
msgid "Created by"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_date
msgid "Created on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_due_date
msgid "Due Date"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.view_bank_statement_form
msgid "Import Journal Items"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_move_line
msgid "Journal Item"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_journal_ids
msgid "Journals Filter"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Keep empty for using all journals"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create___last_update
msgid "Last Modified on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_uid
msgid "Last Updated by"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_date
msgid "Last Updated on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_invoice
msgid "Linked to an Invoice or Refund"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_date
msgid "Move Date"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_line_ids
msgid "Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_partner_id
msgid "Partner Related"
msgstr ""
#. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#, python-format
msgid "Select Move Lines to Create Statement"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Selected Move Lines to Create Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_target_move
msgid "Target Moves"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Total Residual"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_date_type
msgid "Type of Date Filter"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_statement_line_create
msgid "Wizard to create statement lines"
msgstr ""

187
account_bank_statement_import_move_line/i18n/es.po

@ -1,187 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_move_line
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-09 15:32+0000\n"
"PO-Revision-Date: 2017-08-09 15:32+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"Language: \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_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Add All Move Lines"
msgstr "Añadir todas las líneas"
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Entries"
msgstr "Todos los asientos"
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Posted Entries"
msgstr "Todos los asientos confirmados"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_allow_blocked
msgid "Allow Litigation Move Lines"
msgstr "Permitir apuntes en litígio"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_statement_id
msgid "Bank Statement"
msgstr "Extracto bancario"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Cancel"
msgstr "Cancelar"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Choose Move Lines Filter Options"
msgstr "Elegir opciones de filtro de apuntes"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid ""
"Click on Add All Move Lines to auto-select the move lines matching the above "
"criteria or click on Add an item to manually select the move lines filtered "
"by the above criteria."
msgstr ""
"Clic en Añadir todas las líneas para seleccionar automáticamente las líneas "
"de movimiento que coinciden con los criterios anteriores o clic en Agregar "
"un elemento para seleccionar manualmente las líneas de movimiento filtradas "
"por los criterios anteriores."
#. module: account_bank_statement_import_move_line
#: model:ir.actions.act_window,name:account_bank_statement_import_move_line.account_statement_line_create_action
msgid "Create Lines from Move Lines"
msgstr "Crear Líneas desde apuntes"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Create Statement Lines"
msgstr "Crear líneas del extracto"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_uid
msgid "Created by"
msgstr "Creado por"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_date
msgid "Created on"
msgstr "Creado el"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_display_name
msgid "Display Name"
msgstr "Nombre a mostrar"
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_due_date
msgid "Due Date"
msgstr "Fecha vencimiento"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_id
msgid "ID"
msgstr "ID"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.view_bank_statement_form
msgid "Import Journal Items"
msgstr "Importar apuntes contables"
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_move_line
msgid "Journal Item"
msgstr "Apunte contable"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_journal_ids
msgid "Journals Filter"
msgstr "Filtro de diarios"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Keep empty for using all journals"
msgstr "Dejar vacío para seleccionar todos los diarios"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create___last_update
msgid "Last Modified on"
msgstr "Última modificación en"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_uid
msgid "Last Updated by"
msgstr "Última actualización por"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_date
msgid "Last Updated on"
msgstr "Última actualización el"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_invoice
msgid "Linked to an Invoice or Refund"
msgstr "Vinculado a factura o devolución"
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_date
msgid "Move Date"
msgstr "Fecha del apunte"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_line_ids
msgid "Move Lines"
msgstr "Apuntes contables"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_partner_id
msgid "Partner Related"
msgstr "Empresa relacionada"
#. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#, python-format
msgid "Select Move Lines to Create Statement"
msgstr "Seleccionar apuntes para crear extracto"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Selected Move Lines to Create Lines"
msgstr "Apuntes seleccionados para crear líneas"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_target_move
msgid "Target Moves"
msgstr "Movimientos destino"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Total Residual"
msgstr "Total Residual"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_date_type
msgid "Type of Date Filter"
msgstr "Tipo de filtro por fecha"
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_statement_line_create
msgid "Wizard to create statement lines"
msgstr "Asistente para crear líneas de extracto"

190
account_bank_statement_import_move_line/i18n/fr.po

@ -1,190 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_move_line
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
# Quentin THEURET <odoo@kerpeo.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-11 02:41+0000\n"
"PO-Revision-Date: 2017-08-11 02:41+0000\n"
"Last-Translator: Quentin THEURET <odoo@kerpeo.com>, 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_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Add All Move Lines"
msgstr "Ajouter toutes les lignes de mouvement"
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Entries"
msgstr "Toutes les écritures"
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Posted Entries"
msgstr "Toutes les écritures validées"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_allow_blocked
msgid "Allow Litigation Move Lines"
msgstr "Autoriser les lignes de mouvement pour contentieux"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_statement_id
msgid "Bank Statement"
msgstr "Relevé bancaire"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Cancel"
msgstr "Annuler"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Choose Move Lines Filter Options"
msgstr "Choisissez les options de filtre des lignes de mouvement"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid ""
"Click on Add All Move Lines to auto-select the move lines matching the above "
"criteria or click on Add an item to manually select the move lines filtered "
"by the above criteria."
msgstr ""
"Cliquez sur Ajouter toutes les lignes de mouvement pour sélectionner "
"automatiquement les lignes de mouvement qui correspondent aux critères ci-"
"dessous ou cliquez sur Ajouter un enregistrement pour sélectionner "
"manuellement les lignes de mouvement filtrées sur les critères ci-dessous."
#. module: account_bank_statement_import_move_line
#: model:ir.actions.act_window,name:account_bank_statement_import_move_line.account_statement_line_create_action
msgid "Create Lines from Move Lines"
msgstr "Créer les lignes depuis les lignes de mouvement"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Create Statement Lines"
msgstr "Créer les lignes de relevé"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_uid
msgid "Created by"
msgstr "Créé par"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_date
msgid "Created on"
msgstr "Créé le"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_display_name
msgid "Display Name"
msgstr "Nom affiché"
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_due_date
msgid "Due Date"
msgstr "Date d'échéance"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_id
msgid "ID"
msgstr "ID"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.view_bank_statement_form
msgid "Import Journal Items"
msgstr "Importer les écritures du journal"
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_move_line
msgid "Journal Item"
msgstr "Écriture du journal"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_journal_ids
msgid "Journals Filter"
msgstr "Filtre des journaux"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Keep empty for using all journals"
msgstr "Laisser vide pour utiliser tous les journaux"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create___last_update
msgid "Last Modified on"
msgstr "Dernière modification le"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_uid
msgid "Last Updated by"
msgstr "Dernière modification par"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_date
msgid "Last Updated on"
msgstr "Dernière modification le"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_invoice
msgid "Linked to an Invoice or Refund"
msgstr "Liée à une facture ou un avoir"
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_date
msgid "Move Date"
msgstr "Date du mouvement"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_line_ids
msgid "Move Lines"
msgstr "Lignes de mouvement"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_partner_id
msgid "Partner Related"
msgstr "Partenaire lié"
#. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#, python-format
msgid "Select Move Lines to Create Statement"
msgstr "Sélectionner les lignes de mouvement pour créer le relevé"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Selected Move Lines to Create Lines"
msgstr "Lignes de mouvement sélectionnées pour créer les lignes"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_target_move
msgid "Target Moves"
msgstr "Mouvements cibles"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Total Residual"
msgstr "Total restant"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_date_type
msgid "Type of Date Filter"
msgstr "Filtre sur le type de date"
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_statement_line_create
msgid "Wizard to create statement lines"
msgstr "Assistant pour créer des lignes de relevé"

186
account_bank_statement_import_move_line/i18n/hr.po

@ -1,186 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_move_line
#
# 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_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Add All Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Entries"
msgstr "Sve stavke"
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Posted Entries"
msgstr "Sve proknjižene stavke"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_allow_blocked
msgid "Allow Litigation Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_statement_id
msgid "Bank Statement"
msgstr "Bankovni izvod"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Cancel"
msgstr "Otkaži"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Choose Move Lines Filter Options"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid ""
"Click on Add All Move Lines to auto-select the move lines matching the above "
"criteria or click on Add an item to manually select the move lines filtered "
"by the above criteria."
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.actions.act_window,name:account_bank_statement_import_move_line.account_statement_line_create_action
msgid "Create Lines from Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Create Statement Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_uid
msgid "Created by"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_date
msgid "Created on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_display_name
msgid "Display Name"
msgstr "Naziv"
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_due_date
msgid "Due Date"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_id
msgid "ID"
msgstr "ID"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.view_bank_statement_form
msgid "Import Journal Items"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_move_line
msgid "Journal Item"
msgstr "Stavka dnevnika"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_journal_ids
msgid "Journals Filter"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Keep empty for using all journals"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create___last_update
msgid "Last Modified on"
msgstr "Zadnje modificirano"
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_uid
msgid "Last Updated by"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_date
msgid "Last Updated on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_invoice
msgid "Linked to an Invoice or Refund"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_date
msgid "Move Date"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_line_ids
msgid "Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_partner_id
msgid "Partner Related"
msgstr ""
#. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#, python-format
msgid "Select Move Lines to Create Statement"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Selected Move Lines to Create Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_target_move
msgid "Target Moves"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Total Residual"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_date_type
msgid "Type of Date Filter"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_statement_line_create
msgid "Wizard to create statement lines"
msgstr ""

185
account_bank_statement_import_move_line/i18n/nl.po

@ -1,185 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_move_line
#
# Translators:
# 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-08-11 02:41+0000\n"
"PO-Revision-Date: 2017-08-11 02:41+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/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_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Add All Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Entries"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Posted Entries"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_allow_blocked
msgid "Allow Litigation Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_statement_id
msgid "Bank Statement"
msgstr "Bankafschrift"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Cancel"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Choose Move Lines Filter Options"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid ""
"Click on Add All Move Lines to auto-select the move lines matching the above "
"criteria or click on Add an item to manually select the move lines filtered "
"by the above criteria."
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.actions.act_window,name:account_bank_statement_import_move_line.account_statement_line_create_action
msgid "Create Lines from Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Create Statement Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_uid
msgid "Created by"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_date
msgid "Created on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_due_date
msgid "Due Date"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.view_bank_statement_form
msgid "Import Journal Items"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_move_line
msgid "Journal Item"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_journal_ids
msgid "Journals Filter"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Keep empty for using all journals"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create___last_update
msgid "Last Modified on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_uid
msgid "Last Updated by"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_date
msgid "Last Updated on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_invoice
msgid "Linked to an Invoice or Refund"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_date
msgid "Move Date"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_line_ids
msgid "Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_partner_id
msgid "Partner Related"
msgstr ""
#. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#, python-format
msgid "Select Move Lines to Create Statement"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Selected Move Lines to Create Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_target_move
msgid "Target Moves"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Total Residual"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_date_type
msgid "Type of Date Filter"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_statement_line_create
msgid "Wizard to create statement lines"
msgstr ""

186
account_bank_statement_import_move_line/i18n/pt_BR.po

@ -1,186 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_move_line
#
# Translators:
# 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-08-11 02:41+0000\n"
"PO-Revision-Date: 2017-08-11 02:41+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/"
"teams/23907/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Add All Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Entries"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Posted Entries"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_allow_blocked
msgid "Allow Litigation Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_statement_id
msgid "Bank Statement"
msgstr "Extrato bancário"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Cancel"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Choose Move Lines Filter Options"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid ""
"Click on Add All Move Lines to auto-select the move lines matching the above "
"criteria or click on Add an item to manually select the move lines filtered "
"by the above criteria."
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.actions.act_window,name:account_bank_statement_import_move_line.account_statement_line_create_action
msgid "Create Lines from Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Create Statement Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_uid
msgid "Created by"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_date
msgid "Created on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_due_date
msgid "Due Date"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.view_bank_statement_form
msgid "Import Journal Items"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_move_line
msgid "Journal Item"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_journal_ids
msgid "Journals Filter"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Keep empty for using all journals"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create___last_update
msgid "Last Modified on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_uid
msgid "Last Updated by"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_date
msgid "Last Updated on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_invoice
msgid "Linked to an Invoice or Refund"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_date
msgid "Move Date"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_line_ids
msgid "Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_partner_id
msgid "Partner Related"
msgstr ""
#. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#, python-format
msgid "Select Move Lines to Create Statement"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Selected Move Lines to Create Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_target_move
msgid "Target Moves"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Total Residual"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_date_type
msgid "Type of Date Filter"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_statement_line_create
msgid "Wizard to create statement lines"
msgstr ""

186
account_bank_statement_import_move_line/i18n/pt_PT.po

@ -1,186 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_move_line
#
# Translators:
# 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-08-11 02:41+0000\n"
"PO-Revision-Date: 2017-08-11 02:41+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/"
"teams/23907/pt_PT/)\n"
"Language: pt_PT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Add All Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Entries"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Posted Entries"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_allow_blocked
msgid "Allow Litigation Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_statement_id
msgid "Bank Statement"
msgstr "Extrato Bancário"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Cancel"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Choose Move Lines Filter Options"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid ""
"Click on Add All Move Lines to auto-select the move lines matching the above "
"criteria or click on Add an item to manually select the move lines filtered "
"by the above criteria."
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.actions.act_window,name:account_bank_statement_import_move_line.account_statement_line_create_action
msgid "Create Lines from Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Create Statement Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_uid
msgid "Created by"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_date
msgid "Created on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_due_date
msgid "Due Date"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.view_bank_statement_form
msgid "Import Journal Items"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_move_line
msgid "Journal Item"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_journal_ids
msgid "Journals Filter"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Keep empty for using all journals"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create___last_update
msgid "Last Modified on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_uid
msgid "Last Updated by"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_date
msgid "Last Updated on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_invoice
msgid "Linked to an Invoice or Refund"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_date
msgid "Move Date"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_line_ids
msgid "Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_partner_id
msgid "Partner Related"
msgstr ""
#. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#, python-format
msgid "Select Move Lines to Create Statement"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Selected Move Lines to Create Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_target_move
msgid "Target Moves"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Total Residual"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_date_type
msgid "Type of Date Filter"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_statement_line_create
msgid "Wizard to create statement lines"
msgstr ""

186
account_bank_statement_import_move_line/i18n/sl.po

@ -1,186 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_move_line
#
# Translators:
# 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-08-11 02:41+0000\n"
"PO-Revision-Date: 2017-08-11 02:41+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Add All Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Entries"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,target_move:0
msgid "All Posted Entries"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_allow_blocked
msgid "Allow Litigation Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_statement_id
msgid "Bank Statement"
msgstr "Bančni izpisek"
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Cancel"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Choose Move Lines Filter Options"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid ""
"Click on Add All Move Lines to auto-select the move lines matching the above "
"criteria or click on Add an item to manually select the move lines filtered "
"by the above criteria."
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.actions.act_window,name:account_bank_statement_import_move_line.account_statement_line_create_action
msgid "Create Lines from Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Create Statement Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_uid
msgid "Created by"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_create_date
msgid "Created on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_display_name
msgid "Display Name"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_due_date
msgid "Due Date"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_id
msgid "ID"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.view_bank_statement_form
msgid "Import Journal Items"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_move_line
msgid "Journal Item"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_journal_ids
msgid "Journals Filter"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Keep empty for using all journals"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create___last_update
msgid "Last Modified on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_uid
msgid "Last Updated by"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_write_date
msgid "Last Updated on"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_invoice
msgid "Linked to an Invoice or Refund"
msgstr ""
#. module: account_bank_statement_import_move_line
#: selection:account.statement.line.create,date_type:0
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_date
msgid "Move Date"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_move_line_ids
msgid "Move Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_partner_id
msgid "Partner Related"
msgstr ""
#. module: account_bank_statement_import_move_line
#: code:addons/account_bank_statement_import_move_line/wizards/account_statement_line_create.py:95
#, python-format
msgid "Select Move Lines to Create Statement"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Selected Move Lines to Create Lines"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_target_move
msgid "Target Moves"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.ui.view,arch_db:account_bank_statement_import_move_line.account_statement_line_create_view_form
msgid "Total Residual"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model.fields,field_description:account_bank_statement_import_move_line.field_account_statement_line_create_date_type
msgid "Type of Date Filter"
msgstr ""
#. module: account_bank_statement_import_move_line
#: model:ir.model,name:account_bank_statement_import_move_line.model_account_statement_line_create
msgid "Wizard to create statement lines"
msgstr ""

3
account_bank_statement_import_move_line/models/__init__.py

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

36
account_bank_statement_import_move_line/models/account_move_line.py

@ -1,36 +0,0 @@
# Copyright 2017 Tecnativa - Luis M. Ontalba
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from odoo import api, models
class AccountMoveLine(models.Model):
_inherit = 'account.move.line'
@api.multi
def _prepare_statement_line_vals(self, statement):
self.ensure_one()
assert statement, 'Missing statement'
amount = 0.0
if self.debit > 0:
amount = self.debit
elif self.credit > 0:
amount = -self.credit
vals = {
'name': self.name or '?',
'amount': amount,
'partner_id': self.partner_id.id,
'statement_id': statement.id,
'ref': self.ref,
'date': self.date_maturity,
'amount_currency': self.amount_currency,
'currency_id': self.currency_id.id,
}
return vals
@api.multi
def create_statement_line_from_move_line(self, statement):
abslo = self.env['account.bank.statement.line']
for mline in self:
abslo.create(mline._prepare_statement_line_vals(statement))
return

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

BIN
account_bank_statement_import_move_line/static/description/icon.png

Before

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

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>

3
account_bank_statement_import_move_line/tests/__init__.py

@ -1,3 +0,0 @@
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0
from . import test_account_bank_statement_import_move_line

72
account_bank_statement_import_move_line/tests/test_account_bank_statement_import_move_line.py

@ -1,72 +0,0 @@
# Copyright 2017 Tecnativa - Luis M. Ontalba
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0
from odoo.tests import common
from odoo import fields
class TestAccountBankStatementImportMoveLine(common.SavepointCase):
@classmethod
def setUpClass(cls):
super(TestAccountBankStatementImportMoveLine, cls).setUpClass()
cls.account_type = cls.env['account.account.type'].create({
'name': 'Test Account Type'})
cls.a_receivable = cls.env['account.account'].create({
'code': 'TAA',
'name': 'Test Receivable Account',
'internal_type': 'receivable',
'user_type_id': cls.account_type.id,
})
cls.partner = cls.env['res.partner'].create({
'name': 'Test Partner 2',
'parent_id': False,
})
cls.journal = cls.env['account.journal'].create({
'name': 'Test Journal',
'type': 'bank',
})
cls.invoice = cls.env['account.invoice'].create({
'name': 'Test Invoice 3',
'partner_id': cls.partner.id,
'type': 'out_invoice',
'journal_id': cls.journal.id,
'invoice_line_ids': [(0, 0, {
'account_id': cls.a_receivable.id,
'name': 'Test line',
'quantity': 1.0,
'price_unit': 100.00,
})],
})
cls.statement = cls.env['account.bank.statement'].create({
'journal_id': cls.journal.id})
def test_global(self):
self.invoice.action_invoice_open()
self.assertTrue(self.invoice.move_id)
self.invoice.move_id.post()
wizard_o = self.env['account.statement.line.create']
context = wizard_o._context.copy()
context.update({
'active_model': 'account.bank.statement',
'active_id': self.statement.id,
})
wizard = wizard_o.with_context(context).create({
'statement_id': self.statement.id,
'partner_id': self.partner.id,
'journal_ids': [(4, self.journal.id)],
'allow_blocked': True,
'date_type': 'move',
'move_date': fields.Date.today(),
'invoice': False,
})
wizard.populate()
self.assertTrue(len(wizard.move_line_ids), 2)
wizard.invoice = True
wizard.move_line_filters_change()
wizard.populate()
self.assertTrue(len(wizard.move_line_ids), 1)
line = wizard.move_line_ids[0]
self.assertEqual(line.debit, self.invoice.amount_total)
wizard.create_statement_lines()
line = self.statement.line_ids[0]
self.assertEqual(line.amount, self.invoice.amount_total)

19
account_bank_statement_import_move_line/views/account_bank_statement_view.xml

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_bank_statement_form" model="ir.ui.view">
<field name="name">account.bank.statement.form.population</field>
<field name="model">account.bank.statement</field>
<field name="inherit_id" ref="account.view_bank_statement_form"/>
<field name="arch" type="xml">
<field name="all_lines_reconciled" position="after">
<button name="%(account_statement_line_create_action)d"
string="Import Journal Items" type="action"
class="oe_highlight"
attrs="{'invisible':[('state', '!=', 'open')]}"/>
</field>
</field>
</record>
</odoo>

3
account_bank_statement_import_move_line/wizards/__init__.py

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

118
account_bank_statement_import_move_line/wizards/account_statement_line_create.py

@ -1,118 +0,0 @@
# Copyright 2017 Tecnativa - Luis M. Ontalba
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from odoo import _, api, fields, models
class AccountStatementLineCreate(models.TransientModel):
_name = 'account.statement.line.create'
_description = 'Wizard to create statement lines'
statement_id = fields.Many2one(
'account.bank.statement', string='Bank Statement')
partner_id = fields.Many2one('res.partner', string='Partner Related',
domain=['|', ('parent_id', '=', False),
('is_company', '=', True)])
journal_ids = fields.Many2many(
'account.journal', string='Journals Filter')
target_move = fields.Selection([
('posted', 'All Posted Entries'),
('all', 'All Entries'),
], string='Target Moves')
allow_blocked = fields.Boolean(
string='Allow Litigation Move Lines')
invoice = fields.Boolean(
string='Linked to an Invoice or Refund')
date_type = fields.Selection([
('due', 'Due Date'),
('move', 'Move Date'),
], string="Type of Date Filter", required=True)
due_date = fields.Date(string="Due Date",
default=fields.Date.context_today)
move_date = fields.Date(string='Move Date',
default=fields.Date.context_today)
move_line_ids = fields.Many2many(
'account.move.line', string='Move Lines')
@api.model
def default_get(self, field_list):
res = super(AccountStatementLineCreate, self).default_get(field_list)
context = self.env.context
assert context.get('active_model') == 'account.bank.statement',\
'active_model should be account.bank.statement'
assert context.get('active_id'), 'Missing active_id in context !'
statement = self.env[
'account.bank.statement'].browse(context['active_id'])
res.update({
'target_move': 'posted',
'date_type': 'due',
'invoice': True,
'statement_id': statement.id,
})
return res
@api.multi
def _prepare_move_line_domain(self):
self.ensure_one()
domain = [('reconciled', '=', False),
('account_id.internal_type', 'in', ('payable',
'receivable')),
('company_id', '=', self.env.user.company_id.id)]
if self.journal_ids:
domain += [('journal_id', 'in', self.journal_ids.ids)]
else:
journals = self.env['account.journal'].search([])
domain += [('journal_id', 'in', journals.ids)]
if self.partner_id:
domain += [('partner_id', '=', self.partner_id.id)]
if self.target_move == 'posted':
domain += [('move_id.state', '=', 'posted')]
if not self.allow_blocked:
domain += [('blocked', '!=', True)]
if self.date_type == 'due':
domain += [
'|',
('date_maturity', '<=', self.due_date),
('date_maturity', '=', False)]
elif self.date_type == 'move':
domain.append(('date', '<=', self.move_date))
if self.invoice:
domain.append(('invoice_id', '!=', False))
paylines = self.env['account.payment'].search([
('state', 'in', ('draft', 'posted', 'sent')),
('move_line_ids', '!=', False)])
if paylines:
move_in_payment_ids = paylines.mapped('move_line_ids.id')
domain += [('id', 'not in', move_in_payment_ids)]
return domain
@api.multi
def populate(self):
domain = self._prepare_move_line_domain()
lines = self.env['account.move.line'].search(domain)
self.move_line_ids = lines
action = {
'name': _('Select Move Lines to Create Statement'),
'type': 'ir.actions.act_window',
'res_model': 'account.statement.line.create',
'view_mode': 'form',
'target': 'new',
'res_id': self.id,
'context': self._context,
}
return action
@api.onchange(
'date_type', 'move_date', 'due_date', 'journal_ids', 'invoice',
'target_move', 'allow_blocked', 'partner_id')
def move_line_filters_change(self):
domain = self._prepare_move_line_domain()
res = {'domain': {'move_line_ids': domain}}
return res
@api.multi
def create_statement_lines(self):
if self.move_line_ids:
self.move_line_ids.create_statement_line_from_move_line(
self.statement_id)
return True

63
account_bank_statement_import_move_line/wizards/account_statement_line_create_view.xml

@ -1,63 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="account_statement_line_create_view_form" model="ir.ui.view">
<field name="name">account_statement_line_create_form</field>
<field name="model">account.statement.line.create</field>
<field name="arch" type="xml">
<form string="Choose Move Lines Filter Options">
<group name="main">
<field name="statement_id" invisible="1"/>
<field name="partner_id"/>
<field name="date_type"/>
<field name="move_date"
attrs="{'required': [('date_type', '=', 'move')],
'invisible': [('date_type', '!=', 'move')]}"/>
<field name="due_date"
attrs="{'required': [('date_type', '=', 'due')],
'invisible': [('date_type', '!=', 'due')]}"/>
<field name="journal_ids" widget="many2many_tags"
placeholder="Keep empty for using all journals"/>
<field name="target_move" widget="radio"/>
<field name="invoice"/>
<field name="allow_blocked"/>
<label string="Click on Add All Move Lines to auto-select the move lines matching the above criteria or click on Add an item to manually select the move lines filtered by the above criteria." colspan="2"/>
<button name="populate" type="object" string="Add All Move Lines"/>
</group>
<group name="move_lines"
string="Selected Move Lines to Create Lines">
<field name="move_line_ids" nolabel="1">
<tree>
<field name="date"/>
<field name="move_id" required="0"/>
<field name="journal_id"/>
<field name="partner_id"/>
<field name="account_id"/>
<field name="date_maturity"/>
<field name="debit"/>
<field name="credit"/>
<field name="amount_residual" sum="Total Residual"/>
<field name="amount_currency"/>
<field name="amount_residual_currency"/>
<field name="company_currency_id" invisible="1"/>
</tree>
</field>
</group>
<footer>
<button name="create_statement_lines" type="object"
string="Create Statement Lines" class="oe_highlight"/>
<button string="Cancel" special="cancel" class="oe_link"/>
</footer>
</form>
</field>
</record>
<record id="account_statement_line_create_action"
model="ir.actions.act_window">
<field name="name">Create Lines from Move Lines</field>
<field name="res_model">account.statement.line.create</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
</odoo>

55
account_bank_statement_import_mt940_base/README.rst

@ -1,55 +0,0 @@
.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: https://www.gnu.org/licenses/agpl
:alt: License: AGPL-3
====================
Bank Statement MT940
====================
This module provides a generic parser for MT940 files. Given that MT940 is a
non-open non-standard of pure evil in the way that every bank cooks up its own
interpretation of it, this addon alone won't help you much. It is rather
intended to be used by other addons to implement the dialect specific to a
certain bank.
See account_bank_statement_import_mt940_nl_ing for an example on how to use it.
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 smash it by providing detailed and welcomed feedback.
Credits
=======
Contributors
------------
* Stefan Rijnhart <srijnhart@therp.nl>
* Ronald Portier <rportier@therp.nl>
* Andrea Stirpe <a.stirpe@onestein.nl>
* Fekete Mihai <mihai.fekete@forbiom.eu>
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 https://odoo-community.org.

1
account_bank_statement_import_mt940_base/__init__.py

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

14
account_bank_statement_import_mt940_base/__manifest__.py

@ -1,14 +0,0 @@
# Copyright (C) 2013-2015 Therp BV <http://therp.nl>
{
'name': 'MT940 Bank Statements Import',
'version': '11.0.1.0.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',
],
'installable': True
}

14
account_bank_statement_import_mt940_base/i18n/account_bank_statement_import_mt940_base.pot

@ -1,14 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.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"

310
account_bank_statement_import_mt940_base/mt940.py

@ -1,310 +0,0 @@
# Copyright (C) 2014-2015 Therp BV <http://therp.nl>.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
"""Generic parser for MT940 files, base for customized versions per bank."""
import re
import logging
from datetime import datetime
def str2amount(sign, amount_str):
"""Convert sign (C or D) and amount in string to signed amount (float)."""
factor = (1 if sign == 'C' else -1)
return factor * float(amount_str.replace(',', '.'))
def get_subfields(data, codewords):
"""Return dictionary with value array for each codeword in data.
For instance:
data =
/BENM//NAME/Kosten/REMI/Periode 01-10-2013 t/m 31-12-2013/ISDT/20
codewords = ['BENM', 'ADDR', 'NAME', 'CNTP', ISDT', 'REMI']
Then return subfields = {
'BENM': [],
'NAME': ['Kosten'],
'REMI': ['Periode 01-10-2013 t', 'm 31-12-2013'],
'ISDT': ['20'],
}
"""
subfields = {}
current_codeword = None
for word in data.split('/'):
if not word and not current_codeword:
continue
if word in codewords:
current_codeword = word
subfields[current_codeword] = []
continue
if current_codeword in subfields:
subfields[current_codeword].append(word)
return subfields
def get_counterpart(transaction, subfield):
"""Get counterpart from transaction.
Counterpart is often stored in subfield of tag 86. The subfield
can be BENM, ORDP, CNTP"""
if not subfield:
return # subfield is empty
if len(subfield) >= 1 and subfield[0]:
transaction.update({'account_number': subfield[0]})
if len(subfield) >= 2 and subfield[1]:
transaction.update({'account_bic': subfield[1]})
if len(subfield) >= 3 and subfield[2]:
transaction.update({'partner_name': subfield[2]})
def handle_common_subfields(transaction, subfields):
"""Deal with common functionality for tag 86 subfields."""
# Get counterpart from CNTP, BENM or ORDP subfields:
for counterpart_field in ['CNTP', 'BENM', 'ORDP']:
if counterpart_field in subfields:
get_counterpart(transaction, subfields[counterpart_field])
if not transaction.get('name'):
transaction['name'] = ''
# REMI: Remitter information (text entered by other party on trans.):
if 'REMI' in subfields:
transaction['name'] += (
subfields['REMI'][2]
# this might look like
# /REMI/USTD//<remittance info>/
# or
# /REMI/STRD/CUR/<betalingskenmerk>/
if len(subfields['REMI']) >= 3 and subfields['REMI'][0] in [
'STRD', 'USTD'
]
else
'/'.join(x for x in subfields['REMI'] if x)
)
# EREF: End-to-end reference
if 'EREF' in subfields:
transaction['name'] += '/'.join(filter(bool, subfields['EREF']))
# Get transaction reference subfield (might vary):
if transaction.get('ref') in subfields:
transaction['ref'] = ''.join(subfields[transaction['ref']])
class MT940(object):
"""Inherit this class in your account_banking.parsers.models.parser,
define functions to handle the tags you need to handle and adjust static
variables as needed.
At least, you should override handle_tag_61 and handle_tag_86.
Don't forget to call super.
handle_tag_* functions receive the remainder of the the line (that is,
without ':XX:') and are supposed to write into self.current_transaction
"""
def __init__(self):
"""Initialize parser - override at least header_regex.
This in fact uses the ING syntax, override in others."""
self.mt940_type = 'General'
self.header_lines = 3 # Number of lines to skip
self.header_regex = '^0000 01INGBNL2AXXXX|^{1' # Start of header
self.footer_regex = '^-}$|^-XXX$' # Stop processing on seeing this
self.tag_regex = '^:[0-9]{2}[A-Z]*:' # Start of new tag
self.current_statement = None
self.current_transaction = None
self.statements = []
self.currency_code = None
self.account_number = None
def is_mt940(self, line):
"""determine if a line is the header of a statement"""
if not bool(re.match(self.header_regex, line)):
raise ValueError(
'File starting with %s does not seem to be a'
' valid %s MT940 format bank statement.' %
(line[:12], self.mt940_type)
)
def is_mt940_statement(self, line):
"""determine if line is the start of a statement"""
if not bool(line.startswith('{4:')):
raise ValueError(
'The pre processed match %s does not seem to be a'
' valid %s MT940 format bank statement. Every statement'
' should start be a dict starting with {4:..' % line
)
def pre_process_data(self, data):
matches = []
self.is_mt940(line=data)
data = data.replace(
'-}', '}').replace('}{', '}\r\n{').replace('\r\n', '\n')
if data.startswith(':940:'):
for statement in data.replace(':940:', '').split(':20:'):
match = '{4:\n:20:' + statement + '}'
matches.append(match)
else:
tag_re = re.compile(
r'(\{4:[^{}]+\})',
re.MULTILINE)
matches = tag_re.findall(data)
return matches
def parse(self, data, header_lines=None):
"""Parse mt940 bank statement file contents."""
data = data.decode()
matches = self.pre_process_data(data)
for match in matches:
self.is_mt940_statement(line=match)
iterator = '\n'.join(
match.split('\n')[1:-1]).split('\n').__iter__()
line = None
record_line = ''
try:
while True:
if not self.current_statement:
self.handle_header(line, iterator,
header_lines=header_lines)
line = next(iterator)
if not self.is_tag(line) and not self.is_footer(line):
record_line = self.add_record_line(line, record_line)
continue
if record_line:
self.handle_record(record_line)
if self.is_footer(line):
self.handle_footer(line, iterator)
record_line = ''
continue
record_line = line
except StopIteration:
pass
if self.current_statement:
if record_line:
self.handle_record(record_line)
record_line = ''
self.statements.append(self.current_statement)
self.current_statement = None
return self.currency_code, self.account_number, self.statements
def add_record_line(self, line, record_line):
record_line += line
return record_line
def is_footer(self, line):
"""determine if a line is the footer of a statement"""
return line and bool(re.match(self.footer_regex, line))
def is_tag(self, line):
"""determine if a line has a tag"""
return line and bool(re.match(self.tag_regex, line))
def handle_header(self, dummy_line, iterator, header_lines=None):
"""skip header lines, create current statement"""
if not header_lines:
header_lines = self.header_lines
for dummy_i in range(header_lines):
next(iterator)
self.current_statement = {
'name': None,
'date': None,
'balance_start': 0.0,
'balance_end_real': 0.0,
'transactions': []
}
def handle_footer(self, dummy_line, dummy_iterator):
"""add current statement to list, reset state"""
self.statements.append(self.current_statement)
self.current_statement = None
def handle_record(self, line):
"""find a function to handle the record represented by line"""
tag_match = re.match(self.tag_regex, line)
tag = tag_match.group(0).strip(':')
if not hasattr(self, 'handle_tag_%s' % tag): # pragma: no cover
logging.error('Unknown tag %s', tag)
logging.error(line)
return
handler = getattr(self, 'handle_tag_%s' % tag)
handler(line[tag_match.end():])
def handle_tag_20(self, data):
"""Contains unique ? message ID"""
pass
def handle_tag_25(self, data):
"""Handle tag 25: local bank account information."""
data = data.replace('EUR', '').replace('.', '').strip()
self.account_number = data
def handle_tag_28C(self, data):
"""Sequence number within batch - normally only zeroes."""
pass
def handle_tag_60F(self, data):
"""get start balance and currency"""
# For the moment only first 60F record
# The alternative would be to split the file and start a new
# statement for each 20: tag encountered.
if not self.currency_code:
self.currency_code = data[7:10]
self.current_statement['balance_start'] = str2amount(
data[0],
data[10:]
)
if not self.current_statement['date']:
self.current_statement['date'] = datetime.strptime(data[1:7],
'%y%m%d')
def handle_tag_61(self, data):
"""get transaction values"""
self.current_statement['transactions'].append({})
self.current_transaction = self.current_statement['transactions'][-1]
self.current_transaction['date'] = datetime.strptime(
data[:6],
'%y%m%d'
)
def handle_tag_62F(self, data):
"""Get ending balance, statement date and id.
We use the date on the last 62F tag as statement date, as the date
on the 60F record (previous end balance) might contain a date in
a previous period.
We generate the statement.id from the local_account and the end-date,
this should normally be unique, provided there is a maximum of
one statement per day.
Depending on the bank, there might be multiple 62F tags in the import
file. The last one counts.
"""
self.current_statement['balance_end_real'] = str2amount(
data[0],
data[10:]
)
self.current_statement['date'] = datetime.strptime(data[1:7], '%y%m%d')
# Only replace logically empty (only whitespace or zeroes) id's:
# But do replace statement_id's added before (therefore starting
# with local_account), because we need the date on the last 62F
# record.
statement_name = self.current_statement['name'] or ''
test_empty_id = re.sub(r'[\s0]', '', statement_name)
is_account_number = statement_name.startswith(self.account_number)
if not test_empty_id or is_account_number:
self.current_statement['name'] = '%s-%s' % (
self.account_number,
self.current_statement['date'].strftime('%Y-%m-%d'),
)
def handle_tag_64(self, data):
"""get current balance in currency"""
pass
def handle_tag_65(self, data):
"""get future balance in currency"""
pass
def handle_tag_86(self, data):
"""details for previous transaction, here most differences between
banks occur"""
pass

BIN
account_bank_statement_import_mt940_base/static/description/icon.png

Before

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

61
account_bank_statement_import_mt940_base/test_files/test-ing.940

@ -1,61 +0,0 @@
{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/
-}

29
account_bank_statement_import_mt940_base/test_files/test-rabo.swi

@ -1,29 +0,0 @@
:940:
:20:940S140102
:25:NL34RABO0142623393 EUR
:28C:0
:60F:C131231EUR000000004433,52
:61:140102C000000000400,00N541NONREF
NL66RABO0160878799
:86:/ORDP//NAME/R. SMITH/ADDR/Green market 74 3311BE Sheepcity Nederl
and NL/REMI/Test money paid by other partner:
/ISDT/2014-01-02
:62F:C140102EUR000000004833,52
:20:940S140103
:25:NL34RABO0142623393 EUR
:28C:0
:60F:C140102EUR000000004833,52
:62F:C140103EUR000000004833,52
:20:940S140106
:25:NL34RABO0142623393 EUR
:28C:0
:60F:C140103EUR000000004833,52
:61:140101D000000000034,61N093NONREF
:86:/BENM//NAME/Kosten/REMI/Periode 01-10-2013 t/m 31-12-2013/ISDT/20
14-01-01
:62F:C140106EUR000000004798,91
:20:940S140107
:25:NL34RABO0142623393 EUR
:28C:0
:60F:C140106EUR000000004798,91
:62F:C140107EUR000000004798,91

78
account_bank_statement_import_mt940_base/test_files/test-sns.940

@ -1,78 +0,0 @@
{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:}

11
account_bank_statement_import_mt940_base/test_files/test-wrong-file.940

@ -1,11 +0,0 @@
:9401:
:20:940S140102
:25:NL34RABO0142623393 EUR
:28C:0
:60F:C131231EUR000000004433,52
:61:140102C000000000400,00N541NONREF
NL66RABO0160878799
:86:/ORDP//NAME/R. SMITH/ADDR/Green market 74 3311BE Sheepcity Nederl
and NL/REMI/Test money paid by other partner:
/ISDT/2014-01-02
:62F:C140102EUR000000004833,52

1
account_bank_statement_import_mt940_base/tests/__init__.py

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

239
account_bank_statement_import_mt940_base/tests/test_import_bank_statement.py

@ -1,239 +0,0 @@
# Copyright 2017 Onestein (<http://www.onestein.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import base64
from mock import patch
from odoo.tests.common import TransactionCase
from odoo.modules.module import get_module_resource
from ..mt940 import MT940, get_subfields, handle_common_subfields
class TestImport(TransactionCase):
"""Run test to import mt940 import."""
transactions = [
{
'account_number': 'NL46ABNA0499998748',
'amount': -754.25,
'ref': '435005714488-ABNO33052620',
'name': 'test line',
},
]
def setUp(self):
super(TestImport, self).setUp()
bank1 = self.env['res.partner.bank'].create({
'acc_number': 'NL77INGB0574908765',
'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 - (test1 mt940)',
'code': 'TBNK1MT940',
'type': 'bank',
'bank_account_id': bank1.id,
'currency_id': self.env.ref('base.EUR').id,
})
bank2 = self.env['res.partner.bank'].create({
'acc_number': 'NL34RABO0142623393',
'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 - (test2 mt940)',
'code': 'TBNK2MT940',
'type': 'bank',
'bank_account_id': bank2.id,
'currency_id': self.env.ref('base.EUR').id,
})
bank3 = self.env['res.partner.bank'].create({
'acc_number': 'NL05SNSB0908244436',
'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 - (test3 mt940)',
'code': 'TBNK3MT940',
'type': 'bank',
'bank_account_id': bank3.id,
'currency_id': self.env.ref('base.EUR').id,
})
self.data =\
"/BENM//NAME/Cost/REMI/Period 01-10-2013 t/m 31-12-2013/ISDT/20"
self.codewords = ['BENM', 'ADDR', 'NAME', 'CNTP', 'ISDT', 'REMI']
def test_wrong_file_import(self):
"""Test wrong file import."""
testfile = get_module_resource(
'account_bank_statement_import_mt940_base',
'test_files',
'test-wrong-file.940',
)
parser = MT940()
datafile = open(testfile, 'rb').read()
with self.assertRaises(ValueError):
parser.parse(datafile, header_lines=1)
def test_statement_import(self):
"""Test correct creation of single statement ING."""
def _prepare_statement_lines(statements):
transact = self.transactions[0]
for st_vals in statements[2]:
for line_vals in st_vals['transactions']:
line_vals['amount'] = transact['amount']
line_vals['name'] = transact['name']
line_vals['account_number'] = transact['account_number']
line_vals['ref'] = transact['ref']
testfile = get_module_resource(
'account_bank_statement_import_mt940_base',
'test_files',
'test-ing.940',
)
parser = MT940()
datafile = open(testfile, 'rb').read()
statements = parser.parse(datafile, header_lines=1)
_prepare_statement_lines(statements)
path_addon = 'odoo.addons.account_bank_statement_import.'
path_file = 'account_bank_statement_import.'
path_class = 'AccountBankStatementImport.'
method = path_addon + path_file + path_class + '_parse_file'
with patch(method) as my_mock:
my_mock.return_value = statements
action = self.env['account.bank.statement.import'].create({
'data_file': base64.b64encode(datafile),
}).import_file()
transact = self.transactions[0]
for statement in self.env['account.bank.statement'].browse(
action['context']['statement_ids']):
for line in statement.line_ids:
self.assertTrue(
line.bank_account_id.acc_number ==
transact['account_number'])
self.assertTrue(line.amount == transact['amount'])
self.assertTrue(line.date == '2014-02-20')
self.assertTrue(line.name == transact['name'])
self.assertTrue(line.ref == transact['ref'])
def test_get_subfields(self):
"""Unit Test function get_subfields()."""
res = get_subfields(self.data, self.codewords)
espected_res = {
'BENM': [''],
'NAME': ['Cost'],
'REMI': ['Period 01-10-2013 t', 'm 31-12-2013'],
'ISDT': ['20'],
}
self.assertTrue(res == espected_res)
def test_handle_common_subfields(self):
"""Unit Test function handle_common_subfields()."""
subfields = get_subfields(self.data, self.codewords)
transaction = self.transactions[0]
handle_common_subfields(transaction, subfields)
def test_statement_import2(self):
"""Test correct creation of single statement RABO."""
def _prepare_statement_lines(statements):
transact = self.transactions[0]
for st_vals in statements[2]:
for line_vals in st_vals['transactions']:
line_vals['amount'] = transact['amount']
line_vals['name'] = transact['name']
line_vals['account_number'] = transact['account_number']
line_vals['ref'] = transact['ref']
testfile = get_module_resource(
'account_bank_statement_import_mt940_base',
'test_files',
'test-rabo.swi',
)
parser = MT940()
parser.header_regex = '^:940:' # Start of header
parser.header_lines = 1 # Number of lines to skip
datafile = open(testfile, 'rb').read()
statements = parser.parse(datafile, header_lines=1)
_prepare_statement_lines(statements)
path_addon = 'odoo.addons.account_bank_statement_import.'
path_file = 'account_bank_statement_import.'
path_class = 'AccountBankStatementImport.'
method = path_addon + path_file + path_class + '_parse_file'
with patch(method) as my_mock:
my_mock.return_value = statements
action = self.env['account.bank.statement.import'].create({
'data_file': base64.b64encode(datafile),
}).import_file()
# The file contains 4 statements, but only 2 with transactions
self.assertTrue(len(action['context']['statement_ids']) == 2)
transact = self.transactions[0]
for statement in self.env['account.bank.statement'].browse(
action['context']['statement_ids']):
for line in statement.line_ids:
self.assertTrue(
line.bank_account_id.acc_number ==
transact['account_number'])
self.assertTrue(line.amount == transact['amount'])
self.assertTrue(line.date)
self.assertTrue(line.name == transact['name'])
self.assertTrue(line.ref == transact['ref'])
def test_statement_import3(self):
"""Test correct creation of multiple statements SNS."""
def _prepare_statement_lines(statements):
transact = self.transactions[0]
for st_vals in statements[2]:
for line_vals in st_vals['transactions']:
line_vals['amount'] = transact['amount']
line_vals['name'] = transact['name']
line_vals['account_number'] = transact['account_number']
line_vals['ref'] = transact['ref']
testfile = get_module_resource(
'account_bank_statement_import_mt940_base',
'test_files',
'test-sns.940',
)
parser = MT940()
datafile = open(testfile, 'rb').read()
statements = parser.parse(datafile, header_lines=1)
_prepare_statement_lines(statements)
path_addon = 'odoo.addons.account_bank_statement_import.'
path_file = 'account_bank_statement_import.'
path_class = 'AccountBankStatementImport.'
method = path_addon + path_file + path_class + '_parse_file'
with patch(method) as my_mock:
my_mock.return_value = statements
action = self.env['account.bank.statement.import'].create({
'data_file': base64.b64encode(datafile),
}).import_file()
self.assertTrue(len(action['context']['statement_ids']) == 3)
transact = self.transactions[-1]
for statement in self.env['account.bank.statement'].browse(
action['context']['statement_ids'][-1]):
for line in statement.line_ids:
self.assertTrue(
line.bank_account_id.acc_number ==
transact['account_number'])
self.assertTrue(line.amount == transact['amount'])
self.assertTrue(line.date == statement.date)
self.assertTrue(line.name == transact['name'])
self.assertTrue(line.ref == transact['ref'])

66
account_bank_statement_import_ofx/README.rst

@ -1,66 +0,0 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:alt: License: AGPL-3
=========================
Import OFX Bank Statement
=========================
This module adds support for the import of bank statements in `OFX format <https://en.wikipedia.org/wiki/Open_Financial_Exchange>`_.
Bank Statements may be generated containing a subset of the OFX information (only those transaction lines that are required for the
creation of the Financial Accounting records).
Installation
============
The module requires one additional python lib:
* `ofxparse <http://pypi.python.org/pypi/ofxparse>`_
Usage
=====
.. 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
===========
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.
Credits
=======
Contributors
------------
* Odoo SA
* Alexis de Lattre <alexis@via.ecp.fr>
* Laurent Mignon <laurent.mignon@acsone.eu>
* Ronald Portier <rportier@therp.nl>
* Sylvain LE GAL <https://twitter.com/legalsylvain>
* Nicolas JEUDY <https://github.com/njeudy>
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 https://odoo-community.org.

1
account_bank_statement_import_ofx/__init__.py

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

23
account_bank_statement_import_ofx/__manifest__.py

@ -1,23 +0,0 @@
{
'name': 'Import OFX Bank Statement',
'category': 'Banking addons',
'version': '11.0.1.0.0',
'license': 'AGPL-3',
'author': 'Odoo SA,'
'Akretion,'
'La Louve,'
'GRAP,'
'Nicolas JEUDY,'
'Odoo Community Association (OCA)',
'website': 'https://odoo-community.org/',
'depends': [
'account_bank_statement_import',
],
'data': [
'views/view_account_bank_statement_import.xml',
],
'external_dependencies': {
'python': ['ofxparse'],
},
'installable': True,
}

33
account_bank_statement_import_ofx/i18n/account_bank_statement_import_ofx.pot

@ -1,33 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_ofx
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.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_ofx
#: model:ir.model,name:account_bank_statement_import_ofx.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr ""
#. module: account_bank_statement_import_ofx
#: model:ir.ui.view,arch_db:account_bank_statement_import_ofx.view_account_bank_statement_import_form
msgid "Open Financial Exchange (.OFX Money)"
msgstr ""
#. module: account_bank_statement_import_ofx
#: code:addons/account_bank_statement_import_ofx/wizard/account_bank_statement_import.py:81
#, python-format
msgid "The following problem occurred during import. The file might not be valid.\n"
"\n"
" %s"
msgstr ""

42
account_bank_statement_import_ofx/i18n/de.po

@ -1,42 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_ofx
#
# Translators:
# 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-04-11 21:55+0000\n"
"PO-Revision-Date: 2017-04-11 21:55+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
"Language: de\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_ofx
#: model:ir.model,name:account_bank_statement_import_ofx.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Kontoauszug importieren"
#. module: account_bank_statement_import_ofx
#: model:ir.ui.view,arch_db:account_bank_statement_import_ofx.view_account_bank_statement_import_form
msgid "Open Financial Exchange (.OFX Money)"
msgstr "Open Financial Exchange (.OFX Money)"
#. module: account_bank_statement_import_ofx
#: code:addons/account_bank_statement_import_ofx/wizard/account_bank_statement_import.py:81
#, python-format
msgid ""
"The following problem occurred during import. The file might not be valid.\n"
"\n"
" %s"
msgstr ""
"Das folgende Problem ist beim Importieren aufgetreten. Die Datei ist dürfte "
"ungültig sein.\n"
"\n"
"%s"

38
account_bank_statement_import_ofx/i18n/es.po

@ -1,38 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_ofx
#
# 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-05-29 00:50+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: Spanish (http://www.transifex.com/oca/OCA-bank-statement-"
"import-8-0/language/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_ofx
#: model:ir.model,name:account_bank_statement_import_ofx.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importar extracto bancario"
#. module: account_bank_statement_import_ofx
#: model:ir.ui.view,arch_db:account_bank_statement_import_ofx.view_account_bank_statement_import_form
msgid "Open Financial Exchange (.OFX Money)"
msgstr ""
#. module: account_bank_statement_import_ofx
#: code:addons/account_bank_statement_import_ofx/wizard/account_bank_statement_import.py:81
#, python-format
msgid ""
"The following problem occurred during import. The file might not be valid.\n"
"\n"
" %s"
msgstr ""

38
account_bank_statement_import_ofx/i18n/fi.po

@ -1,38 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_ofx
#
# Translators:
# 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-03-19 03:39+0000\n"
"PO-Revision-Date: 2017-03-19 03:39+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_bank_statement_import_ofx
#: model:ir.model,name:account_bank_statement_import_ofx.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Tuo pankkiaineisto"
#. module: account_bank_statement_import_ofx
#: model:ir.ui.view,arch_db:account_bank_statement_import_ofx.view_account_bank_statement_import_form
msgid "Open Financial Exchange (.OFX Money)"
msgstr ""
#. module: account_bank_statement_import_ofx
#: code:addons/account_bank_statement_import_ofx/wizard/account_bank_statement_import.py:81
#, python-format
msgid ""
"The following problem occurred during import. The file might not be valid.\n"
"\n"
" %s"
msgstr ""

42
account_bank_statement_import_ofx/i18n/fr.po

@ -1,42 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_ofx
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-11 21:55+0000\n"
"PO-Revision-Date: 2017-04-11 21:55+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2016\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_ofx
#: model:ir.model,name:account_bank_statement_import_ofx.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importer Relevé Bancaire"
#. module: account_bank_statement_import_ofx
#: model:ir.ui.view,arch_db:account_bank_statement_import_ofx.view_account_bank_statement_import_form
msgid "Open Financial Exchange (.OFX Money)"
msgstr "Open Financial Exchange (.OFX Money)"
#. module: account_bank_statement_import_ofx
#: code:addons/account_bank_statement_import_ofx/wizard/account_bank_statement_import.py:81
#, python-format
msgid ""
"The following problem occurred during import. The file might not be valid.\n"
"\n"
" %s"
msgstr ""
"Le problème suivant est survenu lors de l'importation. Le fichier n'est pas "
"valide.\n"
"\n"
"%s"

39
account_bank_statement_import_ofx/i18n/fr_CH.po

@ -1,39 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_ofx
#
# Translators:
# 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-03-19 03:39+0000\n"
"PO-Revision-Date: 2017-03-19 03:39+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: French (Switzerland) (https://www.transifex.com/oca/"
"teams/23907/fr_CH/)\n"
"Language: fr_CH\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: account_bank_statement_import_ofx
#: model:ir.model,name:account_bank_statement_import_ofx.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importer Relevé"
#. module: account_bank_statement_import_ofx
#: model:ir.ui.view,arch_db:account_bank_statement_import_ofx.view_account_bank_statement_import_form
msgid "Open Financial Exchange (.OFX Money)"
msgstr ""
#. module: account_bank_statement_import_ofx
#: code:addons/account_bank_statement_import_ofx/wizard/account_bank_statement_import.py:81
#, python-format
msgid ""
"The following problem occurred during import. The file might not be valid.\n"
"\n"
" %s"
msgstr ""

38
account_bank_statement_import_ofx/i18n/gl.po

@ -1,38 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_ofx
#
# Translators:
# 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-03-19 03:39+0000\n"
"PO-Revision-Date: 2017-03-19 03:39+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/gl/)\n"
"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_bank_statement_import_ofx
#: model:ir.model,name:account_bank_statement_import_ofx.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importar extracto bancario"
#. module: account_bank_statement_import_ofx
#: model:ir.ui.view,arch_db:account_bank_statement_import_ofx.view_account_bank_statement_import_form
msgid "Open Financial Exchange (.OFX Money)"
msgstr ""
#. module: account_bank_statement_import_ofx
#: code:addons/account_bank_statement_import_ofx/wizard/account_bank_statement_import.py:81
#, python-format
msgid ""
"The following problem occurred during import. The file might not be valid.\n"
"\n"
" %s"
msgstr ""

43
account_bank_statement_import_ofx/i18n/lt_LT.po

@ -1,43 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_ofx
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-11 21:55+0000\n"
"PO-Revision-Date: 2017-04-11 21:55+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2016\n"
"Language-Team: Lithuanian (Lithuania) (https://www.transifex.com/oca/"
"teams/23907/lt_LT/)\n"
"Language: lt_LT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
"%100<10 || n%100>=20) ? 1 : 2);\n"
#. module: account_bank_statement_import_ofx
#: model:ir.model,name:account_bank_statement_import_ofx.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importuoti banko išrašą"
#. module: account_bank_statement_import_ofx
#: model:ir.ui.view,arch_db:account_bank_statement_import_ofx.view_account_bank_statement_import_form
msgid "Open Financial Exchange (.OFX Money)"
msgstr ""
#. module: account_bank_statement_import_ofx
#: code:addons/account_bank_statement_import_ofx/wizard/account_bank_statement_import.py:81
#, python-format
msgid ""
"The following problem occurred during import. The file might not be valid.\n"
"\n"
" %s"
msgstr ""
"Klaida. Failas gali būti sugadintas arba negaliojantis.\n"
"\n"
" %s"

39
account_bank_statement_import_ofx/i18n/nb_NO.po

@ -1,39 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_ofx
#
# Translators:
# 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-03-19 03:39+0000\n"
"PO-Revision-Date: 2017-03-19 03:39+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Norwegian Bokmål (Norway) (https://www.transifex.com/oca/"
"teams/23907/nb_NO/)\n"
"Language: nb_NO\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_bank_statement_import_ofx
#: model:ir.model,name:account_bank_statement_import_ofx.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importer bankutsagn"
#. module: account_bank_statement_import_ofx
#: model:ir.ui.view,arch_db:account_bank_statement_import_ofx.view_account_bank_statement_import_form
msgid "Open Financial Exchange (.OFX Money)"
msgstr ""
#. module: account_bank_statement_import_ofx
#: code:addons/account_bank_statement_import_ofx/wizard/account_bank_statement_import.py:81
#, python-format
msgid ""
"The following problem occurred during import. The file might not be valid.\n"
"\n"
" %s"
msgstr ""

42
account_bank_statement_import_ofx/i18n/nl.po

@ -1,42 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_ofx
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-11 21:55+0000\n"
"PO-Revision-Date: 2017-04-11 21:55+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2016\n"
"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/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_ofx
#: model:ir.model,name:account_bank_statement_import_ofx.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importeer bankafschrift"
#. module: account_bank_statement_import_ofx
#: model:ir.ui.view,arch_db:account_bank_statement_import_ofx.view_account_bank_statement_import_form
msgid "Open Financial Exchange (.OFX Money)"
msgstr ""
#. module: account_bank_statement_import_ofx
#: code:addons/account_bank_statement_import_ofx/wizard/account_bank_statement_import.py:81
#, python-format
msgid ""
"The following problem occurred during import. The file might not be valid.\n"
"\n"
" %s"
msgstr ""
"Het volgende probleem is opgetreden tijdens de import. Het bestand is "
"waarschijnlijk niet juist.\n"
"\n"
"%s"

43
account_bank_statement_import_ofx/i18n/pt_BR.po

@ -1,43 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_ofx
#
# Translators:
# 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: Portuguese (Brazil) (https://www.transifex.com/oca/"
"teams/23907/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: account_bank_statement_import_ofx
#: model:ir.model,name:account_bank_statement_import_ofx.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importar Extrato Bancário"
#. module: account_bank_statement_import_ofx
#: model:ir.ui.view,arch_db:account_bank_statement_import_ofx.view_account_bank_statement_import_form
msgid "Open Financial Exchange (.OFX Money)"
msgstr ""
#. module: account_bank_statement_import_ofx
#: code:addons/account_bank_statement_import_ofx/wizard/account_bank_statement_import.py:81
#, python-format
msgid ""
"The following problem occurred during import. The file might not be valid.\n"
"\n"
" %s"
msgstr ""
"O seguinte problema ocorreu durante a importação. O arquivo não deve ser "
"válido.\n"
"\n"
"%s"

39
account_bank_statement_import_ofx/i18n/pt_PT.po

@ -1,39 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_ofx
#
# Translators:
# 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-03-19 03:39+0000\n"
"PO-Revision-Date: 2017-03-19 03:39+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/"
"teams/23907/pt_PT/)\n"
"Language: pt_PT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_bank_statement_import_ofx
#: model:ir.model,name:account_bank_statement_import_ofx.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importar Extrato Bancário"
#. module: account_bank_statement_import_ofx
#: model:ir.ui.view,arch_db:account_bank_statement_import_ofx.view_account_bank_statement_import_form
msgid "Open Financial Exchange (.OFX Money)"
msgstr ""
#. module: account_bank_statement_import_ofx
#: code:addons/account_bank_statement_import_ofx/wizard/account_bank_statement_import.py:81
#, python-format
msgid ""
"The following problem occurred during import. The file might not be valid.\n"
"\n"
" %s"
msgstr ""

42
account_bank_statement_import_ofx/i18n/sl.po

@ -1,42 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import_ofx
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-11 21:55+0000\n"
"PO-Revision-Date: 2017-04-11 21:55+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2016\n"
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n"
#. module: account_bank_statement_import_ofx
#: model:ir.model,name:account_bank_statement_import_ofx.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Uvoz bančnega izpiska"
#. module: account_bank_statement_import_ofx
#: model:ir.ui.view,arch_db:account_bank_statement_import_ofx.view_account_bank_statement_import_form
msgid "Open Financial Exchange (.OFX Money)"
msgstr ""
#. module: account_bank_statement_import_ofx
#: code:addons/account_bank_statement_import_ofx/wizard/account_bank_statement_import.py:81
#, python-format
msgid ""
"The following problem occurred during import. The file might not be valid.\n"
"\n"
" %s"
msgstr ""
"Med uvozom je prišlo do težav. Datoteka ni veljavna.\n"
"\n"
" %s"

BIN
account_bank_statement_import_ofx/static/description/icon.png

Before

Width: 128  |  Height: 128  |  Size: 6.1 KiB

1
account_bank_statement_import_ofx/tests/__init__.py

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

86
account_bank_statement_import_ofx/tests/test_import_bank_statement.py

@ -1,86 +0,0 @@
from odoo.tests.common import TransactionCase
from odoo.modules.module import get_module_resource
import base64
class TestOfxFile(TransactionCase):
"""Tests for import bank statement ofx file format
(account.bank.statement.import)
"""
def setUp(self):
super(TestOfxFile, self).setUp()
self.absi_model = self.env['account.bank.statement.import']
self.abs_model = self.env['account.bank.statement']
self.j_model = self.env['account.journal']
self.absl_model = self.env['account.bank.statement.line']
cur = self.env.ref('base.USD')
self.env.ref('base.main_company').currency_id = cur.id
bank = self.env['res.partner.bank'].create({
'acc_number': '123456',
'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 OFX',
'code': 'BNK12',
'type': 'bank',
'bank_account_id': bank.id,
})
bank_iban_ofx = self.env['res.partner.bank'].create({
'acc_number': 'FR7630001007941234567890185',
'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': 'FR7630001007941234567890185',
'code': 'BNK13',
'type': 'bank',
'bank_account_id': bank_iban_ofx.id,
})
def test_wrong_ofx_file_import(self):
ofx_file_path = get_module_resource(
'account_bank_statement_import_ofx',
'tests/test_ofx_file/', 'test_ofx_wrong.ofx')
ofx_file_wrong = base64.b64encode(open(ofx_file_path, 'rb').read())
bank_statement = self.absi_model.create(
dict(data_file=ofx_file_wrong))
self.assertFalse(bank_statement._check_ofx(data_file=ofx_file_wrong))
def test_ofx_file_import(self):
ofx_file_path = get_module_resource(
'account_bank_statement_import_ofx',
'tests/test_ofx_file/', 'test_ofx.ofx')
ofx_file = base64.b64encode(open(ofx_file_path, 'rb').read())
bank_statement = self.absi_model.create(
dict(data_file=ofx_file))
bank_statement.import_file()
bank_st_record = self.abs_model.search(
[('name', 'like', '123456')])[0]
self.assertEqual(bank_st_record.balance_start, 2516.56)
self.assertEqual(bank_st_record.balance_end_real, 2156.56)
line = self.absl_model.search([
('name', '=', 'Agrolait'),
('statement_id', '=', bank_st_record.id)])[0]
self.assertEquals(line.ref, '219378')
self.assertEquals(line.date, '2013-08-24')
def test_check_journal_bank_account(self):
ofx_file_path = get_module_resource(
'account_bank_statement_import_ofx',
'tests/test_ofx_file/', 'test_ofx_iban.ofx')
ofx_file = base64.b64encode(open(ofx_file_path, 'rb').read())
bank_st = self.absi_model.create(
dict(data_file=ofx_file))
journal_iban_ofx = self.j_model.search([
('name', '=', 'FR7630001007941234567890185')])
res = bank_st._check_journal_bank_account(journal_iban_ofx,
'12345678901')
self.assertTrue(res)
bank_st.with_context(journal_id=journal_iban_ofx.id).import_file()

100
account_bank_statement_import_ofx/tests/test_ofx_file/test_ofx.ofx

@ -1,100 +0,0 @@
<?xml version="1.0" encoding="ASCII"?>
<?OFX OFXHEADER="200" VERSION="211" SECURITY="NONE" OLDFILEUID="NONE" NEWFILEUID="NONE"?>
<OFX>
<SIGNONMSGSRSV1>
<SONRS>
<STATUS>
<CODE>0</CODE>
<SEVERITY>INFO</SEVERITY>
</STATUS>
<DTSERVER>20130831165153.000[-8:PST]</DTSERVER>
<LANGUAGE>ENG</LANGUAGE>
</SONRS>
</SIGNONMSGSRSV1>
<BANKMSGSRSV1>
<STMTTRNRS>
<TRNUID>0</TRNUID>
<STATUS>
<CODE>0</CODE>
<SEVERITY>INFO</SEVERITY>
</STATUS>
<STMTRS>
<CURDEF>USD</CURDEF>
<BANKACCTFROM>
<BANKID>000000123</BANKID>
<ACCTID>123456</ACCTID>
<ACCTTYPE>CHECKING</ACCTTYPE>
</BANKACCTFROM>
<BANKTRANLIST>
<DTSTART>20130801</DTSTART>
<DTEND>20130831165153.000[-8:PST]</DTEND>
<STMTTRN>
<TRNTYPE>POS</TRNTYPE>
<DTPOSTED>20130824080000</DTPOSTED>
<TRNAMT>-80</TRNAMT>
<FITID>219378</FITID>
<NAME>Agrolait</NAME>
</STMTTRN>
</BANKTRANLIST>
<BANKTRANLIST>
<DTSTART>20130801</DTSTART>
<DTEND>20130831165153.000[-8:PST]</DTEND>
<STMTTRN>
<TRNTYPE>POS</TRNTYPE>
<DTPOSTED>20130824080000</DTPOSTED>
<TRNAMT>-90</TRNAMT>
<FITID>219379</FITID>
<NAME>China Export</NAME>
</STMTTRN>
</BANKTRANLIST>
<BANKTRANLIST>
<DTSTART>20130801</DTSTART>
<DTEND>20130831165153.000[-8:PST]</DTEND>
<STMTTRN>
<TRNTYPE>POS</TRNTYPE>
<DTPOSTED>20130824080000</DTPOSTED>
<TRNAMT>-100</TRNAMT>
<FITID>219380</FITID>
<NAME>Axelor Scuba</NAME>
</STMTTRN>
</BANKTRANLIST>
<BANKTRANLIST>
<DTSTART>20130801</DTSTART>
<DTEND>20130831165153.000[-8:PST]</DTEND>
<STMTTRN>
<TRNTYPE>POS</TRNTYPE>
<DTPOSTED>20130824080000</DTPOSTED>
<TRNAMT>-90</TRNAMT>
<FITID>219381</FITID>
<NAME>China Scuba</NAME>
</STMTTRN>
</BANKTRANLIST>
<LEDGERBAL>
<BALAMT>2156.56</BALAMT>
<DTASOF>20130831165153</DTASOF>
</LEDGERBAL>
</STMTRS>
</STMTTRNRS>
</BANKMSGSRSV1>
<CREDITCARDMSGSRSV1>
<CCSTMTTRNRS>
<TRNUID>0</TRNUID>
<STATUS>
<CODE>0</CODE>
<SEVERITY>INFO</SEVERITY>
</STATUS>
<CCSTMTRS>
<CURDEF>USD</CURDEF>
<CCACCTFROM>
<ACCTID>123412341234</ACCTID>
</CCACCTFROM>
<BANKTRANLIST>
</BANKTRANLIST>
<LEDGERBAL>
<BALAMT>-562.00</BALAMT>
<DTASOF>20130831165153</DTASOF>
</LEDGERBAL>
</CCSTMTRS>
</CCSTMTTRNRS>
</CREDITCARDMSGSRSV1>
</OFX>

101
account_bank_statement_import_ofx/tests/test_ofx_file/test_ofx_iban.ofx

@ -1,101 +0,0 @@
<?xml version="1.0" encoding="ASCII"?>
<?OFX OFXHEADER="200" VERSION="211" SECURITY="NONE" OLDFILEUID="NONE" NEWFILEUID="NONE"?>
<OFX>
<SIGNONMSGSRSV1>
<SONRS>
<STATUS>
<CODE>0</CODE>
<SEVERITY>INFO</SEVERITY>
</STATUS>
<DTSERVER>20130831165153.000[-8:PST]</DTSERVER>
<LANGUAGE>ENG</LANGUAGE>
</SONRS>
</SIGNONMSGSRSV1>
<BANKMSGSRSV1>
<STMTTRNRS>
<TRNUID>0</TRNUID>
<STATUS>
<CODE>0</CODE>
<SEVERITY>INFO</SEVERITY>
</STATUS>
<STMTRS>
<CURDEF>USD</CURDEF>
<BANKACCTFROM>
<BANKID>30001</BANKID>
<BRANCHID>00794</BRANCHID>
<ACCTID>12345678901</ACCTID>
<ACCTTYPE>CHECKING</ACCTTYPE>
</BANKACCTFROM>
<BANKTRANLIST>
<DTSTART>20130801</DTSTART>
<DTEND>20130831165153.000[-8:PST]</DTEND>
<STMTTRN>
<TRNTYPE>POS</TRNTYPE>
<DTPOSTED>20130824080000</DTPOSTED>
<TRNAMT>-80</TRNAMT>
<FITID>219378</FITID>
<NAME>Agrolait</NAME>
</STMTTRN>
</BANKTRANLIST>
<BANKTRANLIST>
<DTSTART>20130801</DTSTART>
<DTEND>20130831165153.000[-8:PST]</DTEND>
<STMTTRN>
<TRNTYPE>POS</TRNTYPE>
<DTPOSTED>20130824080000</DTPOSTED>
<TRNAMT>-90</TRNAMT>
<FITID>219379</FITID>
<NAME>China Export</NAME>
</STMTTRN>
</BANKTRANLIST>
<BANKTRANLIST>
<DTSTART>20130801</DTSTART>
<DTEND>20130831165153.000[-8:PST]</DTEND>
<STMTTRN>
<TRNTYPE>POS</TRNTYPE>
<DTPOSTED>20130824080000</DTPOSTED>
<TRNAMT>-100</TRNAMT>
<FITID>219380</FITID>
<NAME>Axelor Scuba</NAME>
</STMTTRN>
</BANKTRANLIST>
<BANKTRANLIST>
<DTSTART>20130801</DTSTART>
<DTEND>20130831165153.000[-8:PST]</DTEND>
<STMTTRN>
<TRNTYPE>POS</TRNTYPE>
<DTPOSTED>20130824080000</DTPOSTED>
<TRNAMT>-90</TRNAMT>
<FITID>219381</FITID>
<NAME>China Scuba</NAME>
</STMTTRN>
</BANKTRANLIST>
<LEDGERBAL>
<BALAMT>2156.56</BALAMT>
<DTASOF>20130831165153</DTASOF>
</LEDGERBAL>
</STMTRS>
</STMTTRNRS>
</BANKMSGSRSV1>
<CREDITCARDMSGSRSV1>
<CCSTMTTRNRS>
<TRNUID>0</TRNUID>
<STATUS>
<CODE>0</CODE>
<SEVERITY>INFO</SEVERITY>
</STATUS>
<CCSTMTRS>
<CURDEF>USD</CURDEF>
<CCACCTFROM>
<ACCTID>123412341234</ACCTID>
</CCACCTFROM>
<BANKTRANLIST>
</BANKTRANLIST>
<LEDGERBAL>
<BALAMT>-562.00</BALAMT>
<DTASOF>20130831165153</DTASOF>
</LEDGERBAL>
</CCSTMTRS>
</CCSTMTTRNRS>
</CREDITCARDMSGSRSV1>
</OFX>

100
account_bank_statement_import_ofx/tests/test_ofx_file/test_ofx_wrong.ofx

@ -1,100 +0,0 @@
<?xml version="1.0" encoding="ASCII"?>
<?OFX OFXHEADER="200" VERSION="211" SECURITY="NONE" OLDFILEUID="NONE" NEWFILEUID="NONE"?>
<OFX>
<SIGNONMSGSRSV1>
<SONRS>
<STATUS>
<CODE>0</CODE>
<SEVERITY>INFO</SEVERITY>
</STATUS>
<DTSERVER>20130831165153.000[-8:PST]</DTSERVER>
<LANGUAGE>ENG</LANGUAGE>
</SONRS>
</SIGNONMSGSRSV1>
<BANKMSGSRSV1>
<STMTTRNRS>
<TRNUID>0</TRNUID>
<STATUS>
<CODE>0</CODE>
<SEVERITY>INFO</SEVERITY>
</STATUS>
<STMTRS>
<!-- <CURDEF>USD</CURDEF>
<BANKACCTFROM>
<BANKID>000000123</BANKID>
<ACCTID>123456</ACCTID>
<ACCTTYPE>CHECKING</ACCTTYPE>
</BANKACCTFROM> -->
<BANKTRANLIST>
<DTSTART>20130801</DTSTART>
<DTEND>20130831165153.000[-8:PST]</DTEND>
<STMTTRN>
<TRNTYPE>POS</TRNTYPE>
<DTPOSTED>20130824080000</DTPOSTED>
<TRNAMT>-80</TRNAMT>
<FITID>219378</FITID>
<NAME>Agrolait</NAME>
</STMTTRN>
</BANKTRANLIST>
<BANKTRANLIST>
<DTSTART>20130801</DTSTART>
<DTEND>20130831165153.000[-8:PST]</DTEND>
<STMTTRN>
<TRNTYPE>POS</TRNTYPE>
<!-- <DTPOSTED>20130824080000</DTPOSTED>
<TRNAMT>-90</TRNAMT>
<FITID>219379</FITID> -->
<NAME>China Export</NAME>
</STMTTRN>
</BANKTRANLIST>
<BANKTRANLIST>
<DTSTART>20130801</DTSTART>
<DTEND>20130831165153.000[-8:PST]</DTEND>
<STMTTRN>
<TRNTYPE>POS</TRNTYPE>
<DTPOSTED>20130824080000</DTPOSTED>
<TRNAMT>-100</TRNAMT>
<FITID>219380</FITID>
<NAME>Axelor Scuba</NAME>
</STMTTRN>
</BANKTRANLIST>
<BANKTRANLIST>
<DTSTART>20130801</DTSTART>
<DTEND>20130831165153.000[-8:PST]</DTEND>
<STMTTRN>
<TRNTYPE>POS</TRNTYPE>
<DTPOSTED>20130824080000</DTPOSTED>
<TRNAMT>-90</TRNAMT>
<FITID>219381</FITID>
<NAME>China Scuba</NAME>
</STMTTRN>
</BANKTRANLIST>
<LEDGERBAL>
<BALAMT>2156.56</BALAMT>
<DTASOF>20130831165153</DTASOF>
</LEDGERBAL>
</STMTRS>
</STMTTRNRS>
</BANKMSGSRSV1>
<CREDITCARDMSGSRSV1>
<CCSTMTTRNRS>
<TRNUID>0</TRNUID>
<STATUS>
<CODE>0</CODE>
<SEVERITY>INFO</SEVERITY>
</STATUS>
<CCSTMTRS>
<CURDEF>USD</CURDEF>
<CCACCTFROM>
<ACCTID>123412341234</ACCTID>
</CCACCTFROM>
<BANKTRANLIST>
</BANKTRANLIST>
<LEDGERBAL>
<BALAMT>-562.00</BALAMT>
<DTASOF>20130831165153</DTASOF>
</LEDGERBAL>
</CCSTMTRS>
</CCSTMTTRNRS>
</CREDITCARDMSGSRSV1>
</OFX>

12
account_bank_statement_import_ofx/views/view_account_bank_statement_import.xml

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_account_bank_statement_import_form" model="ir.ui.view">
<field name="model">account.bank.statement.import</field>
<field name="inherit_id" ref="account_bank_statement_import.account_bank_statement_import_view"/>
<field name="arch" type="xml">
<xpath expr="//ul[@id='statement_format']" position="inside">
<li>Open Financial Exchange (.OFX Money)</li>
</xpath>
</field>
</record>
</odoo>

1
account_bank_statement_import_ofx/wizard/__init__.py

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

93
account_bank_statement_import_ofx/wizard/account_bank_statement_import.py

@ -1,93 +0,0 @@
import logging
import io
from odoo import api, models, _
from odoo.exceptions import UserError
from odoo.addons.base_iban.models.res_partner_bank import _map_iban_template
from odoo.addons.base_iban.models.res_partner_bank import validate_iban
_logger = logging.getLogger(__name__)
try:
from ofxparse import OfxParser
except ImportError:
_logger.debug("ofxparse not found.")
OfxParser = None
class AccountBankStatementImport(models.TransientModel):
_inherit = 'account.bank.statement.import'
def _check_journal_bank_account(self, journal, account_number):
res = super(
AccountBankStatementImport, self
)._check_journal_bank_account(journal, account_number)
if not res:
e_acc_num = journal.bank_account_id.sanitized_acc_number
e_acc_num = e_acc_num.replace(" ", "")
validate_iban(e_acc_num)
country_code = e_acc_num[:2].lower()
iban_template = _map_iban_template[country_code].replace(
" ", "")
e_acc_num = "".join(
[c for c, t in zip(e_acc_num, iban_template) if t == "C"])
res = (e_acc_num == account_number)
return res
@api.model
def _check_ofx(self, data_file):
if not OfxParser:
return False
try:
ofx = OfxParser.parse(io.BytesIO(data_file))
except Exception as e:
_logger.debug(e)
return False
return ofx
@api.model
def _prepare_ofx_transaction_line(self, transaction):
# Since ofxparse doesn't provide account numbers,
# we cannot provide the key 'bank_account_id',
# nor the key 'account_number'
# If you read odoo10/addons/account_bank_statement_import/
# account_bank_statement_import.py, it's the only 2 keys
# we can provide to match a partner.
vals = {
'date': transaction.date,
'name': transaction.payee + (
transaction.memo and ': ' + transaction.memo or ''),
'ref': transaction.id,
'amount': float(transaction.amount),
'unique_import_id': transaction.id,
}
return vals
def _parse_file(self, data_file):
ofx = self._check_ofx(data_file)
if not ofx:
return super(AccountBankStatementImport, self)._parse_file(
data_file)
transactions = []
total_amt = 0.00
try:
for transaction in ofx.account.statement.transactions:
vals = self._prepare_ofx_transaction_line(transaction)
if vals:
transactions.append(vals)
total_amt += vals['amount']
except Exception as e:
raise UserError(_(
"The following problem occurred during import. "
"The file might not be valid.\n\n %s") % e.message)
balance = float(ofx.account.statement.balance)
vals_bank_statement = {
'name': ofx.account.number,
'transactions': transactions,
'balance_start': balance - total_amt,
'balance_end_real': balance,
}
return ofx.account.statement.currency, ofx.account.number, [
vals_bank_statement]

106
account_bank_statement_import_paypal/README.rst

@ -1,106 +0,0 @@
=============================
Import Paypal Bank Statements
=============================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fbank--statement--import-lightgray.png?logo=github
:target: https://github.com/OCA/bank-statement-import/tree/11.0/account_bank_statement_import_paypal
: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_paypal
: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|
This module allows you to import the Paypal CSV files in Odoo as bank
statements.
**Table of contents**
.. contents::
:local:
Configuration
=============
* Create or go to a bank journal where you want to import Paypal statement.
* Edit that journal and set a Paypal map in **Paypal Map** section in **Advanced
Settings** tab.
* Now you can import Paypal statements in that journal.
Note: if existent Paypal Map does not fit to your file to import, you can
create another map in **Invoicing > Configuration > Accounting > Paypal
Mapping**.
You can import headers from any Paypal file in **Action > Create Paypal Map
Lines** and set every line with which field of statement have to match.
Usage
=====
To use this module, you need to:
#. Go to Paypal and download your Bank Statement
.. image:: https://raw.githubusercontent.com/OCA/bank-statement-import/11.0/account_bank_statement_import_paypal/account_bank_statement_import_paypal/static/description/paypal_backoffice.png
:alt: .
.. image:: https://raw.githubusercontent.com/OCA/bank-statement-import/11.0/account_bank_statement_import_paypal/static/description/paypal_backoffice.png
:alt: .
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_paypal%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.
Credits
=======
Authors
~~~~~~~
* Akretion
Contributors
~~~~~~~~~~~~
* Alexis de Lattre <alexis.delattre@akretion.com>
* Sebastien BEAU <sebastien.beau@akretion.com>
* Tecnativa (https://www.tecnativa.com)
* Vicent Cubells <vicent.cubells@tecnativa.com>
Maintainers
~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
This module is part of the `OCA/bank-statement-import <https://github.com/OCA/bank-statement-import/tree/11.0/account_bank_statement_import_paypal>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

2
account_bank_statement_import_paypal/__init__.py

@ -1,2 +0,0 @@
from . import models
from . import wizards

26
account_bank_statement_import_paypal/__manifest__.py

@ -1,26 +0,0 @@
# Copyright 2014-2017 Akretion (http://www.akretion.com).
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# @author Sébastien BEAU <sebastien.beau@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Import Paypal Bank Statements",
'summary': 'Import Paypal CSV files as Bank Statements in Odoo',
"version": "11.0.2.0.0",
"category": "Accounting",
"website": "https://github.com/OCA/bank-statement-import",
"author": " Akretion, Odoo Community Association (OCA)",
"license": "AGPL-3",
"installable": True,
"depends": [
"account_bank_statement_import",
"sale",
],
"data": [
"security/ir.model.access.csv",
"data/paypal_map_data.xml",
"wizards/create_map_lines_from_file_views.xml",
"wizards/account_bank_statement_import_view.xml",
"views/account_journal_views.xml",
"views/paypal_map_views.xml",
]
}

116
account_bank_statement_import_paypal/data/paypal_map_data.xml

@ -1,116 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="paypal_map" model="account.bank.statement.import.paypal.map">
<field name="name">Paypal Monthly Statement</field>
<field name="float_thousands_sep">comma</field>
<field name="float_decimal_sep">dot</field>
</record>
<record id="paypal_map_line_date" model="account.bank.statement.import.paypal.map.line">
<field name="name">Date</field>
<field name="sequence">0</field>
<field name="map_parent_id" ref="paypal_map"/>
<field name="field_to_assign">date</field>
<field name="date_format">%m/%d/%Y</field>
</record>
<record id="paypal_map_line_time" model="account.bank.statement.import.paypal.map.line">
<field name="name">Time</field>
<field name="sequence">1</field>
<field name="map_parent_id" ref="paypal_map"/>
<field name="field_to_assign">time</field>
</record>
<record id="paypal_map_line_time_zone" model="account.bank.statement.import.paypal.map.line">
<field name="name">Time Zone</field>
<field name="sequence">2</field>
<field name="map_parent_id" ref="paypal_map"/>
</record>
<record id="paypal_map_line_description" model="account.bank.statement.import.paypal.map.line">
<field name="name">Description</field>
<field name="sequence">3</field>
<field name="map_parent_id" ref="paypal_map"/>
<field name="field_to_assign">description</field>
</record>
<record id="paypal_map_line_currency" model="account.bank.statement.import.paypal.map.line">
<field name="name">Currency</field>
<field name="sequence">4</field>
<field name="map_parent_id" ref="paypal_map"/>
<field name="field_to_assign">currency</field>
</record>
<record id="paypal_map_line_gross" model="account.bank.statement.import.paypal.map.line">
<field name="name">Gross</field>
<field name="sequence">5</field>
<field name="map_parent_id" ref="paypal_map"/>
<field name="field_to_assign">amount</field>
</record>
<record id="paypal_map_line_fee" model="account.bank.statement.import.paypal.map.line">
<field name="name">Fee</field>
<field name="sequence">6</field>
<field name="map_parent_id" ref="paypal_map"/>
<field name="field_to_assign">commission</field>
</record>
<record id="paypal_map_line_net" model="account.bank.statement.import.paypal.map.line">
<field name="name">Net</field>
<field name="sequence">7</field>
<field name="map_parent_id" ref="paypal_map"/>
</record>
<record id="paypal_map_line_balance" model="account.bank.statement.import.paypal.map.line">
<field name="name">Balance</field>
<field name="sequence">8</field>
<field name="map_parent_id" ref="paypal_map"/>
<field name="field_to_assign">balance</field>
</record>
<record id="paypal_map_line_transaction" model="account.bank.statement.import.paypal.map.line">
<field name="name">Transaction ID</field>
<field name="sequence">9</field>
<field name="map_parent_id" ref="paypal_map"/>
<field name="field_to_assign">transaction_id</field>
</record>
<record id="paypal_map_line_email" model="account.bank.statement.import.paypal.map.line">
<field name="name">From Email Address</field>
<field name="sequence">10</field>
<field name="map_parent_id" ref="paypal_map"/>
<field name="field_to_assign">email</field>
</record>
<record id="paypal_map_line_name" model="account.bank.statement.import.paypal.map.line">
<field name="name">Name</field>
<field name="sequence">11</field>
<field name="map_parent_id" ref="paypal_map"/>
<field name="field_to_assign">partner_name</field>
</record>
<record id="paypal_map_line_bank_name" model="account.bank.statement.import.paypal.map.line">
<field name="name">Bank Name</field>
<field name="sequence">12</field>
<field name="map_parent_id" ref="paypal_map"/>
<field name="field_to_assign">bank_name</field>
</record>
<record id="paypal_map_line_bank_account" model="account.bank.statement.import.paypal.map.line">
<field name="name">Bank Account</field>
<field name="sequence">13</field>
<field name="map_parent_id" ref="paypal_map"/>
<field name="field_to_assign">bank_account</field>
</record>
<record id="paypal_map_line_shipping" model="account.bank.statement.import.paypal.map.line">
<field name="name">Shipping and Handling Amount</field>
<field name="sequence">14</field>
<field name="map_parent_id" ref="paypal_map"/>
</record>
<record id="paypal_map_line_sales" model="account.bank.statement.import.paypal.map.line">
<field name="name">Sales Tax</field>
<field name="sequence">15</field>
<field name="map_parent_id" ref="paypal_map"/>
</record>
<record id="paypal_map_line_invoice" model="account.bank.statement.import.paypal.map.line">
<field name="name">Invoice ID</field>
<field name="sequence">16</field>
<field name="map_parent_id" ref="paypal_map"/>
<field name="field_to_assign">invoice_number</field>
</record>
<record id="paypal_map_line_reference" model="account.bank.statement.import.paypal.map.line">
<field name="name">Reference Txn ID</field>
<field name="sequence">17</field>
<field name="map_parent_id" ref="paypal_map"/>
<field name="field_to_assign">origin_transaction_id</field>
</record>
</odoo>

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save