Browse Source

f

pull/46/head
Ilyas 9 years ago
parent
commit
f228c05cf3
  1. 55
      account_bank_statement_import/README.rst
  2. 1
      account_bank_statement_import/__init__.py
  3. 20
      account_bank_statement_import/__openerp__.py
  4. 119
      account_bank_statement_import/demo/fiscalyear_period.xml
  5. 38
      account_bank_statement_import/demo/partner_bank.xml
  6. 218
      account_bank_statement_import/i18n/account_bank_statement_import.pot
  7. 250
      account_bank_statement_import/i18n/en.po
  8. 250
      account_bank_statement_import/i18n/es.po
  9. 255
      account_bank_statement_import/i18n/fr.po
  10. 212
      account_bank_statement_import/i18n/lt.po
  11. 251
      account_bank_statement_import/i18n/lt_LT.po
  12. 252
      account_bank_statement_import/i18n/nl.po
  13. 251
      account_bank_statement_import/i18n/pt_BR.po
  14. 251
      account_bank_statement_import/i18n/sl.po
  15. 33
      account_bank_statement_import/migrations/8.0.1.0/post-migrate.py
  16. 5
      account_bank_statement_import/models/__init__.py
  17. 366
      account_bank_statement_import/models/account_bank_statement_import.py
  18. 27
      account_bank_statement_import/models/account_config_settings.py
  19. 66
      account_bank_statement_import/models/res_partner_bank.py
  20. 236
      account_bank_statement_import/parserlib.py
  21. BIN
      account_bank_statement_import/static/description/icon.png
  22. 178
      account_bank_statement_import/static/description/icon_src.svg
  23. 5
      account_bank_statement_import/tests/__init__.py
  24. 90
      account_bank_statement_import/tests/test_import_bank_statement.py
  25. 131
      account_bank_statement_import/tests/test_import_file.py
  26. 70
      account_bank_statement_import/tests/test_res_partner_bank.py
  27. 44
      account_bank_statement_import/views/account_bank_statement_import_view.xml
  28. 17
      account_bank_statement_import/views/account_config_settings.xml
  29. 10
      account_bank_statement_import_ofx/account_bank_statement_import_ofx.py

55
account_bank_statement_import/README.rst

@ -1,55 +0,0 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:alt: License: AGPL-3
Account Bank Statement Import
=============================
This module add a generic wizard to import Bank Statements. It also extend
the bank account module to sanitize the account number and extend the search
method to use this field when searching on account_number.
The module has been initiated by a backport of the new framework developed
by Odoo for V9 at its early stage. It's no more kept in sync with the V9 since
it has reach a stage where maintaining a pure backport of 9.0 in 8.0 is not
feasible anymore
Known issues / Roadmap
======================
* None
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/bank-statement-import/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed feedback
`here <https://github.com/OCA/bank-statement-import/issues/new?body=module:%20account_bank_statement_import%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Credits
=======
Contributors
------------
* Odoo SA
* Pedro M. Baeza <pedro.baeza@gmail.com>
* Alexis de Lattre <alexis@via.ecp.fr>
* Laurent Mignon <laurent.mignon@acsone.eu>
* Ronald Portier <rportier@therp.nl>
Maintainer
----------
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
To contribute to this module, please visit http://odoo-community.org.

1
account_bank_statement_import/__init__.py

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

20
account_bank_statement_import/__openerp__.py

@ -1,20 +0,0 @@
# -*- encoding: utf-8 -*-
{
'name': 'Account Bank Statement Import',
'category': 'Banking addons',
'version': '8.0.1.0.1',
'author': 'OpenERP SA,'
'Odoo Community Association (OCA)',
'website': 'https://github.com/OCA/bank-statement-import',
'depends': ['account'],
'data': [
"views/account_config_settings.xml",
'views/account_bank_statement_import_view.xml',
],
'demo': [
'demo/fiscalyear_period.xml',
'demo/partner_bank.xml',
],
'auto_install': False,
'installable': False,
}

119
account_bank_statement_import/demo/fiscalyear_period.xml

@ -1,119 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!--
Fiscal year
-->
<record id="data_fiscalyear_2013" model="account.fiscalyear">
<field eval="'Fiscal Year X 2013'" name="name"/>
<field eval="'FY2013'" name="code"/>
<field eval="'2013-01-01'" name="date_start"/>
<field eval="'2013-12-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<!--
Fiscal Periods 2013
-->
<record id="period_1_2013" model="account.period">
<field eval="'01/2013'" name="code"/>
<field eval="'X 01/2013'" name="name"/>
<field name="fiscalyear_id" ref="data_fiscalyear_2013"/>
<field eval="'2013-01-01'" name="date_start"/>
<field eval="'2013-01-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_2_2013" model="account.period">
<field eval="'02/2013'" name="code"/>
<field eval="'X 02/2013'" name="name"/>
<field name="fiscalyear_id" ref="data_fiscalyear_2013"/>
<field eval="'2013-02-01'" name="date_start"/>
<field eval="'2013-02-28'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_3_2013" model="account.period">
<field eval="'03/2013'" name="code"/>
<field eval="'X 03/2013'" name="name"/>
<field name="fiscalyear_id" ref="data_fiscalyear_2013"/>
<field eval="'2013-03-01'" name="date_start"/>
<field eval="'2013-03-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_4_2013" model="account.period">
<field eval="'04/2013'" name="code"/>
<field eval="'X 04/2013'" name="name"/>
<field name="fiscalyear_id" ref="data_fiscalyear_2013"/>
<field eval="'2013-04-01'" name="date_start"/>
<field eval="'2013-04-30'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_5_2013" model="account.period">
<field eval="'05/2013'" name="code"/>
<field eval="'X 05/2013'" name="name"/>
<field name="fiscalyear_id" ref="data_fiscalyear_2013"/>
<field eval="'2013-05-01'" name="date_start"/>
<field eval="'2013-05-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_6_2013" model="account.period">
<field eval="'06/2013'" name="code"/>
<field eval="'X 06/2013'" name="name"/>
<field name="fiscalyear_id" ref="data_fiscalyear_2013"/>
<field eval="'2013-06-01'" name="date_start"/>
<field eval="'2013-06-30'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_7_2013" model="account.period">
<field eval="'07/2013'" name="code"/>
<field eval="'X 07/2013'" name="name"/>
<field name="fiscalyear_id" ref="data_fiscalyear_2013"/>
<field eval="'2013-07-01'" name="date_start"/>
<field eval="'2013-07-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_8_2013" model="account.period">
<field eval="'08/2013'" name="code"/>
<field eval="'X 08/2013'" name="name"/>
<field name="fiscalyear_id" ref="data_fiscalyear_2013"/>
<field eval="'2013-08-01'" name="date_start"/>
<field eval="'2013-08-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_9_2013" model="account.period">
<field eval="'09/2013'" name="code"/>
<field eval="'X 09/2013'" name="name"/>
<field name="fiscalyear_id" ref="data_fiscalyear_2013"/>
<field eval="'2013-09-01'" name="date_start"/>
<field eval="'2013-09-30'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_10_2013" model="account.period">
<field eval="'10/2013'" name="code"/>
<field eval="'X 10/2013'" name="name"/>
<field name="fiscalyear_id" ref="data_fiscalyear_2013"/>
<field eval="'2013-10-01'" name="date_start"/>
<field eval="'2013-10-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_11_2013" model="account.period">
<field eval="'11/2013'" name="code"/>
<field eval="'X 11/2013'" name="name"/>
<field name="fiscalyear_id" ref="data_fiscalyear_2013"/>
<field eval="'2013-11-01'" name="date_start"/>
<field eval="'2013-11-30'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_12_2013" model="account.period">
<field eval="'12/2013'" name="code"/>
<field eval="'X 12/2013'" name="name"/>
<field name="fiscalyear_id" ref="data_fiscalyear_2013"/>
<field eval="'2013-12-01'" name="date_start"/>
<field eval="'2013-12-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
</data>
</openerp>

38
account_bank_statement_import/demo/partner_bank.xml

@ -1,38 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="ofx_partner_bank_1" model="res.partner.bank">
<field name="owner_name">Agrolait</field>
<field name="acc_number">00987654319</field>
<field name="partner_id" ref="base.res_partner_2"></field>
<field name="state">bank</field>
<field name="bank" ref="base.res_bank_1"/>
</record>
<record id="ofx_partner_bank_2" model="res.partner.bank">
<field name="owner_name">China Export</field>
<field name="acc_number">00987654322</field>
<field name="partner_id" ref="base.res_partner_3"></field>
<field name="state">bank</field>
<field name="bank" ref="base.res_bank_1"/>
</record>
<record id="qif_partner_bank_1" model="res.partner.bank">
<field name="owner_name">Delta PC</field>
<field name="acc_number">10987654320</field>
<field name="partner_id" ref="base.res_partner_4"></field>
<field name="state">bank</field>
<field name="bank" ref="base.res_bank_1"/>
</record>
<record id="qif_partner_bank_2" model="res.partner.bank">
<field name="owner_name">Epic Technologies</field>
<field name="acc_number">10987654322</field>
<field name="partner_id" ref="base.res_partner_5"></field>
<field name="state">bank</field>
<field name="bank" ref="base.res_bank_1"/>
</record>
</data>
</openerp>

218
account_bank_statement_import/i18n/account_bank_statement_import.pot

@ -1,218 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-06-11 12:15+0000\n"
"PO-Revision-Date: 2015-06-11 12:15+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:347
#, python-format
msgid "%d transactions had already been imported and were ignored."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:350
#, python-format
msgid "1 transaction had already been imported and was ignored."
msgstr ""
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "1. Download your bank statements from your bank website."
msgstr ""
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "2. Make sure you have installed the right module to support the file format."
msgstr ""
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "3. Select the file and click 'Import'."
msgstr ""
#. module: account_bank_statement_import
#: sql_constraint:account.bank.statement.line:0
msgid "A bank account transactions can be imported only once !"
msgstr ""
#. module: account_bank_statement_import
#: sql_constraint:res.partner.bank:0
msgid "Account Number must be unique"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:353
#, python-format
msgid "Already imported items"
msgstr ""
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_res_partner_bank
msgid "Bank Accounts"
msgstr ""
#. module: account_bank_statement_import
#: field:account.bank.statement.import,data_file:0
msgid "Bank Statement File"
msgstr ""
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:116
#, python-format
msgid "Can not determine journal for import."
msgstr ""
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Cancel"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:154
#, python-format
msgid "Could not make sense of the given file.\n"
"Did you install the module to support this type of file ?"
msgstr ""
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_uid:0
msgid "Created by"
msgstr ""
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_date:0
msgid "Created on"
msgstr ""
#. module: account_bank_statement_import
#: help:account.bank.statement.import,data_file:0
msgid "Get you bank statements in electronic format from your bank and select them here."
msgstr ""
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "How to import your bank statement :"
msgstr ""
#. module: account_bank_statement_import
#: field:account.bank.statement.import,id:0
msgid "ID"
msgstr ""
#. module: account_bank_statement_import
#: model:ir.actions.act_window,name:account_bank_statement_import.action_account_bank_statement_import
#: model:ir.ui.menu,name:account_bank_statement_import.menu_account_bank_statement_import
msgid "Import"
msgstr ""
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr ""
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Import Bank Statements"
msgstr ""
#. module: account_bank_statement_import
#: field:account.bank.statement.line,unique_import_id:0
msgid "Import ID"
msgstr ""
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: account_bank_statement_import
#: field:res.partner.bank,sanitized_acc_number:0
msgid "Sanitized Account Number"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:237
#, python-format
msgid "Statement currency id is %d, but company currency id = %d."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:224
#, python-format
msgid "Statement currency id is %d, but journal currency id = %d."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:179
#, python-format
msgid "Statement has invalid currency code %s"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:207
#, python-format
msgid "The account of this statement is linked to another journal."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:242
#, python-format
msgid "The currency of the bank statement is not the same as the company currency !"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:229
#, python-format
msgid "The currency of the bank statement is not the same as the currency of the journal !"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:163
#, python-format
msgid "This file doesn't contain any statement."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:168
#, python-format
msgid "This file doesn't contain any transaction."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:88
#, python-format
msgid "You have already imported that file."
msgstr ""
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "_Import"
msgstr ""
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "or"
msgstr ""

250
account_bank_statement_import/i18n/en.po

@ -1,250 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: bank-statement-import (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-03 22:47+0000\n"
"PO-Revision-Date: 2015-10-01 11:07+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: English (http://www.transifex.com/oca/OCA-bank-statement-import-8-0/language/en/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:355
#, python-format
msgid "%d transactions had already been imported and were ignored."
msgstr "%d transactions had already been imported and were ignored."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:358
#, python-format
msgid "1 transaction had already been imported and was ignored."
msgstr "1 transaction had already been imported and was ignored."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "1. Download your bank statements from your bank website."
msgstr "1. Download your bank statements from your bank website."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid ""
"2. Make sure you have installed the right module to support the file format."
msgstr "2. Make sure you have installed the right module to support the file format."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "3. Select the file and click 'Import'."
msgstr "3. Select the file and click 'Import'."
#. module: account_bank_statement_import
#: sql_constraint:account.bank.statement.line:0
msgid "A bank account transactions can be imported only once !"
msgstr "A bank account transactions can be imported only once !"
#. module: account_bank_statement_import
#: help:account.bank.statement.import,journal_id:0
msgid ""
"Accounting journal related to the bank statement you're importing. It has be"
" be manually chosen for statement formats which doesn't allow automatic "
"journal detection (QIF for example)."
msgstr "Accounting journal related to the bank statement you're importing. It has be be manually chosen for statement formats which doesn't allow automatic journal detection (QIF for example)."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:361
#, python-format
msgid "Already imported items"
msgstr "Already imported items"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Bank Accounts"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,data_file:0
msgid "Bank Statement File"
msgstr "Bank Statement File"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr "Bank Statement Line"
#. module: account_bank_statement_import
#: view:account.config.settings:account_bank_statement_import.view_account_config_settings
msgid "Bank statement import"
msgstr "Bank statement import"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:120
#, python-format
msgid "Can not determine journal for import."
msgstr "Can not determine journal for import."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:114
#, python-format
msgid "Can not find the account number %s."
msgstr "Can not find the account number %s."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Cancel"
msgstr "Cancel"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:158
#, python-format
msgid ""
"Could not make sense of the given file.\n"
"Did you install the module to support this type of file?"
msgstr "Could not make sense of the given file.\nDid you install the module to support this type of file?"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_uid:0
msgid "Created by"
msgstr "Created by"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_date:0
msgid "Created on"
msgstr "Created on"
#. module: account_bank_statement_import
#: field:account.config.settings,module_base_bank_account_number_unique:0
msgid "Enforce unique account numbers on bank accounts"
msgstr "Enforce unique account numbers on bank accounts"
#. module: account_bank_statement_import
#: help:account.bank.statement.import,data_file:0
msgid ""
"Get you bank statements in electronic format from your bank and select them "
"here."
msgstr "Get you bank statements in electronic format from your bank and select them here."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "How to import your bank statement :"
msgstr "How to import your bank statement :"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,id:0
msgid "ID"
msgstr "ID"
#. module: account_bank_statement_import
#: model:ir.actions.act_window,name:account_bank_statement_import.action_account_bank_statement_import
#: model:ir.ui.menu,name:account_bank_statement_import.menu_account_bank_statement_import
msgid "Import"
msgstr "Import"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Import Bank Statement"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Import Bank Statements"
msgstr "Import Bank Statements"
#. module: account_bank_statement_import
#: field:account.bank.statement.line,unique_import_id:0
msgid "Import ID"
msgstr "Import ID"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,journal_id:0
msgid "Journal"
msgstr "Journal"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_uid:0
msgid "Last Updated by"
msgstr "Last Updated by"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_date:0
msgid "Last Updated on"
msgstr "Last Updated on"
#. module: account_bank_statement_import
#: field:res.partner.bank,sanitized_acc_number:0
msgid "Sanitized Account Number"
msgstr "Sanitized Account Number"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:242
#, python-format
msgid "Statement currency id is %d, but company currency id = %d."
msgstr "Statement currency id is %d, but company currency id = %d."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:228
#, python-format
msgid "Statement currency id is %d, but journal currency id = %d."
msgstr "Statement currency id is %d, but journal currency id = %d."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:183
#, python-format
msgid "Statement has invalid currency code %s"
msgstr "Statement has invalid currency code %s"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:211
#, python-format
msgid "The account of this statement is linked to another journal."
msgstr "The account of this statement is linked to another journal."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:247
#, python-format
msgid ""
"The currency of the bank statement is not the same as the company currency !"
msgstr "The currency of the bank statement is not the same as the company currency !"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:233
#, python-format
msgid ""
"The currency of the bank statement is not the same as the currency of the "
"journal !"
msgstr "The currency of the bank statement is not the same as the currency of the journal !"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:167
#, python-format
msgid "This file doesn't contain any statement."
msgstr "This file doesn't contain any statement."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:172
#, python-format
msgid "This file doesn't contain any transaction."
msgstr "This file doesn't contain any transaction."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:99
#, python-format
msgid "You have already imported that file."
msgstr "You have already imported that file."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "_Import"
msgstr "_Import"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "or"
msgstr "or"

250
account_bank_statement_import/i18n/es.po

@ -1,250 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: bank-statement-import (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-03 22:47+0000\n"
"PO-Revision-Date: 2015-10-01 11:07+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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:355
#, python-format
msgid "%d transactions had already been imported and were ignored."
msgstr "%d transacciones han sido ya importadas y se omitirán."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:358
#, python-format
msgid "1 transaction had already been imported and was ignored."
msgstr "1 transacción ha sido ya importada y se omitirá."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "1. Download your bank statements from your bank website."
msgstr "1. Descargue los extractos bancarios del sitio web de su banco."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid ""
"2. Make sure you have installed the right module to support the file format."
msgstr "2. Asegúrese de que ha instalado el módulo adecuado que soporte el formato de archivo."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "3. Select the file and click 'Import'."
msgstr "3. Seleccione el archivo y pulse 'Importar'."
#. module: account_bank_statement_import
#: sql_constraint:account.bank.statement.line:0
msgid "A bank account transactions can be imported only once !"
msgstr "Las transacciones de una cuenta bancaria sólo se pueden importar una vez"
#. module: account_bank_statement_import
#: help:account.bank.statement.import,journal_id:0
msgid ""
"Accounting journal related to the bank statement you're importing. It has be"
" be manually chosen for statement formats which doesn't allow automatic "
"journal detection (QIF for example)."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:361
#, python-format
msgid "Already imported items"
msgstr "Elementos ya importados"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_res_partner_bank
msgid "Bank Accounts"
msgstr ""
#. module: account_bank_statement_import
#: field:account.bank.statement.import,data_file:0
msgid "Bank Statement File"
msgstr "Archivo de extracto bancario"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr "Línea de extracto bancario"
#. module: account_bank_statement_import
#: view:account.config.settings:account_bank_statement_import.view_account_config_settings
msgid "Bank statement import"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:120
#, python-format
msgid "Can not determine journal for import."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:114
#, python-format
msgid "Can not find the account number %s."
msgstr ""
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Cancel"
msgstr "Cancelar"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:158
#, python-format
msgid ""
"Could not make sense of the given file.\n"
"Did you install the module to support this type of file?"
msgstr ""
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_uid:0
msgid "Created by"
msgstr "Creado por"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_date:0
msgid "Created on"
msgstr "Creado en"
#. module: account_bank_statement_import
#: field:account.config.settings,module_base_bank_account_number_unique:0
msgid "Enforce unique account numbers on bank accounts"
msgstr ""
#. module: account_bank_statement_import
#: help:account.bank.statement.import,data_file:0
msgid ""
"Get you bank statements in electronic format from your bank and select them "
"here."
msgstr "Obtenga los extractos bancarios en formato electrónico de su banco y selecciónelos aquí."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "How to import your bank statement :"
msgstr "Cómo importar su extracto bancario:"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,id:0
msgid "ID"
msgstr "ID"
#. module: account_bank_statement_import
#: model:ir.actions.act_window,name:account_bank_statement_import.action_account_bank_statement_import
#: model:ir.ui.menu,name:account_bank_statement_import.menu_account_bank_statement_import
msgid "Import"
msgstr ""
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importar extracto bancario"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Import Bank Statements"
msgstr "Importar extractos bancarios"
#. module: account_bank_statement_import
#: field:account.bank.statement.line,unique_import_id:0
msgid "Import ID"
msgstr "Importar ID"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,journal_id:0
msgid "Journal"
msgstr ""
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_uid:0
msgid "Last Updated by"
msgstr "Última actualización por"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_date:0
msgid "Last Updated on"
msgstr "Última actualización en"
#. module: account_bank_statement_import
#: field:res.partner.bank,sanitized_acc_number:0
msgid "Sanitized Account Number"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:242
#, python-format
msgid "Statement currency id is %d, but company currency id = %d."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:228
#, python-format
msgid "Statement currency id is %d, but journal currency id = %d."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:183
#, python-format
msgid "Statement has invalid currency code %s"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:211
#, python-format
msgid "The account of this statement is linked to another journal."
msgstr "La cuenta de este extracto está enlazada a otro diario."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:247
#, python-format
msgid ""
"The currency of the bank statement is not the same as the company currency !"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:233
#, python-format
msgid ""
"The currency of the bank statement is not the same as the currency of the "
"journal !"
msgstr "La moneda del extracto bancario no es la misma que la moneda del diario."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:167
#, python-format
msgid "This file doesn't contain any statement."
msgstr "Este archivo no contiene ningún extracto."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:172
#, python-format
msgid "This file doesn't contain any transaction."
msgstr "Este archivo no contiene ninguna transacción."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:99
#, python-format
msgid "You have already imported that file."
msgstr "Ya ha importado este archivo."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "_Import"
msgstr "Importar"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "or"
msgstr "o"

255
account_bank_statement_import/i18n/fr.po

@ -1,255 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import
#
# Translators:
# Florian Hatat, 2015
# Florian Hatat, 2015
# Guewen Baconnier <guewen.baconnier@camptocamp.com>, 2015
# zuher83 <zuher.elmas@gmail.com>, 2015
# zuher83 <zuher.elmas@gmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: bank-statement-import (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-03 22:47+0000\n"
"PO-Revision-Date: 2015-10-01 11:07+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: French (http://www.transifex.com/oca/OCA-bank-statement-import-8-0/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:355
#, python-format
msgid "%d transactions had already been imported and were ignored."
msgstr "%d mouvements déjà importés ont été ignorés."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:358
#, python-format
msgid "1 transaction had already been imported and was ignored."
msgstr "1 mouvement déjà importé a été ignoré."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "1. Download your bank statements from your bank website."
msgstr "1. Téléchargez vos relevés de comptes depuis le site internet de votre banque."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid ""
"2. Make sure you have installed the right module to support the file format."
msgstr "2. Vérifiez que vous avez bien installé le module compatible avec le format de fichier à importer."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "3. Select the file and click 'Import'."
msgstr "3. Sélectionnez le fichier et cliquez sur \"Importer\". "
#. module: account_bank_statement_import
#: sql_constraint:account.bank.statement.line:0
msgid "A bank account transactions can be imported only once !"
msgstr "Les transactions peuvent être importées en une seule fois !"
#. module: account_bank_statement_import
#: help:account.bank.statement.import,journal_id:0
msgid ""
"Accounting journal related to the bank statement you're importing. It has be"
" be manually chosen for statement formats which doesn't allow automatic "
"journal detection (QIF for example)."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:361
#, python-format
msgid "Already imported items"
msgstr "Lignes déjà importées"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Comptes Bancaire"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,data_file:0
msgid "Bank Statement File"
msgstr "Fichier de Relevé Bancaire"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr "Ligne de Relevé Bancaire"
#. module: account_bank_statement_import
#: view:account.config.settings:account_bank_statement_import.view_account_config_settings
msgid "Bank statement import"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:120
#, python-format
msgid "Can not determine journal for import."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:114
#, python-format
msgid "Can not find the account number %s."
msgstr ""
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Cancel"
msgstr "Annuler"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:158
#, python-format
msgid ""
"Could not make sense of the given file.\n"
"Did you install the module to support this type of file?"
msgstr ""
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_uid:0
msgid "Created by"
msgstr "Créé par "
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_date:0
msgid "Created on"
msgstr "Créé le "
#. module: account_bank_statement_import
#: field:account.config.settings,module_base_bank_account_number_unique:0
msgid "Enforce unique account numbers on bank accounts"
msgstr ""
#. module: account_bank_statement_import
#: help:account.bank.statement.import,data_file:0
msgid ""
"Get you bank statements in electronic format from your bank and select them "
"here."
msgstr ""
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "How to import your bank statement :"
msgstr "Comment importe votre relevé bancaire :"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,id:0
msgid "ID"
msgstr "ID"
#. module: account_bank_statement_import
#: model:ir.actions.act_window,name:account_bank_statement_import.action_account_bank_statement_import
#: model:ir.ui.menu,name:account_bank_statement_import.menu_account_bank_statement_import
msgid "Import"
msgstr "Import"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importer Relevé Bancaire"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Import Bank Statements"
msgstr "Importer Relevés Bancaire"
#. module: account_bank_statement_import
#: field:account.bank.statement.line,unique_import_id:0
msgid "Import ID"
msgstr "Id Import"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,journal_id:0
msgid "Journal"
msgstr "Journal"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_uid:0
msgid "Last Updated by"
msgstr "Dernière mise à jour par "
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_date:0
msgid "Last Updated on"
msgstr "Dernière mise à jour le "
#. module: account_bank_statement_import
#: field:res.partner.bank,sanitized_acc_number:0
msgid "Sanitized Account Number"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:242
#, python-format
msgid "Statement currency id is %d, but company currency id = %d."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:228
#, python-format
msgid "Statement currency id is %d, but journal currency id = %d."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:183
#, python-format
msgid "Statement has invalid currency code %s"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:211
#, python-format
msgid "The account of this statement is linked to another journal."
msgstr "Le numéro de compte de ce relevé correspond à un autre journal."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:247
#, python-format
msgid ""
"The currency of the bank statement is not the same as the company currency !"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:233
#, python-format
msgid ""
"The currency of the bank statement is not the same as the currency of the "
"journal !"
msgstr "La monnaie du relevé bancaire à importer ne correspond pas à la monnaie du journal !"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:167
#, python-format
msgid "This file doesn't contain any statement."
msgstr "Ce fichier ne comporte aucun relevé."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:172
#, python-format
msgid "This file doesn't contain any transaction."
msgstr "Ce fichier ne comporte aucune transaction."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:99
#, python-format
msgid "You have already imported that file."
msgstr "Vous avez déjà importé ce fichier."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "_Import"
msgstr "_Import"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "or"
msgstr "ou"

212
account_bank_statement_import/i18n/lt.po

@ -1,212 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-20 00:25+0000\n"
"PO-Revision-Date: 2015-02-20 00:25+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:269
#, python-format
msgid "%d transactions had already been imported and were ignored."
msgstr "%d Pervedimai buvo ignoruoti, nes jie jau importuoti."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:269
#, python-format
msgid "1 transaction had already been imported and was ignored."
msgstr "1 pervedimas buvo ignoruotas, nes jis jau importuotas."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "1. Download your bank statements from your bank website."
msgstr "1. Atsisiųskite banko sąskaitų išrašus iš banko internetinės svetainės."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "2. Make sure you have installed the right module to support the file format."
msgstr "2. Įsitikinkit, jog esate įrašę tinkamą modulį kuris palaikytų banko išrašo formatą."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "3. Select the file and click 'Import'."
msgstr "3. Nurodykite failą ir spauskite 'Importuoti'."
#. module: account_bank_statement_import
#: sql_constraint:account.bank.statement.line:0
msgid "A bank account transactions can be imported only once !"
msgstr "Banko sąskaitos operacijos gali būti importuojamos tik vieną kartą !"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:271
#, python-format
msgid "Already imported items"
msgstr "Įrašai jau importuoti"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:182
#, python-format
msgid "Bank"
msgstr "Bankas"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,data_file:0
msgid "Bank Statement File"
msgstr "Banko išrašo failas"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr "Banko išrašo eilutė"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Cancel"
msgstr "Atšaukti"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:169
#, python-format
msgid "Cannot find in which journal import this statement. Please manually select a journal.
msgstr "Žurnalas, į kurį norite importuoti šį išrašą, nerastas. Pasirinkite žurnalą rankiniu būdu."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:99
#, python-format
msgid "Could not make sense of the given file.\n"
"Did you install the module to support this type of file ?"
msgstr "Failas, kurį nurodėte, netinka.\n"
"Ar Jūs įrašėte tinkamą modulį, kad palaikytų šį failų formatą?"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_uid:0
msgid "Created by"
msgstr "Sukūrė"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_date:0
msgid "Created on"
msgstr "Sukurta"
#. module: account_bank_statement_import
#: help:account.bank.statement.import,data_file:0
msgid "Get you bank statements in electronic format from your bank and select them here."
msgstr "Atsisiuntę banko sąskaitos išrašą elektroniniu formatu, pasirinkite jį čia."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "How to import your bank statement :"
msgstr "Kaip importuoti banko sąskaitos išrašą :"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,id:0
msgid "ID"
msgstr "ID"
#. module: account_bank_statement_import
#: model:ir.actions.act_window,name:account_bank_statement_import.action_account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_import
#: model:ir.ui.menu,name:account_bank_statement_import.menu_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Banko išrašo importas"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Import Bank Statements"
msgstr "Banko išrašo importas"
#. module: account_bank_statement_import
#: field:account.bank.statement.line,unique_import_id:0
msgid "Import ID"
msgstr "Importuoti ID"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_uid:0
msgid "Last Updated by"
msgstr "Paskutinį kartą atnaujino"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_date:0
msgid "Last Updated on"
msgstr "Paskutinį kartą atnaujinta"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:146
#, python-format
msgid "The account of this statement is linked to another journal."
msgstr "Šio išrašo banko sąskaita yra susieta su kitu žurnalu."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:157
#, python-format
msgid "The currency of the bank statement is not the same as the currency of the journal !"
msgstr "Banko sąskaitos išrašo valiuta skiriasi nuo pasirinkto žurnalo valiutos !"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:104
#, python-format
msgid "This file doesn't contain any statement."
msgstr "Šiame faile nėra jokių banko sąskaitos išrašų."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:112
#, python-format
msgid "This file doesn't contain any transaction."
msgstr "Šiame faile nėra jokių operacijų."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:261
#, python-format
msgid "You have already imported that file."
msgstr "Jūs jau importavote šį failą."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "_Import"
msgstr "_Importuoti"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "or"
msgstr "arba"

251
account_bank_statement_import/i18n/lt_LT.po

@ -1,251 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import
#
# Translators:
# Arminas Grigonis <arminas@versada.lt>, 2015
msgid ""
msgstr ""
"Project-Id-Version: bank-statement-import (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-03 22:47+0000\n"
"PO-Revision-Date: 2015-10-01 11:07+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/oca/OCA-bank-statement-import-8-0/language/lt_LT/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: lt_LT\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:355
#, python-format
msgid "%d transactions had already been imported and were ignored."
msgstr "%d transakcijos ignoruotos, nes jau buvo importuotos."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:358
#, python-format
msgid "1 transaction had already been imported and was ignored."
msgstr "1 transakcija ignoruota, nes jau buvo importuota."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "1. Download your bank statements from your bank website."
msgstr "1. Atsisiųskite savo banko sąskaitos išrašus iš savo banko svetainės."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid ""
"2. Make sure you have installed the right module to support the file format."
msgstr "2. Įsitikinkte, kad įrašėte tinkamą modulį, kuris palaikytų šį failų formatą."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "3. Select the file and click 'Import'."
msgstr "3. Pasirinkite failą ir spauskite 'Importuoti'."
#. module: account_bank_statement_import
#: sql_constraint:account.bank.statement.line:0
msgid "A bank account transactions can be imported only once !"
msgstr "Banko sąskaitos išrašai gali būti importuoti tik vieną kartą!"
#. module: account_bank_statement_import
#: help:account.bank.statement.import,journal_id:0
msgid ""
"Accounting journal related to the bank statement you're importing. It has be"
" be manually chosen for statement formats which doesn't allow automatic "
"journal detection (QIF for example)."
msgstr "Sąskaitos žurnalas susijęs su banko išrašu, kurį jūs importuojate. Jis turi būti rankiniu būdu pasirinktas išrašų formatams, kurių sistema pati neaptinka (pvz. QIF)"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:361
#, python-format
msgid "Already imported items"
msgstr "Importuoti įrašai"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Banko sąskaitos"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,data_file:0
msgid "Bank Statement File"
msgstr "Banko išrašo failas"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr "Banko išrašo eilutė"
#. module: account_bank_statement_import
#: view:account.config.settings:account_bank_statement_import.view_account_config_settings
msgid "Bank statement import"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:120
#, python-format
msgid "Can not determine journal for import."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:114
#, python-format
msgid "Can not find the account number %s."
msgstr ""
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Cancel"
msgstr "Atšaukti"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:158
#, python-format
msgid ""
"Could not make sense of the given file.\n"
"Did you install the module to support this type of file?"
msgstr ""
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_uid:0
msgid "Created by"
msgstr "Sukūrė"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_date:0
msgid "Created on"
msgstr "Sukurta"
#. module: account_bank_statement_import
#: field:account.config.settings,module_base_bank_account_number_unique:0
msgid "Enforce unique account numbers on bank accounts"
msgstr ""
#. module: account_bank_statement_import
#: help:account.bank.statement.import,data_file:0
msgid ""
"Get you bank statements in electronic format from your bank and select them "
"here."
msgstr "Gaukite savo banko išrašus elektronine forma ir pasirinkite juos čia."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "How to import your bank statement :"
msgstr "Kaip importuoti banko išrašą :"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,id:0
msgid "ID"
msgstr "ID"
#. module: account_bank_statement_import
#: model:ir.actions.act_window,name:account_bank_statement_import.action_account_bank_statement_import
#: model:ir.ui.menu,name:account_bank_statement_import.menu_account_bank_statement_import
msgid "Import"
msgstr "Importuoti"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importuoti banko išrašą"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Import Bank Statements"
msgstr "Importuoti banko išrašus"
#. module: account_bank_statement_import
#: field:account.bank.statement.line,unique_import_id:0
msgid "Import ID"
msgstr "Importuoti ID"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,journal_id:0
msgid "Journal"
msgstr "Žurnalas"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_uid:0
msgid "Last Updated by"
msgstr "Paskutinį kartą atnaujino"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_date:0
msgid "Last Updated on"
msgstr "Paskutinį kartą atnaujinta"
#. module: account_bank_statement_import
#: field:res.partner.bank,sanitized_acc_number:0
msgid "Sanitized Account Number"
msgstr "Išbraukytas sąskaitos numeris"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:242
#, python-format
msgid "Statement currency id is %d, but company currency id = %d."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:228
#, python-format
msgid "Statement currency id is %d, but journal currency id = %d."
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:183
#, python-format
msgid "Statement has invalid currency code %s"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:211
#, python-format
msgid "The account of this statement is linked to another journal."
msgstr "Šio išrašo sąskaita yra susieta su kitu žurnalu."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:247
#, python-format
msgid ""
"The currency of the bank statement is not the same as the company currency !"
msgstr ""
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:233
#, python-format
msgid ""
"The currency of the bank statement is not the same as the currency of the "
"journal !"
msgstr "Banko išrašo valiuta skiriasi nuo žurnalo valiutos !"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:167
#, python-format
msgid "This file doesn't contain any statement."
msgstr "Faile nerasta jokių išrašų."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:172
#, python-format
msgid "This file doesn't contain any transaction."
msgstr "Faile nėra jokių pavedimų."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:99
#, python-format
msgid "You have already imported that file."
msgstr "Jūs jau importavote šį failą."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "_Import"
msgstr "_Importuoti"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "or"
msgstr "arba"

252
account_bank_statement_import/i18n/nl.po

@ -1,252 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import
#
# Translators:
# Erwin van der Ploeg <erwin@bas-solutions.nl>, 2015
# Therp BV <therp.nl>, 2015
msgid ""
msgstr ""
"Project-Id-Version: bank-statement-import (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-03 22:47+0000\n"
"PO-Revision-Date: 2015-10-02 06:45+0000\n"
"Last-Translator: Erwin van der Ploeg <erwin@bas-solutions.nl>\n"
"Language-Team: Dutch (http://www.transifex.com/oca/OCA-bank-statement-import-8-0/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:355
#, python-format
msgid "%d transactions had already been imported and were ignored."
msgstr "%d Transacties zijn overgeslagen omdat ze al reeds waren geïmporteerd."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:358
#, python-format
msgid "1 transaction had already been imported and was ignored."
msgstr "1. Transactie was al geïmporteerd en is overgeslagen."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "1. Download your bank statements from your bank website."
msgstr "1. Download het bankafschrift bestand van de website van uw bank."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid ""
"2. Make sure you have installed the right module to support the file format."
msgstr "2. Zorg ervoor dat de modules die het formaat van uw bestand ondersteunen zijn geïnstalleerd."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "3. Select the file and click 'Import'."
msgstr "3. Selecteer het bestand en klik op \"Importeren\"."
#. module: account_bank_statement_import
#: sql_constraint:account.bank.statement.line:0
msgid "A bank account transactions can be imported only once !"
msgstr "De transacties kunnen slechts eenmalig worden geïmporteerd."
#. module: account_bank_statement_import
#: help:account.bank.statement.import,journal_id:0
msgid ""
"Accounting journal related to the bank statement you're importing. It has be"
" be manually chosen for statement formats which doesn't allow automatic "
"journal detection (QIF for example)."
msgstr "Het dagboek wat hoort bij het bankafschrift welke u importeert. Het dient handmatig te worden gekozen voor bankafschrift formaten welke geen automatische dagboek detectie ondersteunen (bijvoorbeeld QIF)"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:361
#, python-format
msgid "Already imported items"
msgstr "Al eerder geïmporteerde regels"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Bankrekeningen"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,data_file:0
msgid "Bank Statement File"
msgstr "Bankafschriften bestand"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr "Bankafschrift regel"
#. module: account_bank_statement_import
#: view:account.config.settings:account_bank_statement_import.view_account_config_settings
msgid "Bank statement import"
msgstr "Importeer bankafschrift"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:120
#, python-format
msgid "Can not determine journal for import."
msgstr "Kan niet bepalen welk dagboek gebruikt moet worden."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:114
#, python-format
msgid "Can not find the account number %s."
msgstr "Kan rekeningnummer niet vinden %s."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Cancel"
msgstr "Annuleren"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:158
#, python-format
msgid ""
"Could not make sense of the given file.\n"
"Did you install the module to support this type of file?"
msgstr "Geen idee wat voor een soort bestand dit is.\nHeeft u de juiste module geïnstalleerd voor dit type bestand?"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_uid:0
msgid "Created by"
msgstr "Aangemaakt door"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_date:0
msgid "Created on"
msgstr "Aangemaakt op"
#. module: account_bank_statement_import
#: field:account.config.settings,module_base_bank_account_number_unique:0
msgid "Enforce unique account numbers on bank accounts"
msgstr "Forceer een uniek bankrekeningnummer"
#. module: account_bank_statement_import
#: help:account.bank.statement.import,data_file:0
msgid ""
"Get you bank statements in electronic format from your bank and select them "
"here."
msgstr "Verkrijg de bankafschriften van uw bank in elektronische vorm en selecteer ze hier."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "How to import your bank statement :"
msgstr "Hoe uw bankafschrift te importeren:"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,id:0
msgid "ID"
msgstr "ID"
#. module: account_bank_statement_import
#: model:ir.actions.act_window,name:account_bank_statement_import.action_account_bank_statement_import
#: model:ir.ui.menu,name:account_bank_statement_import.menu_account_bank_statement_import
msgid "Import"
msgstr "Import"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Geïmporteerd bankafschrift"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Import Bank Statements"
msgstr "Importeer bankafschriften"
#. module: account_bank_statement_import
#: field:account.bank.statement.line,unique_import_id:0
msgid "Import ID"
msgstr "Import ID"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,journal_id:0
msgid "Journal"
msgstr "Dagboek"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_uid:0
msgid "Last Updated by"
msgstr "Laatst bijgewerkt door"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_date:0
msgid "Last Updated on"
msgstr "Laatst bijgewerkt op"
#. module: account_bank_statement_import
#: field:res.partner.bank,sanitized_acc_number:0
msgid "Sanitized Account Number"
msgstr "Gestandaardiseerd rekeningnummer"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:242
#, python-format
msgid "Statement currency id is %d, but company currency id = %d."
msgstr "Valuta id van afschrift = %d, maar valuta id van bedrijf = %d."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:228
#, python-format
msgid "Statement currency id is %d, but journal currency id = %d."
msgstr "Valuta id van afschrift = %d, maar valuta id van dagboek = %d."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:183
#, python-format
msgid "Statement has invalid currency code %s"
msgstr "Bankafschrift heeft ongeldige valutacode %s"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:211
#, python-format
msgid "The account of this statement is linked to another journal."
msgstr "Het rekeningnummer van dit afschrift is gekoppeld aan een ander dagboek."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:247
#, python-format
msgid ""
"The currency of the bank statement is not the same as the company currency !"
msgstr "De valuta van het afschrift is niet gelijk aan de valuta van het bedrijf!"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:233
#, python-format
msgid ""
"The currency of the bank statement is not the same as the currency of the "
"journal !"
msgstr "De valuta van het afschrift is niet hetzelfde als de valuta van het dagboek!"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:167
#, python-format
msgid "This file doesn't contain any statement."
msgstr "Dit bestand bevat geen enkel afschrift."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:172
#, python-format
msgid "This file doesn't contain any transaction."
msgstr "Dit bestand bevat geen enkele transactie."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:99
#, python-format
msgid "You have already imported that file."
msgstr "U heeft dit bestand al geïmporteerd."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "_Import"
msgstr "_Import"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "or"
msgstr "of"

251
account_bank_statement_import/i18n/pt_BR.po

@ -1,251 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import
#
# Translators:
# danimaribeiro <danimaribeiro@gmail.com>, 2015
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:23+0000\n"
"Last-Translator: danimaribeiro <danimaribeiro@gmail.com>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-bank-statement-import-8-0/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:355
#, python-format
msgid "%d transactions had already been imported and were ignored."
msgstr "%d transações já foram importadas e foram ignoradas."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:358
#, python-format
msgid "1 transaction had already been imported and was ignored."
msgstr "1 transação já foi importada e foi ignorada."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "1. Download your bank statements from your bank website."
msgstr "1. Faça o download de seu extrato bancário do site de seu banco."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid ""
"2. Make sure you have installed the right module to support the file format."
msgstr "2. Tenha certeza que instalou o módulo correto para o tipo de formato."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "3. Select the file and click 'Import'."
msgstr "3. Selecione o arquivo e clique \"Importar\""
#. module: account_bank_statement_import
#: sql_constraint:account.bank.statement.line:0
msgid "A bank account transactions can be imported only once !"
msgstr "Uma transação bancária pode ser importada apenas uma vez!"
#. module: account_bank_statement_import
#: help:account.bank.statement.import,journal_id:0
msgid ""
"Accounting journal related to the bank statement you're importing. It has be"
" be manually chosen for statement formats which doesn't allow automatic "
"journal detection (QIF for example)."
msgstr "O diário relacionado ao seu extrato bancário que está importando. Deve ser escolhido manualmente para formatos que não permitem a detecção do diário automática. (QIF por exemplo)."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:361
#, python-format
msgid "Already imported items"
msgstr "Itens já importados"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Contas bancárias"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,data_file:0
msgid "Bank Statement File"
msgstr "Arquivo extrato bancário"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr "Linha do extrato bancário"
#. module: account_bank_statement_import
#: view:account.config.settings:account_bank_statement_import.view_account_config_settings
msgid "Bank statement import"
msgstr "Importar extrato bancário"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:120
#, python-format
msgid "Can not determine journal for import."
msgstr "Não pode determinar o diário para importar"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:114
#, python-format
msgid "Can not find the account number %s."
msgstr "Não foi possível encontrar a conta número %s."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Cancel"
msgstr "Cancelar"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:158
#, python-format
msgid ""
"Could not make sense of the given file.\n"
"Did you install the module to support this type of file?"
msgstr "O arquivo não faz sentido.\nVocê instalou o módulo correto para suporte este tipo de arquivo?"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_uid:0
msgid "Created by"
msgstr "Criado por"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_date:0
msgid "Created on"
msgstr "Criado em"
#. module: account_bank_statement_import
#: field:account.config.settings,module_base_bank_account_number_unique:0
msgid "Enforce unique account numbers on bank accounts"
msgstr "Forçar números únicos nas contas bancárias."
#. module: account_bank_statement_import
#: help:account.bank.statement.import,data_file:0
msgid ""
"Get you bank statements in electronic format from your bank and select them "
"here."
msgstr "Pegue os extratos eletrônicos do seu banco e selecione-os aqui."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "How to import your bank statement :"
msgstr "Como importar seu extrato bancário:"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,id:0
msgid "ID"
msgstr "ID"
#. module: account_bank_statement_import
#: model:ir.actions.act_window,name:account_bank_statement_import.action_account_bank_statement_import
#: model:ir.ui.menu,name:account_bank_statement_import.menu_account_bank_statement_import
msgid "Import"
msgstr "Importar"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Importar Extrato Bancário"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Import Bank Statements"
msgstr "Importar Extratos Bancários"
#. module: account_bank_statement_import
#: field:account.bank.statement.line,unique_import_id:0
msgid "Import ID"
msgstr "Id da importação"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,journal_id:0
msgid "Journal"
msgstr "Diário"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_uid:0
msgid "Last Updated by"
msgstr "Última atualização por"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_date:0
msgid "Last Updated on"
msgstr "Última atualização em"
#. module: account_bank_statement_import
#: field:res.partner.bank,sanitized_acc_number:0
msgid "Sanitized Account Number"
msgstr "Número da conta sanitizado"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:242
#, python-format
msgid "Statement currency id is %d, but company currency id = %d."
msgstr "Moeda do extrato é %d, mas a moeda da empresa é %d."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:228
#, python-format
msgid "Statement currency id is %d, but journal currency id = %d."
msgstr "Moeda do extrato é %d, mas a moeda do diário é %d."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:183
#, python-format
msgid "Statement has invalid currency code %s"
msgstr "Extrato tem código de moeda inválido %s"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:211
#, python-format
msgid "The account of this statement is linked to another journal."
msgstr "A conta deste extrato está ligada a outro diário."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:247
#, python-format
msgid ""
"The currency of the bank statement is not the same as the company currency !"
msgstr "A moeda deste extrato não é a mesma da empresa!"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:233
#, python-format
msgid ""
"The currency of the bank statement is not the same as the currency of the "
"journal !"
msgstr "A moeda deste extrato não é a mesma do diário!"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:167
#, python-format
msgid "This file doesn't contain any statement."
msgstr "O arquivo não contém nenhum registro."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:172
#, python-format
msgid "This file doesn't contain any transaction."
msgstr "O arquivo não contém nenhuma transação."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:99
#, python-format
msgid "You have already imported that file."
msgstr "Você já importou este arquivo."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "_Import"
msgstr "_Import"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "or"
msgstr "ou"

251
account_bank_statement_import/i18n/sl.po

@ -1,251 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_bank_statement_import
#
# Translators:
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2015
msgid ""
msgstr ""
"Project-Id-Version: bank-statement-import (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-03 22:47+0000\n"
"PO-Revision-Date: 2015-10-01 13:01+0000\n"
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>\n"
"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-bank-statement-import-8-0/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:355
#, python-format
msgid "%d transactions had already been imported and were ignored."
msgstr "%d transakcij je bilo že uvoženih in se prezrejo."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:358
#, python-format
msgid "1 transaction had already been imported and was ignored."
msgstr "1 transakcija je bila že uvožena in se prezre."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "1. Download your bank statements from your bank website."
msgstr "1. Prenesite svoje bančne izpiske iz svoje bančne spletne strani."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid ""
"2. Make sure you have installed the right module to support the file format."
msgstr "2. Prepričajte se, da ste namestili pravi modul, ki podpira format datoteke."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "3. Select the file and click 'Import'."
msgstr "3. Izberite datoteko in pritisnite 'Uvoz'."
#. module: account_bank_statement_import
#: sql_constraint:account.bank.statement.line:0
msgid "A bank account transactions can be imported only once !"
msgstr "Transakcije bančnega računa se lahko uvozijo le enkrat!"
#. module: account_bank_statement_import
#: help:account.bank.statement.import,journal_id:0
msgid ""
"Accounting journal related to the bank statement you're importing. It has be"
" be manually chosen for statement formats which doesn't allow automatic "
"journal detection (QIF for example)."
msgstr "Knjigovodski dnevnik v zvezi z bančnim izpiskom, ki ga uvažate. Formate izpiskov, ki ne omogočajo samodejne detekcije dnevnika (npr. QIF) izberite ročno."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:361
#, python-format
msgid "Already imported items"
msgstr "Že uvoženi predmeti"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Bančni računi"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,data_file:0
msgid "Bank Statement File"
msgstr "Datoteka bančnega izpiska"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr "Postavka bančnega izpiska"
#. module: account_bank_statement_import
#: view:account.config.settings:account_bank_statement_import.view_account_config_settings
msgid "Bank statement import"
msgstr "Uvoz bančnega izpiska"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:120
#, python-format
msgid "Can not determine journal for import."
msgstr "Ni mogoče določiti dnevnika za uvoz."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:114
#, python-format
msgid "Can not find the account number %s."
msgstr "Ne najde se konto številka %s."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Cancel"
msgstr "Preklic"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:158
#, python-format
msgid ""
"Could not make sense of the given file.\n"
"Did you install the module to support this type of file?"
msgstr "Dana datoteka nima smisla.\nSte namestili modul, ki podpira tak tip datotek?"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_uid:0
msgid "Created by"
msgstr "Ustvaril"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,create_date:0
msgid "Created on"
msgstr "Ustvarjeno"
#. module: account_bank_statement_import
#: field:account.config.settings,module_base_bank_account_number_unique:0
msgid "Enforce unique account numbers on bank accounts"
msgstr "Vsili unikatne številke računov za bančne račune"
#. module: account_bank_statement_import
#: help:account.bank.statement.import,data_file:0
msgid ""
"Get you bank statements in electronic format from your bank and select them "
"here."
msgstr "Od svoje banke pridobite bančne izpiske v elektronskem formatu in jih izberite od tukaj."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "How to import your bank statement :"
msgstr "Kako se uvozi bančni izpisek:"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,id:0
msgid "ID"
msgstr "ID"
#. module: account_bank_statement_import
#: model:ir.actions.act_window,name:account_bank_statement_import.action_account_bank_statement_import
#: model:ir.ui.menu,name:account_bank_statement_import.menu_account_bank_statement_import
msgid "Import"
msgstr "Uvoz"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_bank_statement_import
msgid "Import Bank Statement"
msgstr "Uvoz bančnega izpiska"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "Import Bank Statements"
msgstr "Uvoz bančnih izpiskov"
#. module: account_bank_statement_import
#: field:account.bank.statement.line,unique_import_id:0
msgid "Import ID"
msgstr "ID uvoza"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,journal_id:0
msgid "Journal"
msgstr "Dnevnik"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_uid:0
msgid "Last Updated by"
msgstr "Zadnji posodobil"
#. module: account_bank_statement_import
#: field:account.bank.statement.import,write_date:0
msgid "Last Updated on"
msgstr "Zadnjič posodobljeno"
#. module: account_bank_statement_import
#: field:res.partner.bank,sanitized_acc_number:0
msgid "Sanitized Account Number"
msgstr "Številka očiščenega konta"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:242
#, python-format
msgid "Statement currency id is %d, but company currency id = %d."
msgstr "ID valute izpiska je %d, a ID valute družbe = %d."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:228
#, python-format
msgid "Statement currency id is %d, but journal currency id = %d."
msgstr "ID valute izpiska je %d, a ID valute dnevnika = %d."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:183
#, python-format
msgid "Statement has invalid currency code %s"
msgstr "Izpisek ima neveljavno kodo valute %s"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:211
#, python-format
msgid "The account of this statement is linked to another journal."
msgstr "Konto tega izpiska je povezan z drugim dnevnikom."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:247
#, python-format
msgid ""
"The currency of the bank statement is not the same as the company currency !"
msgstr "Valuta bančnega izpiska ni enaka valuti družbe!"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:233
#, python-format
msgid ""
"The currency of the bank statement is not the same as the currency of the "
"journal !"
msgstr "Valuta na bančnem izpisku ne ustreza valuti dnevnika!"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:167
#, python-format
msgid "This file doesn't contain any statement."
msgstr "Ta datoteka ne vsebuje izpiskov."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:172
#, python-format
msgid "This file doesn't contain any transaction."
msgstr "Ta datoteka ne vsebuje transakcij."
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/models/account_bank_statement_import.py:99
#, python-format
msgid "You have already imported that file."
msgstr "To datoteko ste že uvozili."
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "_Import"
msgstr "_Uvoz"
#. module: account_bank_statement_import
#: view:account.bank.statement.import:account_bank_statement_import.account_bank_statement_import_view
msgid "or"
msgstr "ali"

33
account_bank_statement_import/migrations/8.0.1.0/post-migrate.py

@ -1,33 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# This module copyright (C) 2015 Therp BV <http://therp.nl>.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
def migrate(cr, version):
# if we end up here, we migrate from 7.0's account_banking
# set transaction ids, taking care to enforce uniqueness
cr.execute(
"""update account_bank_statement_line l set unique_import_id=l1.trans
from (
select distinct
first_value(id) over (partition by trans) id, trans
from account_bank_statement_line
) l1
where l.id=l1.id""")

5
account_bank_statement_import/models/__init__.py

@ -1,5 +0,0 @@
# -*- encoding: utf-8 -*-
from . import res_partner_bank
from . import account_bank_statement_import
from . import account_config_settings

366
account_bank_statement_import/models/account_bank_statement_import.py

@ -1,366 +0,0 @@
# -*- coding: utf-8 -*-
"""Framework for importing bank statement files."""
import logging
import base64
from openerp import api, models, fields
from openerp.tools.translate import _
from openerp.exceptions import Warning
_logger = logging.getLogger(__name__)
class AccountBankStatementLine(models.Model):
"""Extend model account.bank.statement.line."""
_inherit = "account.bank.statement.line"
# Ensure transactions can be imported only once (if the import format
# provides unique transaction ids)
unique_import_id = fields.Char('Import ID', readonly=True, copy=False)
_sql_constraints = [
('unique_import_id',
'unique (unique_import_id)',
'A bank account transactions can be imported only once !')
]
class AccountBankStatementImport(models.TransientModel):
"""Extend model account.bank.statement."""
_name = 'account.bank.statement.import'
_description = 'Import Bank Statement'
@api.model
def _get_hide_journal_field(self):
""" Return False if the journal_id can't be provided by the parsed
file and must be provided by the wizard.
See account_bank_statement_import_qif """
return True
journal_id = fields.Many2one(
'account.journal', string='Journal',
help='Accounting journal related to the bank statement you\'re '
'importing. It has be be manually chosen for statement formats which '
'doesn\'t allow automatic journal detection (QIF for example).')
hide_journal_field = fields.Boolean(
string='Hide the journal field in the view',
compute='_get_hide_journal_field')
data_file = fields.Binary(
'Bank Statement File', required=True,
help='Get you bank statements in electronic format from your bank '
'and select them here.')
@api.multi
def import_file(self):
""" Process the file chosen in the wizard, create bank statement(s) and
go to reconciliation."""
self.ensure_one()
data_file = base64.b64decode(self.data_file)
statement_ids, notifications = self.with_context(
active_id=self.id)._import_file(data_file)
# dispatch to reconciliation interface
action = self.env.ref(
'account.action_bank_reconcile_bank_statements')
return {
'name': action.name,
'tag': action.tag,
'context': {
'statement_ids': statement_ids,
'notifications': notifications
},
'type': 'ir.actions.client',
}
@api.model
def _import_file(self, data_file):
""" Create bank statement(s) from file."""
# The appropriate implementation module returns the required data
statement_ids = []
notifications = []
parse_result = self._parse_file(data_file)
# Check for old version result, with separate currency and account
if isinstance(parse_result, tuple) and len(parse_result) == 3:
(currency_code, account_number, statements) = parse_result
for stmt_vals in statements:
stmt_vals['currency_code'] = currency_code
stmt_vals['account_number'] = account_number
else:
statements = parse_result
# Check raw data:
self._check_parsed_data(statements)
# Import all statements:
for stmt_vals in statements:
(statement_id, new_notifications) = (
self._import_statement(stmt_vals))
if statement_id:
statement_ids.append(statement_id)
notifications.append(new_notifications)
if len(statement_ids) == 0:
raise Warning(_('You have already imported that file.'))
return statement_ids, notifications
@api.model
def _import_statement(self, stmt_vals):
"""Import a single bank-statement.
Return ids of created statements and notifications.
"""
currency_code = stmt_vals.pop('currency_code')
account_number = stmt_vals.pop('account_number')
# Try to find the bank account and currency in odoo
currency_id = self._find_currency_id(currency_code)
bank_account_id = self._find_bank_account_id(account_number)
if not bank_account_id and account_number:
raise Warning(_('Can not find the account number %s.') %
account_number)
# Find the bank journal
journal_id = self._get_journal(currency_id, bank_account_id)
# By now journal and account_number must be known
if not journal_id:
raise Warning(_('Can not determine journal for import.'))
# Prepare statement data to be used for bank statements creation
stmt_vals = self._complete_statement(
stmt_vals, journal_id, account_number)
# Create the bank stmt_vals
return self._create_bank_statement(stmt_vals)
@api.model
def _parse_file(self, data_file):
""" Each module adding a file support must extends this method. It
processes the file if it can, returns super otherwise, resulting in a
chain of responsability.
This method parses the given file and returns the data required by
the bank statement import process, as specified below.
- bank statements data: list of dict containing (optional
items marked by o) :
-o currency code: string (e.g: 'EUR')
The ISO 4217 currency code, case insensitive
-o account number: string (e.g: 'BE1234567890')
The number of the bank account which the statement
belongs to
- 'name': string (e.g: '000000123')
- 'date': date (e.g: 2013-06-26)
-o 'balance_start': float (e.g: 8368.56)
-o 'balance_end_real': float (e.g: 8888.88)
- 'transactions': list of dict containing :
- 'name': string
(e.g: 'KBC-INVESTERINGSKREDIET 787-5562831-01')
- 'date': date
- 'amount': float
- 'unique_import_id': string
-o 'account_number': string
Will be used to find/create the res.partner.bank
in odoo
-o 'note': string
-o 'partner_name': string
-o 'ref': string
"""
raise Warning(_(
'Could not make sense of the given file.\n'
'Did you install the module to support this type of file?'
))
@api.model
def _check_parsed_data(self, statements):
""" Basic and structural verifications """
if len(statements) == 0:
raise Warning(_('This file doesn\'t contain any statement.'))
for stmt_vals in statements:
if 'transactions' in stmt_vals and stmt_vals['transactions']:
return
# If we get here, no transaction was found:
raise Warning(_('This file doesn\'t contain any transaction.'))
@api.model
def _find_currency_id(self, currency_code):
""" Get res.currency ID."""
if currency_code:
currency_ids = self.env['res.currency'].search(
[('name', '=ilike', currency_code)])
if currency_ids:
return currency_ids[0].id
else:
raise Warning(_(
'Statement has invalid currency code %s') % currency_code)
# if no currency_code is provided, we'll use the company currency
return self.env.user.company_id.currency_id.id
@api.model
def _find_bank_account_id(self, account_number):
""" Get res.partner.bank ID """
bank_account_id = None
if account_number and len(account_number) > 4:
bank_account_ids = self.env['res.partner.bank'].search(
[('acc_number', '=', account_number)], limit=1)
if bank_account_ids:
bank_account_id = bank_account_ids[0].id
return bank_account_id
@api.model
def _get_journal(self, currency_id, bank_account_id):
""" Find the journal """
bank_model = self.env['res.partner.bank']
# Find the journal from context, wizard or bank account
journal_id = self.env.context.get('journal_id') or self.journal_id.id
if bank_account_id:
bank_account = bank_model.browse(bank_account_id)
if journal_id:
if (bank_account.journal_id.id and
bank_account.journal_id.id != journal_id):
raise Warning(
_('The account of this statement is linked to '
'another journal.'))
if not bank_account.journal_id.id:
bank_model.write({'journal_id': journal_id})
else:
if bank_account.journal_id.id:
journal_id = bank_account.journal_id.id
# If importing into an existing journal, its currency must be the same
# as the bank statement. When journal has no currency, currency must
# be equal to company currency.
if journal_id and currency_id:
journal_obj = self.env['account.journal'].browse(journal_id)
if journal_obj.currency:
journal_currency_id = journal_obj.currency.id
if currency_id != journal_currency_id:
# ALso log message with id's for technical analysis:
_logger.warn(
_('Statement currency id is %d,'
' but journal currency id = %d.'),
currency_id,
journal_currency_id
)
raise Warning(_(
'The currency of the bank statement is not '
'the same as the currency of the journal !'
))
else:
company_currency_id = self.env.user.company_id.currency_id.id
if currency_id != company_currency_id:
# ALso log message with id's for technical analysis:
_logger.warn(
_('Statement currency id is %d,'
' but company currency id = %d.'),
currency_id,
company_currency_id
)
raise Warning(_(
'The currency of the bank statement is not '
'the same as the company currency !'
))
return journal_id
@api.model
@api.returns('res.partner.bank')
def _create_bank_account(
self, account_number, company_id=False, currency_id=False):
"""Automagically create bank account, when not yet existing."""
try:
bank_type = self.env.ref('base.bank_normal')
bank_code = bank_type.code
except ValueError:
bank_code = 'bank'
vals_acc = {
'acc_number': account_number,
'state': bank_code,
}
# Odoo users bank accounts (which we import statement from) have
# company_id and journal_id set while 'counterpart' bank accounts
# (from which statement transactions originate) don't.
# Warning : if company_id is set, the method post_write of class
# bank will create a journal
if company_id:
vals = self.env['res.partner.bank'].onchange_company_id(company_id)
vals_acc.update(vals.get('value', {}))
vals_acc['company_id'] = company_id
# When the journal is created at same time of the bank account, we need
# to specify the currency to use for the account.account and
# account.journal
return self.env['res.partner.bank'].with_context(
default_currency_id=currency_id,
default_currency=currency_id).create(vals_acc)
@api.model
def _complete_statement(self, stmt_vals, journal_id, account_number):
"""Complete statement from information passed."""
stmt_vals['journal_id'] = journal_id
for line_vals in stmt_vals['transactions']:
unique_import_id = line_vals.get('unique_import_id', False)
if unique_import_id:
line_vals['unique_import_id'] = (
(account_number and account_number + '-' or '') +
unique_import_id
)
if not line_vals.get('bank_account_id'):
# Find the partner and his bank account or create the bank
# account. The partner selected during the reconciliation
# process will be linked to the bank when the statement is
# closed.
partner_id = False
bank_account_id = False
account_number = line_vals.get('account_number')
if account_number:
bank_model = self.env['res.partner.bank']
banks = bank_model.search(
[('acc_number', '=', account_number)], limit=1)
if banks:
bank_account_id = banks[0].id
partner_id = banks[0].partner_id.id
else:
bank_obj = self._create_bank_account(account_number)
bank_account_id = bank_obj and bank_obj.id or False
line_vals['partner_id'] = partner_id
line_vals['bank_account_id'] = bank_account_id
return stmt_vals
@api.model
def _create_bank_statement(self, stmt_vals):
""" Create bank statement from imported values, filtering out
already imported transactions, and return data used by the
reconciliation widget
"""
bs_model = self.env['account.bank.statement']
bsl_model = self.env['account.bank.statement.line']
# Filter out already imported transactions and create statement
ignored_line_ids = []
filtered_st_lines = []
for line_vals in stmt_vals['transactions']:
unique_id = (
'unique_import_id' in line_vals and
line_vals['unique_import_id']
)
if not unique_id or not bool(bsl_model.sudo().search(
[('unique_import_id', '=', unique_id)], limit=1)):
filtered_st_lines.append(line_vals)
else:
ignored_line_ids.append(unique_id)
statement_id = False
if len(filtered_st_lines) > 0:
# Remove values that won't be used to create records
stmt_vals.pop('transactions', None)
for line_vals in filtered_st_lines:
line_vals.pop('account_number', None)
# Create the statement
stmt_vals['line_ids'] = [
[0, False, line] for line in filtered_st_lines]
statement_id = bs_model.create(stmt_vals).id
# Prepare import feedback
notifications = []
num_ignored = len(ignored_line_ids)
if num_ignored > 0:
notifications += [{
'type': 'warning',
'message':
_("%d transactions had already been imported and "
"were ignored.") % num_ignored
if num_ignored > 1
else _("1 transaction had already been imported and "
"was ignored."),
'details': {
'name': _('Already imported items'),
'model': 'account.bank.statement.line',
'ids': bsl_model.search(
[('unique_import_id', 'in', ignored_line_ids)]).ids}
}]
return statement_id, notifications

27
account_bank_statement_import/models/account_config_settings.py

@ -1,27 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# This module copyright (C) 2015 Therp BV (<http://therp.nl>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, fields
class AccountConfigSettings(models.TransientModel):
_inherit = 'account.config.settings'
module_base_bank_account_number_unique = fields.Boolean(
'Enforce unique account numbers on bank accounts')

66
account_bank_statement_import/models/res_partner_bank.py

@ -1,66 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# This file is part of account_bank_statement_import,
# an Odoo module.
#
# Copyright (c) 2015 ACSONE SA/NV (<http://acsone.eu>)
#
# account_bank_statement_importis free software:
# you can redistribute it and/or modify it under the terms of the GNU
# Affero General Public License as published by the Free Software
# Foundation,either version 3 of the License, or (at your option) any
# later version.
#
# account_bank_statement_import is distributed
# in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with account_bank_statement_import_coda.
# If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import re
from openerp import api, models, fields
class ResPartnerBank(models.Model):
_inherit = 'res.partner.bank'
sanitized_acc_number = fields.Char(
'Sanitized Account Number', size=64, readonly=True,
compute='_get_sanitized_account_number', store=True, index=True)
def _sanitize_account_number(self, acc_number):
if acc_number:
return re.sub(r'\W+', '', acc_number).upper()
return False
@api.one
@api.depends('acc_number')
def _get_sanitized_account_number(self):
self.sanitized_acc_number = self._sanitize_account_number(
self.acc_number)
@api.returns('self')
def search(self, cr, user, args, offset=0, limit=None, order=None,
context=None, count=False):
pos = 0
while pos < len(args):
if args[pos][0] == 'acc_number':
op = args[pos][1]
value = args[pos][2]
if hasattr(value, '__iter__'):
value = [self._sanitize_account_number(i) for i in value]
else:
value = self._sanitize_account_number(value)
if 'like' in op:
value = '%' + value + '%'
args[pos] = ('sanitized_acc_number', op, value)
pos += 1
return super(ResPartnerBank, self).search(
cr, user, args, offset=offset, limit=limit, order=order,
context=context, count=count)

236
account_bank_statement_import/parserlib.py

@ -1,236 +0,0 @@
# -*- encoding: utf-8 -*-
"""Classes and definitions used in parsing bank statements."""
##############################################################################
#
# Copyright (C) 2015 Therp BV <http://therp.nl>.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
class BankTransaction(dict):
"""Single transaction that is part of a bank statement."""
@property
def value_date(self):
"""property getter"""
return self['date']
@value_date.setter
def value_date(self, value_date):
"""property setter"""
self['date'] = value_date
@property
def name(self):
"""property getter"""
return self['name']
@name.setter
def name(self, name):
"""property setter"""
self['name'] = name
@property
def transferred_amount(self):
"""property getter"""
return self['amount']
@transferred_amount.setter
def transferred_amount(self, transferred_amount):
"""property setter"""
self['amount'] = transferred_amount
@property
def eref(self):
"""property getter"""
return self['ref']
@eref.setter
def eref(self, eref):
"""property setter"""
self['ref'] = eref
if not self.message:
self.name = eref
@property
def message(self):
"""property getter"""
return self._message
@message.setter
def message(self, message):
"""property setter"""
self._message = message
self.name = message
@property
def remote_owner(self):
"""property getter"""
return self['partner_name']
@remote_owner.setter
def remote_owner(self, remote_owner):
"""property setter"""
self['partner_name'] = remote_owner
if not (self.message or self.eref):
self.name = remote_owner
@property
def remote_account(self):
"""property getter"""
return self['account_number']
@remote_account.setter
def remote_account(self, remote_account):
"""property setter"""
self['account_number'] = remote_account
@property
def note(self):
return self['note']
@note.setter
def note(self, note):
self['note'] = note
def __init__(self):
"""Define and initialize attributes.
Not all attributes are already used in the actual import.
"""
super(BankTransaction, self).__init__()
self.transfer_type = False # Action type that initiated this message
self.execution_date = False # The posted date of the action
self.value_date = False # The value date of the action
self.remote_account = False # The account of the other party
self.remote_currency = False # The currency used by the other party
self.exchange_rate = 0.0
# The exchange rate used for conversion of local_currency and
# remote_currency
self.transferred_amount = 0.0 # actual amount transferred
self.name = ''
self._message = False # message from the remote party
self.eref = False # end to end reference for transactions
self.remote_owner = False # name of the other party
self.remote_owner_address = [] # other parties address lines
self.remote_owner_city = False # other parties city name
self.remote_owner_postalcode = False # other parties zip code
self.remote_owner_country_code = False # other parties country code
self.remote_bank_bic = False # bic of other party's bank
self.provision_costs = False # costs charged by bank for transaction
self.provision_costs_currency = False
self.provision_costs_description = False
self.error_message = False # error message for interaction with user
self.storno_retry = False
# If True, make cancelled debit eligible for a next direct debit run
self.data = '' # Raw data from which the transaction has been parsed
class BankStatement(dict):
"""A bank statement groups data about several bank transactions."""
@property
def statement_id(self):
"""property getter"""
return self['name']
def _set_transaction_ids(self):
"""Set transaction ids to statement_id with sequence-number."""
subno = 0
for transaction in self['transactions']:
subno += 1
transaction['unique_import_id'] = (
self.statement_id + str(subno).zfill(4))
@statement_id.setter
def statement_id(self, statement_id):
"""property setter"""
self['name'] = statement_id
self._set_transaction_ids()
@property
def local_account(self):
"""property getter"""
return self['account_number']
@local_account.setter
def local_account(self, local_account):
"""property setter"""
self['account_number'] = local_account
@property
def local_currency(self):
"""property getter"""
return self['currency_code']
@local_currency.setter
def local_currency(self, local_currency):
"""property setter"""
self['currency_code'] = local_currency
@property
def start_balance(self):
"""property getter"""
return self['balance_start']
@start_balance.setter
def start_balance(self, start_balance):
"""property setter"""
self['balance_start'] = start_balance
@property
def end_balance(self):
"""property getter"""
return self['balance_end']
@end_balance.setter
def end_balance(self, end_balance):
"""property setter"""
self['balance_end'] = end_balance
self['balance_end_real'] = end_balance
@property
def date(self):
"""property getter"""
return self['date']
@date.setter
def date(self, date):
"""property setter"""
self['date'] = date
def create_transaction(self):
"""Create and append transaction.
This should only be called after statement_id has been set, because
statement_id will become part of the unique transaction_id.
"""
transaction = BankTransaction()
self['transactions'].append(transaction)
# Fill default id, but might be overruled
transaction['unique_import_id'] = (
self.statement_id + str(len(self['transactions'])).zfill(4))
return transaction
def __init__(self):
super(BankStatement, self).__init__()
self['transactions'] = []
self.statement_id = ''
self.local_account = ''
self.local_currency = ''
self.date = ''
self.start_balance = 0.0
self.end_balance = 0.0

BIN
account_bank_statement_import/static/description/icon.png

Before

Width: 128  |  Height: 128  |  Size: 6.7 KiB

178
account_bank_statement_import/static/description/icon_src.svg

@ -1,178 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
enable-background="new 0 0 100 100"
height="100px"
id="Layer_1"
version="1.1"
viewBox="0 0 100 100"
width="100px"
xml:space="preserve"
inkscape:version="0.91 r"
sodipodi:docname="icon_src.svg"
inkscape:export-filename="icon.png"
inkscape:export-xdpi="115.2"
inkscape:export-ydpi="115.2"><metadata
id="metadata9"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs7" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1733"
inkscape:window-height="1001"
id="namedview5"
showgrid="false"
inkscape:zoom="11.62"
inkscape:cx="21.99675"
inkscape:cy="62.279535"
inkscape:window-x="76"
inkscape:window-y="24"
inkscape:window-maximized="0"
inkscape:current-layer="Layer_1" /><path
d="M79.043,31.615l-5.742,5.742V13h-58v74h58V48.67l11.398-11.399L79.043,31.615z M71.301,39.357L50.758,59.898l-1.414,4.242 l-1.414,4.244l8.486-2.828L71.301,50.67V85h-54V15h54V39.357z M54.564,65.119l-3.182,1.06l-1.248-1.248l1.061-3.182l3.1,3.099 L54.564,65.119z"
id="path3" /><text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:37.90610123px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
x="18.012672"
y="17.773424"
id="text2986"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="18.012672"
y="17.773424"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3520">08/12/13 1000.00 Delta PC</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="21.523424"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3731">08/15/13 75.46 Walts Drugs</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="25.273424"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3733">03/03/13 379.00 Epic Technologies</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="29.023424"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3735">03/04/13 20.28 YOUR LOCAL SU</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="32.773422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3737">03/03/13 421.35 SPRINGFIELD WA</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="36.523422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3739">03/03/13 379.00 Epic Technologies</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="40.273422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3743">03/04/13 20.28 YOUR LOCAL SUP</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="44.023422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3846">08/15/13 75.46 Walts Drugs</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="47.773422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3745">08/12/13 1000.00 Delta PC</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="51.523422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3747">03/03/13 421.35 SPRINGFIELD WA</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="55.273422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3749">03/04/13 20.28 YOUR LOCAL SU</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="59.023422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3751">03/03/13 379.00 Epic Technologies</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="62.773422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3753">08/12/13 1000.00 De a PC</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="66.523422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3755">03/03/13 379.00 E Technologies</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="70.273422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3757">08/15/13 75.46 Walts Drugs</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="74.023422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3759">03/04/13 20.28 YOUR LOCAL SU</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="77.773422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3761">03/03/13 379.00 Epic Technologies</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="81.523422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3763">08/12/13 1000.00 Delta PC</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="85.273422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3765">08/15/13 75.46 Walts Drugs</tspan><tspan
sodipodi:role="line"
x="18.012672"
y="89.023422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3783" /><tspan
sodipodi:role="line"
x="18.012672"
y="92.773422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3799" /><tspan
sodipodi:role="line"
x="18.012672"
y="96.523422"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.8429575px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'"
id="tspan3801" /></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="43.851177"
y="32.13871"
id="text3838"
sodipodi:linespacing="125%"
inkscape:export-filename="/Users/arthurmaniet/Desktop/icon.png"
inkscape:export-xdpi="115.2"
inkscape:export-ydpi="115.2"><tspan
sodipodi:role="line"
id="tspan3840"
x="43.851177"
y="32.13871"
style="font-size:16px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Bold" /></text>
</svg>

5
account_bank_statement_import/tests/__init__.py

@ -1,5 +0,0 @@
# -*- encoding: utf-8 -*-
"""Define tests to be run."""
from . import test_res_partner_bank
from . import test_import_bank_statement
from .test_import_file import TestStatementFile

90
account_bank_statement_import/tests/test_import_bank_statement.py

@ -1,90 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# This file is part of account_bank_statement_import,
# an Odoo module.
#
# Copyright (c) 2015 ACSONE SA/NV (<http://acsone.eu>)
#
# account_bank_statement_import is free software:
# you can redistribute it and/or modify it under the terms of the GNU
# Affero General Public License as published by the Free Software
# Foundation,either version 3 of the License, or (at your option) any
# later version.
#
# account_bank_statement_import is distributed
# in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with account_bank_statement_import_coda.
# If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.tests.common import TransactionCase
from openerp.exceptions import Warning
class TestAccountBankStatementImport(TransactionCase):
"""Tests for import bank statement file import
(account.bank.statement.import)
"""
def setUp(self):
super(TestAccountBankStatementImport, self).setUp()
self.statement_import_model = self.env[
'account.bank.statement.import']
self.account_journal_model = self.env['account.journal']
self.res_users_model = self.env['res.users']
self.journal_id = self.ref('account.bank_journal')
self.base_user_root_id = self.ref('base.user_root')
self.base_user_root = self.res_users_model.browse(
self.base_user_root_id)
# create a new user that belongs to the same company as
# user_root
self.other_partner_id = self.env['res.partner'].create(
{"name": "My other partner",
"is_company": False,
"email": "test@tes.ttest",
})
self.company_id = self.base_user_root.company_id.id
self.other_user_id_a = self.res_users_model.create(
{"partner_id": self.other_partner_id.id,
"company_id": self.company_id,
"company_ids": [(4, self.company_id)],
"login": "my_login a",
"name": "my user",
"groups_id": [(4, self.ref('account.group_account_manager'))]
})
def test_import_preconditions(self):
"""Checks that the import raises an exception if:
* no bank account found for the account_number
* no account_journal found on the bank_account
"""
stmt_vals = {
'currency_code': 'EUR',
'account_number': '123456789'}
with self.assertRaises(Warning) as e:
self.statement_import_model._import_statement(stmt_vals.copy())
self.assertEqual(e.exception.message,
'Can not find the account number 123456789.')
self.statement_import_model._create_bank_account('123456789')
with self.assertRaises(Warning) as e:
self.statement_import_model._import_statement(stmt_vals.copy())
self.assertEqual(e.exception.message,
'Can not determine journal for import.')
def test_create_bank_account(self):
"""Checks that the bank_account created by the import belongs to the
partner linked to the company of the provided journal
"""
journal = self.account_journal_model.browse(self.journal_id)
expected_id = journal.company_id.partner_id.id
st_import = self.statement_import_model.sudo(self.other_user_id_a.id)
bank = st_import._create_bank_account(
'001251882303', company_id=self.company_id)
self.assertEqual(bank.partner_id.id, expected_id)

131
account_bank_statement_import/tests/test_import_file.py

@ -1,131 +0,0 @@
# -*- coding: utf-8 -*-
"""Provide common base for bank statement import tests."""
##############################################################################
#
# Copyright (C) 2015 Therp BV <http://therp.nl>.
#
# All other contributions are (C) by their respective contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import logging
from openerp.tests.common import TransactionCase
from openerp.modules.module import get_module_resource
_logger = logging.getLogger(__name__)
class TestStatementFile(TransactionCase):
"""Check wether statements with transactions correctly imported.
No actual tests are done in this class, implementations are in
subclasses in actual import modules.
"""
def _test_transaction(
self, statement_obj, remote_account=False,
transferred_amount=False, value_date=False, ref=False):
"""Check wether transaction with attributes passed was created.
Actually this method also tests wether automatic creation of
partner bank accounts is working.
"""
transaction_model = self.env['account.bank.statement.line']
partner_bank_model = self.env['res.partner.bank']
domain = [('statement_id', '=', statement_obj.id)]
if remote_account:
bids = partner_bank_model.search(
[('acc_number', '=', remote_account)])
self.assertTrue(
bids,
'Bank-account %s not found after parse.' % remote_account
)
domain.append(('bank_account_id', '=', bids[0].id))
if transferred_amount:
domain.append(('amount', '=', transferred_amount))
if value_date:
domain.append(('date', '=', value_date))
if ref:
domain.append(('ref', '=', ref))
ids = transaction_model.search(domain)
if not ids:
# We will get assertion error, but to solve we need to see
# what transactions have been added:
self.cr.execute(
"select name, date, amount, ref, bank_account_id"
" from account_bank_statement_line"
" where statement_id=%d" % statement_obj.id)
_logger.error(
"Transaction not found in %s" %
str(self.cr.fetchall())
)
self.assertTrue(
ids,
'Transaction %s not found after parse.' % str(domain)
)
def _test_statement_import(
self, module_name, file_name, statement_name, local_account=False,
start_balance=False, end_balance=False, transactions=None):
"""Test correct creation of single statement."""
import_model = self.env['account.bank.statement.import']
partner_bank_model = self.env['res.partner.bank']
statement_model = self.env['account.bank.statement']
statement_path = get_module_resource(
module_name,
'test_files',
file_name
)
statement_file = open(
statement_path, 'rb').read().encode('base64')
bank_statement_id = import_model.create(
dict(
data_file=statement_file,
)
)
bank_statement_id.import_file()
# Check wether bank account has been created:
if local_account:
bids = partner_bank_model.search(
[('acc_number', '=', local_account)])
self.assertTrue(
bids,
'Bank account %s not created from statement' % local_account
)
# statement name is account number + '-' + date of last 62F line:
ids = statement_model.search([('name', '=', statement_name)])
self.assertTrue(
ids,
'Statement %s not found after parse.' % statement_name
)
statement_obj = ids[0]
if start_balance:
self.assertTrue(
abs(statement_obj.balance_start - start_balance) < 0.00001,
'Start balance %f not equal to expected %f' %
(statement_obj.balance_start, start_balance)
)
if end_balance:
self.assertTrue(
abs(statement_obj.balance_end_real - end_balance) < 0.00001,
'End balance %f not equal to expected %f' %
(statement_obj.balance_end_real, end_balance)
)
# Maybe we need to test transactions?
if transactions:
for transaction in transactions:
self._test_transaction(statement_obj, **transaction)

70
account_bank_statement_import/tests/test_res_partner_bank.py

@ -1,70 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# This file is part of account_bank_statement_import,
# an Odoo module.
#
# Copyright (c) 2015 ACSONE SA/NV (<http://acsone.eu>)
#
# account_bank_statement_import is free software:
# you can redistribute it and/or modify it under the terms of the GNU
# Affero General Public License as published by the Free Software
# Foundation,either version 3 of the License, or (at your option) any
# later version.
#
# account_bank_statement_import is distributed
# in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with account_bank_statement_import_coda.
# If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.tests.common import TransactionCase
class TestResPartnerBank(TransactionCase):
"""Tests acc_number
"""
def test_sanitized_acc_number(self):
partner_bank_model = self.env['res.partner.bank']
acc_number = " BE-001 2518823 03 "
vals = partner_bank_model.search([('acc_number', '=', acc_number)])
self.assertEquals(0, len(vals))
partner_bank = partner_bank_model.create({
'acc_number': acc_number,
'partner_id': self.ref('base.res_partner_2'),
'state': 'bank',
})
vals = partner_bank_model.search([('acc_number', '=', acc_number)])
self.assertEquals(1, len(vals))
self.assertEquals(partner_bank, vals[0])
vals = partner_bank_model.search([('acc_number', 'in', [acc_number])])
self.assertEquals(1, len(vals))
self.assertEquals(partner_bank, vals[0])
self.assertEqual(partner_bank.acc_number, acc_number)
# sanitaze the acc_number
sanitized_acc_number = 'BE001251882303'
vals = partner_bank_model.search(
[('acc_number', '=', sanitized_acc_number)])
self.assertEquals(1, len(vals))
self.assertEquals(partner_bank, vals[0])
vals = partner_bank_model.search(
[('acc_number', 'in', [sanitized_acc_number])])
self.assertEquals(1, len(vals))
self.assertEquals(partner_bank, vals[0])
self.assertEqual(partner_bank.sanitized_acc_number,
sanitized_acc_number)
# search is case insensitive
vals = partner_bank_model.search(
[('acc_number', '=', sanitized_acc_number.lower())])
self.assertEquals(1, len(vals))
vals = partner_bank_model.search(
[('acc_number', '=', acc_number.lower())])
self.assertEquals(1, len(vals))

44
account_bank_statement_import/views/account_bank_statement_import_view.xml

@ -1,44 +0,0 @@
<?xml version="1.0" ?>
<openerp>
<data>
<record id="account_bank_statement_import_view" model="ir.ui.view">
<field name="name">Import Bank Statements</field>
<field name="model">account.bank.statement.import</field>
<field name="priority">1</field>
<field name="arch" type="xml">
<form string="Import Bank Statements">
<field name="data_file"/>
<field name="hide_journal_field" invisible="1"/>
<label for="journal_id"/>
<field name="journal_id"
domain="[('type', '=', 'bank')]"
attrs="{'invisible': [('hide_journal_field', '=', True)]}"
context="{'default_type':'bank'}"/>
<br/><br/><b> How to import your bank statement :</b>
<br/><label string= "1. Download your bank statements from your bank website."/>
<br/><label string= "2. Make sure you have installed the right module to support the file format."/>
<br/><label string= "3. Select the file and click 'Import'."/>
<footer>
<button name="import_file" string="_Import" type="object" class="oe_highlight"/>
or
<button string="Cancel" class="oe_link" special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="action_account_bank_statement_import" model="ir.actions.act_window">
<field name="name">Import</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.bank.statement.import</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="view_id" ref="account_bank_statement_import_view"/>
</record>
<menuitem id="menu_account_bank_statement_import" parent="account.menu_finance_bank_and_cash" action="action_account_bank_statement_import" sequence="8"/>
</data>
</openerp>

17
account_bank_statement_import/views/account_config_settings.xml

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record id="view_account_config_settings" model="ir.ui.view">
<field name="model">account.config.settings</field>
<field name="inherit_id" ref="account.view_account_config_settings" />
<field name="arch" type="xml">
<xpath expr="." position="inside">
<separator name="account_bank_statement_import" string="Bank statement import" />
<group>
<field name="module_base_bank_account_number_unique" />
</group>
</xpath>
</field>
</record>
</data>
</openerp>

10
account_bank_statement_import_ofx/account_bank_statement_import_ofx.py

@ -9,11 +9,11 @@ from openerp.exceptions import Warning
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
try:
from ofxparse import OfxParser as ofxparser
except ImportError:
_logger.warn("ofxparse not found, OFX parsing disabled.")
ofxparser = None
# try:
# from ofxparse import OfxParser as ofxparser
# except ImportError:
# _logger.warn("ofxparse not found, OFX parsing disabled.")
# ofxparser = None
class AccountBankStatementImport(models.TransientModel): class AccountBankStatementImport(models.TransientModel):

Loading…
Cancel
Save