[REM] l10n_be_coda: moved module to enterprise repository
This commit is contained in:
@@ -1,4 +0,0 @@
|
||||
Installation tips
|
||||
=================
|
||||
|
||||
TBC.
|
||||
@@ -1,7 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
|
||||
|
||||
import l10n_be_coda
|
||||
import wizard
|
||||
@@ -1,68 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
|
||||
|
||||
{
|
||||
'name': 'Belgium - Import Bank CODA Statements',
|
||||
'version': '2.1',
|
||||
'author': 'Noviat',
|
||||
'category': 'Accounting & Finance',
|
||||
'description': '''
|
||||
Module to import CODA bank statements.
|
||||
======================================
|
||||
|
||||
Supported are CODA flat files in V2 format from Belgian bank accounts.
|
||||
----------------------------------------------------------------------
|
||||
* CODA v1 support.
|
||||
* CODA v2.2 support.
|
||||
* Foreign Currency support.
|
||||
* Support for all data record types (0, 1, 2, 3, 4, 8, 9).
|
||||
* Parsing & logging of all Transaction Codes and Structured Format
|
||||
Communications.
|
||||
* Automatic Financial Journal assignment via CODA configuration parameters.
|
||||
* Support for multiple Journals per Bank Account Number.
|
||||
* Support for multiple statements from different bank accounts in a single
|
||||
CODA file.
|
||||
* Support for 'parsing only' CODA Bank Accounts (defined as type='info' in
|
||||
the CODA Bank Account configuration records).
|
||||
* Multi-language CODA parsing, parsing configuration data provided for EN,
|
||||
NL, FR.
|
||||
|
||||
The machine readable CODA Files are parsed and stored in human readable format in
|
||||
CODA Bank Statements. Also Bank Statements are generated containing a subset of
|
||||
the CODA information (only those transaction lines that are required for the
|
||||
creation of the Financial Accounting records). The CODA Bank Statement is a
|
||||
'read-only' object, hence remaining a reliable representation of the original
|
||||
CODA file whereas the Bank Statement will get modified as required by accounting
|
||||
business processes.
|
||||
|
||||
CODA Bank Accounts configured as type 'Info' will only generate CODA Bank Statements.
|
||||
|
||||
A removal of one object in the CODA processing results in the removal of the
|
||||
associated objects. The removal of a CODA File containing multiple Bank
|
||||
Statements will also remove those associated statements.
|
||||
|
||||
Instead of a manual adjustment of the generated Bank Statements, you can also
|
||||
re-import the CODA after updating the OpenERP database with the information that
|
||||
was missing to allow automatic reconciliation.
|
||||
|
||||
Remark on CODA V1 support:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
In some cases a transaction code, transaction category or structured
|
||||
communication code has been given a new or clearer description in CODA V2.The
|
||||
description provided by the CODA configuration tables is based upon the CODA
|
||||
V2.2 specifications.
|
||||
If required, you can manually adjust the descriptions via the CODA configuration menu.
|
||||
''',
|
||||
'depends': ['account_accountant', 'l10n_be'],
|
||||
'demo': [
|
||||
'l10n_be_coda_demo.xml',
|
||||
],
|
||||
'data': [
|
||||
'l10n_be_coda_view.xml',
|
||||
],
|
||||
'auto_install': True,
|
||||
'website': 'https://www.odoo.com/page/accounting',
|
||||
'installable': True,
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,296 +0,0 @@
|
||||
# Spanish translation for openobject-addons
|
||||
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2011-08-30 17:18+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:45+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
|
||||
#. module: account_coda
|
||||
#: help:account.coda,journal_id:0
|
||||
#: field:account.coda.import,journal_id:0
|
||||
msgid "Bank Journal"
|
||||
msgstr "Diario bancario"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
#: field:account.coda.import,note:0
|
||||
msgid "Log"
|
||||
msgstr "Registro"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.model,name:account_coda.model_account_coda_import
|
||||
msgid "Account Coda Import"
|
||||
msgstr "Contabilidad Importación Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,name:0
|
||||
msgid "Coda file"
|
||||
msgstr "Fichero Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
msgid "Group By..."
|
||||
msgstr "Agrupar por..."
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda.import,awaiting_account:0
|
||||
msgid "Default Account for Unrecognized Movement"
|
||||
msgstr "Cuenta por defecto para movimientos no reconocidos"
|
||||
|
||||
#. module: account_coda
|
||||
#: help:account.coda,date:0
|
||||
msgid "Import Date"
|
||||
msgstr "Fecha de importación"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,note:0
|
||||
msgid "Import log"
|
||||
msgstr "Registro de importación"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Import"
|
||||
msgstr "Importar"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
msgid "Coda import"
|
||||
msgstr "Importar Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: code:addons/account_coda/account_coda.py:51
|
||||
#, python-format
|
||||
msgid "Coda file not found for bank statement !!"
|
||||
msgstr "¡No se ha encontrado el archivo Coda para el extracto bancario!"
|
||||
|
||||
#. module: account_coda
|
||||
#: help:account.coda.import,awaiting_account:0
|
||||
msgid ""
|
||||
"Set here the default account that will be used, if the partner is found but "
|
||||
"does not have the bank account, or if he is domiciled"
|
||||
msgstr ""
|
||||
"Indique aquí la cuenta por defecto que se utilizará, si se encuentra la "
|
||||
"empresa pero no tiene la cuenta bancaria, o si está domiciliado."
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
#: field:account.coda,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Compañía"
|
||||
|
||||
#. module: account_coda
|
||||
#: help:account.coda.import,def_payable:0
|
||||
msgid ""
|
||||
"Set here the payable account that will be used, by default, if the partner "
|
||||
"is not found"
|
||||
msgstr ""
|
||||
"Indique aquí la cuenta a pagar que se utilizará por defecto, si no se "
|
||||
"encuentra la empresa."
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
msgid "Search Coda"
|
||||
msgstr "Buscar Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
#: field:account.coda,user_id:0
|
||||
msgid "User"
|
||||
msgstr "Usuario"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
#: field:account.coda,date:0
|
||||
msgid "Date"
|
||||
msgstr "Fecha"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.ui.menu,name:account_coda.menu_account_coda_statement
|
||||
msgid "Coda Import Logs"
|
||||
msgstr "Historial importación Code"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.model,name:account_coda.model_account_coda
|
||||
msgid "coda for an Account"
|
||||
msgstr "Coda para una cuenta"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda.import,def_payable:0
|
||||
msgid "Default Payable Account"
|
||||
msgstr "Cuenta a pagar por defecto"
|
||||
|
||||
#. module: account_coda
|
||||
#: help:account.coda,name:0
|
||||
msgid "Store the detail of bank statements"
|
||||
msgstr "Guarda el detalle de extractos bancarios."
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Open Statements"
|
||||
msgstr "Abrir extractos"
|
||||
|
||||
#. module: account_coda
|
||||
#: code:addons/account_coda/wizard/account_coda_import.py:167
|
||||
#, python-format
|
||||
msgid "The bank account %s is not defined for the partner %s.\n"
|
||||
msgstr "La cuenta bancaria %s no está definida para la empresa %s.\n"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.ui.menu,name:account_coda.menu_account_coda_import
|
||||
msgid "Import Coda Statements"
|
||||
msgstr "Importar extractos Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
#: model:ir.actions.act_window,name:account_coda.action_account_coda_import
|
||||
msgid "Import Coda Statement"
|
||||
msgstr "Importar extracto Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.module.module,description:account_coda.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
" Module provides functionality to import\n"
|
||||
" bank statements from coda files.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Módulo que proporciona la funcionalidad para importar\n"
|
||||
" extractos bancarios desde ficheros coda.\n"
|
||||
" "
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
msgid "Statements"
|
||||
msgstr "Extractos"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.bank.statement,coda_id:0
|
||||
msgid "Coda"
|
||||
msgstr "Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Results :"
|
||||
msgstr "Resultados :"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Result of Imported Coda Statements"
|
||||
msgstr "Resultado de los extractos Coda importados"
|
||||
|
||||
#. module: account_coda
|
||||
#: help:account.coda.import,def_receivable:0
|
||||
msgid ""
|
||||
"Set here the receivable account that will be used, by default, if the "
|
||||
"partner is not found"
|
||||
msgstr ""
|
||||
"Indique aquí la cuenta a cobrar que se utilizará por defecto, si no se "
|
||||
"encuentra la empresa."
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda.import,coda:0
|
||||
#: model:ir.actions.act_window,name:account_coda.act_account_payment_account_bank_statement
|
||||
msgid "Coda File"
|
||||
msgstr "Fichero Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.model,name:account_coda.model_account_bank_statement
|
||||
msgid "Bank Statement"
|
||||
msgstr "Extracto bancario"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.actions.act_window,name:account_coda.action_account_coda
|
||||
msgid "Coda Logs"
|
||||
msgstr "Historial Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: code:addons/account_coda/wizard/account_coda_import.py:311
|
||||
#, python-format
|
||||
msgid "Result"
|
||||
msgstr "Resultado"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Click on 'New' to select your file :"
|
||||
msgstr "Haga clic en 'Nuevo' para seleccionar su fichero :"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda.import,def_receivable:0
|
||||
msgid "Default Receivable Account"
|
||||
msgstr "Cuenta a cobrar por defecto"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Close"
|
||||
msgstr "Cerrar"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,statement_ids:0
|
||||
msgid "Generated Bank Statements"
|
||||
msgstr "Extractos bancarios generados"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.module.module,shortdesc:account_coda.module_meta_information
|
||||
msgid "Account CODA - import bank statements from coda file"
|
||||
msgstr "Contabilidad CODA - importa extractos bancarios desde fichero Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Configure Your Journal and Account :"
|
||||
msgstr "Configure su diario y cuenta :"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
msgid "Coda Import"
|
||||
msgstr "Importación Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
#: field:account.coda,journal_id:0
|
||||
msgid "Journal"
|
||||
msgstr "Diario"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "The Object name must start with x_ and not contain any special character !"
|
||||
#~ msgstr ""
|
||||
#~ "¡El objeto debe empezar con x_ y no puede contener ningún carácter especial!"
|
||||
|
||||
#~ msgid "Invalid model name in the action definition."
|
||||
#~ msgstr "Nombre de modelo inválido en la definición de acción."
|
||||
|
||||
#~ msgid "Invalid XML for View Architecture!"
|
||||
#~ msgstr "¡XML inválido para la estructura de la vista!"
|
||||
|
||||
#~ msgid "Default receivable Account"
|
||||
#~ msgstr "Cuenta a recibir por defecto"
|
||||
|
||||
#~ msgid "_Close"
|
||||
#~ msgstr "_Cerrar"
|
||||
|
||||
#~ msgid "Generated Bank Statement"
|
||||
#~ msgstr "Extracto bancario generado"
|
||||
|
||||
#~ msgid "_Ok"
|
||||
#~ msgstr "_Aceptar"
|
||||
|
||||
#~ msgid "Select your bank journal :"
|
||||
#~ msgstr "Seleccione su diario bancario :"
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,296 +0,0 @@
|
||||
# Spanish translation for openobject-addons
|
||||
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2011-08-30 17:18+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:45+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
|
||||
#. module: account_coda
|
||||
#: help:account.coda,journal_id:0
|
||||
#: field:account.coda.import,journal_id:0
|
||||
msgid "Bank Journal"
|
||||
msgstr "Diario bancario"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
#: field:account.coda.import,note:0
|
||||
msgid "Log"
|
||||
msgstr "Registro"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.model,name:account_coda.model_account_coda_import
|
||||
msgid "Account Coda Import"
|
||||
msgstr "Contabilidad Importación Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,name:0
|
||||
msgid "Coda file"
|
||||
msgstr "Fichero Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
msgid "Group By..."
|
||||
msgstr "Agrupar por..."
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda.import,awaiting_account:0
|
||||
msgid "Default Account for Unrecognized Movement"
|
||||
msgstr "Cuenta por defecto para movimientos no reconocidos"
|
||||
|
||||
#. module: account_coda
|
||||
#: help:account.coda,date:0
|
||||
msgid "Import Date"
|
||||
msgstr "Fecha de importación"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,note:0
|
||||
msgid "Import log"
|
||||
msgstr "Registro de importación"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Import"
|
||||
msgstr "Importar"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
msgid "Coda import"
|
||||
msgstr "Importar Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: code:addons/account_coda/account_coda.py:51
|
||||
#, python-format
|
||||
msgid "Coda file not found for bank statement !!"
|
||||
msgstr "¡No se ha encontrado el archivo Coda para el extracto bancario!"
|
||||
|
||||
#. module: account_coda
|
||||
#: help:account.coda.import,awaiting_account:0
|
||||
msgid ""
|
||||
"Set here the default account that will be used, if the partner is found but "
|
||||
"does not have the bank account, or if he is domiciled"
|
||||
msgstr ""
|
||||
"Indique aquí la cuenta por defecto que se utilizará, si se encuentra la "
|
||||
"empresa pero no tiene la cuenta bancaria, o si está domiciliado."
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
#: field:account.coda,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Compañía"
|
||||
|
||||
#. module: account_coda
|
||||
#: help:account.coda.import,def_payable:0
|
||||
msgid ""
|
||||
"Set here the payable account that will be used, by default, if the partner "
|
||||
"is not found"
|
||||
msgstr ""
|
||||
"Indique aquí la cuenta a pagar que se utilizará por defecto, si no se "
|
||||
"encuentra la empresa."
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
msgid "Search Coda"
|
||||
msgstr "Buscar Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
#: field:account.coda,user_id:0
|
||||
msgid "User"
|
||||
msgstr "Usuario"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
#: field:account.coda,date:0
|
||||
msgid "Date"
|
||||
msgstr "Fecha"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.ui.menu,name:account_coda.menu_account_coda_statement
|
||||
msgid "Coda Import Logs"
|
||||
msgstr "Historial importación Code"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.model,name:account_coda.model_account_coda
|
||||
msgid "coda for an Account"
|
||||
msgstr "Coda para una cuenta"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda.import,def_payable:0
|
||||
msgid "Default Payable Account"
|
||||
msgstr "Cuenta a pagar por defecto"
|
||||
|
||||
#. module: account_coda
|
||||
#: help:account.coda,name:0
|
||||
msgid "Store the detail of bank statements"
|
||||
msgstr "Guarda el detalle de extractos bancarios."
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Open Statements"
|
||||
msgstr "Abrir extractos"
|
||||
|
||||
#. module: account_coda
|
||||
#: code:addons/account_coda/wizard/account_coda_import.py:167
|
||||
#, python-format
|
||||
msgid "The bank account %s is not defined for the partner %s.\n"
|
||||
msgstr "La cuenta bancaria %s no está definida para la empresa %s.\n"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.ui.menu,name:account_coda.menu_account_coda_import
|
||||
msgid "Import Coda Statements"
|
||||
msgstr "Importar extractos Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
#: model:ir.actions.act_window,name:account_coda.action_account_coda_import
|
||||
msgid "Import Coda Statement"
|
||||
msgstr "Importar extracto Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.module.module,description:account_coda.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
" Module provides functionality to import\n"
|
||||
" bank statements from coda files.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Módulo que proporciona la funcionalidad para importar\n"
|
||||
" extractos bancarios desde ficheros coda.\n"
|
||||
" "
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
msgid "Statements"
|
||||
msgstr "Extractos"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.bank.statement,coda_id:0
|
||||
msgid "Coda"
|
||||
msgstr "Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Results :"
|
||||
msgstr "Resultados :"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Result of Imported Coda Statements"
|
||||
msgstr "Resultado de los extractos Coda importados"
|
||||
|
||||
#. module: account_coda
|
||||
#: help:account.coda.import,def_receivable:0
|
||||
msgid ""
|
||||
"Set here the receivable account that will be used, by default, if the "
|
||||
"partner is not found"
|
||||
msgstr ""
|
||||
"Indique aquí la cuenta a cobrar que se utilizará por defecto, si no se "
|
||||
"encuentra la empresa."
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda.import,coda:0
|
||||
#: model:ir.actions.act_window,name:account_coda.act_account_payment_account_bank_statement
|
||||
msgid "Coda File"
|
||||
msgstr "Fichero Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.model,name:account_coda.model_account_bank_statement
|
||||
msgid "Bank Statement"
|
||||
msgstr "Extracto bancario"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.actions.act_window,name:account_coda.action_account_coda
|
||||
msgid "Coda Logs"
|
||||
msgstr "Historial Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: code:addons/account_coda/wizard/account_coda_import.py:311
|
||||
#, python-format
|
||||
msgid "Result"
|
||||
msgstr "Resultado"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Click on 'New' to select your file :"
|
||||
msgstr "Haga clic en 'Nuevo' para seleccionar su fichero :"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda.import,def_receivable:0
|
||||
msgid "Default Receivable Account"
|
||||
msgstr "Cuenta a cobrar por defecto"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Close"
|
||||
msgstr "Cerrar"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,statement_ids:0
|
||||
msgid "Generated Bank Statements"
|
||||
msgstr "Extractos bancarios generados"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.module.module,shortdesc:account_coda.module_meta_information
|
||||
msgid "Account CODA - import bank statements from coda file"
|
||||
msgstr "Contabilidad CODA - importa extractos bancarios desde fichero Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Configure Your Journal and Account :"
|
||||
msgstr "Configure su diario y cuenta :"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
msgid "Coda Import"
|
||||
msgstr "Importación Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
#: field:account.coda,journal_id:0
|
||||
msgid "Journal"
|
||||
msgstr "Diario"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "The Object name must start with x_ and not contain any special character !"
|
||||
#~ msgstr ""
|
||||
#~ "¡El objeto debe empezar con x_ y no puede contener ningún carácter especial!"
|
||||
|
||||
#~ msgid "Invalid model name in the action definition."
|
||||
#~ msgstr "Nombre de modelo inválido en la definición de acción."
|
||||
|
||||
#~ msgid "Invalid XML for View Architecture!"
|
||||
#~ msgstr "¡XML inválido para la estructura de la vista!"
|
||||
|
||||
#~ msgid "Default receivable Account"
|
||||
#~ msgstr "Cuenta a recibir por defecto"
|
||||
|
||||
#~ msgid "_Close"
|
||||
#~ msgstr "_Cerrar"
|
||||
|
||||
#~ msgid "Generated Bank Statement"
|
||||
#~ msgstr "Extracto bancario generado"
|
||||
|
||||
#~ msgid "_Ok"
|
||||
#~ msgstr "_Aceptar"
|
||||
|
||||
#~ msgid "Select your bank journal :"
|
||||
#~ msgstr "Seleccione su diario bancario :"
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,12 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
|
||||
|
||||
from openerp.osv import osv, fields
|
||||
|
||||
class account_bank_statement(osv.osv):
|
||||
_inherit = 'account.bank.statement'
|
||||
_columns = {
|
||||
'coda_note': fields.text('CODA Notes'),
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
|
||||
<!-- invoice with BBA -->
|
||||
<!-- TODO: Put in YML for onchange to work?-->
|
||||
<!--<record id="coda_demo_invoice_1" model="account.invoice">
|
||||
<field name="currency_id" ref="base.EUR"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="date" eval="'2011-01-01'"/>
|
||||
<field name="state">draft</field>
|
||||
<field name="type">out_invoice</field>
|
||||
<field name="partner_id" ref="base.res_partner_9"/>
|
||||
<field name="reference_type">bba</field>
|
||||
<field name="reference">+++240/2838/42818+++</field>
|
||||
<field name="date_invoice">2011-01-20</field>
|
||||
</record>
|
||||
<record id="invoice_1_line_1" model="account.invoice.line">
|
||||
<field name="name">Dell Inspiron Laptop without OS</field>
|
||||
<field name="product_id" ref="product.product_product_49"/>
|
||||
<field name="invoice_id" ref="coda_demo_invoice_1"/>
|
||||
<field name="price_unit">608.89</field>
|
||||
<field name="quantity">10</field>
|
||||
</record>
|
||||
<workflow action="invoice_open" model="account.invoice" ref="coda_demo_invoice_1"/>-->
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,89 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_bank_statement_coda_form" model="ir.ui.view">
|
||||
<field name="name">account.bank.statement.coda.form</field>
|
||||
<field name="model">account.bank.statement</field>
|
||||
<field name="inherit_id" ref="account.view_bank_statement_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<page name="statement_line_ids" position="after">
|
||||
<page string="CODA Notes" name="coda_note" groups="base.group_no_one">
|
||||
<field name="coda_note"/>
|
||||
</page>
|
||||
</page>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_bank_statement_line_coda_form" model="ir.ui.view">
|
||||
<field name="name">bank.statement.line.coda.form</field>
|
||||
<field name="model">account.bank.statement.line</field>
|
||||
<field name="priority">10</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="CODA Statement Line" create="false">
|
||||
<group col="4">
|
||||
<field name="statement_id"/>
|
||||
<field name="date"/>
|
||||
<field name="name"/>
|
||||
<field name="ref" readonly="0"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="amount"/>
|
||||
<field name="sequence" readonly="0"/>
|
||||
</group>
|
||||
<separator string="Notes"/>
|
||||
<field name="note"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_account_bank_statement_line_coda_tree" model="ir.ui.view">
|
||||
<field name="name">account.bank.statement.line.coda.tree</field>
|
||||
<field name="model">account.bank.statement.line</field>
|
||||
<field name="priority">10</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="bottom" string="Statement lines" create="0" decoration-info="not journal_entry_ids">
|
||||
<field name="sequence" readonly="1" invisible="1"/>
|
||||
<field name="journal_entry_ids" invisible="1"/>
|
||||
<field name="statement_id" readonly="1" />
|
||||
<field name="date"/>
|
||||
<field name="name"/>
|
||||
<field name="ref"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="amount"/>
|
||||
<field name="note"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_bank_statement_line_coda_filter" model="ir.ui.view">
|
||||
<field name="name">bank.statement.line.coda.filter</field>
|
||||
<field name="model">account.bank.statement.line</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Bank Transactions">
|
||||
<field name="name" filter_domain="['|', ('name','ilike',self), ('ref','ilike',self)]" string="Bank Transaction"/>
|
||||
<filter name="debit" string="Debit" domain="[('amount','>',0)]" help="Debit Transactions."/>
|
||||
<filter name="credit" string="Credit" domain="[('amount','<',0)]" help="Credit Transactions."/>
|
||||
<field name="statement_id"/>
|
||||
<group expand="0" string="Extended Filters...">
|
||||
<field name="partner_id"/>
|
||||
<field name="amount"/>
|
||||
<field name="note"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group string="Group By" expand="0">
|
||||
<filter string="Partner" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Statement" context="{'group_by':'statement_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_account_bank_statement_line_coda" model="ir.actions.act_window">
|
||||
<field name="name">Bank Statement Lines</field>
|
||||
<field name="res_model">account.bank.statement.line</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{'block_statement_line_delete' : 1}</field>
|
||||
<field name="search_view_id" ref="view_bank_statement_line_coda_filter"/>
|
||||
<field name="view_id" ref="view_account_bank_statement_line_coda_tree"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 6.2 KiB |
@@ -1,24 +0,0 @@
|
||||
0000011011172505 00178299 DE MEYER LUC KREDBEBB 00820512013 00000 2
|
||||
12135BE33737018595246 EUR0000000011812700270710NOVIAT NV KBC-Business Comfortrekening 003
|
||||
2100010000OL44483FW SCTOFBIONLO1000000000435000110111001010000MEDEDELING 11011113501 0
|
||||
2200010000 GKCCBEBB 1 0
|
||||
2300010000BE41063012345610 PARTNER 1 0 1
|
||||
3100010001OL44483FW SCTOFBIONLO001010001001PARTNER 1 0 0
|
||||
2100020000OL4414AC8BOVSOVSOVERS0000000003044450110111001500001101240283842818 11011113501 0
|
||||
2200020000 BBRUBEBB 1 0
|
||||
2300020000BE61310126985517 PARTNER 2 0 1
|
||||
3100020001OL4414AC8BOVSOVSOVERS001500001001PARTNER 2 1 0
|
||||
3200020001MOLENSTRAAT 60 9340 LEDE 0 0
|
||||
2100030000AFECA0BIS IKLINNINBIS1000000000479040110111313410000 KBC-INVESTERINGSKREDIET 737-6543210-21 11011113510 0
|
||||
2100030001AFECA0BIS IKLINNINBIS1000000000419920110111813410660 11011113500 0
|
||||
2100030002AFECA0BIS IKLINNINBIS1000000000059120110111813410020 11011113510 0
|
||||
2100040000AFECA0CVA IKLINNINNIG1000000000479040110111313410000 KBC-INVESTERINGSKREDIET 737-6543210-21 11011113510 0
|
||||
2100040001AFECA0CVA IKLINNINNIG1000000000419920110111813410660 11011113500 0
|
||||
2100040002AFECA0CVA IKLINNINNIG1000000000059120110111813410020 11011113510 0
|
||||
2100050000AOGM00160BSCTOBOGOVER0000000000063740110111001500000TERUGGAVE 37232481 8400083296 . 11011113501 0
|
||||
2200050000 362/363 KREDBEBB 1 0
|
||||
2300050000BE43730004200601 KBC VERZEKERINGEN NV 0 1
|
||||
3100050001AOGM00160BSCTOBOGOVER001500001001KBC VERZEKERINGEN NV 1 0
|
||||
3200050001VAN OVERSTRAETENPLEIN 2 3000 LEUVEN 0 0
|
||||
8135BE44734024486445 EUR0000000013646050110111 0
|
||||
9 000022000000001393080000000003108190 2
|
||||
@@ -1,46 +0,0 @@
|
||||
from openerp.tests.common import TransactionCase
|
||||
from openerp.modules.module import get_module_resource
|
||||
from openerp.tools import float_compare
|
||||
|
||||
|
||||
class TestCodaFile(TransactionCase):
|
||||
"""Tests for import bank statement coda file format (account.bank.statement.import)
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(TestCodaFile, self).setUp()
|
||||
cr, uid = self.cr, self.uid
|
||||
self.statement_import_model = self.registry('account.bank.statement.import')
|
||||
self.bank_statement_model = self.registry('account.bank.statement')
|
||||
coda_file_path = get_module_resource('l10n_be_coda', 'test_coda_file', 'Ontvangen_CODA.2013-01-11-18.59.15.txt')
|
||||
self.coda_file = open(coda_file_path, 'rb').read().encode('base64')
|
||||
self.context = {
|
||||
'journal_id': self.registry('ir.model.data').get_object_reference(cr, uid, 'account', 'bank_journal')[1]
|
||||
}
|
||||
self.bank_statement_id = self.statement_import_model.create(cr, uid, dict(
|
||||
data_file=self.coda_file,
|
||||
))
|
||||
|
||||
def test_coda_file_import(self):
|
||||
cr, uid = self.cr, self.uid
|
||||
self.statement_import_model.import_file(cr, uid, [self.bank_statement_id], context=self.context)
|
||||
statement_id = self.bank_statement_model.search(cr, uid, [('name', '=', '135')])[0]
|
||||
bank_st_record = self.bank_statement_model.browse(cr, uid, statement_id)
|
||||
self.assertEqual(float_compare(bank_st_record.balance_start, 11812.70, precision_digits=2), 0)
|
||||
self.assertEqual(float_compare(bank_st_record.balance_end_real, 13646.05, precision_digits=2), 0)
|
||||
|
||||
def test_coda_file_import_twice(self):
|
||||
cr, uid = self.cr, self.uid
|
||||
self.statement_import_model.import_file(cr, uid, [self.bank_statement_id], context=self.context)
|
||||
with self.assertRaises(Exception):
|
||||
self.statement_import_model.import_file(cr, uid, [self.bank_statement_id], context=self.context)
|
||||
|
||||
def test_coda_file_wrong_journal(self):
|
||||
""" The demo account used by the CODA file is linked to the demo bank_journal """
|
||||
cr, uid = self.cr, self.uid
|
||||
bank_statement_id = self.statement_import_model.create(cr, uid, dict(
|
||||
data_file=self.coda_file,
|
||||
))
|
||||
self.context['journal_id'] = self.registry('ir.model.data').get_object_reference(cr, uid, 'l10n_be', 'miscellaneous_journal')[1]
|
||||
with self.assertRaises(Exception):
|
||||
self.statement_import_model.import_file(cr, uid, [bank_statement_id], context=self.context)
|
||||
@@ -1,6 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
|
||||
|
||||
import account_coda_import
|
||||
@@ -1,232 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
# Copyright (c) 2012 Noviat nv/sa (www.noviat.be). All rights reserved.
|
||||
|
||||
import time
|
||||
import re
|
||||
|
||||
from openerp import models, tools, _
|
||||
from openerp.exceptions import UserError
|
||||
|
||||
class AccountBankStatementImport(models.TransientModel):
|
||||
_inherit = 'account.bank.statement.import'
|
||||
|
||||
def _check_coda(self, data_file):
|
||||
# Matches the first 24 characters of a CODA file, as defined by the febelfin specifications
|
||||
return re.match('0{5}\d{9}05[ D] +', data_file) != None
|
||||
|
||||
def _parse_file(self, data_file):
|
||||
if not self._check_coda(data_file):
|
||||
return super(AccountBankStatementImport, self)._parse_file(data_file)
|
||||
|
||||
def rmspaces(s):
|
||||
return " ".join(s.split())
|
||||
|
||||
recordlist = unicode(data_file, 'windows-1252', 'strict').split('\n')
|
||||
statements = []
|
||||
globalisation_comm = {}
|
||||
for line in recordlist:
|
||||
if not line:
|
||||
pass
|
||||
elif line[0] == '0':
|
||||
#Begin of a new Bank statement
|
||||
statement = {}
|
||||
statements.append(statement)
|
||||
statement['version'] = line[127]
|
||||
if statement['version'] not in ['1', '2']:
|
||||
raise UserError(_('Error') + ' R001: ' + _('CODA V%s statements are not supported, please contact your bank') % statement['version'])
|
||||
statement['globalisation_stack'] = []
|
||||
statement['lines'] = []
|
||||
statement['date'] = time.strftime(tools.DEFAULT_SERVER_DATE_FORMAT, time.strptime(rmspaces(line[5:11]), '%d%m%y'))
|
||||
statement['separateApplication'] = rmspaces(line[83:88])
|
||||
elif line[0] == '1':
|
||||
#Statement details
|
||||
if statement['version'] == '1':
|
||||
statement['acc_number'] = rmspaces(line[5:17])
|
||||
statement['currency'] = rmspaces(line[18:21])
|
||||
elif statement['version'] == '2':
|
||||
if line[1] == '0': # Belgian bank account BBAN structure
|
||||
statement['acc_number'] = rmspaces(line[5:17])
|
||||
statement['currency'] = rmspaces(line[18:21])
|
||||
elif line[1] == '1': # foreign bank account BBAN structure
|
||||
raise UserError(_('Error') + ' R1001: ' + _('Foreign bank accounts with BBAN structure are not supported '))
|
||||
elif line[1] == '2': # Belgian bank account IBAN structure
|
||||
statement['acc_number'] = rmspaces(line[5:21])
|
||||
statement['currency'] = rmspaces(line[39:42])
|
||||
elif line[1] == '3': # foreign bank account IBAN structure
|
||||
raise UserError(_('Error') + ' R1002: ' + _('Foreign bank accounts with IBAN structure are not supported '))
|
||||
else: # Something else, not supported
|
||||
raise UserError(_('Error') + ' R1003: ' + _('Unsupported bank account structure '))
|
||||
statement['description'] = rmspaces(line[90:125])
|
||||
statement['balance_start'] = float(rmspaces(line[43:58])) / 1000
|
||||
if line[42] == '1': # 1 = Debit, the starting balance is negative
|
||||
statement['balance_start'] = - statement['balance_start']
|
||||
statement['balance_start_date'] = time.strftime(tools.DEFAULT_SERVER_DATE_FORMAT, time.strptime(rmspaces(line[58:64]), '%d%m%y'))
|
||||
statement['accountHolder'] = rmspaces(line[64:90])
|
||||
statement['paperSeqNumber'] = rmspaces(line[2:5])
|
||||
statement['codaSeqNumber'] = rmspaces(line[125:128])
|
||||
elif line[0] == '2':
|
||||
if line[1] == '1':
|
||||
#New statement line
|
||||
statementLine = {}
|
||||
statementLine['ref'] = rmspaces(line[2:10])
|
||||
statementLine['ref_move'] = rmspaces(line[2:6])
|
||||
statementLine['ref_move_detail'] = rmspaces(line[6:10])
|
||||
statementLine['sequence'] = len(statement['lines']) + 1
|
||||
statementLine['transactionRef'] = rmspaces(line[10:31])
|
||||
statementLine['debit'] = line[31] # 0 = Credit, 1 = Debit
|
||||
statementLine['amount'] = float(rmspaces(line[32:47])) / 1000
|
||||
if statementLine['debit'] == '1':
|
||||
statementLine['amount'] = - statementLine['amount']
|
||||
statementLine['transactionDate'] = time.strftime(tools.DEFAULT_SERVER_DATE_FORMAT, time.strptime(rmspaces(line[47:53]), '%d%m%y'))
|
||||
statementLine['transaction_family'] = rmspaces(line[54:56])
|
||||
statementLine['transaction_code'] = rmspaces(line[56:58])
|
||||
statementLine['transaction_category'] = rmspaces(line[58:61])
|
||||
if line[61] == '1':
|
||||
#Structured communication
|
||||
statementLine['communication_struct'] = True
|
||||
statementLine['communication_type'] = line[62:65]
|
||||
statementLine['communication'] = '+++' + line[65:68] + '/' + line[68:72] + '/' + line[72:77] + '+++'
|
||||
else:
|
||||
#Non-structured communication
|
||||
statementLine['communication_struct'] = False
|
||||
statementLine['communication'] = rmspaces(line[62:115])
|
||||
statementLine['entryDate'] = time.strftime(tools.DEFAULT_SERVER_DATE_FORMAT, time.strptime(rmspaces(line[115:121]), '%d%m%y'))
|
||||
statementLine['type'] = 'normal'
|
||||
statementLine['globalisation'] = int(line[124])
|
||||
if statementLine['globalisation'] > 0:
|
||||
if statementLine['globalisation'] in statement['globalisation_stack']:
|
||||
statement['globalisation_stack'].remove(statementLine['globalisation'])
|
||||
else:
|
||||
statementLine['type'] = 'globalisation'
|
||||
statement['globalisation_stack'].append(statementLine['globalisation'])
|
||||
globalisation_comm[statementLine['ref_move']] = statementLine['communication']
|
||||
if not statementLine.get('communication'):
|
||||
statementLine['communication'] = globalisation_comm.get(statementLine['ref_move'], '')
|
||||
statement['lines'].append(statementLine)
|
||||
elif line[1] == '2':
|
||||
if statement['lines'][-1]['ref'][0:4] != line[2:6]:
|
||||
raise UserError(_('Error') + 'R2004: ' + _('CODA parsing error on movement data record 2.2, seq nr %s! Please report this issue via your Odoo support channel.') % line[2:10])
|
||||
statement['lines'][-1]['communication'] += rmspaces(line[10:63])
|
||||
statement['lines'][-1]['payment_reference'] = rmspaces(line[63:98])
|
||||
statement['lines'][-1]['counterparty_bic'] = rmspaces(line[98:109])
|
||||
elif line[1] == '3':
|
||||
if statement['lines'][-1]['ref'][0:4] != line[2:6]:
|
||||
raise UserError(_('Error') + 'R2005: ' + _('CODA parsing error on movement data record 2.3, seq nr %s! Please report this issue via your Odoo support channel.') % line[2:10])
|
||||
if statement['version'] == '1':
|
||||
statement['lines'][-1]['counterpartyNumber'] = rmspaces(line[10:22])
|
||||
statement['lines'][-1]['counterpartyName'] = rmspaces(line[47:73])
|
||||
statement['lines'][-1]['counterpartyAddress'] = rmspaces(line[73:125])
|
||||
statement['lines'][-1]['counterpartyCurrency'] = ''
|
||||
else:
|
||||
if line[22] == ' ':
|
||||
statement['lines'][-1]['counterpartyNumber'] = rmspaces(line[10:22])
|
||||
statement['lines'][-1]['counterpartyCurrency'] = rmspaces(line[23:26])
|
||||
else:
|
||||
statement['lines'][-1]['counterpartyNumber'] = rmspaces(line[10:44])
|
||||
statement['lines'][-1]['counterpartyCurrency'] = rmspaces(line[44:47])
|
||||
statement['lines'][-1]['counterpartyName'] = rmspaces(line[47:82])
|
||||
statement['lines'][-1]['communication'] += rmspaces(line[82:125])
|
||||
else:
|
||||
# movement data record 2.x (x != 1,2,3)
|
||||
raise UserError(_('Error') + 'R2006: ' + _('\nMovement data records of type 2.%s are not supported ') % line[1])
|
||||
elif line[0] == '3':
|
||||
if line[1] == '1':
|
||||
infoLine = {}
|
||||
infoLine['entryDate'] = statement['lines'][-1]['entryDate']
|
||||
infoLine['type'] = 'information'
|
||||
infoLine['sequence'] = len(statement['lines']) + 1
|
||||
infoLine['ref'] = rmspaces(line[2:10])
|
||||
infoLine['transactionRef'] = rmspaces(line[10:31])
|
||||
infoLine['transaction_family'] = rmspaces(line[32:34])
|
||||
infoLine['transaction_code'] = rmspaces(line[34:36])
|
||||
infoLine['transaction_category'] = rmspaces(line[36:39])
|
||||
infoLine['communication'] = rmspaces(line[40:113])
|
||||
statement['lines'].append(infoLine)
|
||||
elif line[1] == '2':
|
||||
if infoLine['ref'] != rmspaces(line[2:10]):
|
||||
raise UserError(_('Error') + 'R3004: ' + _('CODA parsing error on information data record 3.2, seq nr %s! Please report this issue via your Odoo support channel.') % line[2:10])
|
||||
statement['lines'][-1]['communication'] += rmspaces(line[10:100])
|
||||
elif line[1] == '3':
|
||||
if infoLine['ref'] != rmspaces(line[2:10]):
|
||||
raise UserError(_('Error') + 'R3005: ' + _('CODA parsing error on information data record 3.3, seq nr %s! Please report this issue via your Odoo support channel.') % line[2:10])
|
||||
statement['lines'][-1]['communication'] += rmspaces(line[10:100])
|
||||
elif line[0] == '4':
|
||||
comm_line = {}
|
||||
comm_line['type'] = 'communication'
|
||||
comm_line['sequence'] = len(statement['lines']) + 1
|
||||
comm_line['ref'] = rmspaces(line[2:10])
|
||||
comm_line['communication'] = rmspaces(line[32:112])
|
||||
statement['lines'].append(comm_line)
|
||||
elif line[0] == '8':
|
||||
# new balance record
|
||||
statement['debit'] = line[41]
|
||||
statement['paperSeqNumber'] = rmspaces(line[1:4])
|
||||
statement['balance_end_real'] = float(rmspaces(line[42:57])) / 1000
|
||||
statement['balance_end_realDate'] = time.strftime(tools.DEFAULT_SERVER_DATE_FORMAT, time.strptime(rmspaces(line[57:63]), '%d%m%y'))
|
||||
if statement['debit'] == '1': # 1=Debit
|
||||
statement['balance_end_real'] = - statement['balance_end_real']
|
||||
elif line[0] == '9':
|
||||
statement['balanceMin'] = float(rmspaces(line[22:37])) / 1000
|
||||
statement['balancePlus'] = float(rmspaces(line[37:52])) / 1000
|
||||
if not statement.get('balance_end_real'):
|
||||
statement['balance_end_real'] = statement['balance_start'] + statement['balancePlus'] - statement['balanceMin']
|
||||
ret_statements = []
|
||||
for i, statement in enumerate(statements):
|
||||
statement['coda_note'] = ''
|
||||
statement_line = []
|
||||
statement_data = {
|
||||
'name': statement['paperSeqNumber'],
|
||||
'date': statement['date'],
|
||||
'balance_start': statement['balance_start'],
|
||||
'balance_end_real': statement['balance_end_real'],
|
||||
}
|
||||
for line in statement['lines']:
|
||||
if line['type'] == 'information':
|
||||
statement['coda_note'] = "\n".join([statement['coda_note'], line['type'].title() + ' with Ref. ' + str(line['ref']), 'Date: ' + str(line['entryDate']), 'Communication: ' + line['communication'], ''])
|
||||
elif line['type'] == 'communication':
|
||||
statement['coda_note'] = "\n".join([statement['coda_note'], line['type'].title() + ' with Ref. ' + str(line['ref']), 'Ref: ', 'Communication: ' + line['communication'], ''])
|
||||
elif line['type'] == 'normal':
|
||||
note = []
|
||||
if line.get('counterpartyName'):
|
||||
note.append(_('Counter Party') + ': ' + line['counterpartyName'])
|
||||
else:
|
||||
line['counterpartyName'] = False
|
||||
if line.get('counterpartyNumber'):
|
||||
try:
|
||||
if int(line['counterpartyNumber']) == 0:
|
||||
line['counterpartyNumber'] = False
|
||||
except:
|
||||
pass
|
||||
if line['counterpartyNumber']:
|
||||
note.append(_('Counter Party Account') + ': ' + line['counterpartyNumber'])
|
||||
else:
|
||||
line['counterpartyNumber'] = False
|
||||
|
||||
if line.get('counterpartyAddress'):
|
||||
note.append(_('Counter Party Address') + ': ' + line['counterpartyAddress'])
|
||||
structured_com = False
|
||||
if line['communication_struct'] and 'communication_type' in line and line['communication_type'] == '101':
|
||||
structured_com = line['communication']
|
||||
if line.get('communication', ''):
|
||||
note.append(_('Communication') + ': ' + line['communication'])
|
||||
line_data = {
|
||||
'name': structured_com or (line.get('communication', '') != '' and line['communication'] or '/'),
|
||||
'note': "\n".join(note),
|
||||
'date': line['entryDate'],
|
||||
'amount': line['amount'],
|
||||
'account_number': line.get('counterpartyNumber', None),
|
||||
'partner_name': line['counterpartyName'],
|
||||
'ref': line['ref'],
|
||||
'sequence': line['sequence'],
|
||||
'unique_import_id': str(statement['codaSeqNumber']) + '-' + str(statement['date']) + '-' + str(line['ref']),
|
||||
}
|
||||
statement_line.append(line_data)
|
||||
if statement['coda_note'] != '':
|
||||
statement_data.update({'coda_note': statement['coda_note']})
|
||||
statement_data.update({'transactions': statement_line})
|
||||
ret_statements.append(statement_data)
|
||||
currency_code = statement['currency']
|
||||
acc_number = statements[0] and statements[0]['acc_number'] or False
|
||||
return currency_code, acc_number, ret_statements
|
||||
Reference in New Issue
Block a user