Merge and migrate account_easy_reconcile and account_advanced_reconcile

pull/635/head
Matthieu Dietrich 2016-04-13 14:12:40 +02:00 committed by JasminSForgeFlow
parent dbfc63b229
commit 24536994b9
26 changed files with 4908 additions and 0 deletions

View File

@ -0,0 +1,85 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
==============
Mass Reconcile
==============
This is a shared work between Akretion and Camptocamp
in order to provide:
- reconciliation facilities for big volume of transactions
- setup different profiles of reconciliation by account
- each profile can use many methods of reconciliation
- this module is also a base to create others
reconciliation methods which can plug in the profiles
- a profile a reconciliation can be run manually
or by a cron
- monitoring of reconciliation runs with an history
which keep track of the reconciled Journal items
2 simple reconciliation methods are integrated
in this module, the simple reconciliations works
on 2 lines (1 debit / 1 credit) and do not allow
partial reconcilation, they also match on 1 key,
partner or Journal item name.
This module combines both the ``account_easy_reconcile``
and the``account_advanced_reconcile`` modules
from previous versions.
Usage
=====
Go to 'Invoicing/Periodic Processing/Reconciliation/Mass Automatic Reconcile' to start a
new mass reconcile.
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/98/8.0
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/bank-statement-reconcile/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.
Credits
=======
Contributors
------------
* Sébastien Beau <sebastien.beau@akretion.com>
* Guewen Baconnier <guewen.baconnier@camptocamp.com>
* Vincent Renaville <vincent.renaville@camptocamp.com>
* Alexandre Fayolle <alexandre.fayolle@camptocamp.com>
* Joël Grand-Guillaume <joel.grandguillaume@camptocamp.com>
* Nicolas Bessis <nicolas.bessi@camptocamp.com>
* Pedro M.Baeza <pedro.baeza@gmail.com>
* Matthieu Dietrich <matthieu.dietrich@camptocamp.com>
* Leonardo Pistone <leonardo.pistone@camptocamp.com>
* Ecino <ecino@compassion.ch>
* Yannick Vaucher <yannick.vaucher@camptocamp.com>
* Rudolf Schnapka <rs@techno-flex.de>
* Florian Dacosta <florian.dacosta@akretion.com>
* Laetitia Gangloff <laetitia.gangloff@acsone.eu>
* Frédéric Clémenti <frederic.clementi@camptocamp.com>
* Damien Crier <damien.crier@camptocamp.com>
Maintainer
----------
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
To contribute to this module, please visit https://odoo-community.org.

View File

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import models

View File

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
# © 2012-2016 Camptocamp SA (Guewen Baconnier, Damien Crier, Matthieu Dietrich)
# © 2010 Sébastien Beau
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Mass Reconcile",
"version": "9.0.1.0.0",
"depends": ["account", "account_full_reconcile"],
"author": "Akretion,Camptocamp,Odoo Community Association (OCA)",
"website": "http://www.akretion.com/",
"category": "Finance",
"data": ["views/mass_reconcile.xml",
"views/mass_reconcile_history_view.xml",
"security/ir_rule.xml",
"security/ir.model.access.csv",
"views/res_config_view.xml",
],
'license': 'AGPL-3',
"auto_install": False,
'installable': True,
}

View File

@ -0,0 +1,602 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_mass_reconcile
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-06-12 14:08+0000\n"
"PO-Revision-Date: 2015-06-12 14:08+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_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "7 Days"
msgstr ""
#. module: account_mass_reconcile
#: model:ir.actions.act_window,help:account_mass_reconcile.action_account_mass_reconcile
msgid "<p class=\"oe_view_nocontent_create\">\n"
" Click to add a reconciliation profile.\n"
" </p><p>\n"
" A reconciliation profile specifies, for one account, how\n"
" the entries should be reconciled.\n"
" You can select one or many reconciliation methods which will\n"
" be run sequentially to match the entries between them.\n"
" </p>\n"
" "
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,account:0
#: field:mass.reconcile.advanced,account_id:0
#: field:mass.reconcile.advanced.ref,account_id:0
#: field:mass.reconcile.base,account_id:0
#: field:mass.reconcile.simple,account_id:0
#: field:mass.reconcile.simple.name,account_id:0
#: field:mass.reconcile.simple.partner,account_id:0
#: field:mass.reconcile.simple.reference,account_id:0
msgid "Account"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,account_lost_id:0
#: field:mass.reconcile.advanced,account_lost_id:0
#: field:mass.reconcile.advanced.ref,account_lost_id:0
#: field:mass.reconcile.base,account_lost_id:0
#: field:mass.reconcile.options,account_lost_id:0
#: field:mass.reconcile.simple,account_lost_id:0
#: field:mass.reconcile.simple.name,account_lost_id:0
#: field:mass.reconcile.simple.partner,account_lost_id:0
#: field:mass.reconcile.simple.reference,account_lost_id:0
msgid "Account Lost"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,account_profit_id:0
#: field:mass.reconcile.advanced,account_profit_id:0
#: field:mass.reconcile.advanced.ref,account_profit_id:0
#: field:mass.reconcile.base,account_profit_id:0
#: field:mass.reconcile.options,account_profit_id:0
#: field:mass.reconcile.simple,account_profit_id:0
#: field:mass.reconcile.simple.name,account_profit_id:0
#: field:mass.reconcile.simple.partner,account_profit_id:0
#: field:mass.reconcile.simple.reference,account_profit_id:0
msgid "Account Profit"
msgstr ""
#. module: account_mass_reconcile
#: help:account.mass.reconcile.method,analytic_account_id:0
#: help:mass.reconcile.base,analytic_account_id:0
#: help:mass.reconcile.options,analytic_account_id:0
#: help:mass.reconcile.simple,analytic_account_id:0
#: help:mass.reconcile.simple.name,analytic_account_id:0
#: help:mass.reconcile.simple.partner,analytic_account_id:0
#: help:mass.reconcile.simple.reference,analytic_account_id:0
msgid "Analytic accountfor the write-off"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,analytic_account_id:0
#: field:mass.reconcile.base,analytic_account_id:0
#: field:mass.reconcile.options,analytic_account_id:0
#: field:mass.reconcile.simple,analytic_account_id:0
#: field:mass.reconcile.simple.name,analytic_account_id:0
#: field:mass.reconcile.simple.partner,analytic_account_id:0
#: field:mass.reconcile.simple.reference,analytic_account_id:0
msgid "Analytic_account"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Automatic Mass Reconcile"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_tree
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Automatic Mass Reconcile History"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile.method:account_mass_reconcile.account_mass_reconcile_method_form
#: view:account.mass.reconcile.method:account_mass_reconcile.account_mass_reconcile_method_tree
msgid "Automatic Mass Reconcile Method"
msgstr ""
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_res_company
msgid "Companies"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,company_id:0
#: field:account.mass.reconcile.method,company_id:0
#: field:mass.reconcile.history,company_id:0
msgid "Company"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Configuration"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,create_uid:0
#: field:account.mass.reconcile.method,create_uid:0
#: field:mass.reconcile.history,create_uid:0
#: field:mass.reconcile.simple.name,create_uid:0
#: field:mass.reconcile.simple.partner,create_uid:0
#: field:mass.reconcile.simple.reference,create_uid:0
msgid "Created by"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,create_date:0
#: field:account.mass.reconcile.method,create_date:0
#: field:mass.reconcile.history,create_date:0
#: field:mass.reconcile.simple.name,create_date:0
#: field:mass.reconcile.simple.partner,create_date:0
#: field:mass.reconcile.simple.reference,create_date:0
msgid "Created on"
msgstr ""
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Date"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,date_base_on:0
#: field:mass.reconcile.advanced,date_base_on:0
#: field:mass.reconcile.advanced.ref,date_base_on:0
#: field:mass.reconcile.base,date_base_on:0
#: field:mass.reconcile.options,date_base_on:0
#: field:mass.reconcile.simple,date_base_on:0
#: field:mass.reconcile.simple.name,date_base_on:0
#: field:mass.reconcile.simple.partner,date_base_on:0
#: field:mass.reconcile.simple.reference,date_base_on:0
msgid "Date of reconciliation"
msgstr ""
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_last_post:0
msgid "Date of the last message posted on the record."
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Display items partially reconciled on the last run"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Display items reconciled on the last run"
msgstr ""
#. module: account_mass_reconcile
#: model:ir.actions.act_window,name:account_mass_reconcile.action_account_mass_reconcile
#: model:ir.ui.menu,name:account_mass_reconcile.menu_mass_reconcile
msgid "Mass Automatic Reconcile"
msgstr ""
#. module: account_mass_reconcile
#: model:ir.actions.act_window,name:account_mass_reconcile.action_mass_reconcile_history
msgid "Mass Automatic Reconcile History"
msgstr ""
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:329
#, python-format
msgid "Error"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,filter:0
#: field:mass.reconcile.advanced,filter:0
#: field:mass.reconcile.advanced.ref,filter:0
#: field:mass.reconcile.base,filter:0
#: field:mass.reconcile.options,filter:0
#: field:mass.reconcile.simple,filter:0
#: field:mass.reconcile.simple.name,filter:0
#: field:mass.reconcile.simple.partner,filter:0
#: field:mass.reconcile.simple.reference,filter:0
msgid "Filter"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_follower_ids:0
msgid "Followers"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,income_exchange_account_id:0
#: field:mass.reconcile.base,income_exchange_account_id:0
#: field:mass.reconcile.options,income_exchange_account_id:0
#: field:mass.reconcile.simple,income_exchange_account_id:0
#: field:mass.reconcile.simple.name,income_exchange_account_id:0
#: field:mass.reconcile.simple.partner,income_exchange_account_id:0
#: field:mass.reconcile.simple.reference,income_exchange_account_id:0
msgid "Gain ExchangeRate Account"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Go to partial reconciled items"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_tree
msgid "Go to partially reconciled items"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_tree
msgid "Go to reconciled items"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Go to unreconciled items"
msgstr ""
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Group By..."
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: field:account.mass.reconcile,history_ids:0
msgid "History"
msgstr ""
#. module: account_mass_reconcile
#: model:ir.actions.act_window,name:account_mass_reconcile.act_mass_reconcile_to_history
msgid "History Details"
msgstr ""
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_summary:0
msgid "Holds the Chatter summary (number of messages, ...). This summary is directly in html format in order to be inserted in kanban views."
msgstr ""
#. module: account_mass_reconcile
#: field:res.company,reconciliation_commit_every:0
msgid "How often to commit when performing automaticreconciliation."
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,id:0
#: field:account.mass.reconcile.method,id:0
#: field:mass.reconcile.base,id:0
#: field:mass.reconcile.history,id:0
#: field:mass.reconcile.options,id:0
#: field:mass.reconcile.simple,id:0
#: field:mass.reconcile.simple.name,id:0
#: field:mass.reconcile.simple.partner,id:0
#: field:mass.reconcile.simple.reference,id:0
msgid "ID"
msgstr ""
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_unread:0
msgid "If checked new messages require your attention."
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Information"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_is_follower:0
msgid "Is a Follower"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,journal_id:0
#: field:mass.reconcile.advanced,journal_id:0
#: field:mass.reconcile.advanced.ref,journal_id:0
#: field:mass.reconcile.base,journal_id:0
#: field:mass.reconcile.options,journal_id:0
#: field:mass.reconcile.simple,journal_id:0
#: field:mass.reconcile.simple.name,journal_id:0
#: field:mass.reconcile.simple.partner,journal_id:0
#: field:mass.reconcile.simple.reference,journal_id:0
msgid "Journal"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_last_post:0
msgid "Last Message Date"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,write_uid:0
#: field:account.mass.reconcile.method,write_uid:0
#: field:mass.reconcile.history,write_uid:0
#: field:mass.reconcile.simple.name,write_uid:0
#: field:mass.reconcile.simple.partner,write_uid:0
#: field:mass.reconcile.simple.reference,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,write_date:0
#: field:account.mass.reconcile.method,write_date:0
#: field:mass.reconcile.history,write_date:0
#: field:mass.reconcile.simple.name,write_date:0
#: field:mass.reconcile.simple.partner,write_date:0
#: field:mass.reconcile.simple.reference,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: account_mass_reconcile
#: help:res.company,reconciliation_commit_every:0
msgid "Leave zero to commit only at the end of the process."
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,expense_exchange_account_id:0
#: field:mass.reconcile.base,expense_exchange_account_id:0
#: field:mass.reconcile.options,expense_exchange_account_id:0
#: field:mass.reconcile.simple,expense_exchange_account_id:0
#: field:mass.reconcile.simple.name,expense_exchange_account_id:0
#: field:mass.reconcile.simple.partner,expense_exchange_account_id:0
#: field:mass.reconcile.simple.reference,expense_exchange_account_id:0
msgid "Loss ExchangeRate Account"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Match one debit line vs one credit line. Do not allow partial reconciliation. The lines should have the same amount (with the write-off) and the same name to be reconciled."
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Match one debit line vs one credit line. Do not allow partial reconciliation. The lines should have the same amount (with the write-off) and the same partner to be reconciled."
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Match one debit line vs one credit line. Do not allow partial reconciliation. The lines should have the same amount (with the write-off) and the same reference to be reconciled."
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_ids:0
msgid "Messages"
msgstr ""
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_ids:0
msgid "Messages and communication history"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,reconcile_method:0
msgid "Method"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,name:0
msgid "Name"
msgstr ""
#. module: account_mass_reconcile
#: view:account.config.settings:account_mass_reconcile.view_account_config
msgid "Options"
msgstr ""
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile_history.py:108
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: field:mass.reconcile.history,reconcile_ids:0
#: field:mass.reconcile.history,reconcile_partial_ids:0
#, python-format
msgid "Partial Reconciliations"
msgstr ""
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:368
#, python-format
msgid "Partial reconciled items"
msgstr ""
#. module: account_mass_reconcile
#: field:mass.reconcile.history,partial_line_ids:0
msgid "Partially Reconciled Items"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Profile Information"
msgstr ""
#. module: account_mass_reconcile
#: field:mass.reconcile.history,mass_reconcile_id:0
msgid "Reconcile Profile"
msgstr ""
#. module: account_mass_reconcile
#: field:mass.reconcile.history,reconcile_line_ids:0
msgid "Reconciled Items"
msgstr ""
#. module: account_mass_reconcile
#: view:account.config.settings:account_mass_reconcile.view_account_config
msgid "Reconciliation"
msgstr ""
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Reconciliation Profile"
msgstr ""
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile_history.py:105
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#, python-format
msgid "Reconciliations"
msgstr ""
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Reconciliations of last 7 days"
msgstr ""
#. module: account_mass_reconcile
#: field:mass.reconcile.advanced,partner_ids:0
#: field:mass.reconcile.advanced.ref,partner_ids:0
#: field:mass.reconcile.base,partner_ids:0
#: field:mass.reconcile.simple,partner_ids:0
#: field:mass.reconcile.simple.name,partner_ids:0
#: field:mass.reconcile.simple.partner,partner_ids:0
#: field:mass.reconcile.simple.reference,partner_ids:0
msgid "Restrict on partners"
msgstr ""
#. module: account_mass_reconcile
#: field:mass.reconcile.history,date:0
msgid "Run date"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,sequence:0
msgid "Sequence"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Simple. Amount and Name"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Simple. Amount and Partner"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Simple. Amount and Reference"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Start Auto Reconcilation"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Start Auto Reconciliation"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_summary:0
msgid "Summary"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,task_id:0
msgid "Task"
msgstr ""
#. module: account_mass_reconcile
#: help:account.mass.reconcile.method,sequence:0
msgid "The sequence field is used to order the reconcile method"
msgstr ""
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:330
#, python-format
msgid "There is no history of reconciled items on the task: %s."
msgstr ""
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Today"
msgstr ""
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Todays' Reconcilations"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,name:0
msgid "Type"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_unread:0
msgid "Unread Messages"
msgstr ""
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:356
#, python-format
msgid "Unreconciled items"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,write_off:0
#: field:mass.reconcile.advanced,write_off:0
#: field:mass.reconcile.advanced.ref,write_off:0
#: field:mass.reconcile.base,write_off:0
#: field:mass.reconcile.options,write_off:0
#: field:mass.reconcile.simple,write_off:0
#: field:mass.reconcile.simple.name,write_off:0
#: field:mass.reconcile.simple.partner,write_off:0
#: field:mass.reconcile.simple.reference,write_off:0
msgid "Write off allowed"
msgstr ""
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_account_mass_reconcile
msgid "account mass reconcile"
msgstr ""
#. module: account_mass_reconcile
#: view:account.config.settings:account_mass_reconcile.view_account_config
msgid "eInvoicing & Payments"
msgstr ""
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_account_mass_reconcile_method
msgid "reconcile method for account_mass_reconcile"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:0
msgid "Match multiple debit vs multiple credit entries. Allow partial reconciliation. The lines should have the partner, the credit entry ref. is matched vs the debit entry ref. or name."
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:0
msgid "Advanced. Partner and Ref"
msgstr ""
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_mass_reconcile_advanced
msgid "mass.reconcile.advanced"
msgstr "mass.reconcile.advanced"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_mass_reconcile_advanced_ref
msgid "mass.reconcile.advanced.ref"
msgstr "mass.reconcile.advanced.ref"

View File

@ -0,0 +1,603 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_mass_reconcile
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: bank-statement-reconcile (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-11 12:09+0000\n"
"PO-Revision-Date: 2015-09-10 11:31+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: English (http://www.transifex.com/oca/OCA-bank-statement-reconcile-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_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "7 Days"
msgstr "7 Days"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,help:account_mass_reconcile.action_account_mass_reconcile
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to add a reconciliation profile.\n"
" </p><p>\n"
" A reconciliation profile specifies, for one account, how\n"
" the entries should be reconciled.\n"
" You can select one or many reconciliation methods which will\n"
" be run sequentially to match the entries between them.\n"
" </p>\n"
" "
msgstr "<p class=\"oe_view_nocontent_create\">\n Click to add a reconciliation profile.\n </p><p>\n A reconciliation profile specifies, for one account, how\n the entries should be reconciled.\n You can select one or many reconciliation methods which will\n be run sequentially to match the entries between them.\n </p>\n "
#. module: account_mass_reconcile
#: field:account.mass.reconcile,account:0
#: field:mass.reconcile.advanced,account_id:0
#: field:mass.reconcile.advanced.ref,account_id:0
#: field:mass.reconcile.base,account_id:0
#: field:mass.reconcile.simple,account_id:0
#: field:mass.reconcile.simple.name,account_id:0
#: field:mass.reconcile.simple.partner,account_id:0
#: field:mass.reconcile.simple.reference,account_id:0
msgid "Account"
msgstr "Account"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,account_lost_id:0
#: field:mass.reconcile.advanced,account_lost_id:0
#: field:mass.reconcile.advanced.ref,account_lost_id:0
#: field:mass.reconcile.base,account_lost_id:0
#: field:mass.reconcile.options,account_lost_id:0
#: field:mass.reconcile.simple,account_lost_id:0
#: field:mass.reconcile.simple.name,account_lost_id:0
#: field:mass.reconcile.simple.partner,account_lost_id:0
#: field:mass.reconcile.simple.reference,account_lost_id:0
msgid "Account Lost"
msgstr "Account Lost"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,account_profit_id:0
#: field:mass.reconcile.advanced,account_profit_id:0
#: field:mass.reconcile.advanced.ref,account_profit_id:0
#: field:mass.reconcile.base,account_profit_id:0
#: field:mass.reconcile.options,account_profit_id:0
#: field:mass.reconcile.simple,account_profit_id:0
#: field:mass.reconcile.simple.name,account_profit_id:0
#: field:mass.reconcile.simple.partner,account_profit_id:0
#: field:mass.reconcile.simple.reference,account_profit_id:0
msgid "Account Profit"
msgstr "Account Profit"
#. module: account_mass_reconcile
#: help:account.mass.reconcile.method,analytic_account_id:0
#: help:mass.reconcile.base,analytic_account_id:0
#: help:mass.reconcile.options,analytic_account_id:0
#: help:mass.reconcile.simple,analytic_account_id:0
#: help:mass.reconcile.simple.name,analytic_account_id:0
#: help:mass.reconcile.simple.partner,analytic_account_id:0
#: help:mass.reconcile.simple.reference,analytic_account_id:0
msgid "Analytic account for the write-off"
msgstr "Analytic account for the write-off"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,analytic_account_id:0
#: field:mass.reconcile.base,analytic_account_id:0
#: field:mass.reconcile.options,analytic_account_id:0
#: field:mass.reconcile.simple,analytic_account_id:0
#: field:mass.reconcile.simple.name,analytic_account_id:0
#: field:mass.reconcile.simple.partner,analytic_account_id:0
#: field:mass.reconcile.simple.reference,analytic_account_id:0
msgid "Analytic_account"
msgstr "Analytic_account"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Automatic Mass Reconcile"
msgstr "Automatic Mass Reconcile"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_tree
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Automatic Mass Reconcile History"
msgstr "Automatic Mass Reconcile History"
#. module: account_mass_reconcile
#: view:account.mass.reconcile.method:account_mass_reconcile.account_mass_reconcile_method_form
#: view:account.mass.reconcile.method:account_mass_reconcile.account_mass_reconcile_method_tree
msgid "Automatic Mass Reconcile Method"
msgstr "Automatic Mass Reconcile Method"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_res_company
msgid "Companies"
msgstr "Companies"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,company_id:0
#: field:account.mass.reconcile.method,company_id:0
#: field:mass.reconcile.history,company_id:0
msgid "Company"
msgstr "Company"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Configuration"
msgstr "Configuration"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,create_uid:0
#: field:account.mass.reconcile.method,create_uid:0
#: field:mass.reconcile.history,create_uid:0
#: field:mass.reconcile.simple.name,create_uid:0
#: field:mass.reconcile.simple.partner,create_uid:0
#: field:mass.reconcile.simple.reference,create_uid:0
msgid "Created by"
msgstr "Created by"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,create_date:0
#: field:account.mass.reconcile.method,create_date:0
#: field:mass.reconcile.history,create_date:0
#: field:mass.reconcile.simple.name,create_date:0
#: field:mass.reconcile.simple.partner,create_date:0
#: field:mass.reconcile.simple.reference,create_date:0
msgid "Created on"
msgstr "Created on"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Date"
msgstr "Date"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,date_base_on:0
#: field:mass.reconcile.advanced,date_base_on:0
#: field:mass.reconcile.advanced.ref,date_base_on:0
#: field:mass.reconcile.base,date_base_on:0
#: field:mass.reconcile.options,date_base_on:0
#: field:mass.reconcile.simple,date_base_on:0
#: field:mass.reconcile.simple.name,date_base_on:0
#: field:mass.reconcile.simple.partner,date_base_on:0
#: field:mass.reconcile.simple.reference,date_base_on:0
msgid "Date of reconciliation"
msgstr "Date of reconciliation"
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_last_post:0
msgid "Date of the last message posted on the record."
msgstr "Date of the last message posted on the record."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Display items partially reconciled on the last run"
msgstr "Display items partially reconciled on the last run"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Display items reconciled on the last run"
msgstr "Display items reconciled on the last run"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,name:account_mass_reconcile.action_account_mass_reconcile
#: model:ir.ui.menu,name:account_mass_reconcile.menu_mass_reconcile
msgid "Mass Automatic Reconcile"
msgstr "Mass Automatic Reconcile"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,name:account_mass_reconcile.action_mass_reconcile_history
msgid "Mass Automatic Reconcile History"
msgstr "Mass Automatic Reconcile History"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,filter:0
#: field:mass.reconcile.advanced,filter:0
#: field:mass.reconcile.advanced.ref,filter:0
#: field:mass.reconcile.base,filter:0
#: field:mass.reconcile.options,filter:0
#: field:mass.reconcile.simple,filter:0
#: field:mass.reconcile.simple.name,filter:0
#: field:mass.reconcile.simple.partner,filter:0
#: field:mass.reconcile.simple.reference,filter:0
msgid "Filter"
msgstr "Filter"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_follower_ids:0
msgid "Followers"
msgstr "Followers"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,income_exchange_account_id:0
#: field:mass.reconcile.base,income_exchange_account_id:0
#: field:mass.reconcile.options,income_exchange_account_id:0
#: field:mass.reconcile.simple,income_exchange_account_id:0
#: field:mass.reconcile.simple.name,income_exchange_account_id:0
#: field:mass.reconcile.simple.partner,income_exchange_account_id:0
#: field:mass.reconcile.simple.reference,income_exchange_account_id:0
msgid "Gain Exchange Rate Account"
msgstr "Gain Exchange Rate Account"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Go to partial reconciled items"
msgstr "Go to partial reconciled items"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_tree
msgid "Go to partially reconciled items"
msgstr "Go to partially reconciled items"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_tree
msgid "Go to reconciled items"
msgstr "Go to reconciled items"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Go to unreconciled items"
msgstr "Go to unreconciled items"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Group By..."
msgstr "Group By..."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: field:account.mass.reconcile,history_ids:0
msgid "History"
msgstr "History"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,name:account_mass_reconcile.act_mass_reconcile_to_history
msgid "History Details"
msgstr "History Details"
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_summary:0
msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr "Holds the Chatter summary (number of messages, ...). This summary is directly in html format in order to be inserted in kanban views."
#. module: account_mass_reconcile
#: field:res.company,reconciliation_commit_every:0
msgid "How often to commit when performing automatic reconciliation."
msgstr "How often to commit when performing automatic reconciliation."
#. module: account_mass_reconcile
#: field:account.mass.reconcile,id:0 field:account.mass.reconcile.method,id:0
#: field:mass.reconcile.base,id:0 field:mass.reconcile.history,id:0
#: field:mass.reconcile.options,id:0 field:mass.reconcile.simple,id:0
#: field:mass.reconcile.simple.name,id:0
#: field:mass.reconcile.simple.partner,id:0
#: field:mass.reconcile.simple.reference,id:0
msgid "ID"
msgstr "ID"
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_unread:0
msgid "If checked new messages require your attention."
msgstr "If checked new messages require your attention."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Information"
msgstr "Information"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_is_follower:0
msgid "Is a Follower"
msgstr "Is a Follower"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,journal_id:0
#: field:mass.reconcile.advanced,journal_id:0
#: field:mass.reconcile.advanced.ref,journal_id:0
#: field:mass.reconcile.base,journal_id:0
#: field:mass.reconcile.options,journal_id:0
#: field:mass.reconcile.simple,journal_id:0
#: field:mass.reconcile.simple.name,journal_id:0
#: field:mass.reconcile.simple.partner,journal_id:0
#: field:mass.reconcile.simple.reference,journal_id:0
msgid "Journal"
msgstr "Journal"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_last_post:0
msgid "Last Message Date"
msgstr "Last Message Date"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,write_uid:0
#: field:account.mass.reconcile.method,write_uid:0
#: field:mass.reconcile.history,write_uid:0
#: field:mass.reconcile.simple.name,write_uid:0
#: field:mass.reconcile.simple.partner,write_uid:0
#: field:mass.reconcile.simple.reference,write_uid:0
msgid "Last Updated by"
msgstr "Last Updated by"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,write_date:0
#: field:account.mass.reconcile.method,write_date:0
#: field:mass.reconcile.history,write_date:0
#: field:mass.reconcile.simple.name,write_date:0
#: field:mass.reconcile.simple.partner,write_date:0
#: field:mass.reconcile.simple.reference,write_date:0
msgid "Last Updated on"
msgstr "Last Updated on"
#. module: account_mass_reconcile
#: help:res.company,reconciliation_commit_every:0
msgid "Leave zero to commit only at the end of the process."
msgstr "Leave zero to commit only at the end of the process."
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,expense_exchange_account_id:0
#: field:mass.reconcile.base,expense_exchange_account_id:0
#: field:mass.reconcile.options,expense_exchange_account_id:0
#: field:mass.reconcile.simple,expense_exchange_account_id:0
#: field:mass.reconcile.simple.name,expense_exchange_account_id:0
#: field:mass.reconcile.simple.partner,expense_exchange_account_id:0
#: field:mass.reconcile.simple.reference,expense_exchange_account_id:0
msgid "Loss Exchange Rate Account"
msgstr "Loss Exchange Rate Account"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid ""
"Match one debit line vs one credit line. Do not allow partial "
"reconciliation. The lines should have the same amount (with the write-off) "
"and the same name to be reconciled."
msgstr "Match one debit line vs one credit line. Do not allow partial reconciliation. The lines should have the same amount (with the write-off) and the same name to be reconciled."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid ""
"Match one debit line vs one credit line. Do not allow partial "
"reconciliation. The lines should have the same amount (with the write-off) "
"and the same partner to be reconciled."
msgstr "Match one debit line vs one credit line. Do not allow partial reconciliation. The lines should have the same amount (with the write-off) and the same partner to be reconciled."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid ""
"Match one debit line vs one credit line. Do not allow partial "
"reconciliation. The lines should have the same amount (with the write-off) "
"and the same reference to be reconciled."
msgstr "Match one debit line vs one credit line. Do not allow partial reconciliation. The lines should have the same amount (with the write-off) and the same reference to be reconciled."
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_ids:0
msgid "Messages"
msgstr "Messages"
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_ids:0
msgid "Messages and communication history"
msgstr "Messages and communication history"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,reconcile_method:0
msgid "Method"
msgstr "Method"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,name:0
msgid "Name"
msgstr "Name"
#. module: account_mass_reconcile
#: view:account.config.settings:account_mass_reconcile.view_account_config
msgid "Options"
msgstr "Options"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile_history.py:104
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: field:mass.reconcile.history,reconcile_ids:0
#: field:mass.reconcile.history,reconcile_partial_ids:0
#, python-format
msgid "Partial Reconciliations"
msgstr "Partial Reconciliations"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:334
#, python-format
msgid "Partial reconciled items"
msgstr "Partial reconciled items"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Profile Information"
msgstr "Profile Information"
#. module: account_mass_reconcile
#: field:mass.reconcile.history,mass_reconcile_id:0
msgid "Reconcile Profile"
msgstr "Reconcile Profile"
#. module: account_mass_reconcile
#: view:account.config.settings:account_mass_reconcile.view_account_config
msgid "Reconciliation"
msgstr "Reconciliation"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Reconciliation Profile"
msgstr "Reconciliation Profile"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile_history.py:100
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#, python-format
msgid "Reconciliations"
msgstr "Reconciliations"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Reconciliations of last 7 days"
msgstr "Reconciliations of last 7 days"
#. module: account_mass_reconcile
#: field:mass.reconcile.advanced,partner_ids:0
#: field:mass.reconcile.advanced.ref,partner_ids:0
#: field:mass.reconcile.base,partner_ids:0
#: field:mass.reconcile.simple,partner_ids:0
#: field:mass.reconcile.simple.name,partner_ids:0
#: field:mass.reconcile.simple.partner,partner_ids:0
#: field:mass.reconcile.simple.reference,partner_ids:0
msgid "Restrict on partners"
msgstr "Restrict on partners"
#. module: account_mass_reconcile
#: field:mass.reconcile.history,date:0
msgid "Run date"
msgstr "Run date"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,sequence:0
msgid "Sequence"
msgstr "Sequence"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Simple. Amount and Name"
msgstr "Simple. Amount and Name"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Simple. Amount and Partner"
msgstr "Simple. Amount and Partner"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Simple. Amount and Reference"
msgstr "Simple. Amount and Reference"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Start Auto Reconcilation"
msgstr "Start Auto Reconcilation"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Start Auto Reconciliation"
msgstr "Start Auto Reconciliation"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_summary:0
msgid "Summary"
msgstr "Summary"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,task_id:0
msgid "Task"
msgstr "Task"
#. module: account_mass_reconcile
#: help:account.mass.reconcile.method,sequence:0
msgid "The sequence field is used to order the reconcile method"
msgstr "The sequence field is used to order the reconcile method"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:294
#, python-format
msgid "There is no history of reconciled items on the task: %s."
msgstr "There is no history of reconciled items on the task: %s."
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:269
#, python-format
msgid "There was an error during reconciliation : %s"
msgstr "There was an error during reconciliation : %s"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Today"
msgstr "Today"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Todays' Reconcilations"
msgstr "Todays' Reconcilations"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,name:0
msgid "Type"
msgstr "Type"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_unread:0
msgid "Unread Messages"
msgstr "Unread Messages"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:321
#, python-format
msgid "Unreconciled items"
msgstr "Unreconciled items"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,write_off:0
#: field:mass.reconcile.advanced,write_off:0
#: field:mass.reconcile.advanced.ref,write_off:0
#: field:mass.reconcile.base,write_off:0
#: field:mass.reconcile.options,write_off:0
#: field:mass.reconcile.simple,write_off:0
#: field:mass.reconcile.simple.name,write_off:0
#: field:mass.reconcile.simple.partner,write_off:0
#: field:mass.reconcile.simple.reference,write_off:0
msgid "Write off allowed"
msgstr "Write off allowed"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_account_mass_reconcile
msgid "account mass reconcile"
msgstr "account mass reconcile"
#. module: account_mass_reconcile
#: view:account.config.settings:account_mass_reconcile.view_account_config
msgid "eInvoicing & Payments"
msgstr "eInvoicing & Payments"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_account_mass_reconcile_method
msgid "reconcile method for account_mass_reconcile"
msgstr "reconcile method for account_mass_reconcile"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:0
msgid "Match multiple debit vs multiple credit entries. Allow partial reconciliation. The lines should have the partner, the credit entry ref. is matched vs the debit entry ref. or name."
msgstr "Match multiple debit vs multiple credit entries. Allow partial reconciliation. The lines should have the partner, the credit entry ref. is matched vs the debit entry ref. or name."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:0
msgid "Advanced. Partner and Ref"
msgstr "Advanced. Partner and Ref"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_mass_reconcile_advanced
msgid "mass.reconcile.advanced"
msgstr "mass.reconcile.advanced"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_mass_reconcile_advanced_ref
msgid "mass.reconcile.advanced.ref"
msgstr "mass.reconcile.advanced.ref"

View File

@ -0,0 +1,611 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_mass_reconcile
#
# Translators:
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
msgid ""
msgstr ""
"Project-Id-Version: bank-statement-reconcile (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-11 12:09+0000\n"
"PO-Revision-Date: 2015-09-10 11:31+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: Spanish (http://www.transifex.com/oca/OCA-bank-statement-reconcile-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_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "7 Days"
msgstr "7 días"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,help:account_mass_reconcile.action_account_mass_reconcile
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to add a reconciliation profile.\n"
" </p><p>\n"
" A reconciliation profile specifies, for one account, how\n"
" the entries should be reconciled.\n"
" You can select one or many reconciliation methods which will\n"
" be run sequentially to match the entries between them.\n"
" </p>\n"
" "
msgstr "<p class=\"oe_view_nocontent_create\">\nPulse para añadir un pefil de conciliación.\n</p><p>\nUn perfil de conciliación especifica, para una cuenta, como\nlos apuntes deben ser conciliados.\nPuede seleccionar uno o varios métodos de conciliación que\nserán ejecutados secuencialmente para casar los apuntes\nentre ellos.\n</p>\n "
#. module: account_mass_reconcile
#: field:account.mass.reconcile,account:0
#: field:mass.reconcile.advanced,account_id:0
#: field:mass.reconcile.advanced.ref,account_id:0
#: field:mass.reconcile.base,account_id:0
#: field:mass.reconcile.simple,account_id:0
#: field:mass.reconcile.simple.name,account_id:0
#: field:mass.reconcile.simple.partner,account_id:0
#: field:mass.reconcile.simple.reference,account_id:0
msgid "Account"
msgstr "Cuenta"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,account_lost_id:0
#: field:mass.reconcile.advanced,account_lost_id:0
#: field:mass.reconcile.advanced.ref,account_lost_id:0
#: field:mass.reconcile.base,account_lost_id:0
#: field:mass.reconcile.options,account_lost_id:0
#: field:mass.reconcile.simple,account_lost_id:0
#: field:mass.reconcile.simple.name,account_lost_id:0
#: field:mass.reconcile.simple.partner,account_lost_id:0
#: field:mass.reconcile.simple.reference,account_lost_id:0
msgid "Account Lost"
msgstr "Cuenta de pérdidas"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,account_profit_id:0
#: field:mass.reconcile.advanced,account_profit_id:0
#: field:mass.reconcile.advanced.ref,account_profit_id:0
#: field:mass.reconcile.base,account_profit_id:0
#: field:mass.reconcile.options,account_profit_id:0
#: field:mass.reconcile.simple,account_profit_id:0
#: field:mass.reconcile.simple.name,account_profit_id:0
#: field:mass.reconcile.simple.partner,account_profit_id:0
#: field:mass.reconcile.simple.reference,account_profit_id:0
msgid "Account Profit"
msgstr "Cuenta de ganancias"
#. module: account_mass_reconcile
#: help:account.mass.reconcile.method,analytic_account_id:0
#: help:mass.reconcile.base,analytic_account_id:0
#: help:mass.reconcile.options,analytic_account_id:0
#: help:mass.reconcile.simple,analytic_account_id:0
#: help:mass.reconcile.simple.name,analytic_account_id:0
#: help:mass.reconcile.simple.partner,analytic_account_id:0
#: help:mass.reconcile.simple.reference,analytic_account_id:0
msgid "Analytic account for the write-off"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,analytic_account_id:0
#: field:mass.reconcile.base,analytic_account_id:0
#: field:mass.reconcile.options,analytic_account_id:0
#: field:mass.reconcile.simple,analytic_account_id:0
#: field:mass.reconcile.simple.name,analytic_account_id:0
#: field:mass.reconcile.simple.partner,analytic_account_id:0
#: field:mass.reconcile.simple.reference,analytic_account_id:0
msgid "Analytic_account"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Automatic Mass Reconcile"
msgstr "Conciliación automática sencilla"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_tree
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Automatic Mass Reconcile History"
msgstr "Historial de conciliación automática sencilla"
#. module: account_mass_reconcile
#: view:account.mass.reconcile.method:account_mass_reconcile.account_mass_reconcile_method_form
#: view:account.mass.reconcile.method:account_mass_reconcile.account_mass_reconcile_method_tree
msgid "Automatic Mass Reconcile Method"
msgstr "Método de conciliación automática sencilla"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_res_company
msgid "Companies"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,company_id:0
#: field:account.mass.reconcile.method,company_id:0
#: field:mass.reconcile.history,company_id:0
msgid "Company"
msgstr "Compañía"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Configuration"
msgstr "Configuración"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,create_uid:0
#: field:account.mass.reconcile.method,create_uid:0
#: field:mass.reconcile.history,create_uid:0
#: field:mass.reconcile.simple.name,create_uid:0
#: field:mass.reconcile.simple.partner,create_uid:0
#: field:mass.reconcile.simple.reference,create_uid:0
msgid "Created by"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,create_date:0
#: field:account.mass.reconcile.method,create_date:0
#: field:mass.reconcile.history,create_date:0
#: field:mass.reconcile.simple.name,create_date:0
#: field:mass.reconcile.simple.partner,create_date:0
#: field:mass.reconcile.simple.reference,create_date:0
msgid "Created on"
msgstr ""
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Date"
msgstr "Fecha"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,date_base_on:0
#: field:mass.reconcile.advanced,date_base_on:0
#: field:mass.reconcile.advanced.ref,date_base_on:0
#: field:mass.reconcile.base,date_base_on:0
#: field:mass.reconcile.options,date_base_on:0
#: field:mass.reconcile.simple,date_base_on:0
#: field:mass.reconcile.simple.name,date_base_on:0
#: field:mass.reconcile.simple.partner,date_base_on:0
#: field:mass.reconcile.simple.reference,date_base_on:0
msgid "Date of reconciliation"
msgstr "Fecha de conciliación"
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_last_post:0
msgid "Date of the last message posted on the record."
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Display items partially reconciled on the last run"
msgstr "Mostrar elementos conciliados parcialmente en la última ejecucción"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Display items reconciled on the last run"
msgstr "Mostrar elementos conciliados en la última ejecucción"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,name:account_mass_reconcile.action_account_mass_reconcile
#: model:ir.ui.menu,name:account_mass_reconcile.menu_mass_reconcile
msgid "Mass Automatic Reconcile"
msgstr "Conciliación automática simple"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,name:account_mass_reconcile.action_mass_reconcile_history
msgid "Mass Automatic Reconcile History"
msgstr "Historial de la conciliación automática sencilla"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,filter:0
#: field:mass.reconcile.advanced,filter:0
#: field:mass.reconcile.advanced.ref,filter:0
#: field:mass.reconcile.base,filter:0
#: field:mass.reconcile.options,filter:0
#: field:mass.reconcile.simple,filter:0
#: field:mass.reconcile.simple.name,filter:0
#: field:mass.reconcile.simple.partner,filter:0
#: field:mass.reconcile.simple.reference,filter:0
msgid "Filter"
msgstr "Filtro"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_follower_ids:0
msgid "Followers"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,income_exchange_account_id:0
#: field:mass.reconcile.base,income_exchange_account_id:0
#: field:mass.reconcile.options,income_exchange_account_id:0
#: field:mass.reconcile.simple,income_exchange_account_id:0
#: field:mass.reconcile.simple.name,income_exchange_account_id:0
#: field:mass.reconcile.simple.partner,income_exchange_account_id:0
#: field:mass.reconcile.simple.reference,income_exchange_account_id:0
msgid "Gain Exchange Rate Account"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Go to partial reconciled items"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_tree
msgid "Go to partially reconciled items"
msgstr "Ir a los elementos parcialmente conciliados"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_tree
msgid "Go to reconciled items"
msgstr "Ir a los elementos conciliados"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Go to unreconciled items"
msgstr ""
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Group By..."
msgstr "Agrupar por..."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: field:account.mass.reconcile,history_ids:0
msgid "History"
msgstr "Historial"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,name:account_mass_reconcile.act_mass_reconcile_to_history
msgid "History Details"
msgstr "Detalles del historial"
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_summary:0
msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr ""
#. module: account_mass_reconcile
#: field:res.company,reconciliation_commit_every:0
msgid "How often to commit when performing automatic reconciliation."
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,id:0 field:account.mass.reconcile.method,id:0
#: field:mass.reconcile.base,id:0 field:mass.reconcile.history,id:0
#: field:mass.reconcile.options,id:0 field:mass.reconcile.simple,id:0
#: field:mass.reconcile.simple.name,id:0
#: field:mass.reconcile.simple.partner,id:0
#: field:mass.reconcile.simple.reference,id:0
msgid "ID"
msgstr ""
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_unread:0
msgid "If checked new messages require your attention."
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Information"
msgstr "Información"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_is_follower:0
msgid "Is a Follower"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,journal_id:0
#: field:mass.reconcile.advanced,journal_id:0
#: field:mass.reconcile.advanced.ref,journal_id:0
#: field:mass.reconcile.base,journal_id:0
#: field:mass.reconcile.options,journal_id:0
#: field:mass.reconcile.simple,journal_id:0
#: field:mass.reconcile.simple.name,journal_id:0
#: field:mass.reconcile.simple.partner,journal_id:0
#: field:mass.reconcile.simple.reference,journal_id:0
msgid "Journal"
msgstr "Diario"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_last_post:0
msgid "Last Message Date"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,write_uid:0
#: field:account.mass.reconcile.method,write_uid:0
#: field:mass.reconcile.history,write_uid:0
#: field:mass.reconcile.simple.name,write_uid:0
#: field:mass.reconcile.simple.partner,write_uid:0
#: field:mass.reconcile.simple.reference,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,write_date:0
#: field:account.mass.reconcile.method,write_date:0
#: field:mass.reconcile.history,write_date:0
#: field:mass.reconcile.simple.name,write_date:0
#: field:mass.reconcile.simple.partner,write_date:0
#: field:mass.reconcile.simple.reference,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: account_mass_reconcile
#: help:res.company,reconciliation_commit_every:0
msgid "Leave zero to commit only at the end of the process."
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,expense_exchange_account_id:0
#: field:mass.reconcile.base,expense_exchange_account_id:0
#: field:mass.reconcile.options,expense_exchange_account_id:0
#: field:mass.reconcile.simple,expense_exchange_account_id:0
#: field:mass.reconcile.simple.name,expense_exchange_account_id:0
#: field:mass.reconcile.simple.partner,expense_exchange_account_id:0
#: field:mass.reconcile.simple.reference,expense_exchange_account_id:0
msgid "Loss Exchange Rate Account"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid ""
"Match one debit line vs one credit line. Do not allow partial "
"reconciliation. The lines should have the same amount (with the write-off) "
"and the same name to be reconciled."
msgstr "Casa una línea del debe con una línea del haber. No permite conciliación parcial. Las líneas deben tener el mismo importe (con el desajuste) y el mismo nombre para ser conciliadas."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid ""
"Match one debit line vs one credit line. Do not allow partial "
"reconciliation. The lines should have the same amount (with the write-off) "
"and the same partner to be reconciled."
msgstr "Casa una línea del debe con una línea del haber. No permite conciliación parcial. Las líneas deben tener el mismo importe (con el desajuste) y la misma empresa para ser conciliadas."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid ""
"Match one debit line vs one credit line. Do not allow partial "
"reconciliation. The lines should have the same amount (with the write-off) "
"and the same reference to be reconciled."
msgstr "Casa una línea del debe con una línea del haber. No permite conciliación parcial. Las líneas deben tener el mismo importe (con el desajuste) y la misma referencia para ser conciliadas."
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_ids:0
msgid "Messages"
msgstr ""
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_ids:0
msgid "Messages and communication history"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,reconcile_method:0
msgid "Method"
msgstr "Método"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,name:0
msgid "Name"
msgstr "Nombre"
#. module: account_mass_reconcile
#: view:account.config.settings:account_mass_reconcile.view_account_config
msgid "Options"
msgstr ""
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile_history.py:104
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: field:mass.reconcile.history,reconcile_ids:0
#: field:mass.reconcile.history,reconcile_partial_ids:0
#, python-format
msgid "Partial Reconciliations"
msgstr "Conciliaciones parciales"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:334
#, python-format
msgid "Partial reconciled items"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Profile Information"
msgstr "Información del perfil"
#. module: account_mass_reconcile
#: field:mass.reconcile.history,mass_reconcile_id:0
msgid "Reconcile Profile"
msgstr "Perfil de conciliación"
#. module: account_mass_reconcile
#: view:account.config.settings:account_mass_reconcile.view_account_config
msgid "Reconciliation"
msgstr ""
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Reconciliation Profile"
msgstr "Perfil de conciliación"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile_history.py:100
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#, python-format
msgid "Reconciliations"
msgstr "Conciliaciones"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Reconciliations of last 7 days"
msgstr "Conciliaciones de los últimos 7 días"
#. module: account_mass_reconcile
#: field:mass.reconcile.advanced,partner_ids:0
#: field:mass.reconcile.advanced.ref,partner_ids:0
#: field:mass.reconcile.base,partner_ids:0
#: field:mass.reconcile.simple,partner_ids:0
#: field:mass.reconcile.simple.name,partner_ids:0
#: field:mass.reconcile.simple.partner,partner_ids:0
#: field:mass.reconcile.simple.reference,partner_ids:0
msgid "Restrict on partners"
msgstr "Restringir en las empresas"
#. module: account_mass_reconcile
#: field:mass.reconcile.history,date:0
msgid "Run date"
msgstr "Fecha ejecucción"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,sequence:0
msgid "Sequence"
msgstr "Secuencia"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Simple. Amount and Name"
msgstr "Simple. Cantidad y nombre"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Simple. Amount and Partner"
msgstr "Simple. Cantidad y empresa"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Simple. Amount and Reference"
msgstr "Simple. Cantidad y referencia"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Start Auto Reconcilation"
msgstr "Iniciar conciliación automática"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Start Auto Reconciliation"
msgstr "Iniciar auto-conciliación"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_summary:0
msgid "Summary"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,task_id:0
msgid "Task"
msgstr "Tarea"
#. module: account_mass_reconcile
#: help:account.mass.reconcile.method,sequence:0
msgid "The sequence field is used to order the reconcile method"
msgstr "El campo de secuencia se usa para ordenar los métodos de conciliación"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:294
#, python-format
msgid "There is no history of reconciled items on the task: %s."
msgstr "No hay histórico de elementos conciliados en la tarea: %s"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:269
#, python-format
msgid "There was an error during reconciliation : %s"
msgstr ""
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Today"
msgstr "Hoy"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Todays' Reconcilations"
msgstr "Conciliaciones de hoy"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,name:0
msgid "Type"
msgstr "Tipo"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_unread:0
msgid "Unread Messages"
msgstr ""
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:321
#, python-format
msgid "Unreconciled items"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,write_off:0
#: field:mass.reconcile.advanced,write_off:0
#: field:mass.reconcile.advanced.ref,write_off:0
#: field:mass.reconcile.base,write_off:0
#: field:mass.reconcile.options,write_off:0
#: field:mass.reconcile.simple,write_off:0
#: field:mass.reconcile.simple.name,write_off:0
#: field:mass.reconcile.simple.partner,write_off:0
#: field:mass.reconcile.simple.reference,write_off:0
msgid "Write off allowed"
msgstr "Desajuste permitido"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_account_mass_reconcile
msgid "account mass reconcile"
msgstr "account mass reconcile"
#. module: account_mass_reconcile
#: view:account.config.settings:account_mass_reconcile.view_account_config
msgid "eInvoicing & Payments"
msgstr ""
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_account_mass_reconcile_method
msgid "reconcile method for account_mass_reconcile"
msgstr "Método de conciliación para account_mass_reconcile"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:0
msgid ""
"Match multiple debit vs multiple credit entries. Allow partial "
"reconciliation. The lines should have the partner, the credit entry ref. is "
"matched vs the debit entry ref. or name."
msgstr ""
"Casa múltiples líneas del debe con múltiples líneas del haber. Permite "
"conciliación parcial. Las líneas deben tener la empresa, la referencia de la "
"línea del haber se casa contra la referencia de la línea del debe o el "
"nombre."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:0
msgid "Advanced. Partner and Ref"
msgstr "Avanzado. Empresa y referencia"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_mass_reconcile_advanced
msgid "mass.reconcile.advanced"
msgstr "mass.reconcile.advanced"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_mass_reconcile_advanced_ref
msgid "mass.reconcile.advanced.ref"
msgstr "mass.reconcile.advanced.ref"

View File

@ -0,0 +1,610 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_mass_reconcile
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: bank-statement-reconcile (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-11 12:09+0000\n"
"PO-Revision-Date: 2015-09-10 11:31+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: French (http://www.transifex.com/oca/OCA-bank-statement-reconcile-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_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "7 Days"
msgstr "7 jours"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,help:account_mass_reconcile.action_account_mass_reconcile
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to add a reconciliation profile.\n"
" </p><p>\n"
" A reconciliation profile specifies, for one account, how\n"
" the entries should be reconciled.\n"
" You can select one or many reconciliation methods which will\n"
" be run sequentially to match the entries between them.\n"
" </p>\n"
" "
msgstr "<p class=\"oe_view_nocontent_create\">\n Cliquez pour ajouter un profil de lettrage.\n </p><p>\n Un profil de lettrage spécifie, pour un compte, comment\n les écritures doivent être lettrées.\n Vous pouvez sélectionner une ou plusieurs méthodes de lettrage\n qui seront lancées successivement pour identifier les écritures\n devant être lettrées. </p>\n "
#. module: account_mass_reconcile
#: field:account.mass.reconcile,account:0
#: field:mass.reconcile.advanced,account_id:0
#: field:mass.reconcile.advanced.ref,account_id:0
#: field:mass.reconcile.base,account_id:0
#: field:mass.reconcile.simple,account_id:0
#: field:mass.reconcile.simple.name,account_id:0
#: field:mass.reconcile.simple.partner,account_id:0
#: field:mass.reconcile.simple.reference,account_id:0
msgid "Account"
msgstr "Compte"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,account_lost_id:0
#: field:mass.reconcile.advanced,account_lost_id:0
#: field:mass.reconcile.advanced.ref,account_lost_id:0
#: field:mass.reconcile.base,account_lost_id:0
#: field:mass.reconcile.options,account_lost_id:0
#: field:mass.reconcile.simple,account_lost_id:0
#: field:mass.reconcile.simple.name,account_lost_id:0
#: field:mass.reconcile.simple.partner,account_lost_id:0
#: field:mass.reconcile.simple.reference,account_lost_id:0
msgid "Account Lost"
msgstr "Compte de pertes"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,account_profit_id:0
#: field:mass.reconcile.advanced,account_profit_id:0
#: field:mass.reconcile.advanced.ref,account_profit_id:0
#: field:mass.reconcile.base,account_profit_id:0
#: field:mass.reconcile.options,account_profit_id:0
#: field:mass.reconcile.simple,account_profit_id:0
#: field:mass.reconcile.simple.name,account_profit_id:0
#: field:mass.reconcile.simple.partner,account_profit_id:0
#: field:mass.reconcile.simple.reference,account_profit_id:0
msgid "Account Profit"
msgstr "Compte de profits"
#. module: account_mass_reconcile
#: help:account.mass.reconcile.method,analytic_account_id:0
#: help:mass.reconcile.base,analytic_account_id:0
#: help:mass.reconcile.options,analytic_account_id:0
#: help:mass.reconcile.simple,analytic_account_id:0
#: help:mass.reconcile.simple.name,analytic_account_id:0
#: help:mass.reconcile.simple.partner,analytic_account_id:0
#: help:mass.reconcile.simple.reference,analytic_account_id:0
msgid "Analytic account for the write-off"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,analytic_account_id:0
#: field:mass.reconcile.base,analytic_account_id:0
#: field:mass.reconcile.options,analytic_account_id:0
#: field:mass.reconcile.simple,analytic_account_id:0
#: field:mass.reconcile.simple.name,analytic_account_id:0
#: field:mass.reconcile.simple.partner,analytic_account_id:0
#: field:mass.reconcile.simple.reference,analytic_account_id:0
msgid "Analytic_account"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Automatic Mass Reconcile"
msgstr "Lettrage automatisé"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_tree
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Automatic Mass Reconcile History"
msgstr "Historique des lettrages automatisés"
#. module: account_mass_reconcile
#: view:account.mass.reconcile.method:account_mass_reconcile.account_mass_reconcile_method_form
#: view:account.mass.reconcile.method:account_mass_reconcile.account_mass_reconcile_method_tree
msgid "Automatic Mass Reconcile Method"
msgstr "Méthode de lettrage automatisé"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_res_company
msgid "Companies"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,company_id:0
#: field:account.mass.reconcile.method,company_id:0
#: field:mass.reconcile.history,company_id:0
msgid "Company"
msgstr "Société"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Configuration"
msgstr "Configuration"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,create_uid:0
#: field:account.mass.reconcile.method,create_uid:0
#: field:mass.reconcile.history,create_uid:0
#: field:mass.reconcile.simple.name,create_uid:0
#: field:mass.reconcile.simple.partner,create_uid:0
#: field:mass.reconcile.simple.reference,create_uid:0
msgid "Created by"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,create_date:0
#: field:account.mass.reconcile.method,create_date:0
#: field:mass.reconcile.history,create_date:0
#: field:mass.reconcile.simple.name,create_date:0
#: field:mass.reconcile.simple.partner,create_date:0
#: field:mass.reconcile.simple.reference,create_date:0
msgid "Created on"
msgstr ""
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Date"
msgstr "Date"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,date_base_on:0
#: field:mass.reconcile.advanced,date_base_on:0
#: field:mass.reconcile.advanced.ref,date_base_on:0
#: field:mass.reconcile.base,date_base_on:0
#: field:mass.reconcile.options,date_base_on:0
#: field:mass.reconcile.simple,date_base_on:0
#: field:mass.reconcile.simple.name,date_base_on:0
#: field:mass.reconcile.simple.partner,date_base_on:0
#: field:mass.reconcile.simple.reference,date_base_on:0
msgid "Date of reconciliation"
msgstr "Date de lettrage"
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_last_post:0
msgid "Date of the last message posted on the record."
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Display items partially reconciled on the last run"
msgstr "Afficher les entrées partiellement lettrées au dernier lettrage"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Display items reconciled on the last run"
msgstr "Voir les entrées lettrées au dernier lettrage"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,name:account_mass_reconcile.action_account_mass_reconcile
#: model:ir.ui.menu,name:account_mass_reconcile.menu_mass_reconcile
msgid "Mass Automatic Reconcile"
msgstr "Lettrage automatisé"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,name:account_mass_reconcile.action_mass_reconcile_history
msgid "Mass Automatic Reconcile History"
msgstr "Lettrage automatisé"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,filter:0
#: field:mass.reconcile.advanced,filter:0
#: field:mass.reconcile.advanced.ref,filter:0
#: field:mass.reconcile.base,filter:0
#: field:mass.reconcile.options,filter:0
#: field:mass.reconcile.simple,filter:0
#: field:mass.reconcile.simple.name,filter:0
#: field:mass.reconcile.simple.partner,filter:0
#: field:mass.reconcile.simple.reference,filter:0
msgid "Filter"
msgstr "Filtre"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_follower_ids:0
msgid "Followers"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,income_exchange_account_id:0
#: field:mass.reconcile.base,income_exchange_account_id:0
#: field:mass.reconcile.options,income_exchange_account_id:0
#: field:mass.reconcile.simple,income_exchange_account_id:0
#: field:mass.reconcile.simple.name,income_exchange_account_id:0
#: field:mass.reconcile.simple.partner,income_exchange_account_id:0
#: field:mass.reconcile.simple.reference,income_exchange_account_id:0
msgid "Gain Exchange Rate Account"
msgstr "Compte de gain de change"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Go to partial reconciled items"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_tree
msgid "Go to partially reconciled items"
msgstr "Voir les entrées partiellement lettrées"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_tree
msgid "Go to reconciled items"
msgstr "Voir les entrées lettrées"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Go to unreconciled items"
msgstr ""
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Group By..."
msgstr "Grouper par..."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: field:account.mass.reconcile,history_ids:0
msgid "History"
msgstr "Historique"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,name:account_mass_reconcile.act_mass_reconcile_to_history
msgid "History Details"
msgstr "Détails de l'historique"
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_summary:0
msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr ""
#. module: account_mass_reconcile
#: field:res.company,reconciliation_commit_every:0
msgid "How often to commit when performing automatic reconciliation."
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,id:0 field:account.mass.reconcile.method,id:0
#: field:mass.reconcile.base,id:0 field:mass.reconcile.history,id:0
#: field:mass.reconcile.options,id:0 field:mass.reconcile.simple,id:0
#: field:mass.reconcile.simple.name,id:0
#: field:mass.reconcile.simple.partner,id:0
#: field:mass.reconcile.simple.reference,id:0
msgid "ID"
msgstr ""
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_unread:0
msgid "If checked new messages require your attention."
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Information"
msgstr "Information"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_is_follower:0
msgid "Is a Follower"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,journal_id:0
#: field:mass.reconcile.advanced,journal_id:0
#: field:mass.reconcile.advanced.ref,journal_id:0
#: field:mass.reconcile.base,journal_id:0
#: field:mass.reconcile.options,journal_id:0
#: field:mass.reconcile.simple,journal_id:0
#: field:mass.reconcile.simple.name,journal_id:0
#: field:mass.reconcile.simple.partner,journal_id:0
#: field:mass.reconcile.simple.reference,journal_id:0
msgid "Journal"
msgstr "Journal"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_last_post:0
msgid "Last Message Date"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,write_uid:0
#: field:account.mass.reconcile.method,write_uid:0
#: field:mass.reconcile.history,write_uid:0
#: field:mass.reconcile.simple.name,write_uid:0
#: field:mass.reconcile.simple.partner,write_uid:0
#: field:mass.reconcile.simple.reference,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,write_date:0
#: field:account.mass.reconcile.method,write_date:0
#: field:mass.reconcile.history,write_date:0
#: field:mass.reconcile.simple.name,write_date:0
#: field:mass.reconcile.simple.partner,write_date:0
#: field:mass.reconcile.simple.reference,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: account_mass_reconcile
#: help:res.company,reconciliation_commit_every:0
msgid "Leave zero to commit only at the end of the process."
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,expense_exchange_account_id:0
#: field:mass.reconcile.base,expense_exchange_account_id:0
#: field:mass.reconcile.options,expense_exchange_account_id:0
#: field:mass.reconcile.simple,expense_exchange_account_id:0
#: field:mass.reconcile.simple.name,expense_exchange_account_id:0
#: field:mass.reconcile.simple.partner,expense_exchange_account_id:0
#: field:mass.reconcile.simple.reference,expense_exchange_account_id:0
msgid "Loss Exchange Rate Account"
msgstr "Compte de perte de change"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid ""
"Match one debit line vs one credit line. Do not allow partial "
"reconciliation. The lines should have the same amount (with the write-off) "
"and the same name to be reconciled."
msgstr "Lettre un débit avec un crédit ayant le même montant et la même description. Le lettrage ne peut être partiel (écriture d'ajustement en cas d'écart)."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid ""
"Match one debit line vs one credit line. Do not allow partial "
"reconciliation. The lines should have the same amount (with the write-off) "
"and the same partner to be reconciled."
msgstr "Lettre un débit avec un crédit ayant le même montant et le même partenaire. Le lettrage ne peut être partiel (écriture d'ajustement en cas d'écart)."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid ""
"Match one debit line vs one credit line. Do not allow partial "
"reconciliation. The lines should have the same amount (with the write-off) "
"and the same reference to be reconciled."
msgstr "Lettre un débit avec un crédit ayant le même montant et la même référence. Le lettrage ne peut être partiel (écriture d'ajustement en cas d'écart)."
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_ids:0
msgid "Messages"
msgstr ""
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_ids:0
msgid "Messages and communication history"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile,reconcile_method:0
msgid "Method"
msgstr "Méthode"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,name:0
msgid "Name"
msgstr "Nom"
#. module: account_mass_reconcile
#: view:account.config.settings:account_mass_reconcile.view_account_config
msgid "Options"
msgstr ""
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile_history.py:104
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: field:mass.reconcile.history,reconcile_ids:0
#: field:mass.reconcile.history,reconcile_partial_ids:0
#, python-format
msgid "Partial Reconciliations"
msgstr "Lettrages partiels"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:334
#, python-format
msgid "Partial reconciled items"
msgstr ""
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Profile Information"
msgstr "Information sur le profil"
#. module: account_mass_reconcile
#: field:mass.reconcile.history,mass_reconcile_id:0
msgid "Reconcile Profile"
msgstr "Profil de réconciliation"
#. module: account_mass_reconcile
#: view:account.config.settings:account_mass_reconcile.view_account_config
msgid "Reconciliation"
msgstr ""
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Reconciliation Profile"
msgstr "Profil de réconciliation"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile_history.py:100
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#, python-format
msgid "Reconciliations"
msgstr "Lettrages"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Reconciliations of last 7 days"
msgstr "Lettrages des 7 derniers jours"
#. module: account_mass_reconcile
#: field:mass.reconcile.advanced,partner_ids:0
#: field:mass.reconcile.advanced.ref,partner_ids:0
#: field:mass.reconcile.base,partner_ids:0
#: field:mass.reconcile.simple,partner_ids:0
#: field:mass.reconcile.simple.name,partner_ids:0
#: field:mass.reconcile.simple.partner,partner_ids:0
#: field:mass.reconcile.simple.reference,partner_ids:0
msgid "Restrict on partners"
msgstr "Filtrer sur des partenaires"
#. module: account_mass_reconcile
#: field:mass.reconcile.history,date:0
msgid "Run date"
msgstr "Date de lancement"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,sequence:0
msgid "Sequence"
msgstr "Séquence"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Simple. Amount and Name"
msgstr "Simple. Montant et description"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Simple. Amount and Partner"
msgstr "Simple. Montant et partenaire"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Simple. Amount and Reference"
msgstr "Simple. Montant et référence"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Start Auto Reconcilation"
msgstr "Lancer le lettrage automatisé"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Start Auto Reconciliation"
msgstr "Lancer le lettrage automatisé"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_summary:0
msgid "Summary"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,task_id:0
msgid "Task"
msgstr "Tâche"
#. module: account_mass_reconcile
#: help:account.mass.reconcile.method,sequence:0
msgid "The sequence field is used to order the reconcile method"
msgstr "La séquence détermine l'ordre des méthodes de lettrage"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:294
#, python-format
msgid "There is no history of reconciled items on the task: %s."
msgstr "Il n'y a pas d'historique d'écritures lettrées sur la tâche: %s."
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:269
#, python-format
msgid "There was an error during reconciliation : %s"
msgstr ""
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Today"
msgstr "Aujourd'hui"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Todays' Reconcilations"
msgstr "Lettrages du jour"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,name:0
msgid "Type"
msgstr "Type"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_unread:0
msgid "Unread Messages"
msgstr ""
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:321
#, python-format
msgid "Unreconciled items"
msgstr ""
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,write_off:0
#: field:mass.reconcile.advanced,write_off:0
#: field:mass.reconcile.advanced.ref,write_off:0
#: field:mass.reconcile.base,write_off:0
#: field:mass.reconcile.options,write_off:0
#: field:mass.reconcile.simple,write_off:0
#: field:mass.reconcile.simple.name,write_off:0
#: field:mass.reconcile.simple.partner,write_off:0
#: field:mass.reconcile.simple.reference,write_off:0
msgid "Write off allowed"
msgstr "Écart autorisé"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_account_mass_reconcile
msgid "account mass reconcile"
msgstr "Lettrage automatisé"
#. module: account_mass_reconcile
#: view:account.config.settings:account_mass_reconcile.view_account_config
msgid "eInvoicing & Payments"
msgstr ""
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_account_mass_reconcile_method
msgid "reconcile method for account_mass_reconcile"
msgstr "Méthode de lettrage"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:0
msgid ""
"Match multiple debit vs multiple credit entries. Allow partial "
"reconciliation. The lines should have the partner, the credit entry ref. is "
"matched vs the debit entry ref. or name."
msgstr ""
"Le Lettrage peut s'effectuer sur plusieurs écritures de débit et crédit. Le "
"Lettrage partiel est autorisé. Les écritures doivent avoir le même "
"partenaire et la référence sur les écritures de crédit doit se retrouver "
"dans la référence ou la description sur les écritures de débit."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:0
msgid "Advanced. Partner and Ref"
msgstr "Avancé. Partenaire et Réf."
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_mass_reconcile_advanced
msgid "mass.reconcile.advanced"
msgstr "mass.reconcile.advanced"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_mass_reconcile_advanced_ref
msgid "mass.reconcile.advanced.ref"
msgstr "mass.reconcile.advanced.ref"

View File

@ -0,0 +1,584 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_mass_reconcile
#
# Translators:
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2015
msgid ""
msgstr ""
"Project-Id-Version: bank-statement-reconcile (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-23 15:49+0000\n"
"PO-Revision-Date: 2015-09-29 05:22+0000\n"
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>\n"
"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-bank-statement-reconcile-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_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "7 Days"
msgstr "7 dni"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,help:account_mass_reconcile.action_account_mass_reconcile
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to add a reconciliation profile.\n"
" </p><p>\n"
" A reconciliation profile specifies, for one account, how\n"
" the entries should be reconciled.\n"
" You can select one or many reconciliation methods which will\n"
" be run sequentially to match the entries between them.\n"
" </p>\n"
" "
msgstr "<p class=\"oe_view_nocontent_create\">\n Dodaj profil za uskladitev kontov.\n </p><p>\n Uskladitveni profil določa, kako naj se\n vnosi konta usklajujejo.\n Izberete lahko eno ali več usklajevalnih metod, ki bodo\n zagnane zapovrstjo za medsebojno primerjavo vnosov.\n </p>\n "
#. module: account_mass_reconcile
#: field:account.mass.reconcile,account:0
#: field:mass.reconcile.advanced,account_id:0
#: field:mass.reconcile.advanced.ref,account_id:0
#: field:mass.reconcile.base,account_id:0
#: field:mass.reconcile.simple,account_id:0
#: field:mass.reconcile.simple.name,account_id:0
#: field:mass.reconcile.simple.partner,account_id:0
#: field:mass.reconcile.simple.reference,account_id:0
msgid "Account"
msgstr "Konto"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,account_lost_id:0
#: field:mass.reconcile.advanced,account_lost_id:0
#: field:mass.reconcile.advanced.ref,account_lost_id:0
#: field:mass.reconcile.base,account_lost_id:0
#: field:mass.reconcile.options,account_lost_id:0
#: field:mass.reconcile.simple,account_lost_id:0
#: field:mass.reconcile.simple.name,account_lost_id:0
#: field:mass.reconcile.simple.partner,account_lost_id:0
#: field:mass.reconcile.simple.reference,account_lost_id:0
msgid "Account Lost"
msgstr "Konto izgube"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,account_profit_id:0
#: field:mass.reconcile.advanced,account_profit_id:0
#: field:mass.reconcile.advanced.ref,account_profit_id:0
#: field:mass.reconcile.base,account_profit_id:0
#: field:mass.reconcile.options,account_profit_id:0
#: field:mass.reconcile.simple,account_profit_id:0
#: field:mass.reconcile.simple.name,account_profit_id:0
#: field:mass.reconcile.simple.partner,account_profit_id:0
#: field:mass.reconcile.simple.reference,account_profit_id:0
msgid "Account Profit"
msgstr "Konto dobička"
#. module: account_mass_reconcile
#: help:account.mass.reconcile.method,analytic_account_id:0
#: help:mass.reconcile.base,analytic_account_id:0
#: help:mass.reconcile.options,analytic_account_id:0
#: help:mass.reconcile.simple,analytic_account_id:0
#: help:mass.reconcile.simple.name,analytic_account_id:0
#: help:mass.reconcile.simple.partner,analytic_account_id:0
#: help:mass.reconcile.simple.reference,analytic_account_id:0
msgid "Analytic account for the write-off"
msgstr "Konto odpisov"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,analytic_account_id:0
#: field:mass.reconcile.base,analytic_account_id:0
#: field:mass.reconcile.options,analytic_account_id:0
#: field:mass.reconcile.simple,analytic_account_id:0
#: field:mass.reconcile.simple.name,analytic_account_id:0
#: field:mass.reconcile.simple.partner,analytic_account_id:0
#: field:mass.reconcile.simple.reference,analytic_account_id:0
msgid "Analytic_account"
msgstr "Analitični konto"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Automatic Mass Reconcile"
msgstr "Samodejno preprosto usklajevanje"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_tree
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Automatic Mass Reconcile History"
msgstr "Zgodovina samodejnih preprostih usklajevanj"
#. module: account_mass_reconcile
#: view:account.mass.reconcile.method:account_mass_reconcile.account_mass_reconcile_method_form
#: view:account.mass.reconcile.method:account_mass_reconcile.account_mass_reconcile_method_tree
msgid "Automatic Mass Reconcile Method"
msgstr "Metoda samodejne preproste uskladitve"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_res_company
msgid "Companies"
msgstr "Družbe"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,company_id:0
#: field:account.mass.reconcile.method,company_id:0
#: field:mass.reconcile.history,company_id:0
msgid "Company"
msgstr "Družba"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Configuration"
msgstr "Nastavitve"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,create_uid:0
#: field:account.mass.reconcile.method,create_uid:0
#: field:mass.reconcile.history,create_uid:0
#: field:mass.reconcile.simple.name,create_uid:0
#: field:mass.reconcile.simple.partner,create_uid:0
#: field:mass.reconcile.simple.reference,create_uid:0
msgid "Created by"
msgstr "Ustvaril"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,create_date:0
#: field:account.mass.reconcile.method,create_date:0
#: field:mass.reconcile.history,create_date:0
#: field:mass.reconcile.simple.name,create_date:0
#: field:mass.reconcile.simple.partner,create_date:0
#: field:mass.reconcile.simple.reference,create_date:0
msgid "Created on"
msgstr "Ustvarjeno"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Date"
msgstr "Datum"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,date_base_on:0
#: field:mass.reconcile.advanced,date_base_on:0
#: field:mass.reconcile.advanced.ref,date_base_on:0
#: field:mass.reconcile.base,date_base_on:0
#: field:mass.reconcile.options,date_base_on:0
#: field:mass.reconcile.simple,date_base_on:0
#: field:mass.reconcile.simple.name,date_base_on:0
#: field:mass.reconcile.simple.partner,date_base_on:0
#: field:mass.reconcile.simple.reference,date_base_on:0
msgid "Date of reconciliation"
msgstr "Datum uskladitve"
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_last_post:0
msgid "Date of the last message posted on the record."
msgstr "Datum zadnjega objavljenega sporočila na zapisu."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Display items partially reconciled on the last run"
msgstr "Prikaz delno usklajenih postavk po zadnjem zagonu"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Display items reconciled on the last run"
msgstr "Prikaz usklajenih postavk po zadnjem zagonu"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,name:account_mass_reconcile.action_account_mass_reconcile
#: model:ir.ui.menu,name:account_mass_reconcile.menu_mass_reconcile
msgid "Mass Automatic Reconcile"
msgstr "Samodejno preprosto usklajevanje"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,name:account_mass_reconcile.action_mass_reconcile_history
msgid "Mass Automatic Reconcile History"
msgstr "Zgodovina samodejnih preprostih usklajevanj"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,filter:0
#: field:mass.reconcile.advanced,filter:0
#: field:mass.reconcile.advanced.ref,filter:0
#: field:mass.reconcile.base,filter:0
#: field:mass.reconcile.options,filter:0
#: field:mass.reconcile.simple,filter:0
#: field:mass.reconcile.simple.name,filter:0
#: field:mass.reconcile.simple.partner,filter:0
#: field:mass.reconcile.simple.reference,filter:0
msgid "Filter"
msgstr "Filter"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_follower_ids:0
msgid "Followers"
msgstr "Sledilci"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,income_exchange_account_id:0
#: field:mass.reconcile.base,income_exchange_account_id:0
#: field:mass.reconcile.options,income_exchange_account_id:0
#: field:mass.reconcile.simple,income_exchange_account_id:0
#: field:mass.reconcile.simple.name,income_exchange_account_id:0
#: field:mass.reconcile.simple.partner,income_exchange_account_id:0
#: field:mass.reconcile.simple.reference,income_exchange_account_id:0
msgid "Gain Exchange Rate Account"
msgstr "Konto menjalnega tečaja dobička"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Go to partial reconciled items"
msgstr "Pojdi na delno usklajene postavke"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_tree
msgid "Go to partially reconciled items"
msgstr "Pojdi na delno usklajene postavke"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_tree
msgid "Go to reconciled items"
msgstr "Pojdi na usklajene postavke"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Go to unreconciled items"
msgstr "Pojdi na neusklajene postavke"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Group By..."
msgstr "Združi po..."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
#: field:account.mass.reconcile,history_ids:0
msgid "History"
msgstr "Zgodovina"
#. module: account_mass_reconcile
#: model:ir.actions.act_window,name:account_mass_reconcile.act_mass_reconcile_to_history
msgid "History Details"
msgstr "Podrobnosti o zgodovini"
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_summary:0
msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr "Povzetek sporočanja (število sporočil, ...) neposredno v html formatu, da se lahko vstavlja v kanban prikaze."
#. module: account_mass_reconcile
#: field:res.company,reconciliation_commit_every:0
msgid "How often to commit when performing automatic reconciliation."
msgstr "Pogostost knjiženja ob samodejnem usklajevanju."
#. module: account_mass_reconcile
#: field:account.mass.reconcile,id:0 field:account.mass.reconcile.method,id:0
#: field:mass.reconcile.base,id:0 field:mass.reconcile.history,id:0
#: field:mass.reconcile.options,id:0 field:mass.reconcile.simple,id:0
#: field:mass.reconcile.simple.name,id:0
#: field:mass.reconcile.simple.partner,id:0
#: field:mass.reconcile.simple.reference,id:0
msgid "ID"
msgstr "ID"
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_unread:0
msgid "If checked new messages require your attention."
msgstr "Označeno pomeni, da nova sporočila zahtevajo vašo pozornost."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Information"
msgstr "Informacije"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_is_follower:0
msgid "Is a Follower"
msgstr "Je sledilec"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,journal_id:0
#: field:mass.reconcile.advanced,journal_id:0
#: field:mass.reconcile.advanced.ref,journal_id:0
#: field:mass.reconcile.base,journal_id:0
#: field:mass.reconcile.options,journal_id:0
#: field:mass.reconcile.simple,journal_id:0
#: field:mass.reconcile.simple.name,journal_id:0
#: field:mass.reconcile.simple.partner,journal_id:0
#: field:mass.reconcile.simple.reference,journal_id:0
msgid "Journal"
msgstr "Dnevnik"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_last_post:0
msgid "Last Message Date"
msgstr "Datum zadnjega sporočila"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,write_uid:0
#: field:account.mass.reconcile.method,write_uid:0
#: field:mass.reconcile.history,write_uid:0
#: field:mass.reconcile.simple.name,write_uid:0
#: field:mass.reconcile.simple.partner,write_uid:0
#: field:mass.reconcile.simple.reference,write_uid:0
msgid "Last Updated by"
msgstr "Zadnji posodobil"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,write_date:0
#: field:account.mass.reconcile.method,write_date:0
#: field:mass.reconcile.history,write_date:0
#: field:mass.reconcile.simple.name,write_date:0
#: field:mass.reconcile.simple.partner,write_date:0
#: field:mass.reconcile.simple.reference,write_date:0
msgid "Last Updated on"
msgstr "Zadnjič posodobljeno"
#. module: account_mass_reconcile
#: help:res.company,reconciliation_commit_every:0
msgid "Leave zero to commit only at the end of the process."
msgstr "Za knjiženje le ob koncu procesa pustite prazno."
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,expense_exchange_account_id:0
#: field:mass.reconcile.base,expense_exchange_account_id:0
#: field:mass.reconcile.options,expense_exchange_account_id:0
#: field:mass.reconcile.simple,expense_exchange_account_id:0
#: field:mass.reconcile.simple.name,expense_exchange_account_id:0
#: field:mass.reconcile.simple.partner,expense_exchange_account_id:0
#: field:mass.reconcile.simple.reference,expense_exchange_account_id:0
msgid "Loss Exchange Rate Account"
msgstr "Konto menjalnega tečaja izgube"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid ""
"Match one debit line vs one credit line. Do not allow partial "
"reconciliation. The lines should have the same amount (with the write-off) "
"and the same name to be reconciled."
msgstr "Primerjanje ene postavke v breme z eno postavko v dobro. Ne dovoli delnega usklajevanja. Da bi se lahko uskladile, morajo imeti postavke isti znesek (z odpisom) in isti naziv."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid ""
"Match one debit line vs one credit line. Do not allow partial "
"reconciliation. The lines should have the same amount (with the write-off) "
"and the same partner to be reconciled."
msgstr "Primerjanje ene postavke v breme z eno postavko v dobro. Ne dovoli delnega usklajevanja. Da bi se lahko uskladile, morajo imeti postavke isti znesek (z odpisom) in istega partnerja."
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid ""
"Match one debit line vs one credit line. Do not allow partial "
"reconciliation. The lines should have the same amount (with the write-off) "
"and the same reference to be reconciled."
msgstr "Primerjanje ene postavke v breme z eno postavko v dobro. Ne dovoli delnega usklajevanja. Da bi se lahko uskladile, morajo imeti postavke isti znesek (z odpisom) in isti sklic."
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_ids:0
msgid "Messages"
msgstr "Sporočila"
#. module: account_mass_reconcile
#: help:account.mass.reconcile,message_ids:0
msgid "Messages and communication history"
msgstr "Kronologija sporočil in komunikacij"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,reconcile_method:0
msgid "Method"
msgstr "Metoda"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,name:0
msgid "Name"
msgstr "Naziv"
#. module: account_mass_reconcile
#: view:account.config.settings:account_mass_reconcile.view_account_config
msgid "Options"
msgstr "Opcije"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile_history.py:104
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#: field:mass.reconcile.history,reconcile_ids:0
#: field:mass.reconcile.history,reconcile_partial_ids:0
#, python-format
msgid "Partial Reconciliations"
msgstr "Delne uskladitve"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:334
#, python-format
msgid "Partial reconciled items"
msgstr "Delno usklajene postavke"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Profile Information"
msgstr "Podatki o profilu"
#. module: account_mass_reconcile
#: field:mass.reconcile.history,mass_reconcile_id:0
msgid "Reconcile Profile"
msgstr "Usklajevalni profil"
#. module: account_mass_reconcile
#: view:account.config.settings:account_mass_reconcile.view_account_config
msgid "Reconciliation"
msgstr "Uskladitev"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Reconciliation Profile"
msgstr "Usklajevalni profil"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile_history.py:100
#: view:mass.reconcile.history:account_mass_reconcile.mass_reconcile_history_form
#, python-format
msgid "Reconciliations"
msgstr "Uskladitve"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Reconciliations of last 7 days"
msgstr "Uskladitve v zadnjih 7 dneh"
#. module: account_mass_reconcile
#: field:mass.reconcile.advanced,partner_ids:0
#: field:mass.reconcile.advanced.ref,partner_ids:0
#: field:mass.reconcile.base,partner_ids:0
#: field:mass.reconcile.simple,partner_ids:0
#: field:mass.reconcile.simple.name,partner_ids:0
#: field:mass.reconcile.simple.partner,partner_ids:0
#: field:mass.reconcile.simple.reference,partner_ids:0
msgid "Restrict on partners"
msgstr "Omejitev na partnerjih"
#. module: account_mass_reconcile
#: field:mass.reconcile.history,date:0
msgid "Run date"
msgstr "Datum zagona"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,sequence:0
msgid "Sequence"
msgstr "Zaporedje"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Simple. Amount and Name"
msgstr "Preprosto. Znesek in naziv"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Simple. Amount and Partner"
msgstr "Preprosto. Znesek in partner"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Simple. Amount and Reference"
msgstr "Preprosto. Znesek in sklic"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_tree
msgid "Start Auto Reconcilation"
msgstr "Zagon samodejnega usklajevanja"
#. module: account_mass_reconcile
#: view:account.mass.reconcile:account_mass_reconcile.account_mass_reconcile_form
msgid "Start Auto Reconciliation"
msgstr "Zagon samodejnega usklajevanja"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_summary:0
msgid "Summary"
msgstr "Povzetek"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,task_id:0
msgid "Task"
msgstr "Opravilo"
#. module: account_mass_reconcile
#: help:account.mass.reconcile.method,sequence:0
msgid "The sequence field is used to order the reconcile method"
msgstr "Polje zaporedja za razporejanje metod usklajevanja"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:294
#, python-format
msgid "There is no history of reconciled items on the task: %s."
msgstr "Usklajene postavke na opravilu: %s nimajo zgodovine."
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:269
#, python-format
msgid "There was an error during reconciliation : %s"
msgstr "Napaka med usklajevanjem: %s"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Today"
msgstr "Danes"
#. module: account_mass_reconcile
#: view:mass.reconcile.history:account_mass_reconcile.view_mass_reconcile_history_search
msgid "Todays' Reconcilations"
msgstr "Današnja usklajevanja"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,name:0
msgid "Type"
msgstr "Tip"
#. module: account_mass_reconcile
#: field:account.mass.reconcile,message_unread:0
msgid "Unread Messages"
msgstr "Neprebrana sporočila"
#. module: account_mass_reconcile
#: code:addons/account_mass_reconcile/mass_reconcile.py:321
#, python-format
msgid "Unreconciled items"
msgstr "Neusklajene postavke"
#. module: account_mass_reconcile
#: field:account.mass.reconcile.method,write_off:0
#: field:mass.reconcile.advanced,write_off:0
#: field:mass.reconcile.advanced.ref,write_off:0
#: field:mass.reconcile.base,write_off:0
#: field:mass.reconcile.options,write_off:0
#: field:mass.reconcile.simple,write_off:0
#: field:mass.reconcile.simple.name,write_off:0
#: field:mass.reconcile.simple.partner,write_off:0
#: field:mass.reconcile.simple.reference,write_off:0
msgid "Write off allowed"
msgstr "Dovoljen odpis"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_account_mass_reconcile
msgid "account mass reconcile"
msgstr "preprosto usklajevanje konta"
#. module: account_mass_reconcile
#: view:account.config.settings:account_mass_reconcile.view_account_config
msgid "eInvoicing & Payments"
msgstr "Obračun in plačila"
#. module: account_mass_reconcile
#: model:ir.model,name:account_mass_reconcile.model_account_mass_reconcile_method
msgid "reconcile method for account_mass_reconcile"
msgstr "metoda usklajevanja za preprosto usklajevanje konta"

View File

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
from . import mass_reconcile
from . import base_reconciliation
from . import base_advanced_reconciliation
from . import simple_reconciliation
from . import advanced_reconciliation
from . import mass_reconcile_history
from . import res_config

View File

@ -0,0 +1,105 @@
# -*- coding: utf-8 -*-
# © 2012-2016 Camptocamp SA (Guewen Baconnier, Damien Crier, Matthieu Dietrich)
# © 2010 Sébastien Beau
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import models, api
class MassReconcileAdvancedRef(models.TransientModel):
_name = 'mass.reconcile.advanced.ref'
_inherit = 'mass.reconcile.advanced'
@api.multi
def _skip_line(self, move_line):
"""
When True is returned on some conditions, the credit move line
will be skipped for reconciliation. Can be inherited to
skip on some conditions. ie: ref or partner_id is empty.
"""
return not (move_line.get('ref') and move_line.get('partner_id'))
@api.multi
def _matchers(self, move_line):
"""
Return the values used as matchers to find the opposite lines
All the matcher keys in the dict must have their equivalent in
the `_opposite_matchers`.
The values of each matcher key will be searched in the
one returned by the `_opposite_matchers`
Must be inherited to implement the matchers for one method
For instance, it can return:
return ('ref', move_line['rec'])
or
return (('partner_id', move_line['partner_id']),
('ref', "prefix_%s" % move_line['rec']))
All the matchers have to be found in the opposite lines
to consider them as "opposite"
The matchers will be evaluated in the same order as declared
vs the the opposite matchers, so you can gain performance by
declaring first the partners with the less computation.
All matchers should match with their opposite to be considered
as "matching".
So with the previous example, partner_id and ref have to be
equals on the opposite line matchers.
:return: tuple of tuples (key, value) where the keys are
the matchers keys
(must be the same than `_opposite_matchers` returns,
and their values to match in the opposite lines.
A matching key can have multiples values.
"""
return (('partner_id', move_line['partner_id']),
('ref', move_line['ref'].lower().strip()))
@api.multi
def _opposite_matchers(self, move_line):
"""
Return the values of the opposite line used as matchers
so the line is matched
Must be inherited to implement the matchers for one method
It can be inherited to apply some formatting of fields
(strip(), lower() and so on)
This method is the counterpart of the `_matchers()` method.
Each matcher has to yield its value respecting the order
of the `_matchers()`.
When a matcher does not correspond, the next matchers won't
be evaluated so the ones which need the less computation
have to be executed first.
If the `_matchers()` returns:
(('partner_id', move_line['partner_id']),
('ref', move_line['ref']))
Here, you should yield :
yield ('partner_id', move_line['partner_id'])
yield ('ref', move_line['ref'])
Note that a matcher can contain multiple values, as instance,
if for a move line, you want to search from its `ref` in the
`ref` or `name` fields of the opposite move lines, you have to
yield ('partner_id', move_line['partner_id'])
yield ('ref', (move_line['ref'], move_line['name'])
An OR is used between the values for the same key.
An AND is used between the differents keys.
:param dict move_line: values of the move_line
:yield: matchers as tuple ('matcher key', value(s))
"""
yield ('partner_id', move_line['partner_id'])
yield ('ref', ((move_line['ref'] or '').lower().strip(),
move_line['name'].lower().strip()))

View File

@ -0,0 +1,276 @@
# -*- coding: utf-8 -*-
# © 2012-2016 Camptocamp SA (Guewen Baconnier, Damien Crier, Matthieu Dietrich)
# © 2010 Sébastien Beau
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
import logging
from openerp import models, api
from itertools import product
from openerp.tools.translate import _
_logger = logging.getLogger(__name__)
class MassReconcileAdvanced(models.AbstractModel):
_name = 'mass.reconcile.advanced'
_inherit = 'mass.reconcile.base'
@api.multi
def _query_debit(self):
"""Select all move (debit>0) as candidate. """
select = self._select()
sql_from = self._from()
where, params = self._where()
where += " AND account_move_line.debit > 0 "
where2, params2 = self._get_filter()
query = ' '.join((select, sql_from, where, where2))
self.env.cr.execute(query, params + params2)
return self.env.cr.dictfetchall()
def _query_credit(self):
"""Select all move (credit>0) as candidate. """
select = self._select()
sql_from = self._from()
where, params = self._where()
where += " AND account_move_line.credit > 0 "
where2, params2 = self._get_filter()
query = ' '.join((select, sql_from, where, where2))
self.env.cr.execute(query, params + params2)
return self.env.cr.dictfetchall()
@api.multi
def _matchers(self, move_line):
"""
Return the values used as matchers to find the opposite lines
All the matcher keys in the dict must have their equivalent in
the `_opposite_matchers`.
The values of each matcher key will be searched in the
one returned by the `_opposite_matchers`
Must be inherited to implement the matchers for one method
As instance, it can return:
return ('ref', move_line['rec'])
or
return (('partner_id', move_line['partner_id']),
('ref', "prefix_%s" % move_line['rec']))
All the matchers have to be found in the opposite lines
to consider them as "opposite"
The matchers will be evaluated in the same order as declared
vs the the opposite matchers, so you can gain performance by
declaring first the partners with the less computation.
All matchers should match with their opposite to be considered
as "matching".
So with the previous example, partner_id and ref have to be
equals on the opposite line matchers.
:return: tuple of tuples (key, value) where the keys are
the matchers keys
(must be the same than `_opposite_matchers` returns,
and their values to match in the opposite lines.
A matching key can have multiples values.
"""
raise NotImplementedError
@api.multi
def _opposite_matchers(self, move_line):
"""
Return the values of the opposite line used as matchers
so the line is matched
Must be inherited to implement the matchers for one method
It can be inherited to apply some formatting of fields
(strip(), lower() and so on)
This method is the counterpart of the `_matchers()` method.
Each matcher has to yield its value respecting the order
of the `_matchers()`.
When a matcher does not correspond, the next matchers won't
be evaluated so the ones which need the less computation
have to be executed first.
If the `_matchers()` returns:
(('partner_id', move_line['partner_id']),
('ref', move_line['ref']))
Here, you should yield :
yield ('partner_id', move_line['partner_id'])
yield ('ref', move_line['ref'])
Note that a matcher can contain multiple values, as instance,
if for a move line, you want to search from its `ref` in the
`ref` or `name` fields of the opposite move lines, you have to
yield ('partner_id', move_line['partner_id'])
yield ('ref', (move_line['ref'], move_line['name'])
An OR is used between the values for the same key.
An AND is used between the differents keys.
:param dict move_line: values of the move_line
:yield: matchers as tuple ('matcher key', value(s))
"""
raise NotImplementedError
@staticmethod
def _compare_values(key, value, opposite_value):
"""Can be inherited to modify the equality condition
specifically according to the matcher key (maybe using
a like operator instead of equality on 'ref' as instance)
"""
# consider that empty vals are not valid matchers
# it can still be inherited for some special cases
# where it would be allowed
if not (value and opposite_value):
return False
if value == opposite_value:
return True
return False
@staticmethod
def _compare_matcher_values(key, values, opposite_values):
""" Compare every values from a matcher vs an opposite matcher
and return True if it matches
"""
for value, ovalue in product(values, opposite_values):
# we do not need to compare all values, if one matches
# we are done
if MassReconcileAdvanced._compare_values(key, value, ovalue):
return True
return False
@staticmethod
def _compare_matchers(matcher, opposite_matcher):
"""
Prepare and check the matchers to compare
"""
mkey, mvalue = matcher
omkey, omvalue = opposite_matcher
assert mkey == omkey, \
(_("A matcher %s is compared with a matcher %s, the _matchers and "
"_opposite_matchers are probably wrong") % (mkey, omkey))
if not isinstance(mvalue, (list, tuple)):
mvalue = mvalue,
if not isinstance(omvalue, (list, tuple)):
omvalue = omvalue,
return MassReconcileAdvanced._compare_matcher_values(mkey, mvalue,
omvalue)
@api.multi
def _compare_opposite(self, move_line, opposite_move_line, matchers):
""" Iterate over the matchers of the move lines vs opposite move lines
and if they all match, return True.
If all the matchers match for a move line and an opposite move line,
they are candidate for a reconciliation.
"""
opp_matchers = self._opposite_matchers(opposite_move_line)
for matcher in matchers:
try:
opp_matcher = opp_matchers.next()
except StopIteration:
# if you fall here, you probably missed to put a `yield`
# in `_opposite_matchers()`
raise ValueError("Missing _opposite_matcher: %s" % matcher[0])
if not self._compare_matchers(matcher, opp_matcher):
# if any of the matcher fails, the opposite line
# is not a valid counterpart
# directly returns so the next yield of _opposite_matchers
# are not evaluated
return False
return True
@api.multi
def _search_opposites(self, move_line, opposite_move_lines):
"""Search the opposite move lines for a move line
:param dict move_line: the move line for which we search opposites
:param list opposite_move_lines: list of dict of move lines values,
the move lines we want to search for
:return: list of matching lines
"""
matchers = self._matchers(move_line)
return [op for op in opposite_move_lines if
self._compare_opposite(move_line, op, matchers)]
def _action_rec(self):
credit_lines = self._query_credit()
debit_lines = self._query_debit()
result = self._rec_auto_lines_advanced(credit_lines, debit_lines)
return result
@api.multi
def _skip_line(self, move_line):
"""
When True is returned on some conditions, the credit move line
will be skipped for reconciliation. Can be inherited to
skip on some conditions. ie: ref or partner_id is empty.
"""
return False
@api.multi
def _rec_auto_lines_advanced(self, credit_lines, debit_lines):
""" Advanced reconciliation main loop """
reconciled_ids = []
for rec in self:
reconcile_groups = []
ctx = self.env.context.copy()
ctx['commit_every'] = (
rec.account_id.company_id.reconciliation_commit_every
)
_logger.info("%d credit lines to reconcile", len(credit_lines))
for idx, credit_line in enumerate(credit_lines, start=1):
if idx % 50 == 0:
_logger.info("... %d/%d credit lines inspected ...", idx,
len(credit_lines))
if self._skip_line(credit_line):
continue
opposite_lines = self._search_opposites(credit_line,
debit_lines)
if not opposite_lines:
continue
opposite_ids = [l['id'] for l in opposite_lines]
line_ids = opposite_ids + [credit_line['id']]
for group in reconcile_groups:
if any([lid in group for lid in opposite_ids]):
_logger.debug("New lines %s matched with an existing "
"group %s", line_ids, group)
group.update(line_ids)
break
else:
_logger.debug("New group of lines matched %s", line_ids)
reconcile_groups.append(set(line_ids))
lines_by_id = dict([(l['id'], l)
for l in credit_lines + debit_lines])
_logger.info("Found %d groups to reconcile",
len(reconcile_groups))
for group_count, reconcile_group_ids \
in enumerate(reconcile_groups, start=1):
_logger.debug("Reconciling group %d/%d with ids %s",
group_count, len(reconcile_groups),
reconcile_group_ids)
group_lines = [lines_by_id[lid]
for lid in reconcile_group_ids]
reconciled, full = self._reconcile_lines(group_lines,
allow_partial=True)
if reconciled and full:
reconciled_ids += reconcile_group_ids
if (ctx['commit_every'] and
group_count % ctx['commit_every'] == 0):
self.env.cr.commit()
_logger.info("Commit the reconciliations after %d groups",
group_count)
_logger.info("Reconciliation is over")
return reconciled_ids

View File

@ -0,0 +1,185 @@
# -*- coding: utf-8 -*-
# © 2012-2016 Camptocamp SA (Guewen Baconnier, Damien Crier, Matthieu Dietrich)
# © 2010 Sébastien Beau
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import models, api, fields
from openerp.tools.safe_eval import safe_eval
from operator import itemgetter
class MassReconcileBase(models.AbstractModel):
"""Abstract Model for reconciliation methods"""
_name = 'mass.reconcile.base'
_inherit = 'mass.reconcile.options'
account_id = fields.Many2one(
'account.account',
string='Account',
required=True
)
partner_ids = fields.Many2many(
comodel_name='res.partner',
string='Restrict on partners',
)
# other fields are inherited from mass.reconcile.options
@api.multi
def automatic_reconcile(self):
""" Reconciliation method called from the view.
:return: list of reconciled ids
"""
self.ensure_one()
return self._action_rec()
@api.multi
def _action_rec(self):
""" Must be inherited to implement the reconciliation
:return: list of reconciled ids
"""
raise NotImplementedError
def _base_columns(self):
""" Mandatory columns for move lines queries
An extra column aliased as ``key`` should be defined
in each query."""
aml_cols = (
'id',
'debit',
'credit',
'date',
'ref',
'name',
'partner_id',
'account_id',
'reconciled',
'move_id')
return ["account_move_line.%s" % col for col in aml_cols]
@api.multi
def _select(self, *args, **kwargs):
return "SELECT %s" % ', '.join(self._base_columns())
@api.multi
def _from(self, *args, **kwargs):
return ("FROM account_move_line ")
@api.multi
def _where(self, *args, **kwargs):
where = ("WHERE account_move_line.account_id = %s "
"AND NOT account_move_line.reconciled")
# it would be great to use dict for params
# but as we use _where_calc in _get_filter
# which returns a list, we have to
# accomodate with that
params = [self.account_id.id]
if self.partner_ids:
where += " AND account_move_line.partner_id IN %s"
params.append(tuple([l.id for l in self.partner_ids]))
return where, params
@api.multi
def _get_filter(self):
ml_obj = self.env['account.move.line']
where = ''
params = []
if self.filter:
dummy, where, params = ml_obj._where_calc(
safe_eval(self.filter)).get_sql()
if where:
where = " AND %s" % where
return where, params
@api.multi
def _below_writeoff_limit(self, lines, writeoff_limit):
self.ensure_one()
precision = self.env['decimal.precision'].precision_get('Account')
keys = ('debit', 'credit')
sums = reduce(
lambda line, memo:
dict((key, value + memo[key])
for key, value
in line.iteritems()
if key in keys), lines)
debit, credit = sums['debit'], sums['credit']
writeoff_amount = round(debit - credit, precision)
return bool(writeoff_limit >= abs(writeoff_amount)), debit, credit
@api.multi
def _get_rec_date(self, lines, based_on='end_period_last_credit'):
self.ensure_one()
def last_date(mlines):
return max(mlines, key=itemgetter('date'))
def credit(mlines):
return [l for l in mlines if l['credit'] > 0]
def debit(mlines):
return [l for l in mlines if l['debit'] > 0]
if based_on == 'newest':
return last_date(lines)['date']
elif based_on == 'newest_credit':
return last_date(credit(lines))['date']
elif based_on == 'newest_debit':
return last_date(debit(lines))['date']
# reconcilation date will be today
# when date is None
return None
@api.multi
def _reconcile_lines(self, lines, allow_partial=False):
""" Try to reconcile given lines
:param list lines: list of dict of move lines, they must at least
contain values for : id, debit, credit
:param boolean allow_partial: if True, partial reconciliation will be
created, otherwise only Full
reconciliation will be created
:return: tuple of boolean values, first item is wether the items
have been reconciled or not,
the second is wether the reconciliation is full (True)
or partial (False)
"""
self.ensure_one()
ml_obj = self.env['account.move.line']
line_ids = [l['id'] for l in lines]
below_writeoff, sum_debit, sum_credit = self._below_writeoff_limit(
lines, self.write_off
)
if below_writeoff:
if sum_credit > sum_debit:
writeoff_account_id = self.account_profit_id.id
else:
writeoff_account_id = self.account_lost_id.id
line_rs = ml_obj.browse(line_ids)
line_rs.reconcile(
writeoff_acc_id=writeoff_account_id,
writeoff_journal_id=self.journal_id.id
)
return True, True
elif allow_partial:
# We need to give a writeoff_acc_id
# in case we have a multi currency lines
# to reconcile.
# If amount in currency is equal between
# lines to reconcile
# it will do a full reconcile instead of a partial reconcile
# and make a write-off for exchange
if sum_credit > sum_debit:
writeoff_account_id = self.income_exchange_account_id.id
else:
writeoff_account_id = self.expense_exchange_account_id.id
line_rs = ml_obj.browse(line_ids)
line_rs.reconcile(
writeoff_acc_id=writeoff_account_id,
writeoff_journal_id=self.journal_id.id
)
return True, False
return False, False

View File

@ -0,0 +1,307 @@
# -*- coding: utf-8 -*-
# © 2012-2016 Camptocamp SA (Guewen Baconnier, Damien Crier, Matthieu Dietrich)
# © 2010 Sébastien Beau
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from datetime import datetime
from openerp import models, api, fields, _
from openerp.exceptions import Warning as UserError
from openerp import sql_db
import logging
_logger = logging.getLogger(__name__)
class MassReconcileOptions(models.AbstractModel):
"""Options of a reconciliation profile
Columns shared by the configuration of methods
and by the reconciliation wizards.
This allows decoupling of the methods and the
wizards and allows to launch the wizards alone
"""
_name = 'mass.reconcile.options'
@api.model
def _get_rec_base_date(self):
return [
('newest', 'Most recent move line'),
('actual', 'Today'),
]
write_off = fields.Float('Write off allowed', default=0.)
account_lost_id = fields.Many2one('account.account',
string="Account Lost")
account_profit_id = fields.Many2one('account.account',
string="Account Profit")
journal_id = fields.Many2one('account.journal',
string="Journal")
date_base_on = fields.Selection('_get_rec_base_date',
required=True,
string='Date of reconciliation',
default='newest')
filter = fields.Char(string='Filter')
income_exchange_account_id = fields.Many2one('account.account',
string='Gain Exchange '
'Rate Account')
expense_exchange_account_id = fields.Many2one('account.account',
string='Loss Exchange '
'Rate Account')
class AccountMassReconcileMethod(models.Model):
_name = 'account.mass.reconcile.method'
_description = 'reconcile method for account_mass_reconcile'
_inherit = 'mass.reconcile.options'
_order = 'sequence'
@api.model
def _get_all_rec_method(self):
return [
('mass.reconcile.simple.name', 'Simple. Amount and Name'),
('mass.reconcile.simple.partner', 'Simple. Amount and Partner'),
('mass.reconcile.simple.reference',
'Simple. Amount and Reference'),
('mass.reconcile.advanced.ref',
'Advanced. Partner and Ref.'),
]
@api.model
def _get_rec_method(self):
return self._get_all_rec_method()
name = fields.Selection('_get_rec_method', string='Type', required=True)
sequence = fields.Integer(string='Sequence',
default=1,
required=True,
help="The sequence field is used to order "
"the reconcile method"
)
task_id = fields.Many2one('account.mass.reconcile',
string='Task',
required=True,
ondelete='cascade'
)
company_id = fields.Many2one('res.company',
string='Company',
related="task_id.company_id",
store=True,
readonly=True
)
class AccountMassReconcile(models.Model):
_name = 'account.mass.reconcile'
_inherit = ['mail.thread']
_description = 'account mass reconcile'
@api.multi
@api.depends('account')
def _get_total_unrec(self):
obj_move_line = self.env['account.move.line']
for rec in self:
rec.unreconciled_count = obj_move_line.search_count(
[('account_id', '=', rec.account.id),
('reconciled', '=', False)])
@api.multi
@api.depends('history_ids')
def _last_history(self):
# do a search() for retrieving the latest history line,
# as a read() will badly split the list of ids with 'date desc'
# and return the wrong result.
history_obj = self.env['mass.reconcile.history']
for rec in self:
last_history_rs = history_obj.search(
[('mass_reconcile_id', '=', rec.id)],
limit=1, order='date desc'
)
rec.last_history = last_history_rs or False
name = fields.Char(string='Name', required=True)
account = fields.Many2one('account.account',
string='Account',
required=True,
)
reconcile_method = fields.One2many('account.mass.reconcile.method',
'task_id',
string='Method'
)
unreconciled_count = fields.Integer(string='Unreconciled Items',
compute='_get_total_unrec'
)
history_ids = fields.One2many('mass.reconcile.history',
'mass_reconcile_id',
string='History',
readonly=True
)
last_history = fields.Many2one('mass.reconcile.history',
string='Last history', readonly=True,
compute='_last_history',
)
company_id = fields.Many2one('res.company', string='Company')
@api.model
def _prepare_run_transient(self, rec_method):
return {'account_id': rec_method.task_id.account.id,
'write_off': rec_method.write_off,
'account_lost_id': (rec_method.account_lost_id.id),
'account_profit_id': (rec_method.account_profit_id.id),
'income_exchange_account_id':
(rec_method.income_exchange_account_id.id),
'expense_exchange_account_id':
(rec_method.income_exchange_account_id.id),
'journal_id': (rec_method.journal_id.id),
'date_base_on': rec_method.date_base_on,
'filter': rec_method.filter}
@api.multi
def run_reconcile(self):
def find_reconcile_ids(fieldname, move_line_ids):
if not move_line_ids:
return []
sql = ("SELECT DISTINCT " + fieldname +
" FROM account_move_line "
" WHERE id in %s "
" AND " + fieldname + " IS NOT NULL")
self.env.cr.execute(sql, (tuple(move_line_ids),))
res = self.env.cr.fetchall()
return [row[0] for row in res]
# we use a new cursor to be able to commit the reconciliation
# often. We have to create it here and not later to avoid problems
# where the new cursor sees the lines as reconciles but the old one
# does not.
for rec in self:
ctx = self.env.context.copy()
ctx['commit_every'] = (
rec.account.company_id.reconciliation_commit_every
)
if ctx['commit_every']:
new_cr = sql_db.db_connect(self.env.cr.dbname).cursor()
else:
new_cr = self.env.cr
try:
all_ml_rec_ids = []
for method in rec.reconcile_method:
rec_model = self.env[method.name]
auto_rec_id = rec_model.create(
self._prepare_run_transient(method)
)
ml_rec_ids = auto_rec_id.automatic_reconcile()
all_ml_rec_ids += ml_rec_ids
reconcile_ids = find_reconcile_ids(
'full_reconcile_id',
all_ml_rec_ids
)
self.env['mass.reconcile.history'].create(
{
'mass_reconcile_id': rec.id,
'date': fields.Datetime.now(),
'reconcile_ids': [
(4, rid) for rid in reconcile_ids
],
})
except Exception as e:
# In case of error, we log it in the mail thread, log the
# stack trace and create an empty history line; otherwise,
# the cron will just loop on this reconcile task.
_logger.exception(
"The reconcile task %s had an exception: %s",
rec.name, e.message
)
message = _("There was an error during reconciliation : %s") \
% e.message
rec.message_post(body=message)
self.env['mass.reconcile.history'].create(
{
'mass_reconcile_id': rec.id,
'date': fields.Datetime.now(),
'reconcile_ids': [],
}
)
finally:
if ctx['commit_every']:
new_cr.commit()
new_cr.close()
return True
@api.multi
def _no_history(self):
""" Raise an `orm.except_orm` error, supposed to
be called when there is no history on the reconciliation
task.
"""
raise UserError(
_('There is no history of reconciled '
'items on the task: %s.') % self.name
)
@api.model
def _open_move_line_list(self, move_line_ids, name):
return {
'name': name,
'view_mode': 'tree,form',
'view_id': False,
'view_type': 'form',
'res_model': 'account.move.line',
'type': 'ir.actions.act_window',
'nodestroy': True,
'target': 'current',
'domain': unicode([('id', 'in', move_line_ids)]),
}
@api.multi
def open_unreconcile(self):
""" Open the view of move line with the unreconciled move lines"""
self.ensure_one()
obj_move_line = self.env['account.move.line']
lines = obj_move_line.search(
[('account_id', '=', self.account.id),
('reconciled', '=', False)])
name = _('Unreconciled items')
return self._open_move_line_list(lines.ids or [], name)
@api.multi
def last_history_reconcile(self):
""" Get the last history record for this reconciliation profile
and return the action which opens move lines reconciled
"""
if not self.last_history:
self._no_history()
return self.last_history.open_reconcile()
@api.model
def run_scheduler(self, run_all=None):
""" Launch the reconcile with the oldest run
This function is mostly here to be used with cron task
:param run_all: if set it will ingore lookup and launch
all reconciliation
:returns: True in case of success or raises an exception
"""
def _get_date(reconcile):
if reconcile.last_history.date:
return fields.Datetime.from_string(reconcile.last_history.date)
else:
return datetime.min
reconciles = self.search([])
assert reconciles.ids, "No mass reconcile available"
if run_all:
reconciles.run_reconcile()
return True
reconciles.sorted(key=_get_date)
older = reconciles[0]
older.run_reconcile()
return True

View File

@ -0,0 +1,82 @@
# -*- coding: utf-8 -*-
# © 2012-2016 Camptocamp SA (Guewen Baconnier, Damien Crier, Matthieu Dietrich)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import models, api, fields, _
class MassReconcileHistory(models.Model):
""" Store an history of the runs per profile
Each history stores the list of reconciliations done"""
_name = 'mass.reconcile.history'
_rec_name = 'mass_reconcile_id'
_order = 'date DESC'
@api.multi
@api.depends('reconcile_ids')
def _get_reconcile_line_ids(self):
for rec in self:
rec.reconcile_line_ids = rec.mapped(
'reconcile_ids.reconciled_line_ids'
).ids
mass_reconcile_id = fields.Many2one(
'account.mass.reconcile',
string='Reconcile Profile',
readonly=True
)
date = fields.Datetime(string='Run date', readonly=True, required=True)
reconcile_ids = fields.Many2many(
comodel_name='account.full.reconcile',
relation='account_full_reconcile_history_rel',
string='Full Reconciliations',
readonly=True
)
reconcile_line_ids = fields.Many2many(
comodel_name='account.move.line',
relation='account_move_line_history_rel',
string='Reconciled Items',
compute='_get_reconcile_line_ids'
)
company_id = fields.Many2one(
'res.company',
string='Company',
store=True,
readonly=True,
related='mass_reconcile_id.company_id'
)
@api.multi
def _open_move_lines(self):
""" For an history record, open the view of move line with
the reconciled move lines
:param history_id: id of the history
:return: action to open the move lines
"""
move_line_ids = self.mapped('reconcile_ids.reconciled_line_ids').ids
name = _('Reconciliations')
return {
'name': name,
'view_mode': 'tree,form',
'view_id': False,
'view_type': 'form',
'res_model': 'account.move.line',
'type': 'ir.actions.act_window',
'nodestroy': True,
'target': 'current',
'domain': unicode([('id', 'in', move_line_ids)]),
}
@api.multi
def open_reconcile(self):
""" For an history record, open the view of move line
with the reconciled move lines
:param history_ids: id of the record as int or long
Accept a list with 1 id too to be
used from the client.
"""
self.ensure_one()
return self._open_move_lines()

View File

@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
# © 2014-2016 Camptocamp SA (Leonardo Pistone, Damien Crier, Matthieu Dietrich)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import models, fields
class AccountConfigSettings(models.TransientModel):
_inherit = 'account.config.settings'
reconciliation_commit_every = fields.Integer(
related="company_id.reconciliation_commit_every",
string="How often to commit when performing automatic "
"reconciliation.",
help="Leave zero to commit only at the end of the process."
)
class Company(models.Model):
_inherit = "res.company"
reconciliation_commit_every = fields.Integer(
string="How often to commit when performing automatic "
"reconciliation.",
help="Leave zero to commit only at the end of the process."
)

View File

@ -0,0 +1,97 @@
# -*- coding: utf-8 -*-
# © 2012-2016 Camptocamp SA (Guewen Baconnier, Damien Crier, Matthieu Dietrich)
# © 2010 Sébastien Beau
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import models, api
class MassReconcileSimple(models.AbstractModel):
_name = 'mass.reconcile.simple'
_inherit = 'mass.reconcile.base'
# has to be subclassed
# field name used as key for matching the move lines
_key_field = None
@api.multi
def rec_auto_lines_simple(self, lines):
if self._key_field is None:
raise ValueError("_key_field has to be defined")
count = 0
res = []
while (count < len(lines)):
for i in xrange(count + 1, len(lines)):
if lines[count][self._key_field] != lines[i][self._key_field]:
break
check = False
if lines[count]['credit'] > 0 and lines[i]['debit'] > 0:
credit_line = lines[count]
debit_line = lines[i]
check = True
elif lines[i]['credit'] > 0 and lines[count]['debit'] > 0:
credit_line = lines[i]
debit_line = lines[count]
check = True
if not check:
continue
reconciled, dummy = self._reconcile_lines(
[credit_line, debit_line],
allow_partial=False
)
if reconciled:
res += [credit_line['id'], debit_line['id']]
del lines[i]
break
count += 1
return res
@api.multi
def _simple_order(self, *args, **kwargs):
return "ORDER BY account_move_line.%s" % self._key_field
@api.multi
def _action_rec(self):
"""Match only 2 move lines, do not allow partial reconcile"""
select = self._select()
select += ", account_move_line.%s " % self._key_field
where, params = self._where()
where += " AND account_move_line.%s IS NOT NULL " % self._key_field
where2, params2 = self._get_filter()
query = ' '.join((
select,
self._from(),
where, where2,
self._simple_order()))
self.env.cr.execute(query, params + params2)
lines = self.env.cr.dictfetchall()
return self.rec_auto_lines_simple(lines)
class MassReconcileSimpleName(models.TransientModel):
_name = 'mass.reconcile.simple.name'
_inherit = 'mass.reconcile.simple'
# has to be subclassed
# field name used as key for matching the move lines
_key_field = 'name'
class MassReconcileSimplePartner(models.TransientModel):
_name = 'mass.reconcile.simple.partner'
_inherit = 'mass.reconcile.simple'
# has to be subclassed
# field name used as key for matching the move lines
_key_field = 'partner_id'
class MassReconcileSimpleReference(models.TransientModel):
_name = 'mass.reconcile.simple.reference'
_inherit = 'mass.reconcile.simple'
# has to be subclassed
# field name used as key for matching the move lines
_key_field = 'ref'

View File

@ -0,0 +1,9 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_mass_reconcile_options_acc_user,mass.reconcile.options,model_mass_reconcile_options,account.group_account_user,1,0,0,0
access_account_mass_reconcile_method_acc_user,account.mass.reconcile.method,model_account_mass_reconcile_method,account.group_account_user,1,0,0,0
access_account_mass_reconcile_acc_user,account.mass.reconcile,model_account_mass_reconcile,account.group_account_user,1,1,0,0
access_mass_reconcile_options_acc_mgr,mass.reconcile.options,model_mass_reconcile_options,account.group_account_manager,1,0,0,0
access_account_mass_reconcile_method_acc_mgr,account.mass.reconcile.method,model_account_mass_reconcile_method,account.group_account_manager,1,1,1,1
access_account_mass_reconcile_acc_mgr,account.mass.reconcile,model_account_mass_reconcile,account.group_account_manager,1,1,1,1
access_mass_reconcile_history_acc_user,mass.reconcile.history,model_mass_reconcile_history,account.group_account_user,1,1,1,0
access_mass_reconcile_history_acc_mgr,mass.reconcile.history,model_mass_reconcile_history,account.group_account_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_mass_reconcile_options_acc_user mass.reconcile.options model_mass_reconcile_options account.group_account_user 1 0 0 0
3 access_account_mass_reconcile_method_acc_user account.mass.reconcile.method model_account_mass_reconcile_method account.group_account_user 1 0 0 0
4 access_account_mass_reconcile_acc_user account.mass.reconcile model_account_mass_reconcile account.group_account_user 1 1 0 0
5 access_mass_reconcile_options_acc_mgr mass.reconcile.options model_mass_reconcile_options account.group_account_manager 1 0 0 0
6 access_account_mass_reconcile_method_acc_mgr account.mass.reconcile.method model_account_mass_reconcile_method account.group_account_manager 1 1 1 1
7 access_account_mass_reconcile_acc_mgr account.mass.reconcile model_account_mass_reconcile account.group_account_manager 1 1 1 1
8 access_mass_reconcile_history_acc_user mass.reconcile.history model_mass_reconcile_history account.group_account_user 1 1 1 0
9 access_mass_reconcile_history_acc_mgr mass.reconcile.history model_mass_reconcile_history account.group_account_manager 1 1 1 1

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="mass_reconcile_rule" model="ir.rule">
<field name="name">Mass reconcile multi-company</field>
<field name="model_id" ref="model_account_mass_reconcile"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
</record>
<record id="mass_reconcile_history_rule" model="ir.rule">
<field name="name">Mass reconcile history multi-company</field>
<field name="model_id" ref="model_mass_reconcile_history"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
</record>
<record id="mass_reconcile_method_rule" model="ir.rule">
<field name="name">Mass reconcile method multi-company</field>
<field name="model_id" ref="model_account_mass_reconcile_method"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
</record>
</data>
</openerp>

View File

@ -0,0 +1,8 @@
# -*- coding: utf-8 -*-
# © 2014-2016 Camptocamp SA (Damien Crier)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import test_onchange_company
from . import test_reconcile_history
from . import test_reconcile
from . import test_scenario_reconcile

View File

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
# © 2014-2016 Camptocamp SA (Damien Crier)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp.tests import common
from openerp import tools
from openerp.modules import get_module_resource
class TestOnChange(common.TransactionCase):
def setUp(self):
super(TestOnChange, self).setUp()
tools.convert_file(self.cr, 'account',
get_module_resource('account', 'test',
'account_minimal_test.xml'),
{}, 'init', False, 'test')
acc_setting = self.env['account.config.settings']
self.acc_setting_obj = acc_setting.create({})
self.company_obj = self.env['res.company']
# analytic defaults account creation
self.main_company = self.env.ref('base.main_company')
self.sec_company = self.company_obj.create(
{
'name': 'Second company',
'reconciliation_commit_every': 80
}
)
def test_retrieve_analytic_account(self):
sec_company_commit = self.sec_company.reconciliation_commit_every
main_company_commit = self.main_company.reconciliation_commit_every
self.acc_setting_obj.company_id = self.sec_company
self.assertEqual(sec_company_commit,
self.acc_setting_obj.reconciliation_commit_every,
False)
self.acc_setting_obj.company_id = self.main_company
self.assertEqual(main_company_commit,
self.acc_setting_obj.reconciliation_commit_every,
False)

View File

@ -0,0 +1,69 @@
# -*- coding: utf-8 -*-
# © 2014-2016 Camptocamp SA (Damien Crier)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp.tests import common
from openerp import fields, exceptions, tools
from openerp.modules import get_module_resource
class TestReconcile(common.TransactionCase):
def setUp(self):
super(TestReconcile, self).setUp()
tools.convert_file(self.cr, 'account',
get_module_resource('account', 'test',
'account_minimal_test.xml'),
{}, 'init', False, 'test')
self.rec_history_obj = self.env['mass.reconcile.history']
self.mass_rec_obj = self.env['account.mass.reconcile']
self.mass_rec_method_obj = (
self.env['account.mass.reconcile.method']
)
self.mass_rec = self.mass_rec_obj.create(
{
'name': 'AER2',
'account': self.ref('account.a_salary_expense'),
}
)
self.mass_rec_method = self.mass_rec_method_obj.create(
{
'name': 'mass.reconcile.simple.name',
'sequence': '10',
'task_id': self.mass_rec.id,
}
)
self.mass_rec_no_history = self.mass_rec_obj.create(
{
'name': 'AER3',
'account': self.ref('account.a_salary_expense'),
}
)
self.rec_history = self.rec_history_obj.create(
{
'mass_reconcile_id': self.mass_rec.id,
'date': fields.Datetime.now(),
}
)
def test_last_history(self):
mass_rec_last_hist = self.mass_rec.last_history
self.assertEqual(self.rec_history, mass_rec_last_hist)
def test_last_history_empty(self):
mass_rec_last_hist = self.mass_rec_no_history.last_history.id
self.assertEqual(False, mass_rec_last_hist)
def test_last_history_full_no_history(self):
with self.assertRaises(exceptions.Warning):
self.mass_rec_no_history.last_history_reconcile()
def test_open_unreconcile(self):
res = self.mass_rec.open_unreconcile()
self.assertEqual(unicode([('id', 'in', [])]), res.get('domain', []))
def test_prepare_run_transient(self):
res = self.mass_rec._prepare_run_transient(self.mass_rec_method)
self.assertEqual(self.ref('account.a_salary_expense'),
res.get('account_id', 0))

View File

@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
# © 2014-2016 Camptocamp SA (Damien Crier)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp.tests import common
from openerp import fields, tools
from openerp.modules import get_module_resource
class TestReconcileHistory(common.TransactionCase):
def setUp(self):
super(TestReconcileHistory, self).setUp()
tools.convert_file(self.cr, 'account',
get_module_resource('account', 'test',
'account_minimal_test.xml'),
{}, 'init', False, 'test')
self.rec_history_obj = self.env['mass.reconcile.history']
self.mass_rec_obj = self.env['account.mass.reconcile']
self.mass_rec = self.mass_rec_obj.create(
{
'name': 'AER1',
'account': self.ref('account.a_expense'),
}
)
self.rec_history = self.rec_history_obj.create(
{
'mass_reconcile_id': self.mass_rec.id,
'date': fields.Datetime.now(),
}
)
def test_open_full_empty(self):
res = self.rec_history._open_move_lines()
self.assertEqual(unicode([('id', 'in', [])]), res.get(
'domain', []))
def test_open_full_empty_from_method(self):
res = self.rec_history.open_reconcile()
self.assertEqual(unicode([('id', 'in', [])]), res.get(
'domain', []))

View File

@ -0,0 +1,231 @@
# -*- coding: utf-8 -*-
# © 2014-2016 Camptocamp SA (Damien Crier)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp.tests import common
from openerp import fields, tools
from openerp.modules import get_module_resource
class TestScenarioReconcile(common.TransactionCase):
def setUp(self):
super(TestScenarioReconcile, self).setUp()
tools.convert_file(self.cr, 'account',
get_module_resource('account', 'test',
'account_minimal_test.xml'),
{}, 'init', False, 'test')
self.rec_history_obj = self.env['mass.reconcile.history']
self.mass_rec_obj = self.env['account.mass.reconcile']
self.invoice_obj = self.env['account.invoice']
self.bk_stmt_obj = self.env['account.bank.statement']
self.bk_stmt_line_obj = self.env['account.bank.statement.line']
self.acc_move_line_obj = self.env['account.move.line']
self.mass_rec_method_obj = (
self.env['account.mass.reconcile.method']
)
self.account_fx_income_id = self.ref("account.income_fx_income")
self.account_fx_expense_id = self.ref("account.income_fx_expense")
self.acs_model = self.env['account.config.settings']
acs_ids = self.acs_model.search(
[('company_id', '=', self.ref("base.main_company"))]
)
values = {'group_multi_currency': True,
'currency_id': self.ref('base.EUR')}
if acs_ids:
acs_ids.write(values)
else:
default_vals = self.acs_model.default_get([])
default_vals.update(values)
acs_ids = self.acs_model.create(default_vals)
def test_scenario_reconcile(self):
# create invoice
invoice = self.invoice_obj.create(
{
'type': 'out_invoice',
'account_id': self.ref('account.a_recv'),
'company_id': self.ref('base.main_company'),
'journal_id': self.ref('account.sales_journal'),
'partner_id': self.ref('base.res_partner_12'),
'invoice_line_ids': [
(0, 0, {
'name': '[PCSC234] PC Assemble SC234',
'account_id': self.ref('account.a_sale'),
'price_unit': 1000.0,
'quantity': 1.0,
'product_id': self.ref('product.product_product_3'),
}
)
]
}
)
# validate invoice
invoice.signal_workflow('invoice_open')
self.assertEqual('open', invoice.state)
# create bank_statement
statement = self.bk_stmt_obj.create(
{
'balance_end_real': 0.0,
'balance_start': 0.0,
'date': fields.Date.today(),
'journal_id': self.ref('account.bank_journal'),
'line_ids': [
(0, 0, {
'amount': 1000.0,
'partner_id': self.ref('base.res_partner_12'),
'name': invoice.number,
'ref': invoice.number,
}
)
]
}
)
# reconcile
line_id = None
for l in invoice.move_id.line_ids:
if l.account_id.id == self.ref('account.a_recv'):
line_id = l
break
for statement_line in statement.line_ids:
statement_line.process_reconciliation(
[
{
'move_line': line_id,
'credit': 1000.0,
'debit': 0.0,
'name': invoice.number,
}
]
)
# unreconcile journal item created by previous reconciliation
lines_to_unreconcile = self.acc_move_line_obj.search(
[('reconciled', '=', True),
('statement_id', '=', statement.id)]
)
lines_to_unreconcile.remove_move_reconcile()
# create the mass reconcile record
mass_rec = self.mass_rec_obj.create(
{
'name': 'mass_reconcile_1',
'account': self.ref('account.a_recv'),
'reconcile_method': [
(0, 0, {
'name': 'mass.reconcile.simple.partner',
}
)
]
}
)
# call the automatic reconcilation method
mass_rec.run_reconcile()
self.assertEqual(
'paid',
invoice.state
)
def test_scenario_reconcile_currency(self):
# create currency rate
self.env['res.currency.rate'].create({
'name': fields.Date.today() + ' 00:00:00',
'currency_id': self.ref('base.USD'),
'rate': 1.5,
})
# create invoice
invoice = self.invoice_obj.create(
{
'type': 'out_invoice',
'account_id': self.ref('account.a_recv'),
'company_id': self.ref('base.main_company'),
'currency_id': self.ref('base.USD'),
'journal_id': self.ref('account.bank_journal_usd'),
'partner_id': self.ref('base.res_partner_12'),
'invoice_line_ids': [
(0, 0, {
'name': '[PCSC234] PC Assemble SC234',
'account_id': self.ref('account.a_sale'),
'price_unit': 1000.0,
'quantity': 1.0,
'product_id': self.ref('product.product_product_3'),
}
)
]
}
)
# validate invoice
invoice.signal_workflow('invoice_open')
self.assertEqual('open', invoice.state)
# create bank_statement
statement = self.bk_stmt_obj.create(
{
'balance_end_real': 0.0,
'balance_start': 0.0,
'date': fields.Date.today(),
'journal_id': self.ref('account.bank_journal_usd'),
'currency_id': self.ref('base.USD'),
'line_ids': [
(0, 0, {
'amount': 1000.0,
'amount_currency': 1500.0,
'partner_id': self.ref('base.res_partner_12'),
'name': invoice.number,
'ref': invoice.number,
}
)
]
}
)
# reconcile
line_id = None
for l in invoice.move_id.line_ids:
if l.account_id.id == self.ref('account.a_recv'):
line_id = l
break
for statement_line in statement.line_ids:
statement_line.process_reconciliation(
[
{
'move_line': line_id,
'credit': 1000.0,
'debit': 0.0,
'name': invoice.number,
}
]
)
# unreconcile journal item created by previous reconciliation
lines_to_unreconcile = self.acc_move_line_obj.search(
[('reconciled', '=', True),
('statement_id', '=', statement.id)]
)
lines_to_unreconcile.remove_move_reconcile()
# create the mass reconcile record
mass_rec = self.mass_rec_obj.create(
{
'name': 'mass_reconcile_1',
'account': self.ref('account.a_recv'),
'reconcile_method': [
(0, 0, {
'name': 'mass.reconcile.simple.partner',
}
)
]
}
)
# call the automatic reconcilation method
mass_rec.run_reconcile()
self.assertEqual(
'paid',
invoice.state
)

View File

@ -0,0 +1,163 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<!-- account.mass.reconcile view -->
<record id="account_mass_reconcile_form" model="ir.ui.view">
<field name="name">account.mass.reconcile.form</field>
<field name="priority">20</field>
<field name="model">account.mass.reconcile</field>
<field name="arch" type="xml">
<form string="Automatic Mass Reconcile" version="7.0">
<header>
<button name="run_reconcile" class="oe_highlight"
string="Start Auto Reconciliation" type="object"/>
<button icon="STOCK_JUMP_TO" name="last_history_reconcile"
string="Display items reconciled on the last run"
type="object"/>
</header>
<sheet>
<separator colspan="4" string="Profile Information" />
<group>
<group>
<field name="name" select="1"/>
<field name="account"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>
<group>
<group>
<field name="unreconciled_count"/>
<button icon="STOCK_JUMP_TO" name="open_unreconcile"
string="Go to unreconciled items" type="object"/>
</group>
</group>
</group>
<notebook colspan="4">
<page name="methods" string="Configuration">
<field name="reconcile_method" colspan = "4" nolabel="1"/>
</page>
<page name="history" string="History">
<field name="history_ids" nolabel="1">
<tree string="Automatic Mass Reconcile History">
<field name="date"/>
<button icon="STOCK_JUMP_TO" name="open_reconcile"
string="Go to reconciled items" type="object"/>
</tree>
</field>
</page>
<page name="information" string="Information">
<separator colspan="4" string="Simple. Amount and Name"/>
<label string="Match one debit line vs one credit line. Do not allow partial reconciliation.
The lines should have the same amount (with the write-off) and the same name to be reconciled." colspan="4"/>
<separator colspan="4" string="Simple. Amount and Partner"/>
<label string="Match one debit line vs one credit line. Do not allow partial reconciliation.
The lines should have the same amount (with the write-off) and the same partner to be reconciled." colspan="4"/>
<separator colspan="4" string="Simple. Amount and Reference"/>
<label string="Match one debit line vs one credit line. Do not allow partial reconciliation.
The lines should have the same amount (with the write-off) and the same reference to be reconciled." colspan="4"/>
<group colspan="2" col="2">
<separator colspan="4" string="Advanced. Partner and Ref"/>
<label string="Match multiple debit vs multiple credit entries. Allow partial reconciliation.
The lines should have the partner, the credit entry ref. is matched vs the debit entry ref. or name." colspan="4"/>
</group>
</page>
</notebook>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</form>
</field>
</record>
<record id="account_mass_reconcile_tree" model="ir.ui.view">
<field name="name">account.mass.reconcile.tree</field>
<field name="priority">20</field>
<field name="model">account.mass.reconcile</field>
<field name="arch" type="xml">
<tree string="Automatic Mass Reconcile">
<field name="name"/>
<field name="account"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="unreconciled_count"/>
<button icon="gtk-ok" name="run_reconcile" colspan="4"
string="Start Auto Reconcilation" type="object"/>
<button icon="STOCK_JUMP_TO" name="last_history_reconcile" colspan="2"
string="Display items reconciled on the last run" type="object"/>
<button icon="STOCK_JUMP_TO" name="last_history_partial" colspan="2"
string="Display items partially reconciled on the last run"
type="object"/>
</tree>
</field>
</record>
<record id="action_account_mass_reconcile" model="ir.actions.act_window">
<field name="name">Mass Automatic Reconcile</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.mass.reconcile</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to add a reconciliation profile.
</p><p>
A reconciliation profile specifies, for one account, how
the entries should be reconciled.
You can select one or many reconciliation methods which will
be run sequentially to match the entries between them.
</p>
</field>
</record>
<!-- account.mass.reconcile.method view -->
<record id="account_mass_reconcile_method_tree" model="ir.ui.view">
<field name="name">account.mass.reconcile.method.tree</field>
<field name="priority">20</field>
<field name="model">account.mass.reconcile.method</field>
<field name="arch" type="xml">
<tree editable="top" string="Automatic Mass Reconcile Method">
<field name="sequence" widget="handle"/>
<field name="name"/>
<field name="write_off"/>
<field name="account_lost_id" attrs="{'required':[('write_off','>',0)]}"/>
<field name="account_profit_id" attrs="{'required':[('write_off','>',0)]}"/>
<field name="income_exchange_account_id" groups="base.group_multi_currency"/>
<field name="expense_exchange_account_id" groups="base.group_multi_currency"/>
<field name="journal_id" attrs="{'required':[('write_off','>',0)]}"/>
<field name="date_base_on"/>
</tree>
</field>
</record>
<!-- menu item -->
<menuitem action="action_account_mass_reconcile"
id="menu_mass_reconcile"
parent="account.menu_finance_entries"/>
</data>
<data noupdate="1">
<record forcecreate="True" id="ir_cron_run_reconciliations" model="ir.cron">
<field name="name">Do Automatic Reconciliations</field>
<field eval="False" name="active"/>
<field name="user_id" ref="base.user_root"/>
<field name="interval_number">3</field>
<field name="interval_type">hours</field>
<field name="numbercall">-1</field>
<field eval="False" name="doall"/>
<field eval="'account.mass.reconcile'" name="model"/>
<field eval="'run_scheduler'" name="function"/>
<field eval="'()'" name="args"/>
</record>
</data>
</openerp>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_mass_reconcile_history_search" model="ir.ui.view">
<field name="name">mass.reconcile.history.search</field>
<field name="model">mass.reconcile.history</field>
<field name="arch" type="xml">
<search string="Automatic Mass Reconcile History">
<filter icon="terp-go-today" string="Today"
domain="[('date','&lt;', time.strftime('%%Y-%%m-%%d 23:59:59')), ('date','&gt;=', time.strftime('%%Y-%%m-%%d 00:00:00'))]"
help="Todays' Reconcilations" />
<filter icon="terp-go-week" string="7 Days"
help="Reconciliations of last 7 days"
domain="[('date','&lt;', time.strftime('%%Y-%%m-%%d 23:59:59')),('date','&gt;=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d 00:00:00'))]"
/>
<separator orientation="vertical"/>
<field name="mass_reconcile_id"/>
<field name="date"/>
<newline/>
<group expand="0" string="Group By...">
<filter string="Reconciliation Profile"
icon="terp-stock_effects-object-colorize"
domain="[]" context="{'group_by': 'mass_reconcile_id'}"/>
<filter string="Date" icon="terp-go-month" domain="[]"
context="{'group_by': 'date'}"/>
</group>
</search>
</field>
</record>
<record id="mass_reconcile_history_form" model="ir.ui.view">
<field name="name">mass.reconcile.history.form</field>
<field name="model">mass.reconcile.history</field>
<field name="arch" type="xml">
<form string="Automatic Mass Reconcile History" version="7.0">
<header>
<button name="open_reconcile"
string="Go to reconciled items"
icon="STOCK_JUMP_TO" type="object"/>
</header>
<sheet>
<group>
<field name="mass_reconcile_id"/>
<field name="date"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>
<group col="2">
<separator colspan="2" string="Reconciliations"/>
<field name="reconcile_ids" nolabel="1"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="mass_reconcile_history_tree" model="ir.ui.view">
<field name="name">mass.reconcile.history.tree</field>
<field name="model">mass.reconcile.history</field>
<field name="arch" type="xml">
<tree string="Automatic Mass Reconcile History">
<field name="mass_reconcile_id"/>
<field name="date"/>
<button icon="STOCK_JUMP_TO" name="open_reconcile"
string="Go to reconciled items" type="object"/>
</tree>
</field>
</record>
<record id="action_mass_reconcile_history" model="ir.actions.act_window">
<field name="name">Mass Automatic Reconcile History</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">mass.reconcile.history</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<act_window
context="{'search_default_mass_reconcile_id': [active_id], 'default_mass_reconcile_id': active_id}"
id="act_mass_reconcile_to_history"
name="History Details"
groups=""
res_model="mass.reconcile.history"
src_model="account.mass.reconcile"/>
</odoo>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_account_config" model="ir.ui.view">
<field name="name">account settings</field>
<field name="model">account.config.settings</field>
<field name="inherit_id" ref="account.view_account_config_settings"/>
<field name="arch" type="xml">
<group name="bank_cash" position="after">
<separator string="Reconciliation"/>
<group>
<label for="id" string="Options"/>
<div name="reconciliation_config">
<div>
<label for="reconciliation_commit_every"/>
<field name="reconciliation_commit_every" class="oe_inline"/>
</div>
</div>
</group>
</group>
</field>
</record>
</odoo>