[MRG] from main branch

This commit is contained in:
Guewen Baconnier @ Camptocamp
2012-12-20 11:46:21 +01:00
13 changed files with 1336 additions and 81 deletions

View File

@@ -0,0 +1,90 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * account_advanced_reconcile
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-07 12:34+0000\n"
"PO-Revision-Date: 2012-11-07 12:34+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_advanced_reconcile
#: field:easy.reconcile.advanced,partner_ids:0
#: field:easy.reconcile.advanced.ref,partner_ids:0
msgid "Restrict on partners"
msgstr "Restriction sur les partenaires"
#. module: account_advanced_reconcile
#: field:easy.reconcile.advanced,account_id:0
#: field:easy.reconcile.advanced.ref,account_id:0
msgid "Account"
msgstr "Compte"
#. module: account_advanced_reconcile
#: model:ir.model,name:account_advanced_reconcile.model_account_easy_reconcile_method
msgid "reconcile method for account_easy_reconcile"
msgstr "Méthode de lettrage pour le module account_easy_reconcile"
#. module: account_advanced_reconcile
#: field:easy.reconcile.advanced,date_base_on:0
#: field:easy.reconcile.advanced.ref,date_base_on:0
msgid "Date of reconcilation"
msgstr "Date de lettrage"
#. module: account_advanced_reconcile
#: field:easy.reconcile.advanced,journal_id:0
#: field:easy.reconcile.advanced.ref,journal_id:0
msgid "Journal"
msgstr "Journal"
#. module: account_advanced_reconcile
#: field:easy.reconcile.advanced,account_profit_id:0
#: field:easy.reconcile.advanced.ref,account_profit_id:0
msgid "Account Profit"
msgstr "Compte de produit"
#. module: account_advanced_reconcile
#: field:easy.reconcile.advanced,filter:0
#: field:easy.reconcile.advanced.ref,filter:0
msgid "Filter"
msgstr "Filtre"
#. module: account_advanced_reconcile
#: view:account.easy.reconcile:0
msgid "Advanced. Partner and Ref"
msgstr "Avancé. Partenaire et Réf."
#. module: account_advanced_reconcile
#: view:account.easy.reconcile:0
msgid "Match multiple debit vs multiple credit entries. Allow partial reconcilation. 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_advanced_reconcile
#: model:ir.model,name:account_advanced_reconcile.model_easy_reconcile_advanced
msgid "easy.reconcile.advanced"
msgstr "easy.reconcile.advanced"
#. module: account_advanced_reconcile
#: field:easy.reconcile.advanced,account_lost_id:0
#: field:easy.reconcile.advanced.ref,account_lost_id:0
msgid "Account Lost"
msgstr "Compte de charge"
#. module: account_advanced_reconcile
#: model:ir.model,name:account_advanced_reconcile.model_easy_reconcile_advanced_ref
msgid "easy.reconcile.advanced.ref"
msgstr "easy.reconcile.advanced.ref"
#. module: account_advanced_reconcile
#: field:easy.reconcile.advanced,write_off:0
#: field:easy.reconcile.advanced.ref,write_off:0
msgid "Write off allowed"
msgstr "Écart autorisé"

View File

@@ -22,3 +22,4 @@
import easy_reconcile
import base_reconciliation
import simple_reconciliation
import easy_reconcile_history

View File

@@ -40,6 +40,11 @@ in order to provide:
- a profile a reconciliation can be run manually
or by a cron
- monitoring of reconcilation runs with a few logs
- 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 entries
2 simple reconciliation methods are integrated
in this module, the simple reconciliations works
@@ -57,7 +62,10 @@ allows multiple lines and partial.
"category" : "Finance",
"init_xml" : [],
"demo_xml" : [],
"update_xml" : ["easy_reconcile.xml"],
"update_xml" : [
"easy_reconcile.xml",
"easy_reconcile_history_view.xml",
],
'license': 'AGPL-3',
"auto_install": False,
"installable": True,

View File

@@ -137,22 +137,39 @@ class account_easy_reconcile(Model):
context=context))
return res
def _last_history(self, cr, uid, ids, name, args, context=None):
result = {}
for history in self.browse(cr, uid, ids, context=context):
# history is sorted by date desc
result[history.id] = history.history_ids[0].id
return result
_columns = {
'name': fields.char('Name', size=64, required=True),
'account': fields.many2one('account.account', 'Account', required=True),
'reconcile_method': fields.one2many('account.easy.reconcile.method', 'task_id', 'Method'),
'scheduler': fields.many2one('ir.cron', 'scheduler', readonly=True),
'rec_log': fields.text('log', readonly=True),
'unreconciled_count': fields.function(_get_total_unrec,
type='integer', string='Fully Unreconciled Entries'),
type='integer', string='Unreconciled Entries'),
'reconciled_partial_count': fields.function(_get_partial_rec,
type='integer', string='Partially Reconciled Entries'),
'history_ids': fields.one2many(
'easy.reconcile.history',
'easy_reconcile_id',
string='History'),
'last_history':
fields.function(
_last_history,
string='Last History',
type='many2one',
relation='easy.reconcile.history',
readonly=True),
}
def copy_data(self, cr, uid, id, default=None, context=None):
if default is None:
default = {}
default = dict(default, rec_log=False, scheduler=False)
default = dict(default, scheduler=False)
return super(account_easy_reconcile, self).copy_data(
cr, uid, id, default=default, context=context)
@@ -168,39 +185,69 @@ class account_easy_reconcile(Model):
'filter': rec_method.filter}
def run_reconcile(self, cr, uid, ids, context=None):
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")
cr.execute(sql, (tuple(move_line_ids),))
res = cr.fetchall()
return [row[0] for row in res]
if context is None:
context = {}
for rec_id in ids:
rec = self.browse(cr, uid, rec_id, context=context)
total_rec = 0
total_partial_rec = 0
details = []
count = 0
for method in rec.reconcile_method:
count += 1
for rec in self.browse(cr, uid, ids, context=context):
all_ml_rec_ids = []
all_ml_partial_ids = []
for method in rec.reconcile_method:
rec_model = self.pool.get(method.name)
auto_rec_id = rec_model.create(
cr, uid,
self._prepare_run_transient(cr, uid, method, context=context),
context=context)
rec_ids, partial_ids = rec_model.automatic_reconcile(
ml_rec_ids, ml_partial_ids = rec_model.automatic_reconcile(
cr, uid, auto_rec_id, context=context)
details.append(_('method %d : full: %d lines, partial: %d lines') % \
(count, len(rec_ids), len(partial_ids)))
all_ml_rec_ids += ml_rec_ids
all_ml_partial_ids += ml_partial_ids
total_rec += len(rec_ids)
total_partial_rec += len(partial_ids)
reconcile_ids = find_reconcile_ids(
'reconcile_id', all_ml_rec_ids)
partial_ids = find_reconcile_ids(
'reconcile_partial_id', all_ml_partial_ids)
log = self.read(cr, uid, rec_id, ['rec_log'], context=context)['rec_log']
log_lines = log and log.splitlines() or []
log_lines[0:0] = [_("%s : %d lines have been fully reconciled" \
" and %d lines have been partially reconciled (%s)") % \
(time.strftime(DEFAULT_SERVER_DATETIME_FORMAT), total_rec,
total_partial_rec, ' | '.join(details))]
log = "\n".join(log_lines)
self.write(cr, uid, rec_id, {'rec_log': log}, context=context)
self.pool.get('easy.reconcile.history').create(
cr,
uid,
{'easy_reconcile_id': rec.id,
'date': fields.datetime.now(),
'reconcile_ids': [(4, rid) for rid in reconcile_ids],
'reconcile_partial_ids': [(4, rid) for rid in partial_ids]},
context=context)
return True
def last_history_reconcile(self, cr, uid, rec_id, context=None):
""" Get the last history record for this reconciliation profile
and return the action which opens move lines reconciled
"""
if isinstance(rec_id, (tuple, list)):
assert len(rec_id) == 1, \
"Only 1 id expected"
rec_id = rec_id[0]
rec = self.browse(cr, uid, rec_id, context=context)
return rec.last_history.open_reconcile()
def last_history_partial(self, cr, uid, rec_id, context=None):
""" Get the last history record for this reconciliation profile
and return the action which opens move lines reconciled
"""
if isinstance(rec_id, (tuple, list)):
assert len(rec_id) == 1, \
"Only 1 id expected"
rec_id = rec_id[0]
rec = self.browse(cr, uid, rec_id, context=context)
return rec.last_history.open_partial()

View File

@@ -20,6 +20,28 @@
<notebook colspan="4">
<page name="methods" string="Configuration">
<field name="reconcile_method" colspan = "4" nolabel="1"/>
<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"/>
</page>
<page name="history" string="History">
<field name="history_ids" nolabel="1">
<tree string="Automatic Easy Reconcile History">
<field name="date"/>
<!-- display the count of lines -->
<field name="reconcile_line_ids"/>
<button icon="STOCK_JUMP_TO" name="open_reconcile"
string="Go to reconciled items" type="object"/>
<!-- display the count of lines -->
<field name="partial_line_ids"/>
<button icon="STOCK_JUMP_TO" name="open_partial"
string="Go to partially reconciled items" type="object"/>
</tree>
</field>
</page>
<page name="information" string="Information">
<separator colspan="4" string="Simple. Amount and Name"/>
@@ -32,9 +54,6 @@ The lines should have the same amount (with the write-off) and the same partner
</page>
</notebook>
<button icon="gtk-ok" name="run_reconcile" colspan = "4" string="Start Auto Reconcilation" type="object"/>
<separator colspan="4" string="Log" />
<field name="rec_log" colspan = "4" nolabel="1"/>
</form>
</field>
</record>
@@ -51,6 +70,13 @@ The lines should have the same amount (with the write-off) and the same partner
<field name="scheduler"/>
<field name="unreconciled_count"/>
<field name="reconciled_partial_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>

View File

@@ -0,0 +1,146 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Guewen Baconnier
# Copyright 2012 Camptocamp SA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.osv import orm, fields
from openerp.tools.translate import _
class easy_reconcile_history(orm.Model):
""" Store an history of the runs per profile
Each history stores the list of reconciliations done"""
_name = 'easy.reconcile.history'
_rec_name = 'easy_reconcile_id'
_order = 'date DESC'
def _reconcile_line_ids(self, cr, uid, ids, name, args, context=None):
result = {}
for history in self.browse(cr, uid, ids, context=context):
result[history.id] = {}
move_line_ids = []
for reconcile in history.reconcile_ids:
move_line_ids += [line.id
for line
in reconcile.line_id]
result[history.id]['reconcile_line_ids'] = move_line_ids
move_line_ids = []
for reconcile in history.reconcile_partial_ids:
move_line_ids += [line.id
for line
in reconcile.line_partial_ids]
result[history.id]['partial_line_ids'] = move_line_ids
return result
_columns = {
'easy_reconcile_id': fields.many2one(
'account.easy.reconcile', 'Reconcile Profile', readonly=True),
'date': fields.datetime('Run date', readonly=True),
'reconcile_ids': fields.many2many(
'account.move.reconcile',
'account_move_reconcile_history_rel',
string='Reconciliations', readonly=True),
'reconcile_partial_ids': fields.many2many(
'account.move.reconcile',
'account_move_reconcile_history_partial_rel',
string='Partial Reconciliations', readonly=True),
'reconcile_line_ids':
fields.function(
_reconcile_line_ids,
string='Reconciled Items',
type='many2many',
relation='account.move.line',
readonly=True,
multi='lines'),
'partial_line_ids':
fields.function(
_reconcile_line_ids,
string='Partially Reconciled Items',
type='many2many',
relation='account.move.line',
readonly=True,
multi='lines'),
}
def _open_move_lines(self, cr, uid, history_id, rec_type='full', context=None):
""" For an history record, open the view of move line with
the reconciled or partially reconciled move lines
:param history_id: id of the history
:param rec_type: 'full' or 'partial'
:return: action to open the move lines
"""
assert rec_type in ('full', 'partial'), \
"rec_type must be 'full' or 'partial'"
history = self.browse(cr, uid, history_id, context=context)
if rec_type == 'full':
field = 'reconcile_line_ids'
name = _('Reconciliations')
else:
field = 'partial_line_ids'
name = _('Partial Reconciliations')
move_line_ids = [line.id for line in getattr(history, field)]
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)]),
}
def open_reconcile(self, cr, uid, history_ids, context=None):
""" 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.
"""
if isinstance(history_ids, (tuple, list)):
assert len(history_ids) == 1, "only 1 ID is accepted"
history_ids = history_ids[0]
return self._open_move_lines(
cr, uid, history_ids, rec_type='full', context=None)
def open_partial(self, cr, uid, history_ids, context=None):
""" For an history record, open the view of move line
with the partially 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.
"""
if isinstance(history_ids, (tuple, list)):
assert len(history_ids) == 1, "only 1 ID is accepted"
history_ids = history_ids[0]
return self._open_move_lines(
cr, uid, history_ids, rec_type='partial', context=None)

View File

@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="0">
<record id="view_easy_reconcile_history_search" model="ir.ui.view">
<field name="name">easy.reconcile.history.search</field>
<field name="model">easy.reconcile.history</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Automatic Easy 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="easy_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': 'easy_reconcile_id'}"/>
<filter string="Date" icon="terp-go-month" domain="[]"
context="{'group_by': 'date'}"/>
</group>
</search>
</field>
</record>
<record id="easy_reconcile_history_form" model="ir.ui.view">
<field name="name">easy.reconcile.history.form</field>
<field name="priority">16</field>
<field name="model">easy.reconcile.history</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Automatic Easy Reconcile History">
<field name="easy_reconcile_id"/>
<field name="date"/>
<group colspan="2" col="2">
<separator colspan="2" string="Reconcilations"/>
<field name="reconcile_ids" nolabel="1"/>
</group>
<group colspan="2" col="2">
<separator colspan="2" string="Partial Reconcilations"/>
<field name="reconcile_partial_ids" nolabel="1"/>
</group>
<group col="2" colspan="4">
<button icon="STOCK_JUMP_TO" name="open_reconcile" string="Go to reconciled items" type="object"/>
<button icon="STOCK_JUMP_TO" name="open_partial" string="Go to partially reconciled items" type="object"/>
</group>
</form>
</field>
</record>
<record id="easy_reconcile_history_tree" model="ir.ui.view">
<field name="name">easy.reconcile.history.tree</field>
<field name="priority">16</field>
<field name="model">easy.reconcile.history</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Automatic Easy Reconcile History">
<field name="easy_reconcile_id"/>
<field name="date"/>
<!-- display the count of lines -->
<field name="reconcile_line_ids"/>
<button icon="STOCK_JUMP_TO" name="open_reconcile"
string="Go to reconciled items" type="object"/>
<!-- display the count of lines -->
<field name="partial_line_ids"/>
<button icon="STOCK_JUMP_TO" name="open_partial"
string="Go to partially reconciled items" type="object"/>
</tree>
</field>
</record>
<record id="action_easy_reconcile_history" model="ir.actions.act_window">
<field name="name">Easy Automatic Reconcile History</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">easy.reconcile.history</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<act_window
context="{'search_default_easy_reconcile_id': [active_id], 'default_easy_reconcile_id': active_id}"
id="act_easy_reconcile_to_history"
name="History Details"
groups=""
res_model="easy.reconcile.history"
src_model="account.easy.reconcile"/>
</data>
</openerp>

View File

@@ -1,59 +1,45 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * account_easy_reconcile
# * account_easy_reconcile
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-07 12:59+0000\n"
"POT-Creation-Date: 2012-12-20 08:54+0000\n"
"PO-Revision-Date: 2012-11-07 12:59+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_easy_reconcile
#: code:addons/account_easy_reconcile/easy_reconcile_history.py:103
msgid "Reconciliations"
msgstr "Lettrages"
#. module: account_easy_reconcile
#: view:account.easy.reconcile:0
msgid "Information"
msgstr "Information"
#. module: account_easy_reconcile
#: view:account.easy.reconcile.method:0
msgid "Automatic Easy Reconcile Method"
msgstr "Méthode de lettrage automatisé"
#: view:account.easy.reconcile:0 view:easy.reconcile.history:0
msgid "Automatic Easy Reconcile History"
msgstr "Historique des lettrages automatisés"
#. module: account_easy_reconcile
#: view:account.easy.reconcile:0
msgid "Match one debit line vs one credit line. Do not allow partial reconcilation. 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)."
#: view:account.easy.reconcile:0 view:easy.reconcile.history:0
msgid "Go to partially reconciled items"
msgstr "Voir les entrées partiellement lettrées"
#. module: account_easy_reconcile
#: view:account.easy.reconcile:0
msgid "Log"
msgstr "Historique"
#. module: account_easy_reconcile
#: view:account.easy.reconcile:0
msgid "Match one debit line vs one credit line. Do not allow partial reconcilation. 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_easy_reconcile
#: view:account.easy.reconcile:0
msgid "Automatic Easy Reconcile"
msgstr "Lettrage automatisé"
#. module: account_easy_reconcile
#: model:ir.model,name:account_easy_reconcile.model_account_easy_reconcile_method
msgid "reconcile method for account_easy_reconcile"
msgstr "Méthode de lettrage"
#. module: account_easy_reconcile
#: view:account.easy.reconcile:0
msgid "Start Auto Reconcilation"
msgstr "Lancer le lettrage automatisé"
#: model:ir.model,name:account_easy_reconcile.model_easy_reconcile_history
msgid "easy.reconcile.history"
msgstr "easy.reconcile.history"
#. module: account_easy_reconcile
#: model:ir.model,name:account_easy_reconcile.model_easy_reconcile_simple_name
@@ -63,28 +49,17 @@ msgstr "easy.reconcile.simple.name"
#. module: account_easy_reconcile
#: model:ir.model,name:account_easy_reconcile.model_easy_reconcile_options
msgid "easy.reconcile.options"
msgstr "easy.reconcile.options"
msgstr "lettrage automatisé.options"
#. module: account_easy_reconcile
#: view:easy.reconcile.history:0
msgid "Group By..."
msgstr "Grouper par..."
#. module: account_easy_reconcile
#: view:account.easy.reconcile:0
msgid "Simple. Amount and Name"
msgstr "Simple. Montant et description"
#. module: account_easy_reconcile
#: model:ir.model,name:account_easy_reconcile.model_easy_reconcile_simple
msgid "easy.reconcile.simple"
msgstr "easy.reconcile.simple"
#. module: account_easy_reconcile
#: model:ir.actions.act_window,name:account_easy_reconcile.action_account_easy_reconcile
#: model:ir.ui.menu,name:account_easy_reconcile.menu_easy_reconcile
msgid "Easy Automatic Reconcile"
msgstr "Lettrage automatisé"
#. module: account_easy_reconcile
#: model:ir.model,name:account_easy_reconcile.model_easy_reconcile_simple_reference
msgid "easy.reconcile.simple.reference"
msgstr "easy.reconcile.simple.reference"
msgid "Task Information"
msgstr "Information sur la tâche"
#. module: account_easy_reconcile
#: view:account.easy.reconcile:0
@@ -96,6 +71,67 @@ msgstr "Méthode de lettrage"
msgid "easy.reconcile.base"
msgstr "easy.reconcile.base"
#. module: account_easy_reconcile
#: view:easy.reconcile.history:0
msgid "7 Days"
msgstr "7 jours"
#. module: account_easy_reconcile
#: model:ir.actions.act_window,name:account_easy_reconcile.action_easy_reconcile_history
msgid "Easy Automatic Reconcile History"
msgstr "Lettrage automatisé"
#. module: account_easy_reconcile
#: model:ir.actions.act_window,name:account_easy_reconcile.act_easy_reconcile_to_history
msgid "History Details"
msgstr "Détails de l'historique"
#. module: account_easy_reconcile
#: view:account.easy.reconcile:0
msgid ""
"Match one debit line vs one credit line. Do not allow partial reconcilation. "
"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_easy_reconcile
#: view:account.easy.reconcile:0
msgid "Display items reconciled on the last run"
msgstr "Voir les entrées lettrées au dernier lettrage"
#. module: account_easy_reconcile
#: model:ir.model,name:account_easy_reconcile.model_account_easy_reconcile_method
msgid "reconcile method for account_easy_reconcile"
msgstr "Méthode de lettrage"
#. module: account_easy_reconcile
#: view:easy.reconcile.history:0
msgid "Todays' Reconcilations"
msgstr "Lettrages du jour"
#. module: account_easy_reconcile
#: view:account.easy.reconcile:0
msgid "Simple. Amount and Name"
msgstr "Simple. Montant et description"
#. module: account_easy_reconcile
#: model:ir.actions.act_window,name:account_easy_reconcile.action_account_easy_reconcile
#: model:ir.ui.menu,name:account_easy_reconcile.menu_easy_reconcile
msgid "Easy Automatic Reconcile"
msgstr "Lettrage automatisé"
#. module: account_easy_reconcile
#: view:easy.reconcile.history:0
msgid "Today"
msgstr "Aujourd'hui"
#. module: account_easy_reconcile
#: view:easy.reconcile.history:0
msgid "Date"
msgstr "Date"
#. module: account_easy_reconcile
#: view:account.easy.reconcile:0
msgid "Configuration"
@@ -108,11 +144,78 @@ msgstr "easy.reconcile.simple.partner"
#. module: account_easy_reconcile
#: view:account.easy.reconcile:0
msgid "Task Information"
msgstr "Information sur la tâche"
msgid "Automatic Easy Reconcile"
msgstr "Lettrage automatisé"
#. module: account_easy_reconcile
#: view:account.easy.reconcile:0
msgid "Start Auto Reconcilation"
msgstr "Lancer le lettrage automatisé"
#. module: account_easy_reconcile
#: view:easy.reconcile.history:0
msgid "Reconciliation Profile"
msgstr "Profil de réconciliation"
#. module: account_easy_reconcile
#: view:account.easy.reconcile:0
msgid "History"
msgstr "Historique"
#. module: account_easy_reconcile
#: view:account.easy.reconcile:0 view:easy.reconcile.history:0
msgid "Go to reconciled items"
msgstr "Voir les entrées lettrées"
#. module: account_easy_reconcile
#: view:account.easy.reconcile.method:0
msgid "Automatic Easy Reconcile Method"
msgstr "Méthode de lettrage automatisé"
#. module: account_easy_reconcile
#: view:account.easy.reconcile:0
msgid ""
"Match one debit line vs one credit line. Do not allow partial reconcilation. "
"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_easy_reconcile
#: view:account.easy.reconcile:0
msgid "Display items partially reconciled on the last run"
msgstr "Afficher les entrées partiellement lettrées au dernier lettrage"
#. module: account_easy_reconcile
#: view:easy.reconcile.history:0
msgid "Partial Reconcilations"
msgstr "Lettrages partiels"
#. module: account_easy_reconcile
#: model:ir.model,name:account_easy_reconcile.model_easy_reconcile_simple
msgid "easy.reconcile.simple"
msgstr "easy.reconcile.simple"
#. module: account_easy_reconcile
#: view:easy.reconcile.history:0
msgid "Reconciliations of last 7 days"
msgstr "Lettrages des 7 derniers jours"
#. module: account_easy_reconcile
#: code:addons/account_easy_reconcile/easy_reconcile_history.py:106
msgid "Partial Reconciliations"
msgstr "Lettrages partiels"
#. module: account_easy_reconcile
#: model:ir.model,name:account_easy_reconcile.model_easy_reconcile_simple_reference
msgid "easy.reconcile.simple.reference"
msgstr "easy.reconcile.simple.reference"
#. module: account_easy_reconcile
#: model:ir.model,name:account_easy_reconcile.model_account_easy_reconcile
msgid "account easy reconcile"
msgstr "Lettrage automatisé"
#~ msgid "Log"
#~ msgstr "Historique"

View File

@@ -11,3 +11,5 @@ access_account_easy_reconcile_acc_mgr,account.easy.reconcile,model_account_easy_
access_easy_reconcile_simple_name_acc_mgr,easy.reconcile.simple.name,model_easy_reconcile_simple_name,account.group_account_user,1,0,0,0
access_easy_reconcile_simple_partner_acc_mgr,easy.reconcile.simple.partner,model_easy_reconcile_simple_partner,account.group_account_user,1,0,0,0
access_easy_reconcile_simple_reference_acc_mgr,easy.reconcile.simple.reference,model_easy_reconcile_simple_reference,account.group_account_user,1,0,0,0
access_easy_reconcile_history_acc_user,easy.reconcile.history,model_easy_reconcile_history,account.group_account_user,1,1,1,0
access_easy_reconcile_history_acc_mgr,easy.reconcile.history,model_easy_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
11 access_easy_reconcile_simple_name_acc_mgr easy.reconcile.simple.name model_easy_reconcile_simple_name account.group_account_user 1 0 0 0
12 access_easy_reconcile_simple_partner_acc_mgr easy.reconcile.simple.partner model_easy_reconcile_simple_partner account.group_account_user 1 0 0 0
13 access_easy_reconcile_simple_reference_acc_mgr easy.reconcile.simple.reference model_easy_reconcile_simple_reference account.group_account_user 1 0 0 0
14 access_easy_reconcile_history_acc_user easy.reconcile.history model_easy_reconcile_history account.group_account_user 1 1 1 0
15 access_easy_reconcile_history_acc_mgr easy.reconcile.history model_easy_reconcile_history account.group_account_manager 1 1 1 1

View File

@@ -0,0 +1,180 @@
#. module: account_statement_base_completion
#: view:account.statement.completion.rule:0
msgid "Related Profiles"
msgstr "Profils liés"
#. module: account_statement_base_completion
#: help:account.statement.completion.rule,sequence:0
msgid "Lower means parsed first."
msgstr "Plus petite séquence analysée en premier."
#. module: account_statement_base_completion
#: code:addons/account_statement_base_completion/statement.py:150
#: code:addons/account_statement_base_completion/statement.py:182
#: code:addons/account_statement_base_completion/statement.py:219
#: code:addons/account_statement_base_completion/statement.py:252
#, python-format
msgid "Line named \"%s\" (Ref:%s) was matched by more than one partner."
msgstr "La ligne nommée \"%s\" (Ref:%s) correspond à plusieurs partenaires."
#. module: account_statement_base_completion
#: field:account.bank.statement,completion_logs:0
msgid "Completion Log"
msgstr "Journal des complétions"
#. module: account_statement_base_completion
#: field:account.bank.statement.line,label:0
msgid "Label"
msgstr "Description"
#. module: account_statement_base_completion
#: help:account.bank.statement.line,label:0
msgid ""
"Generiy field to store a label given from the bank/office on which we "
"can base the default/standard providen rule."
msgstr ""
"Ce champs permet de stocker une description complémentaire fournie par la banque."
"Le lettrage avancé pourra être effectué sur ce critère."
#. module: account_statement_base_completion
#: model:ir.model,name:account_statement_base_completion.model_account_bank_statement
msgid "Bank Statement"
msgstr "Relevé bancaire"
#. module: account_statement_base_completion
#: field:account.statement.completion.rule,function_to_call:0
msgid "Method"
msgstr "Méthode"
#. module: account_statement_base_completion
#: code:addons/account_statement_base_completion/statement.py:352
#, python-format
msgid "Bank Statement ID %s has %s lines completed by %s"
msgstr "Le relevé bancaire avec l'ID %s a %s lignes completées par %s"
#. module: account_statement_base_completion
#: field:account.bank.statement.line,additionnal_bank_fields:0
msgid "Additionnal infos from bank"
msgstr "Informations additionnelles de la banque"
#. module: account_statement_base_completion
#: view:account.statement.profile:0
msgid "Auto-Completion Rules"
msgstr "Règles d'auto-complétion"
#. module: account_statement_base_completion
#: help:account.bank.statement.line,additionnal_bank_fields:0
msgid ""
"Used by completion and import system. Adds every field that is present in "
"your bank/office statement file"
msgstr ""
"Utilisé au niveau de l'auto-complétion et de l'import. Permet l'ajout de n'importe quel "
"champs additionnel communiqué par la banque"
#. module: account_statement_base_completion
#: view:account.bank.statement:0
msgid "Importation related infos"
msgstr "Importation des informations liées"
#. module: account_statement_base_completion
#: model:ir.model,name:account_statement_base_completion.model_account_statement_profile
msgid "Statement Profil"
msgstr "Profil de relevé"
#. module: account_statement_base_completion
#: field:account.statement.completion.rule,name:0
msgid "Name"
msgstr "Nom"
#. module: account_statement_base_completion
#: constraint:account.statement.profile:0
msgid "You need to put a partner if you tic the 'Force partner on bank move' !"
msgstr ""
"Vous devez indiquer un partenaire si vous avez coché 'Indiquer un partenaire sur la ligne d'écriture de la banque' !"
#. module: account_statement_base_completion
#: model:ir.model,name:account_statement_base_completion.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr "Ligne de relevé bancaire"
#. module: account_statement_base_completion
#: view:account.statement.completion.rule:0
#: model:ir.actions.act_window,name:account_statement_base_completion.action_st_completion_rule_tree
#: model:ir.ui.menu,name:account_statement_base_completion.menu_action_st_completion_rule_tree_menu
msgid "Statement Completion Rule"
msgstr "Règle d'auto-complétion du relevé"
#. module: account_statement_base_completion
#: model:ir.model,name:account_statement_base_completion.model_account_statement_completion_rule
msgid "account.statement.completion.rule"
msgstr "account.statement.completion.rule"
#. module: account_statement_base_completion
#: field:account.statement.completion.rule,profile_ids:0
#: field:account.statement.profile,rule_ids:0
msgid "Related statement profiles"
msgstr "Profils liés"
#. module: account_statement_base_completion
#: constraint:account.bank.statement.line:0
msgid ""
"The amount of the voucher must be the same amount as the one on the "
"statement line"
msgstr ""
"Le montant du justificatif doit être identique à celui de la ligne le "
"concernant sur le relevé"
#. module: account_statement_base_completion
#: field:account.bank.statement.line,already_completed:0
msgid "Auto-Completed"
msgstr "Auto-Completé"
#. module: account_statement_base_completion
#: view:account.bank.statement:0
msgid "Auto Completion"
msgstr "Auto-complétion"
#. module: account_statement_base_completion
#: field:account.statement.completion.rule,sequence:0
msgid "Sequence"
msgstr "Séquence"
#. module: account_statement_base_completion
#: constraint:account.bank.statement:0
msgid "The journal and period chosen have to belong to the same company."
msgstr "Le journal et la période doivent appartenir à la même société."
#. module: account_statement_base_completion
#: field:res.partner,bank_statement_label:0
msgid "Bank Statement Label"
msgstr "Description de relevé bancaire"
#. module: account_statement_base_completion
#: help:account.bank.statement.line,already_completed:0
msgid ""
"When this checkbox is ticked, the auto-completion process/button will ignore "
"this line."
msgstr ""
"Les lignes cochées seront ignorées lorsque vous cliquez sur le bouton auto-complétion"
#. module: account_statement_base_completion
#: help:res.partner,bank_statement_label:0
msgid ""
"Enter the various label found on your bank statement separated by a ; "
"If one of this label is include in the bank statement line, "
"the partner will be automatically filled (as long as you "
"use this method/rules in your statement profile)."
msgstr ""
"Entrez les différentes descriptions/informations sur votre relevé bancaire séparées par un ';' "
"Si l'une d'entre elles figure dans la ligne du relevé, le partenaire correspondant pourra"
"être automatiquement retrouvé (à condition d'utiliser un règle de lettrage dans le profil)."
#. module: account_statement_base_completion
#: model:ir.model,name:account_statement_base_completion.model_res_partner
msgid "Partner"
msgstr "Partenaire"
#. module: account_statement_base_completion
#: view:account.bank.statement:0
msgid "Completion Logs"
msgstr "Journaux d'auto-complétion"

View File

@@ -113,7 +113,7 @@ class AccountStatementCompletionRule(Model):
]
_columns={
'sequence': fields.integer('Sequence', help="Lower means paresed first."),
'sequence': fields.integer('Sequence', help="Lower means parsed first."),
'name': fields.char('Name', size=128),
'profile_ids': fields.many2many('account.statement.profile',
rel='as_rul_st_prof_rel',

View File

@@ -0,0 +1,253 @@
#. module: account_statement_base_import
#: view:credit.statement.import:0
#: model:ir.actions.act_window,name:account_statement_base_import.statement_importer_action
msgid "Import statement"
msgstr "Import de relevé"
#. module: account_statement_base_import
#: model:ir.model,name:account_statement_base_import.model_credit_statement_import
msgid "credit.statement.import"
msgstr "credit.statement.import"
#. module: account_statement_base_import
#: code:addons/account_statement_base_import/statement.py:218
#, python-format
msgid "The statement cannot be created : %s"
msgstr "Le relevé ne peut être créé : %s"
#. module: account_statement_base_import
#: field:credit.statement.import,input_statement:0
msgid "Statement file"
msgstr "Fichier à importer"
#. module: account_statement_base_import
#: view:account.statement.profile:0
msgid "Import Logs"
msgstr "Journaux d'import"
#. module: account_statement_base_import
#: field:credit.statement.import,journal_id:0
msgid "Financial journal to use transaction"
msgstr "Journal"
#. module: account_statement_base_import
#: code:addons/account_statement_base_import/parser/file_parser.py:100
#, python-format
msgid "Column %s not present in file"
msgstr "Colonne %s non présente dans le fichier"
#. module: account_statement_base_import
#: view:account.statement.profile:0
#: model:ir.ui.menu,name:account_statement_base_import.statement_importer_menu
msgid "Import Bank Statement"
msgstr "Importation de relevé"
#. module: account_statement_base_import
#: model:ir.model,name:account_statement_base_import.model_account_statement_profile
msgid "Statement Profil"
msgstr "Profil du relevé"
#. module: account_statement_base_import
#: code:addons/account_statement_base_import/statement.py:100
#, python-format
msgid "Commission line"
msgstr "Ligne de commission"
#. module: account_statement_base_import
#: field:credit.statement.import,commission_account_id:0
msgid "Commission account"
msgstr "Compte de commission"
#. module: account_statement_base_import
#: code:addons/account_statement_base_import/statement.py:172
#, python-format
msgid "Column %s you try to import is not present in the bank statement line !"
msgstr ""
"La colonne %s que vous essayez d'importer n'est pas présente dans la ligne de relevé !"
#. module: account_statement_base_import
#: code:addons/account_statement_base_import/statement.py:71
#, python-format
msgid "Bank Statement ID %s have been imported with %s lines "
msgstr "Le relevé avec l'ID %s a été importé avec %s lignes "
#. module: account_statement_base_import
#: field:account.statement.profile,launch_import_completion:0
msgid "Launch completion after import"
msgstr "Lancer l'auto-complétion après import"
#. module: account_statement_base_import
#: field:credit.statement.import,partner_id:0
msgid "Credit insitute partner"
msgstr "Organisme bancaire"
#. module: account_statement_base_import
#: code:addons/account_statement_base_import/statement.py:160
#, python-format
msgid "No Profile !"
msgstr "Aucun Profil !"
#. module: account_statement_base_import
#: view:account.statement.profile:0
msgid "Import related infos"
msgstr "Importation des informations liées"
#. module: account_statement_base_import
#: help:credit.statement.import,force_partner_on_bank:0
msgid ""
"Tic that box if you want to use the credit insitute "
"partner in the "
"counterpart of the treasury/banking move."
msgstr ""
"Cochez cette case si vous voulez utiliser comme partenaire "
"l'organisme bancaire au niveau de la ligne de banque"
#. module: account_statement_base_import
#: code:addons/account_statement_base_import/wizard/import_statement.py:93
#, python-format
msgid "Please use a file with an extention"
msgstr "Veuillez sélectionner un fichier avec une extension"
#. module: account_statement_base_import
#: code:addons/account_statement_base_import/statement.py:161
#, python-format
msgid "You must provide a valid profile to import a bank statement !"
msgstr "Vous devez fournir un profil valide pour importer un relevé !"
#. module: account_statement_base_import
#: help:credit.statement.import,balance_check:0
msgid ""
"Tic that box if you want OpenERP to control the start/end "
"balance before confirming "
"a bank statement. If don't ticked, no balance control will be done."
msgstr ""
"Cochez cette case si vous souhaitez un contrôle du solde final "
"avant la validation du relevé."
#. module: account_statement_base_import
#: code:addons/account_statement_base_import/parser/file_parser.py:31
#: code:addons/account_statement_base_import/parser/generic_file_parser.py:31
#, python-format
msgid "Please install python lib xlrd"
msgstr "Veuillez installer la bibliothèque python xlrd"
#. module: account_statement_base_import
#: code:addons/account_statement_base_import/parser/file_parser.py:58
#, python-format
msgid "Invalide file type %s. please use csv or xls"
msgstr "Type de fichier invalide : %s. Veuillez utiliser un csv ou un xls"
#. module: account_statement_base_import
#: field:account.statement.profile,last_import_date:0
msgid "Last Import Date"
msgstr "Date de dernier import"
#. module: account_statement_base_import
#: field:credit.statement.import,commission_analytic_id:0
msgid "Commission analytic account"
msgstr "Compte analytique de la commission"
#. module: account_statement_base_import
#: constraint:account.statement.profile:0
msgid "You need to put a partner if you tic the 'Force partner on bank move' !"
msgstr ""
"Vous devez spécifier un partenaire si vous avez coché 'Forcer un partenaire sur la ligne de la banque' !"
#. module: account_statement_base_import
#: code:addons/account_statement_base_import/statement.py:217
#, python-format
msgid "Statement import error"
msgstr "Erreur d'import de relevé"
#. module: account_statement_base_import
#: field:account.bank.statement.line,commission_amount:0
msgid "Line Commission Amount"
msgstr "Montant de la commission de la ligne"
#. module: account_statement_base_import
#: code:addons/account_statement_base_import/statement.py:171
#, python-format
msgid "Missing column !"
msgstr "Colonne manquante !"
#. module: account_statement_base_import
#: field:account.statement.profile,rec_log:0
msgid "log"
msgstr "journal"
#. module: account_statement_base_import
#: field:account.statement.profile,import_type:0
msgid "Type of import"
msgstr "Type d'import"
#. module: account_statement_base_import
#: constraint:account.bank.statement.line:0
msgid ""
"The amount of the voucher must be the same amount as the one on the "
"statement line"
msgstr ""
"Le montant du justificatif doit être identique à celui de la ligne le "
"concernant sur le relevé"
#. module: account_statement_base_import
#: help:account.statement.profile,launch_import_completion:0
msgid ""
"Tic that box to automatically launch the completion on each "
"imported file using this profile."
msgstr ""
"Cocher cette case pour lancer automatiquement l'auto-complétion sur"
"chaque fichier importé avec ce profil."
#. module: account_statement_base_import
#: field:credit.statement.import,profile_id:0
msgid "Import configuration parameter"
msgstr "Paramètres de configuration d'import"
#. module: account_statement_base_import
#: code:addons/account_statement_base_import/parser/parser.py:156
#, python-format
msgid "No buffer file given."
msgstr "Pas de fichier tampon donné."
#. module: account_statement_base_import
#: view:credit.statement.import:0
msgid "Import Parameters Summary"
msgstr "Résumé des paramètres d'import"
#. module: account_statement_base_import
#: field:credit.statement.import,balance_check:0
msgid "Balance check"
msgstr "Vérification des soldes"
#. module: account_statement_base_import
#: model:ir.model,name:account_statement_base_import.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr "Ligne de relevé bancaire"
#. module: account_statement_base_import
#: field:credit.statement.import,force_partner_on_bank:0
msgid "Force partner on bank move"
msgstr "Forcer un partenaire sur la ligne du compte de banque"
#. module: account_statement_base_import
#: field:credit.statement.import,file_name:0
msgid "File Name"
msgstr "Nom du fichier"
#. module: account_statement_base_import
#: field:credit.statement.import,receivable_account_id:0
msgid "Force Receivable/Payable Account"
msgstr "Forcer le compte Client/Fournisseur"
#. module: account_statement_base_import
#: help:account.statement.profile,import_type:0
msgid ""
"Choose here the method by which you want to import bank statement for this "
"profile."
msgstr ""
"Choisissez la méthode d'import de relevé pour ce profil."
#. module: account_statement_base_import
#: view:credit.statement.import:0
msgid "Cancel"
msgstr "Annulation"

View File

@@ -0,0 +1,301 @@
#. module: account_statement_ext
#: model:ir.actions.act_window,name:account_statement_ext.action_treasury_statement_profile_tree
#: model:ir.ui.menu,name:account_statement_ext.menu_treasury_statement_profile_tree
msgid "Bank Statements Profile"
msgstr "Profil de relevé bancaire"
#. module: account_statement_ext
#: code:addons/account_statement_ext/statement.py:423
#, python-format
msgid "Can not determine account"
msgstr "Impossible de trouver le compte"
#. module: account_statement_ext
#: constraint:account.move:0
msgid "You can not create more than one move per period on centralized journal"
msgstr ""
"Vous ne pouvez pas créer plus d'un mouvement par période dans un journal "
"centralisateur"
#. module: account_statement_ext
#: view:account.statement.profile:0
msgid "Import statement"
msgstr "Importation du relevé"
#. module: account_statement_ext
#: field:account.statement.profile,bank_statement_prefix:0
msgid "Bank Statement Prefix"
msgstr "Préfixe du N° de Relevé"
#. module: account_statement_ext
#: field:account.bank.statement,profile_id:0
msgid "Profil"
msgstr "Profil"
#. module: account_statement_ext
#: code:addons/account_statement_ext/statement.py:362
#, python-format
msgid "Please verify that an account is defined in the journal."
msgstr "Veuillez vérifier que ce compte est défini au niveau du journal."
#. module: account_statement_ext
#: code:addons/account_statement_ext/statement.py:361
#, python-format
msgid "Configuration Error !"
msgstr "Erreur de configuration !"
#. module: account_statement_ext
#: field:account.statement.profile,receivable_account_id:0
msgid "Force Receivable/Payable Account"
msgstr "Remplacer le compte client/fournisseur par défaut par "
#. module: account_statement_ext
#: field:account.statement.profile,commission_account_id:0
msgid "Commission account"
msgstr "Compte de commission"
#. module: account_statement_ext
#: view:account.bank.statement:0
#: field:account.bank.statement,credit_partner_id:0
msgid "Financial Partner"
msgstr "Banque ou Organisme financier"
#. module: account_statement_ext
#: code:addons/account_statement_ext/statement.py:307
#: code:addons/account_statement_ext/statement.py:372
#, python-format
msgid "Error !"
msgstr "Erreur !"
#. module: account_statement_ext
#: field:account.statement.profile,partner_id:0
msgid "Bank/Payment Office partner"
msgstr "Banque ou Organisme financier"
#. module: account_statement_ext
#: code:addons/account_statement_ext/statement.py:373
#, python-format
msgid "The account entries lines are not in valid state."
msgstr "Les écritures comptables ne sont pas équilibrées."
#. module: account_statement_ext
#: constraint:account.statement.profile:0
msgid "You need to put a partner if you tic the 'Force partner on bank move' !"
msgstr ""
"Vous devez choisir un partenaire si vous cochez 'Remplacer le compte client/fournisseur' !"
#. module: account_statement_ext
#: help:account.statement.profile,force_partner_on_bank:0
msgid ""
"Tic that box if you want to use the credit insitute "
"partner in the "
"counterpart of the intermediat/banking move."
msgstr ""
"Cochez cette case si vous voulez utiliser le partenaire financier dans "
"la contrepartie de l'écriture."
#. module: account_statement_ext
#: report:addons/account_statement_ext/report/bank_statement_report.mako:20
msgid "Date"
msgstr "Date"
#. module: account_statement_ext
#: code:addons/account_statement_ext/statement.py:308
#, python-format
msgid "Journal item \"%s\" is not valid."
msgstr "L'écriture \"%s\" n'est pas équilibrée."
#. module: account_statement_ext
#: code:addons/account_statement_ext/statement.py:424
#, python-format
msgid "Please ensure that minimal properties are set"
msgstr "Veuillez vérifiez que les propriétés minimales sont bien paramétrées"
#. module: account_statement_ext
#: view:account.bank.statement:0
msgid "Balance Check"
msgstr "Contrôle sur solde final"
#. module: account_statement_ext
#: view:account.bank.statement:0
msgid "Profile Details"
msgstr "Détails du profil"
#. module: account_statement_ext
#: model:ir.model,name:account_statement_ext.model_account_statement_profile
msgid "Statement Profil"
msgstr "Profil du relevé"
#. module: account_statement_ext
#: field:account.statement.profile,name:0
msgid "Name"
msgstr "Nom"
#. module: account_statement_ext
#: field:account.statement.profile,commission_analytic_id:0
msgid "Commission analytic account"
msgstr "Compte analytique où affecter la commission"
#. module: account_statement_ext
#: constraint:account.move:0
msgid "The date of your Journal Entry is not in the defined period!"
msgstr "La date de l'écriture n'est pas dans la période définie!"
#. module: account_statement_ext
#: help:account.statement.profile,balance_check:0
msgid ""
"Tic that box if you want OpenERP to control the start/"
"end balance before "
"confirming a bank statement. If don't ticked, "
"no balance control will "
"be done."
msgstr ""
"Cochez cette case si vous voulez qu'OpenERP fasse "
"une vérification au niveau du solde final avant confirmation."
#. module: account_statement_ext
#: code:addons/account_statement_ext/report/bank_statement_report.py:40
#: code:addons/account_statement_ext/report/bank_statement_report.py:48
#, python-format
msgid "BORDEREAU DE REMISE DE CHEQUES"
msgstr "BORDEREAU DE REMISE DE CHEQUES"
#. module: account_statement_ext
#: code:addons/account_statement_ext/statement.py:400
#, python-format
msgid "Statement %s is confirmed, journal items are created."
msgstr "Le relevé %s est confirmé, les écritures comptables ont été générées."
#. module: account_statement_ext
#: report:addons/account_statement_ext/report/bank_statement_report.mako:37
msgid "Montant"
msgstr "Montant"
#. module: account_statement_ext
#: code:addons/account_statement_ext/statement.py:394
#, python-format
msgid "Error"
msgstr "Erreur"
#. module: account_statement_ext
#: help:account.statement.profile,partner_id:0
msgid ""
"Put a partner if you want to have it on the commission "
"move (and optionaly on the counterpart "
"of the intermediate/banking move if "
"you tic the corresponding checkbox)."
msgstr ""
"Sélectionnez un partenaire si vous voulez l'avoir dans l'écriture comptable "
"au niveau de la commision (et du compte de trésorerie selon les cas si vous cochez "
"la case 'Indiquer un partenaire sur la ligne d'écriture de la banque ou organisme')."
#. module: account_statement_ext
#: constraint:account.bank.statement.line:0
msgid ""
"The amount of the voucher must be the same amount as the one on the "
"statement line"
msgstr ""
"Le montant du justificatif doit être identique à celui de la ligne le "
"concernant sur le relevé"
#. module: account_statement_ext
#: code:addons/account_statement_ext/report/bank_statement_report.py:57
#, python-format
msgid "Page"
msgstr "Page"
#. module: account_statement_ext
#: field:account.bank.statement,balance_check:0
#: field:account.statement.profile,balance_check:0
msgid "Balance check"
msgstr "Activation contrôle du solde final"
#. module: account_statement_ext
#: model:ir.model,name:account_statement_ext.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr "Ligne de relevé bancaire"
#. module: account_statement_ext
#: model:ir.model,name:account_statement_ext.model_account_move
msgid "Account Entry"
msgstr "Écriture comptable"
#. module: account_statement_ext
#: field:account.statement.profile,force_partner_on_bank:0
msgid "Force partner on bank move"
msgstr "Indiquer un partenaire sur la ligne d'écriture de la banque"
#. module: account_statement_ext
#: report:addons/account_statement_ext/report/bank_statement_report.mako:33
msgid "Reference"
msgstr "Référence"
#. module: account_statement_ext
#: code:addons/account_statement_ext/statement.py:380
#, python-format
msgid "No Analytic Journal !"
msgstr "Pas de journal analytique trouvé !"
#. module: account_statement_ext
#: code:addons/account_statement_ext/report/bank_statement_report.py:57
#, python-format
msgid "of"
msgstr "de"
#. module: account_statement_ext
#: field:account.statement.profile,bank_statement_ids:0
msgid "Bank Statement Imported"
msgstr "Relevé importé"
#. module: account_statement_ext
#: field:account.bank.statement.line,period_id:0
msgid "Period"
msgstr "Période"
#. module: account_statement_ext
#: constraint:account.bank.statement:0
msgid "The journal and period chosen have to belong to the same company."
msgstr "Le journal et la période doivent appartenir à la même société."
#. module: account_statement_ext
#: model:ir.actions.report.xml,name:account_statement_ext.report_bank_statement_webkit
#: model:ir.model,name:account_statement_ext.model_account_bank_statement
msgid "Bank Statement"
msgstr "Relevé bancaire"
#. module: account_statement_ext
#: report:addons/account_statement_ext/report/bank_statement_report.mako:35
msgid "Partenaire"
msgstr "Partenaire"
#. module: account_statement_ext
#: help:account.statement.profile,receivable_account_id:0
msgid ""
"Choose a receivable account to force the "
"default debit/credit "
"account (eg. an intermediat bank account instead "
"of default debitors)."
msgstr ""
"Sélectionnez un compte de type client ou fournisseur afin de remplacer "
"le compte client ou fournisseur par défaut"
#. module: account_statement_ext
#: code:addons/account_statement_ext/statement.py:381
#, python-format
msgid "You have to assign an analytic journal on the '%s' journal!"
msgstr "Vous devez associer un journal analytique au journal comptable '%s'."
#. module: account_statement_ext
#: model:ir.actions.act_window,name:account_statement_ext.act_bank_statement_from_profile
msgid "Open Statements"
msgstr "Relevés ouverts"
#. module: account_statement_ext
#: field:account.statement.profile,journal_id:0
msgid "Financial journal to use for transaction"
msgstr "Journal à utiliser pour cette écriture"
#. module: account_statement_ext
#: report:addons/account_statement_ext/report/bank_statement_report.mako:19
msgid "Bordereau"
msgstr "Bordereau"