diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py
index 17c0a77c30f..343512dc271 100644
--- a/addons/account/__openerp__.py
+++ b/addons/account/__openerp__.py
@@ -135,7 +135,8 @@ for a particular financial year and for preparation of vouchers there is a modul
],
'css':[
'static/src/css/account_move_reconciliation.css',
- 'static/src/css/account_move_line_quickadd.css'
+ 'static/src/css/account_move_line_quickadd.css',
+ 'static/src/css/account_bank_and_cash.css',
],
'demo': [
'demo/account_demo.xml',
diff --git a/addons/account/account.py b/addons/account/account.py
index 75936320e58..9b728ff36e0 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -28,7 +28,7 @@ import time
import openerp
from openerp import SUPERUSER_ID
from openerp import tools
-from openerp.osv import fields, osv
+from openerp.osv import fields, osv, expression
from openerp.tools.translate import _
from openerp.tools.float_utils import float_round
@@ -579,15 +579,18 @@ class account_account(osv.osv):
except:
pass
if name:
- ids = self.search(cr, user, [('code', '=like', name+"%")]+args, limit=limit)
- if not ids:
- ids = self.search(cr, user, [('shortcut', '=', name)]+ args, limit=limit)
- if not ids:
- ids = self.search(cr, user, [('name', operator, name)]+ args, limit=limit)
- if not ids and len(name.split()) >= 2:
- #Separating code and name of account for searching
- operand1,operand2 = name.split(' ',1) #name can contain spaces e.g. OpenERP S.A.
- ids = self.search(cr, user, [('code', operator, operand1), ('name', operator, operand2)]+ args, limit=limit)
+ if operator not in expression.NEGATIVE_TERM_OPERATORS:
+ ids = self.search(cr, user, ['|', ('code', '=like', name+"%"), '|', ('shortcut', '=', name), ('name', operator, name)]+args, limit=limit)
+ if not ids and len(name.split()) >= 2:
+ #Separating code and name of account for searching
+ operand1,operand2 = name.split(' ',1) #name can contain spaces e.g. OpenERP S.A.
+ ids = self.search(cr, user, [('code', operator, operand1), ('name', operator, operand2)]+ args, limit=limit)
+ else:
+ ids = self.search(cr, user, ['&','!', ('code', '=like', name+"%"), ('name', operator, name)]+args, limit=limit)
+ # as negation want to restric, do if already have results
+ if ids and len(name.split()) >= 2:
+ operand1,operand2 = name.split(' ',1) #name can contain spaces e.g. OpenERP S.A.
+ ids = self.search(cr, user, [('code', operator, operand1), ('name', operator, operand2), ('id', 'in', ids)]+ args, limit=limit)
else:
ids = self.search(cr, user, args, context=context, limit=limit)
return self.name_get(cr, user, ids, context=context)
@@ -1447,6 +1450,8 @@ class account_move(osv.osv):
def unlink(self, cr, uid, ids, context=None, check=True):
if context is None:
context = {}
+ if isinstance(ids, (int, long)):
+ ids = [ids]
toremove = []
obj_move_line = self.pool.get('account.move.line')
for move in self.browse(cr, uid, ids, context=context):
@@ -1571,11 +1576,6 @@ class account_move(osv.osv):
obj_analytic_line = self.pool.get('account.analytic.line')
obj_move_line = self.pool.get('account.move.line')
for move in self.browse(cr, uid, ids, context):
- # Unlink old analytic lines on move_lines
- for obj_line in move.line_id:
- for obj in obj_line.analytic_lines:
- obj_analytic_line.unlink(cr,uid,obj.id)
-
journal = move.journal_id
amount = 0
line_ids = []
@@ -1928,7 +1928,7 @@ class account_tax(osv.osv):
'child_depend':fields.boolean('Tax on Children', help="Set if the tax computation is based on the computation of child taxes rather than on the total amount."),
'python_compute':fields.text('Python Code'),
'python_compute_inv':fields.text('Python Code (reverse)'),
- 'python_applicable':fields.text('Python Code'),
+ 'python_applicable':fields.text('Applicable Code'),
#
# Fields used for the Tax declaration
@@ -1942,8 +1942,8 @@ class account_tax(osv.osv):
'ref_base_code_id': fields.many2one('account.tax.code', 'Refund Base Code', help="Use this code for the tax declaration."),
'ref_tax_code_id': fields.many2one('account.tax.code', 'Refund Tax Code', help="Use this code for the tax declaration."),
- 'ref_base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."),
- 'ref_tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."),
+ 'ref_base_sign': fields.float('Refund Base Code Sign', help="Usually 1 or -1."),
+ 'ref_tax_sign': fields.float('Refund Tax Code Sign', help="Usually 1 or -1."),
'include_base_amount': fields.boolean('Included in base amount', help="Indicates if the amount of tax must be included in the base amount for the computation of the next taxes"),
'company_id': fields.many2one('res.company', 'Company', required=True),
'description': fields.char('Tax Code'),
@@ -2833,7 +2833,7 @@ class account_tax_template(osv.osv):
'child_depend':fields.boolean('Tax on Children', help="Set if the tax computation is based on the computation of child taxes rather than on the total amount."),
'python_compute':fields.text('Python Code'),
'python_compute_inv':fields.text('Python Code (reverse)'),
- 'python_applicable':fields.text('Python Code'),
+ 'python_applicable':fields.text('Applicable Code'),
#
# Fields used for the Tax declaration
@@ -2847,8 +2847,8 @@ class account_tax_template(osv.osv):
'ref_base_code_id': fields.many2one('account.tax.code.template', 'Refund Base Code', help="Use this code for the tax declaration."),
'ref_tax_code_id': fields.many2one('account.tax.code.template', 'Refund Tax Code', help="Use this code for the tax declaration."),
- 'ref_base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."),
- 'ref_tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."),
+ 'ref_base_sign': fields.float('Refund Base Code Sign', help="Usually 1 or -1."),
+ 'ref_tax_sign': fields.float('Refund Tax Code Sign', help="Usually 1 or -1."),
'include_base_amount': fields.boolean('Include in Base Amount', help="Set if the amount of tax must be included in the base amount before computing the next taxes."),
'description': fields.char('Internal Name'),
'type_tax_use': fields.selection([('sale','Sale'),('purchase','Purchase'),('all','All')], 'Tax Use In', required=True,),
@@ -3412,6 +3412,8 @@ class wizard_multi_charts_accounts(osv.osv_memory):
all the provided information to create the accounts, the banks, the journals, the taxes, the tax codes, the
accounting properties... accordingly for the chosen company.
'''
+ if uid != SUPERUSER_ID and not self.pool['res.users'].has_group(cr, uid, 'base.group_erp_manager'):
+ raise openerp.exceptions.AccessError(_("Only administrators can change the settings"))
obj_data = self.pool.get('ir.model.data')
ir_values_obj = self.pool.get('ir.values')
obj_wizard = self.browse(cr, uid, ids[0])
@@ -3428,7 +3430,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
self.pool[tmp2[0]].write(cr, uid, tmp2[1], {
'currency_id': obj_wizard.currency_id.id
})
- except ValueError, e:
+ except ValueError:
pass
# If the floats for sale/purchase rates have been filled, create templates from them
diff --git a/addons/account/account_bank_statement.py b/addons/account/account_bank_statement.py
index 8a15321b9c6..d437074023a 100644
--- a/addons/account/account_bank_statement.py
+++ b/addons/account/account_bank_statement.py
@@ -106,13 +106,13 @@ class account_bank_statement(osv.osv):
'balance_start': fields.float('Starting Balance', digits_compute=dp.get_precision('Account'),
states={'confirm':[('readonly',True)]}),
'balance_end_real': fields.float('Ending Balance', digits_compute=dp.get_precision('Account'),
- states={'confirm': [('readonly', True)]}),
+ states={'confirm': [('readonly', True)]}, help="Computed using the cash control lines"),
'balance_end': fields.function(_end_balance,
store = {
'account.bank.statement': (lambda self, cr, uid, ids, c={}: ids, ['line_ids','move_line_ids','balance_start'], 10),
'account.bank.statement.line': (_get_statement, ['amount'], 10),
},
- string="Computed Balance", help='Balance as calculated based on Starting Balance and transaction lines'),
+ string="Computed Balance", help='Balance as calculated based on Opening Balance and transaction lines'),
'company_id': fields.related('journal_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True),
'line_ids': fields.one2many('account.bank.statement.line',
'statement_id', 'Statement lines',
@@ -128,6 +128,7 @@ class account_bank_statement(osv.osv):
'currency': fields.function(_currency, string='Currency',
type='many2one', relation='res.currency'),
'account_id': fields.related('journal_id', 'default_debit_account_id', type='many2one', relation='account.account', string='Account used in this journal', readonly=True, help='used in statement reconciliation domain, but shouldn\'t be used elswhere.'),
+ 'cash_control': fields.related('journal_id', 'cash_control' , type='boolean', relation='account.journal',string='Cash control'),
}
_defaults = {
@@ -450,22 +451,25 @@ class account_bank_statement(osv.osv):
def _compute_balance_end_real(self, cr, uid, journal_id, context=None):
res = False
if journal_id:
- cr.execute('SELECT balance_end_real \
- FROM account_bank_statement \
- WHERE journal_id = %s AND NOT state = %s \
- ORDER BY date DESC,id DESC LIMIT 1', (journal_id, 'draft'))
- res = cr.fetchone()
+ journal = self.pool.get('account.journal').browse(cr, uid, journal_id, context=context)
+ if journal.with_last_closing_balance:
+ cr.execute('SELECT balance_end_real \
+ FROM account_bank_statement \
+ WHERE journal_id = %s AND NOT state = %s \
+ ORDER BY date DESC,id DESC LIMIT 1', (journal_id, 'draft'))
+ res = cr.fetchone()
return res and res[0] or 0.0
def onchange_journal_id(self, cr, uid, statement_id, journal_id, context=None):
if not journal_id:
return {}
balance_start = self._compute_balance_end_real(cr, uid, journal_id, context=context)
-
- journal_data = self.pool.get('account.journal').read(cr, uid, journal_id, ['company_id', 'currency'], context=context)
- company_id = journal_data['company_id']
- currency_id = journal_data['currency'] or self.pool.get('res.company').browse(cr, uid, company_id[0], context=context).currency_id.id
- return {'value': {'balance_start': balance_start, 'company_id': company_id, 'currency': currency_id}}
+ journal = self.pool.get('account.journal').browse(cr, uid, journal_id, context=context)
+ currency = journal.currency or journal.company_id.currency_id
+ res = {'balance_start': balance_start, 'company_id': journal.company_id.id, 'currency': currency.id}
+ if journal.type == 'cash':
+ res['cash_control'] = journal.cash_control
+ return {'value': res}
def unlink(self, cr, uid, ids, context=None):
stat = self.read(cr, uid, ids, ['state'], context=context)
@@ -546,7 +550,7 @@ class account_bank_statement_line(osv.osv):
_name = "account.bank.statement.line"
_description = "Bank Statement Line"
_columns = {
- 'name': fields.char('OBI', required=True, help="Originator to Beneficiary Information"),
+ 'name': fields.char('Description', required=True),
'date': fields.date('Date', required=True),
'amount': fields.float('Amount', digits_compute=dp.get_precision('Account')),
'type': fields.selection([
diff --git a/addons/account/account_cash_statement.py b/addons/account/account_cash_statement.py
index 8e3e250d41c..c1c5265d8c2 100644
--- a/addons/account/account_cash_statement.py
+++ b/addons/account/account_cash_statement.py
@@ -159,6 +159,10 @@ class account_cash_statement(osv.osv):
context=context
)
+ opening_details_ids = self._get_cash_open_box_lines(cr, uid, journal_id, context)
+ if opening_details_ids:
+ result['value']['opening_details_ids'] = opening_details_ids
+
if not statement_ids:
return result
@@ -172,13 +176,14 @@ class account_cash_statement(osv.osv):
store = {
'account.bank.statement': (lambda self, cr, uid, ids, context=None: ids, ['line_ids','move_line_ids'], 10),
'account.bank.statement.line': (_get_statement_from_line, ['amount'], 10),
- }),
+ },
+ help="Total of cash transaction lines."),
'closing_date': fields.datetime("Closed On"),
'details_ids' : fields.one2many('account.cashbox.line', 'bank_statement_id', string='CashBox Lines'),
'opening_details_ids' : fields.one2many('account.cashbox.line', 'bank_statement_id', string='Opening Cashbox Lines'),
'closing_details_ids' : fields.one2many('account.cashbox.line', 'bank_statement_id', string='Closing Cashbox Lines'),
'user_id': fields.many2one('res.users', 'Responsible', required=False),
- 'difference' : fields.function(_compute_difference, method=True, string="Difference", type="float"),
+ 'difference' : fields.function(_compute_difference, method=True, string="Difference", type="float", help="Difference between the theoretical closing balance and the real closing balance."),
'last_closing_balance' : fields.function(_compute_last_closing_balance, method=True, string='Last Closing Balance', type='float'),
}
_defaults = {
@@ -187,13 +192,12 @@ class account_cash_statement(osv.osv):
'user_id': lambda self, cr, uid, context=None: uid,
}
- def create(self, cr, uid, vals, context=None):
- journal = False
- if vals.get('journal_id'):
- journal = self.pool.get('account.journal').browse(cr, uid, vals['journal_id'], context=context)
- if journal and (journal.type == 'cash') and not vals.get('details_ids'):
- vals['details_ids'] = []
-
+ def _get_cash_open_box_lines(self, cr, uid, journal_id, context):
+ details_ids = []
+ if not journal_id:
+ return details_ids
+ journal = self.pool.get('account.journal').browse(cr, uid, journal_id, context=context)
+ if journal and (journal.type == 'cash'):
last_pieces = None
if journal.with_last_closing_balance == True:
@@ -206,16 +210,19 @@ class account_cash_statement(osv.osv):
last_pieces = dict(
(line.pieces, line.number_closing) for line in last_bank_statement.details_ids
)
-
for value in journal.cashbox_line_ids:
nested_values = {
'number_closing' : 0,
'number_opening' : last_pieces.get(value.pieces, 0) if isinstance(last_pieces, dict) else 0,
'pieces' : value.pieces
}
+ details_ids.append([0, False, nested_values])
+ return details_ids
- vals['details_ids'].append([0, False, nested_values])
-
+ def create(self, cr, uid, vals, context=None):
+ journal_id = vals.get('journal_id')
+ if journal_id and not vals.get('opening_details_ids'):
+ vals['opening_details_ids'] = vals.get('opening_details_ids') or self._get_cash_open_box_lines(cr, uid, journal_id, context)
res_id = super(account_cash_statement, self).create(cr, uid, vals, context=context)
self._update_balances(cr, uid, [res_id], context)
return res_id
@@ -233,7 +240,10 @@ class account_cash_statement(osv.osv):
@return: True on success, False otherwise
"""
-
+ if vals.get('journal_id', False):
+ cashbox_line_obj = self.pool.get('account.cashbox.line')
+ cashbox_ids = cashbox_line_obj.search(cr, uid, [('bank_statement_id', 'in', ids)], context=context)
+ cashbox_line_obj.unlink(cr, uid, cashbox_ids, context)
res = super(account_cash_statement, self).write(cr, uid, ids, vals, context=context)
self._update_balances(cr, uid, ids, context)
return res
diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py
index 0fc9d9e2227..cb242942656 100644
--- a/addons/account/account_move_line.py
+++ b/addons/account/account_move_line.py
@@ -26,7 +26,7 @@ from operator import itemgetter
from lxml import etree
-from openerp import netsvc
+from openerp import workflow
from openerp.osv import fields, osv, orm
from openerp.tools.translate import _
import openerp.addons.decimal_precision as dp
@@ -193,6 +193,8 @@ class account_move_line(osv.osv):
if obj_line.analytic_account_id:
if not obj_line.journal_id.analytic_journal_id:
raise osv.except_osv(_('No Analytic Journal!'),_("You have to define an analytic journal on the '%s' journal!") % (obj_line.journal_id.name, ))
+ if obj_line.analytic_lines:
+ acc_ana_line_obj.unlink(cr,uid,[obj.id for obj in obj_line.analytic_lines])
vals_line = self._prepare_analytic_line(cr, uid, obj_line, context=context)
acc_ana_line_obj.create(cr, uid, vals_line)
return True
@@ -311,13 +313,13 @@ class account_move_line(osv.osv):
context = {}
c = context.copy()
c['initital_bal'] = True
- sql = """SELECT l2.id, SUM(l1.debit-l1.credit)
- FROM account_move_line l1, account_move_line l2
- WHERE l2.account_id = l1.account_id
- AND l1.id <= l2.id
- AND l2.id IN %s AND """ + \
- self._query_get(cr, uid, obj='l1', context=c) + \
- " GROUP BY l2.id"
+ sql = """SELECT l1.id, COALESCE(SUM(l2.debit-l2.credit), 0)
+ FROM account_move_line l1 LEFT JOIN account_move_line l2
+ ON (l1.account_id = l2.account_id
+ AND l2.id <= l1.id
+ AND """ + \
+ self._query_get(cr, uid, obj='l2', context=c) + \
+ ") WHERE l1.id IN %s GROUP BY l1.id"
cr.execute(sql, [tuple(ids)])
return dict(cr.fetchall())
@@ -932,11 +934,10 @@ class account_move_line(osv.osv):
'line_id': map(lambda x: (4, x, False), ids),
'line_partial_ids': map(lambda x: (3, x, False), ids)
})
- wf_service = netsvc.LocalService("workflow")
# the id of the move.reconcile is written in the move.line (self) by the create method above
# because of the way the line_id are defined: (4, x, False)
for id in ids:
- wf_service.trg_trigger(uid, 'account.move.line', id, cr)
+ workflow.trg_trigger(uid, 'account.move.line', id, cr)
if lines and lines[0]:
partner_id = lines[0].partner_id and lines[0].partner_id.id or False
@@ -1208,20 +1209,6 @@ class account_move_line(osv.osv):
if not ok:
raise osv.except_osv(_('Bad Account!'), _('You cannot use this general account in this journal, check the tab \'Entry Controls\' on the related journal.'))
- if vals.get('analytic_account_id',False):
- if journal.analytic_journal_id:
- vals['analytic_lines'] = [(0,0, {
- 'name': vals['name'],
- 'date': vals.get('date', time.strftime('%Y-%m-%d')),
- 'account_id': vals.get('analytic_account_id', False),
- 'unit_amount': vals.get('quantity', 1.0),
- 'amount': vals.get('debit', 0.0) or vals.get('credit', 0.0),
- 'general_account_id': vals.get('account_id', False),
- 'journal_id': journal.analytic_journal_id.id,
- 'ref': vals.get('ref', False),
- 'user_id': uid
- })]
-
result = super(account_move_line, self).create(cr, uid, vals, context=context)
# CREATE Taxes
if vals.get('account_tax_id', False):
diff --git a/addons/account/account_unit_test.xml b/addons/account/account_unit_test.xml
index 7795c2700cc..5fb1c55b669 100644
--- a/addons/account/account_unit_test.xml
+++ b/addons/account/account_unit_test.xml
@@ -8,7 +8,7 @@
draft
- out_invoice
+ in_invoiceTest invoice 1
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index aaa7fed07b8..790f34a4f7f 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -2265,7 +2265,6 @@
-
@@ -2273,6 +2272,7 @@
+
@@ -2306,41 +2306,64 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/account/data/account_data.xml b/addons/account/data/account_data.xml
index 9d2e65a3a4c..723ec6da155 100644
--- a/addons/account/data/account_data.xml
+++ b/addons/account/data/account_data.xml
@@ -3,9 +3,15 @@
+ SALSalessale
+
+ PUR
+ Purchases
+ purchase
+ Invoice - Send by Email
- ${object.user_id.email or object.company_id.email or 'noreply@localhost'}
+ ${(object.user_id.email or object.company_id.email or 'noreply@localhost')|safe}${object.company_id.name} Invoice (Ref ${object.number or 'n/a'})${object.partner_id.id}
diff --git a/addons/account/i18n/am.po b/addons/account/i18n/am.po
new file mode 100644
index 00000000000..4544b53b1df
--- /dev/null
+++ b/addons/account/i18n/am.po
@@ -0,0 +1,10849 @@
+# Amharic translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:04+0000\n"
+"PO-Revision-Date: 2013-11-27 11:23+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Amharic \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-28 05:31+0000\n"
+"X-Generator: Launchpad (build 16847)\n"
+
+#. module: account
+#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
+msgid "System payment"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.fiscal.position.account:0
+msgid ""
+"An account fiscal position could be defined only once time on same accounts."
+msgstr ""
+
+#. module: account
+#: help:account.tax.code,sequence:0
+msgid ""
+"Determine the display order in the report 'Accounting \\ Reporting \\ "
+"Generic Reporting \\ Taxes \\ Taxes Report'"
+msgstr ""
+
+#. module: account
+#: view:account.move.reconcile:0
+msgid "Journal Entry Reconcile"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+#: view:account.bank.statement:0
+#: view:account.move.line:0
+msgid "Account Statistics"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Proforma/Open/Paid Invoices"
+msgstr ""
+
+#. module: account
+#: field:report.invoice.created,residual:0
+msgid "Residual"
+msgstr "ቀሪ"
+
+#. module: account
+#: code:addons/account/account_bank_statement.py:369
+#, python-format
+msgid "Journal item \"%s\" is not valid."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_report_aged_receivable
+msgid "Aged Receivable Till Today"
+msgstr ""
+
+#. module: account
+#: model:process.transition,name:account.process_transition_invoiceimport0
+msgid "Import from invoice or payment"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1058
+#: code:addons/account/account_move_line.py:1143
+#: code:addons/account/account_move_line.py:1210
+#, python-format
+msgid "Bad Account!"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: view:account.move.line:0
+msgid "Total Debit"
+msgstr ""
+
+#. module: account
+#: constraint:account.account.template:0
+msgid ""
+"Error!\n"
+"You cannot create recursive account templates."
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: view:account.automatic.reconcile:0
+#: field:account.move.line,reconcile_id:0
+#: view:account.move.line.reconcile:0
+#: view:account.move.line.reconcile.writeoff:0
+#: code:addons/account/static/src/xml/account_move_reconciliation.xml:30
+#, python-format
+msgid "Reconcile"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,name:0
+#: field:account.bank.statement.line,ref:0
+#: field:account.entries.report,ref:0
+#: field:account.move,ref:0
+#: field:account.move.line,ref:0
+#: field:account.subscription,ref:0
+#: xsl:account.transfer:0
+#: field:cash.box.in,ref:0
+msgid "Reference"
+msgstr "ማመሳከሪያ"
+
+#. module: account
+#: help:account.payment.term,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the payment "
+"term without removing it."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:641
+#: code:addons/account/account.py:686
+#: code:addons/account/account.py:781
+#: code:addons/account/account.py:1058
+#: code:addons/account/account_invoice.py:820
+#: code:addons/account/account_invoice.py:823
+#: code:addons/account/account_invoice.py:826
+#: code:addons/account/account_invoice.py:1545
+#: code:addons/account/account_move_line.py:98
+#: code:addons/account/account_move_line.py:771
+#: code:addons/account/account_move_line.py:824
+#: code:addons/account/account_move_line.py:864
+#: code:addons/account/wizard/account_fiscalyear_close.py:62
+#: code:addons/account/wizard/account_invoice_state.py:44
+#: code:addons/account/wizard/account_invoice_state.py:68
+#: code:addons/account/wizard/account_state_open.py:37
+#: code:addons/account/wizard/account_validate_account_move.py:39
+#: code:addons/account/wizard/account_validate_account_move.py:61
+#, python-format
+msgid "Warning!"
+msgstr "ማስጠንቀቅያ!"
+
+#. module: account
+#: code:addons/account/account.py:3197
+#, python-format
+msgid "Miscellaneous Journal"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_open_closed_fiscalyear.py:39
+#, python-format
+msgid ""
+"You have to set the 'End of Year Entries Journal' for this Fiscal Year "
+"which is set after generating opening entries from 'Generate Opening "
+"Entries'."
+msgstr ""
+
+#. module: account
+#: field:account.fiscal.position.account,account_src_id:0
+#: field:account.fiscal.position.account.template,account_src_id:0
+msgid "Account Source"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_period
+msgid ""
+"
\n"
+" Click to add a fiscal period.\n"
+"
\n"
+" An accounting period typically is a month or a quarter. It\n"
+" usually corresponds to the periods of the tax declaration.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_view_created_invoice_dashboard
+msgid "Invoices Created Within Past 15 Days"
+msgstr ""
+
+#. module: account
+#: field:accounting.report,label_filter:0
+msgid "Column Label"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,code_digits:0
+msgid "No. of digits to use for account code"
+msgstr ""
+
+#. module: account
+#: help:account.analytic.journal,type:0
+msgid ""
+"Gives the type of the analytic journal. When it needs for a document (eg: an "
+"invoice) to create analytic entries, OpenERP will look for a matching "
+"journal of the same type."
+msgstr ""
+
+#. module: account
+#: help:account.tax,account_analytic_collected_id:0
+msgid ""
+"Set the analytic account that will be used by default on the invoice tax "
+"lines for invoices. Leave empty if you don't want to use an analytic account "
+"on the invoice tax lines by default."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_tax_template_form
+#: model:ir.ui.menu,name:account.menu_action_account_tax_template_form
+msgid "Tax Templates"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_move_line_reconcile_select
+msgid "Move line reconcile select"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_supplierentriesreconcile0
+msgid "Accounting entries are an input of the reconciliation."
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_management_belgian_reports
+msgid "Belgian Reports"
+msgstr ""
+
+#. module: account
+#: model:mail.message.subtype,name:account.mt_invoice_validated
+msgid "Validated"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.account_type_income_view1
+msgid "Income View"
+msgstr ""
+
+#. module: account
+#: help:account.account,user_type:0
+msgid ""
+"Account Type is used for information purpose, to generate country-specific "
+"legal reports, and set the rules to close a fiscal year and generate opening "
+"entries."
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,sale_refund_sequence_next:0
+msgid "Next credit note number"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,module_account_voucher:0
+msgid ""
+"This includes all the basic requirements of voucher entries for bank, cash, "
+"sales, purchase, expense, contra, etc.\n"
+" This installs the module account_voucher."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_use_model_create_entry
+msgid "Manual Recurring"
+msgstr ""
+
+#. module: account
+#: field:account.automatic.reconcile,allow_write_off:0
+msgid "Allow write off"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.chart:0
+msgid "Select the Period for Analysis"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_invoice_tree3
+msgid ""
+"
\n"
+" Click to create a customer refund. \n"
+"
\n"
+" A refund is a document that credits an invoice completely "
+"or\n"
+" partially.\n"
+"
\n"
+" Instead of manually creating a customer refund, you\n"
+" can generate it directly from the related customer invoice.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: help:account.installer,charts:0
+msgid ""
+"Installs localized accounting charts to match as closely as possible the "
+"accounting needs of your company based on your country."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_unreconcile
+msgid "Account Unreconcile"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,module_account_budget:0
+msgid "Budget management"
+msgstr ""
+
+#. module: account
+#: view:product.template:0
+msgid "Purchase Properties"
+msgstr ""
+
+#. module: account
+#: help:account.financial.report,style_overwrite:0
+msgid ""
+"You can set up here the format you want this record to be displayed. If you "
+"leave the automatic formatting, it will be computed based on the financial "
+"reports hierarchy (auto-computed field 'level')."
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,group_multi_currency:0
+msgid "Allow multi currencies"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:77
+#, python-format
+msgid "You must define an analytic journal of type '%s'!"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "June"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_automatic_reconcile.py:148
+#, python-format
+msgid "You must select accounts to reconcile."
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,group_analytic_accounting:0
+msgid "Allows you to use the analytic accounting."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: field:account.invoice,user_id:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,user_id:0
+msgid "Salesperson"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: view:account.invoice:0
+msgid "Responsible"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_bank_accounts_wizard
+msgid "account.bank.accounts.wizard"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,date_created:0
+#: field:account.move.reconcile,create_date:0
+msgid "Creation date"
+msgstr ""
+
+#. module: account
+#: selection:account.journal,type:0
+msgid "Purchase Refund"
+msgstr ""
+
+#. module: account
+#: selection:account.journal,type:0
+msgid "Opening/Closing Situation"
+msgstr ""
+
+#. module: account
+#: help:account.journal,currency:0
+msgid "The currency used to enter statement"
+msgstr ""
+
+#. module: account
+#: field:account.journal,default_debit_account_id:0
+msgid "Default Debit Account"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: view:account.move.line:0
+msgid "Total Credit"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,module_account_asset:0
+msgid ""
+"This allows you to manage the assets owned by a company or a person.\n"
+" It keeps track of the depreciation occurred on those assets, "
+"and creates account move for those depreciation lines.\n"
+" This installs the module account_asset. If you do not check "
+"this box, you will be able to do invoicing & payments,\n"
+" but not accounting (Journal Items, Chart of Accounts, ...)"
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement.line,name:0
+msgid "Originator to Beneficiary Information"
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/static/src/xml/account_move_line_quickadd.xml:8
+#, python-format
+msgid "Period :"
+msgstr ""
+
+#. module: account
+#: field:account.account.template,chart_template_id:0
+#: field:account.fiscal.position.template,chart_template_id:0
+#: field:account.tax.template,chart_template_id:0
+#: field:wizard.multi.charts.accounts,chart_template_id:0
+msgid "Chart Template"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice.refund,filter_refund:0
+msgid "Modify: create refund, reconcile and create a new draft invoice"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,tax_calculation_rounding_method:0
+msgid ""
+"If you select 'Round per line' : for each tax, the tax amount will first be "
+"computed and rounded for each PO/SO/invoice line and then these rounded "
+"amounts will be summed, leading to the total amount for that tax. If you "
+"select 'Round globally': for each tax, the tax amount will be computed for "
+"each PO/SO/invoice line, then these amounts will be summed and eventually "
+"this total tax amount will be rounded. If you sell with tax included, you "
+"should choose 'Round per line' because you certainly want the sum of your "
+"tax-included line subtotals to be equal to the total amount with taxes."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_wizard_multi_charts_accounts
+msgid "wizard.multi.charts.accounts"
+msgstr ""
+
+#. module: account
+#: help:account.model.line,amount_currency:0
+msgid "The amount expressed in an optional other currency."
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+msgid "Available Coins"
+msgstr ""
+
+#. module: account
+#: field:accounting.report,enable_filter:0
+msgid "Enable Comparison"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+#: field:account.automatic.reconcile,journal_id:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement,journal_id:0
+#: field:account.bank.statement.line,journal_id:0
+#: report:account.central.journal:0
+#: view:account.entries.report:0
+#: field:account.entries.report,journal_id:0
+#: view:account.invoice:0
+#: field:account.invoice,journal_id:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,journal_id:0
+#: view:account.journal:0
+#: field:account.journal.cashbox.line,journal_id:0
+#: field:account.journal.period,journal_id:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: view:account.model:0
+#: field:account.model,journal_id:0
+#: view:account.move:0
+#: field:account.move,journal_id:0
+#: field:account.move.bank.reconcile,journal_id:0
+#: view:account.move.line:0
+#: field:account.move.line,journal_id:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,journal_id:0
+#: model:ir.actions.report.xml,name:account.account_journal
+#: model:ir.model,name:account.model_account_journal
+#: field:validate.account.move,journal_id:0
+msgid "Journal"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_invoice_confirm
+msgid "Confirm the selected invoices"
+msgstr ""
+
+#. module: account
+#: field:account.addtmpl.wizard,cparent_id:0
+msgid "Parent target"
+msgstr ""
+
+#. module: account
+#: help:account.invoice.line,sequence:0
+msgid "Gives the sequence of this line when displaying the invoice."
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,account_id:0
+msgid "Account used in this journal"
+msgstr ""
+
+#. module: account
+#: help:account.aged.trial.balance,chart_account_id:0
+#: help:account.balance.report,chart_account_id:0
+#: help:account.central.journal,chart_account_id:0
+#: help:account.common.account.report,chart_account_id:0
+#: help:account.common.journal.report,chart_account_id:0
+#: help:account.common.partner.report,chart_account_id:0
+#: help:account.common.report,chart_account_id:0
+#: help:account.general.journal,chart_account_id:0
+#: help:account.partner.balance,chart_account_id:0
+#: help:account.partner.ledger,chart_account_id:0
+#: help:account.print.journal,chart_account_id:0
+#: help:account.report.general.ledger,chart_account_id:0
+#: help:account.vat.declaration,chart_account_id:0
+#: help:accounting.report,chart_account_id:0
+msgid "Select Charts of Accounts"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_invoice_refund
+msgid "Invoice Refund"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Li."
+msgstr ""
+
+#. module: account
+#: field:account.automatic.reconcile,unreconciled:0
+msgid "Not reconciled transactions"
+msgstr ""
+
+#. module: account
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+msgid "Counterpart"
+msgstr ""
+
+#. module: account
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,tax_ids:0
+#: field:account.fiscal.position.template,tax_ids:0
+msgid "Tax Mapping"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_fiscalyear_close_state
+#: model:ir.ui.menu,name:account.menu_wizard_fy_close_state
+msgid "Close a Fiscal Year"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_confirmstatementfromdraft0
+msgid "The accountant confirms the statement."
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/static/src/xml/account_move_reconciliation.xml:31
+#, python-format
+msgid "Nothing to reconcile"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,decimal_precision:0
+msgid "Decimal precision on journal entries"
+msgstr ""
+
+#. module: account
+#: selection:account.config.settings,period:0
+#: selection:account.installer,period:0
+msgid "3 Monthly"
+msgstr ""
+
+#. module: account
+#: field:ir.sequence,fiscal_ids:0
+msgid "Sequences"
+msgstr ""
+
+#. module: account
+#: field:account.financial.report,account_report_id:0
+#: selection:account.financial.report,type:0
+msgid "Report Value"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_validate_account_move.py:39
+#, python-format
+msgid ""
+"Specified journal does not have any account move entries in draft state for "
+"this period."
+msgstr ""
+
+#. module: account
+#: view:account.fiscal.position:0
+#: view:account.fiscal.position.template:0
+msgid "Taxes Mapping"
+msgstr ""
+
+#. module: account
+#: report:account.central.journal:0
+msgid "Centralized Journal"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.sequence.fiscalyear:0
+msgid "Main Sequence must be different from current !"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_change_currency.py:64
+#: code:addons/account/wizard/account_change_currency.py:70
+#, python-format
+msgid "Current currency is not configured properly."
+msgstr ""
+
+#. module: account
+#: field:account.journal,profit_account_id:0
+msgid "Profit Account"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1156
+#, python-format
+msgid "No period found or more than one period found for the given date."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_report_account_type_sales
+msgid "Report of the Sales by Account Type"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3201
+#, python-format
+msgid "SAJ"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1591
+#, python-format
+msgid "Cannot create move with currency different from .."
+msgstr ""
+
+#. module: account
+#: model:email.template,report_name:account.email_template_edi_invoice
+msgid ""
+"Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' "
+"and 'draft' or ''}"
+msgstr ""
+
+#. module: account
+#: view:account.period:0
+#: view:account.period.close:0
+msgid "Close Period"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_common_partner_report
+msgid "Account Common Partner Report"
+msgstr ""
+
+#. module: account
+#: field:account.fiscalyear.close,period_id:0
+msgid "Opening Entries Period"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_journal_period
+msgid "Journal Period"
+msgstr ""
+
+#. module: account
+#: constraint:account.move:0
+msgid ""
+"You cannot create more than one move per period on a centralized journal."
+msgstr ""
+
+#. module: account
+#: help:account.tax,account_analytic_paid_id:0
+msgid ""
+"Set the analytic account that will be used by default on the invoice tax "
+"lines for refunds. Leave empty if you don't want to use an analytic account "
+"on the invoice tax lines by default."
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+#: selection:account.aged.trial.balance,result_selection:0
+#: selection:account.common.partner.report,result_selection:0
+#: selection:account.partner.balance,result_selection:0
+#: selection:account.partner.ledger,result_selection:0
+#: report:account.third_party_ledger:0
+#: code:addons/account/report/account_partner_balance.py:297
+#: code:addons/account/report/account_partner_ledger.py:272
+#, python-format
+msgid "Receivable Accounts"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "Configure your company bank accounts"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.refund:0
+msgid "Create Refund"
+msgstr ""
+
+#. module: account
+#: constraint:account.move.line:0
+msgid ""
+"The date of your Journal Entry is not in the defined period! You should "
+"change the date or remove this constraint from the journal."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_report_general_ledger
+msgid "General Ledger Report"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Re-Open"
+msgstr ""
+
+#. module: account
+#: view:account.use.model:0
+msgid "Are you sure you want to create entries?"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:1361
+#, python-format
+msgid "Invoice partially paid: %s%s of %s%s (%s%s remaining)."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Print Invoice"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_invoice_refund.py:111
+#, python-format
+msgid ""
+"Cannot %s invoice which is already reconciled, invoice should be "
+"unreconciled first. You can only refund this invoice."
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,display_detail:0
+msgid "Display children with hierarchy"
+msgstr ""
+
+#. module: account
+#: selection:account.payment.term.line,value:0
+#: selection:account.tax.template,type:0
+msgid "Percent"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_charts
+msgid "Charts"
+msgstr ""
+
+#. module: account
+#: code:addons/account/project/wizard/project_account_analytic_line.py:47
+#: model:ir.model,name:account.model_project_account_analytic_line
+#, python-format
+msgid "Analytic Entries by line"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.refund,filter_refund:0
+msgid "Refund Method"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_account_report
+msgid "Financial Report"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+#: view:account.analytic.journal:0
+#: field:account.analytic.journal,type:0
+#: field:account.bank.statement.line,type:0
+#: field:account.financial.report,type:0
+#: field:account.invoice,type:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,type:0
+#: view:account.journal:0
+#: field:account.journal,type:0
+#: field:account.move.reconcile,type:0
+#: xsl:account.transfer:0
+#: field:report.invoice.created,type:0
+msgid "Type"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:826
+#, python-format
+msgid ""
+"Taxes are missing!\n"
+"Click on compute button."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_subscription_line
+msgid "Account Subscription Line"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,reference:0
+msgid "The partner reference of this invoice."
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Supplier Invoices And Refunds"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:851
+#, python-format
+msgid "Entry is already reconciled."
+msgstr ""
+
+#. module: account
+#: view:account.move.line.unreconcile.select:0
+#: view:account.unreconcile.reconcile:0
+#: model:ir.model,name:account.model_account_move_line_unreconcile_select
+msgid "Unreconciliation"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_analytic_journal_report
+msgid "Account Analytic Journal"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Send by Email"
+msgstr ""
+
+#. module: account
+#: help:account.central.journal,amount_currency:0
+#: help:account.common.journal.report,amount_currency:0
+#: help:account.general.journal,amount_currency:0
+#: help:account.print.journal,amount_currency:0
+msgid ""
+"Print Report with the currency column if the currency differs from the "
+"company currency."
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.quantity_cost_ledger:0
+msgid "J.C./Move name"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+msgid "Account Code and Name"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "September"
+msgstr ""
+
+#. module: account
+#: selection:account.subscription,period_type:0
+msgid "days"
+msgstr ""
+
+#. module: account
+#: help:account.account.template,nocreate:0
+msgid ""
+"If checked, the new chart of accounts will not contain this by default."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_manual_reconcile
+msgid ""
+"
\n"
+" When doing multi-currency transactions, you may loose or "
+"gain\n"
+" some amount due to changes of exchange rate. This menu "
+"gives\n"
+" you a forecast of the Gain or Loss you'd realized if those\n"
+" transactions were ended today. Only for accounts having a\n"
+" secondary currency set.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: field:account.bank.accounts.wizard,acc_name:0
+msgid "Account Name."
+msgstr ""
+
+#. module: account
+#: field:account.journal,with_last_closing_balance:0
+msgid "Opening With Last Closing Balance"
+msgstr ""
+
+#. module: account
+#: help:account.tax.code,notprintable:0
+msgid ""
+"Check this box if you don't want any tax related to this tax code to appear "
+"on invoices"
+msgstr ""
+
+#. module: account
+#: field:report.account.receivable,name:0
+msgid "Week of Year"
+msgstr ""
+
+#. module: account
+#: field:account.report.general.ledger,landscape:0
+msgid "Landscape Mode"
+msgstr ""
+
+#. module: account
+#: help:account.fiscalyear.close,fy_id:0
+msgid "Select a Fiscal year to close"
+msgstr ""
+
+#. module: account
+#: help:account.account.template,user_type:0
+msgid ""
+"These types are defined according to your country. The type contains more "
+"information about the account and its specificities."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Refund "
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_analytic_line.py:90
+#, python-format
+msgid "There is no expense account defined for this product: \"%s\" (id:%d)."
+msgstr ""
+
+#. module: account
+#: view:account.tax:0
+msgid "Applicability Options"
+msgstr ""
+
+#. module: account
+#: report:account.partner.balance:0
+msgid "In dispute"
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+#: model:ir.actions.act_window,name:account.action_view_bank_statement_tree
+#: model:ir.ui.menu,name:account.journal_cash_move_lines
+msgid "Cash Registers"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,sale_refund_journal_id:0
+msgid "Sale refund journal"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_view_bank_statement_tree
+msgid ""
+"
\n"
+" Click to create a new cash log.\n"
+"
\n"
+" A Cash Register allows you to manage cash entries in your "
+"cash\n"
+" journals. This feature provides an easy way to follow up "
+"cash\n"
+" payments on a daily basis. You can enter the coins that are "
+"in\n"
+" your cash box, and then post entries when money comes in or\n"
+" goes out of the cash box.\n"
+"
\n"
+" An account type is used to determine how an account is used "
+"in\n"
+" each journal. The deferral method of an account type "
+"determines\n"
+" the process for the annual closing. Reports such as the "
+"Balance\n"
+" Sheet and the Profit and Loss report use the category\n"
+" (profit/loss or balance sheet).\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: view:account.invoice:0
+#: view:account.invoice.report:0
+#: field:account.move.line,invoice:0
+#: code:addons/account/account_invoice.py:1157
+#: model:ir.model,name:account.model_account_invoice
+#: model:res.request.link,name:account.req_link_invoice
+#, python-format
+msgid "Invoice"
+msgstr ""
+
+#. module: account
+#: field:account.move,balance:0
+msgid "balance"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_analytic0
+#: model:process.node,note:account.process_node_analyticcost0
+msgid "Analytic costs to invoice"
+msgstr ""
+
+#. module: account
+#: view:ir.sequence:0
+msgid "Fiscal Year Sequence"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,group_analytic_accounting:0
+msgid "Analytic accounting"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Sub-Total :"
+msgstr ""
+
+#. module: account
+#: help:res.company,tax_calculation_rounding_method:0
+msgid ""
+"If you select 'Round per Line' : for each tax, the tax amount will first be "
+"computed and rounded for each PO/SO/invoice line and then these rounded "
+"amounts will be summed, leading to the total amount for that tax. If you "
+"select 'Round Globally': for each tax, the tax amount will be computed for "
+"each PO/SO/invoice line, then these amounts will be summed and eventually "
+"this total tax amount will be rounded. If you sell with tax included, you "
+"should choose 'Round per line' because you certainly want the sum of your "
+"tax-included line subtotals to be equal to the total amount with taxes."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_report_account_type_sales_tree_all
+#: view:report.account_type.sales:0
+msgid "Sales by Account Type"
+msgstr ""
+
+#. module: account
+#: model:account.payment.term,name:account.account_payment_term_15days
+#: model:account.payment.term,note:account.account_payment_term_15days
+msgid "15 Days"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.periodical_processing_invoicing
+msgid "Invoicing"
+msgstr ""
+
+#. module: account
+#: code:addons/account/report/account_partner_balance.py:115
+#, python-format
+msgid "Unknown Partner"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_fiscalyear_close.py:103
+#, python-format
+msgid ""
+"The journal must have centralized counterpart without the Skipping draft "
+"state option checked."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:854
+#, python-format
+msgid "Some entries are already reconciled."
+msgstr ""
+
+#. module: account
+#: field:account.tax.code,sum:0
+msgid "Year Sum"
+msgstr ""
+
+#. module: account
+#: view:account.change.currency:0
+msgid "This wizard will change the currency of the invoice"
+msgstr ""
+
+#. module: account
+#: view:account.installer:0
+msgid ""
+"Select a configuration package to setup automatically your\n"
+" taxes and chart of accounts."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+msgid "Pending Accounts"
+msgstr ""
+
+#. module: account
+#: view:account.open.closed.fiscalyear:0
+msgid "Cancel Fiscal Year Opening Entries"
+msgstr ""
+
+#. module: account
+#: report:account.journal.period.print.sale.purchase:0
+#: view:account.tax.template:0
+msgid "Tax Declaration"
+msgstr ""
+
+#. module: account
+#: help:account.journal.period,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the journal "
+"period without removing it."
+msgstr ""
+
+#. module: account
+#: field:account.report.general.ledger,sortby:0
+msgid "Sort by"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.act_account_partner_account_move_all
+msgid "Receivables & Payables"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,module_account_payment:0
+msgid "Manage payment orders"
+msgstr ""
+
+#. module: account
+#: view:account.period:0
+msgid "Duration"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: field:account.bank.statement,last_closing_balance:0
+msgid "Last Closing Balance"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_common_journal_report
+msgid "Account Common Journal Report"
+msgstr ""
+
+#. module: account
+#: selection:account.partner.balance,display_partner:0
+msgid "All Partners"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.chart:0
+msgid "Analytic Account Charts"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Customer Ref:"
+msgstr ""
+
+#. module: account
+#: help:account.tax,base_code_id:0
+#: help:account.tax,ref_base_code_id:0
+#: help:account.tax,ref_tax_code_id:0
+#: help:account.tax,tax_code_id:0
+#: help:account.tax.template,base_code_id:0
+#: help:account.tax.template,ref_base_code_id:0
+#: help:account.tax.template,ref_tax_code_id:0
+#: help:account.tax.template,tax_code_id:0
+msgid "Use this code for the tax declaration."
+msgstr ""
+
+#. module: account
+#: help:account.period,special:0
+msgid "These periods can overlap."
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_draftstatement0
+msgid "Draft statement"
+msgstr ""
+
+#. module: account
+#: model:mail.message.subtype,description:account.mt_invoice_validated
+msgid "Invoice validated"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,module_account_check_writing:0
+msgid "Pay your suppliers by check"
+msgstr ""
+
+#. module: account
+#: field:account.move.line.reconcile,credit:0
+msgid "Credit amount"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,message_ids:0
+#: field:account.invoice,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: account
+#: view:account.vat.declaration:0
+msgid ""
+"This menu prints a tax declaration based on invoices or payments. Select one "
+"or several periods of the fiscal year. The information required for a tax "
+"declaration is automatically generated by OpenERP from invoices (or "
+"payments, in some countries). This data is updated in real time. That’s very "
+"useful because it enables you to preview at any time the tax that you owe at "
+"the start and end of the month or quarter."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:409
+#: code:addons/account/account.py:414
+#: code:addons/account/account.py:431
+#: code:addons/account/account.py:634
+#: code:addons/account/account.py:636
+#: code:addons/account/account.py:930
+#: code:addons/account/account.py:1071
+#: code:addons/account/account.py:1073
+#: code:addons/account/account.py:1116
+#: code:addons/account/account.py:1319
+#: code:addons/account/account.py:1333
+#: code:addons/account/account.py:1356
+#: code:addons/account/account.py:1363
+#: code:addons/account/account.py:1587
+#: code:addons/account/account.py:1591
+#: code:addons/account/account.py:1677
+#: code:addons/account/account.py:2358
+#: code:addons/account/account.py:2678
+#: code:addons/account/account.py:3465
+#: code:addons/account/account_analytic_line.py:89
+#: code:addons/account/account_analytic_line.py:98
+#: code:addons/account/account_bank_statement.py:368
+#: code:addons/account/account_bank_statement.py:381
+#: code:addons/account/account_bank_statement.py:419
+#: code:addons/account/account_cash_statement.py:256
+#: code:addons/account/account_cash_statement.py:300
+#: code:addons/account/account_invoice.py:899
+#: code:addons/account/account_invoice.py:933
+#: code:addons/account/account_invoice.py:1124
+#: code:addons/account/account_move_line.py:579
+#: code:addons/account/account_move_line.py:828
+#: code:addons/account/account_move_line.py:851
+#: code:addons/account/account_move_line.py:854
+#: code:addons/account/account_move_line.py:1119
+#: code:addons/account/account_move_line.py:1121
+#: code:addons/account/account_move_line.py:1156
+#: code:addons/account/report/common_report_header.py:92
+#: code:addons/account/wizard/account_change_currency.py:38
+#: code:addons/account/wizard/account_change_currency.py:59
+#: code:addons/account/wizard/account_change_currency.py:64
+#: code:addons/account/wizard/account_change_currency.py:70
+#: code:addons/account/wizard/account_financial_report.py:70
+#: code:addons/account/wizard/account_invoice_refund.py:109
+#: code:addons/account/wizard/account_invoice_refund.py:111
+#: code:addons/account/wizard/account_move_bank_reconcile.py:49
+#: code:addons/account/wizard/account_open_closed_fiscalyear.py:39
+#: code:addons/account/wizard/account_report_common.py:158
+#: code:addons/account/wizard/account_report_common.py:164
+#: code:addons/account/wizard/account_use_model.py:44
+#: code:addons/account/wizard/pos_box.py:31
+#: code:addons/account/wizard/pos_box.py:35
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_invoice_tree2
+msgid ""
+"
\n"
+" Click to record a new supplier invoice.\n"
+"
\n"
+" You can control the invoice from your supplier according to\n"
+" what you purchased or received. OpenERP can also generate\n"
+" draft invoices automatically from purchase orders or "
+"receipts.\n"
+"
\n"
+" A bank statement is a summary of all financial transactions\n"
+" occurring over a given period of time on a bank account. "
+"You\n"
+" should receive this periodicaly from your bank.\n"
+"
\n"
+" OpenERP allows you to reconcile a statement line directly "
+"with\n"
+" the related sale or puchase invoices.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,currency_id:0
+msgid "Default company currency"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,move_id:0
+#: field:account.invoice,move_name:0
+#: field:account.move.line,move_id:0
+msgid "Journal Entry"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Unpaid"
+msgstr ""
+
+#. module: account
+#: view:account.treasury.report:0
+#: model:ir.actions.act_window,name:account.action_account_treasury_report_all
+#: model:ir.model,name:account.model_account_treasury_report
+#: model:ir.ui.menu,name:account.menu_action_account_treasury_report_all
+msgid "Treasury Analysis"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.report.xml,name:account.account_journal_sale_purchase
+msgid "Sale/Purchase Journal"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+#: field:account.invoice.tax,account_analytic_id:0
+msgid "Analytic account"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_bank_statement.py:406
+#, python-format
+msgid "Please verify that an account is defined in the journal."
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,move_line_state:0
+msgid "Valid"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,message_follower_ids:0
+#: field:account.invoice,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_print_journal
+#: model:ir.model,name:account.model_account_print_journal
+msgid "Account Print Journal"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_product_category
+msgid "Product Category"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:656
+#, python-format
+msgid ""
+"You cannot change the type of account to '%s' type as it contains journal "
+"items!"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_aged_trial_balance
+msgid "Account Aged Trial balance Report"
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear.close.state:0
+msgid "Close Fiscal Year"
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/static/src/xml/account_move_line_quickadd.xml:14
+#, python-format
+msgid "Journal :"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.fiscal.position.tax:0
+msgid "A tax fiscal position could be defined only once time on same taxes."
+msgstr ""
+
+#. module: account
+#: view:account.tax:0
+#: view:account.tax.template:0
+msgid "Tax Definition"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+#: model:ir.actions.act_window,name:account.action_account_config
+msgid "Configure Accounting"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.report,uom_name:0
+msgid "Reference Unit of Measure"
+msgstr ""
+
+#. module: account
+#: help:account.journal,allow_date:0
+msgid ""
+"If set to True then do not accept the entry if the entry date is not into "
+"the period dates"
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/static/src/xml/account_move_reconciliation.xml:8
+#, python-format
+msgid "Good job!"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,module_account_asset:0
+msgid "Assets management"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+#: view:account.account.template:0
+#: selection:account.aged.trial.balance,result_selection:0
+#: selection:account.common.partner.report,result_selection:0
+#: selection:account.partner.balance,result_selection:0
+#: selection:account.partner.ledger,result_selection:0
+#: report:account.third_party_ledger:0
+#: code:addons/account/report/account_partner_balance.py:299
+#: code:addons/account/report/account_partner_ledger.py:274
+#, python-format
+msgid "Payable Accounts"
+msgstr ""
+
+#. module: account
+#: constraint:account.move.line:0
+msgid ""
+"The selected account of your Journal Entry forces to provide a secondary "
+"currency. You should remove the secondary currency on the account or select "
+"a multi-currency view on the journal."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: view:report.invoice.created:0
+msgid "Untaxed Amount"
+msgstr ""
+
+#. module: account
+#: help:account.tax,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the tax "
+"without removing it."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Analytic Journal Items related to a sale journal."
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,style_overwrite:0
+msgid "Italic Text (smaller)"
+msgstr ""
+
+#. module: account
+#: help:account.journal,cash_control:0
+msgid ""
+"If you want the journal should be control at opening/closing, check this "
+"option"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: view:account.invoice:0
+#: selection:account.invoice,state:0
+#: view:account.invoice.report:0
+#: selection:account.invoice.report,state:0
+#: selection:account.journal.period,state:0
+#: view:account.subscription:0
+#: selection:account.subscription,state:0
+#: selection:report.invoice.created,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: account
+#: field:account.move.reconcile,line_partial_ids:0
+msgid "Partial Entry lines"
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear:0
+#: field:account.treasury.report,fiscalyear_id:0
+msgid "Fiscalyear"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_move_bank_reconcile.py:53
+#, python-format
+msgid "Standard Encoding"
+msgstr ""
+
+#. module: account
+#: view:account.journal.select:0
+#: view:project.account.analytic.line:0
+msgid "Open Entries"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,purchase_refund_sequence_next:0
+msgid "Next supplier credit note number"
+msgstr ""
+
+#. module: account
+#: field:account.automatic.reconcile,account_ids:0
+msgid "Accounts to Reconcile"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_filestatement0
+msgid "Import of the statement in the system from an electronic file"
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_importinvoice0
+msgid "Import from invoice"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "January"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "This F.Year"
+msgstr ""
+
+#. module: account
+#: view:account.tax.chart:0
+msgid "Account tax charts"
+msgstr ""
+
+#. module: account
+#: model:account.payment.term,name:account.account_payment_term_net
+#: model:account.payment.term,note:account.account_payment_term_net
+msgid "30 Net Days"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_cash_statement.py:256
+#, python-format
+msgid "You do not have rights to open this %s journal !"
+msgstr ""
+
+#. module: account
+#: model:res.groups,name:account.group_supplier_inv_check_total
+msgid "Check Total on supplier invoices"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice,state:0
+#: view:account.invoice.report:0
+#: selection:account.invoice.report,state:0
+#: selection:report.invoice.created,state:0
+msgid "Pro-forma"
+msgstr ""
+
+#. module: account
+#: help:account.account.template,type:0
+#: help:account.entries.report,type:0
+msgid ""
+"This type is used to differentiate types with special effects in OpenERP: "
+"view can not have entries, consolidation are accounts that can have children "
+"accounts for multi-company consolidations, payable/receivable are for "
+"partners accounts (for debit/credit computations), closed for depreciated "
+"accounts."
+msgstr ""
+
+#. module: account
+#: view:account.chart.template:0
+msgid "Search Chart of Account Templates"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Customer Code"
+msgstr ""
+
+#. module: account
+#: view:account.account.type:0
+#: field:account.account.type,note:0
+#: report:account.invoice:0
+#: field:account.invoice,name:0
+#: field:account.invoice.line,name:0
+#: report:account.overdue:0
+#: field:account.payment.term,note:0
+#: view:account.tax.code:0
+#: field:account.tax.code,info:0
+#: view:account.tax.code.template:0
+#: field:account.tax.code.template,info:0
+#: field:analytic.entries.report,name:0
+#: field:report.invoice.created,name:0
+msgid "Description"
+msgstr ""
+
+#. module: account
+#: field:account.tax,price_include:0
+#: field:account.tax.template,price_include:0
+msgid "Tax Included in Price"
+msgstr ""
+
+#. module: account
+#: view:account.subscription:0
+#: selection:account.subscription,state:0
+msgid "Running"
+msgstr ""
+
+#. module: account
+#: view:account.chart.template:0
+#: field:product.category,property_account_income_categ:0
+#: field:product.template,property_account_income:0
+msgid "Income Account"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,default_sale_tax:0
+msgid "This sale tax will be assigned by default on new products."
+msgstr ""
+
+#. module: account
+#: report:account.general.ledger_landscape:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+msgid "Entries Sorted By"
+msgstr ""
+
+#. module: account
+#: field:account.change.currency,currency_id:0
+msgid "Change to"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "# of Products Qty "
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_product_template
+msgid "Product Template"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: field:account.aged.trial.balance,fiscalyear_id:0
+#: field:account.balance.report,fiscalyear_id:0
+#: report:account.central.journal:0
+#: field:account.central.journal,fiscalyear_id:0
+#: field:account.common.account.report,fiscalyear_id:0
+#: field:account.common.journal.report,fiscalyear_id:0
+#: field:account.common.partner.report,fiscalyear_id:0
+#: field:account.common.report,fiscalyear_id:0
+#: view:account.config.settings:0
+#: view:account.entries.report:0
+#: field:account.entries.report,fiscalyear_id:0
+#: view:account.fiscalyear:0
+#: field:account.fiscalyear,name:0
+#: report:account.general.journal:0
+#: field:account.general.journal,fiscalyear_id:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: field:account.journal.period,fiscalyear_id:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: field:account.open.closed.fiscalyear,fyear_id:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,fiscalyear_id:0
+#: field:account.partner.ledger,fiscalyear_id:0
+#: field:account.period,fiscalyear_id:0
+#: field:account.print.journal,fiscalyear_id:0
+#: field:account.report.general.ledger,fiscalyear_id:0
+#: field:account.sequence.fiscalyear,fiscalyear_id:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: report:account.vat.declaration:0
+#: field:account.vat.declaration,fiscalyear_id:0
+#: field:accounting.report,fiscalyear_id:0
+#: field:accounting.report,fiscalyear_id_cmp:0
+#: model:ir.model,name:account.model_account_fiscalyear
+msgid "Fiscal Year"
+msgstr ""
+
+#. module: account
+#: help:account.aged.trial.balance,fiscalyear_id:0
+#: help:account.balance.report,fiscalyear_id:0
+#: help:account.central.journal,fiscalyear_id:0
+#: help:account.common.account.report,fiscalyear_id:0
+#: help:account.common.journal.report,fiscalyear_id:0
+#: help:account.common.partner.report,fiscalyear_id:0
+#: help:account.common.report,fiscalyear_id:0
+#: help:account.general.journal,fiscalyear_id:0
+#: help:account.partner.balance,fiscalyear_id:0
+#: help:account.partner.ledger,fiscalyear_id:0
+#: help:account.print.journal,fiscalyear_id:0
+#: help:account.report.general.ledger,fiscalyear_id:0
+#: help:account.vat.declaration,fiscalyear_id:0
+#: help:accounting.report,fiscalyear_id:0
+#: help:accounting.report,fiscalyear_id_cmp:0
+msgid "Keep empty for all open fiscal year"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:653
+#, python-format
+msgid ""
+"You cannot change the type of account from 'Closed' to any other type as it "
+"contains journal items!"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.report,account_line_id:0
+msgid "Account Line"
+msgstr ""
+
+#. module: account
+#: view:account.addtmpl.wizard:0
+msgid "Create an Account Based on this Template"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:933
+#, python-format
+msgid ""
+"Cannot create the invoice.\n"
+"The related payment term is probably misconfigured as it gives a computed "
+"amount greater than the total invoiced amount. In order to avoid rounding "
+"issues, the latest line of your payment term must be of type 'balance'."
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: model:ir.model,name:account.model_account_move
+msgid "Account Entry"
+msgstr ""
+
+#. module: account
+#: field:account.sequence.fiscalyear,sequence_main_id:0
+msgid "Main Sequence"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_bank_statement.py:478
+#, python-format
+msgid ""
+"In order to delete a bank statement, you must first cancel it to delete "
+"related journal items."
+msgstr ""
+
+#. module: account
+#: field:account.invoice.report,payment_term:0
+#: view:account.payment.term:0
+#: field:account.payment.term,name:0
+#: view:account.payment.term.line:0
+#: field:account.payment.term.line,payment_id:0
+#: model:ir.model,name:account.model_account_payment_term
+msgid "Payment Term"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_fiscal_position_form
+#: model:ir.ui.menu,name:account.menu_action_account_fiscal_position_form
+msgid "Fiscal Positions"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:579
+#, python-format
+msgid "You cannot create journal items on a closed account %s %s."
+msgstr ""
+
+#. module: account
+#: field:account.period.close,sure:0
+msgid "Check this box"
+msgstr ""
+
+#. module: account
+#: view:account.common.report:0
+msgid "Filters"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_draftinvoices0
+#: model:process.node,note:account.process_node_supplierdraftinvoices0
+msgid "Draft state of an invoice"
+msgstr ""
+
+#. module: account
+#: view:product.category:0
+msgid "Account Properties"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice.refund,filter_refund:0
+msgid "Create a draft refund"
+msgstr ""
+
+#. module: account
+#: view:account.partner.reconcile.process:0
+msgid "Partner Reconciliation"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Fin. Account"
+msgstr ""
+
+#. module: account
+#: field:account.tax,tax_code_id:0
+#: view:account.tax.code:0
+msgid "Account Tax Code"
+msgstr ""
+
+#. module: account
+#: model:account.payment.term,name:account.account_payment_term_advance
+#: model:account.payment.term,note:account.account_payment_term_advance
+msgid "30% Advance End 30 Days"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "Unreconciled entries"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,base_code_id:0
+#: field:account.tax.template,base_code_id:0
+msgid "Base Code"
+msgstr ""
+
+#. module: account
+#: help:account.invoice.tax,sequence:0
+msgid "Gives the sequence order when displaying a list of invoice tax."
+msgstr ""
+
+#. module: account
+#: field:account.tax,base_sign:0
+#: field:account.tax,ref_base_sign:0
+#: field:account.tax.template,base_sign:0
+#: field:account.tax.template,ref_base_sign:0
+msgid "Base Code Sign"
+msgstr ""
+
+#. module: account
+#: selection:account.move.line,centralisation:0
+msgid "Debit Centralisation"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.confirm:0
+#: model:ir.actions.act_window,name:account.action_account_invoice_confirm
+msgid "Confirm Draft Invoices"
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,day:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,day:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.act_account_renew_view
+msgid "Accounts to Renew"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_model_line
+msgid "Account Model Entries"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3202
+#, python-format
+msgid "EXJ"
+msgstr ""
+
+#. module: account
+#: field:product.template,supplier_taxes_id:0
+msgid "Supplier Taxes"
+msgstr ""
+
+#. module: account
+#: view:res.partner:0
+msgid "Bank Details"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_move_journal_line
+msgid ""
+"
\n"
+" Click to create a journal entry.\n"
+"
\n"
+" A journal entry consists of several journal items, each of\n"
+" which is either a debit or a credit transaction.\n"
+"
\n"
+" OpenERP automatically creates one journal entry per "
+"accounting\n"
+" document: invoice, refund, supplier payment, bank "
+"statements,\n"
+" etc. So, you should record journal entries manually "
+"only/mainly\n"
+" for miscellaneous operations.\n"
+"
\n"
+" Define your company's financial year according to your "
+"needs. A\n"
+" financial year is a period at the end of which a company's\n"
+" accounts are made up (usually 12 months). The financial year "
+"is\n"
+" usually referred to by the date in which it ends. For "
+"example,\n"
+" if a company's financial year ends November 30, 2011, then\n"
+" everything between December 1, 2010 and November 30, 2011\n"
+" would be referred to as FY 2011.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: view:account.common.report:0
+#: view:account.move:0
+#: view:account.move.line:0
+#: view:accounting.report:0
+msgid "Dates"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,parent_id:0
+msgid "Parent Chart Template"
+msgstr ""
+
+#. module: account
+#: field:account.tax,parent_id:0
+#: field:account.tax.template,parent_id:0
+msgid "Parent Tax Account"
+msgstr ""
+
+#. module: account
+#: view:account.aged.trial.balance:0
+#: model:ir.actions.act_window,name:account.action_account_aged_balance_view
+#: model:ir.ui.menu,name:account.menu_aged_trial_balance
+msgid "Aged Partner Balance"
+msgstr ""
+
+#. module: account
+#: model:process.transition,name:account.process_transition_entriesreconcile0
+#: model:process.transition,name:account.process_transition_supplierentriesreconcile0
+msgid "Accounting entries"
+msgstr ""
+
+#. module: account
+#: constraint:account.move.line:0
+msgid "Account and Period must belong to the same company."
+msgstr ""
+
+#. module: account
+#: field:account.invoice.line,discount:0
+msgid "Discount (%)"
+msgstr ""
+
+#. module: account
+#: help:account.journal,entry_posted:0
+msgid ""
+"Check this box if you don't want new journal entries to pass through the "
+"'draft' state and instead goes directly to the 'posted state' without any "
+"manual validation. \n"
+"Note that journal entries that are automatically created by the system are "
+"always skipping that state."
+msgstr ""
+
+#. module: account
+#: field:account.move.line.reconcile,writeoff:0
+msgid "Write-Off amount"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,message_unread:0
+#: field:account.invoice,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_invoice_state.py:44
+#, python-format
+msgid ""
+"Selected invoice(s) cannot be confirmed as they are not in 'Draft' or 'Pro-"
+"Forma' state."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1071
+#, python-format
+msgid "You should choose the periods that belong to the same company."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_report_account_sales_tree_all
+#: view:report.account.sales:0
+#: view:report.account_type.sales:0
+msgid "Sales by Account"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1449
+#, python-format
+msgid "You cannot delete a posted journal entry \"%s\"."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Accounting Period"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,sale_journal_id:0
+msgid "Sale journal"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:2346
+#: code:addons/account/account_invoice.py:775
+#: code:addons/account/account_move_line.py:195
+#, python-format
+msgid "You have to define an analytic journal on the '%s' journal!"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:781
+#, python-format
+msgid ""
+"This journal already contains items, therefore you cannot modify its company "
+"field."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:409
+#, python-format
+msgid ""
+"You need an Opening journal with centralisation checked to set the initial "
+"balance."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_tax_code_list
+#: model:ir.ui.menu,name:account.menu_action_tax_code_list
+msgid "Tax codes"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+msgid "Unrealized Gains and losses"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_account_customer
+#: model:ir.ui.menu,name:account.menu_finance_receivables
+msgid "Customers"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.journal:0
+#: report:account.analytic.account.quantity_cost_ledger:0
+msgid "Period to"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "August"
+msgstr ""
+
+#. module: account
+#: field:accounting.report,debit_credit:0
+msgid "Display Debit/Credit Columns"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "October"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,quantity:0
+msgid ""
+"The optional quantity expressed by this line, eg: number of product sold. "
+"The quantity is not a legal requirement but is very useful for some reports."
+msgstr ""
+
+#. module: account
+#: view:account.unreconcile:0
+#: view:account.unreconcile.reconcile:0
+msgid "Unreconcile Transactions"
+msgstr ""
+
+#. module: account
+#: field:wizard.multi.charts.accounts,only_one_chart_template:0
+msgid "Only One Chart Template Available"
+msgstr ""
+
+#. module: account
+#: view:account.chart.template:0
+#: field:product.category,property_account_expense_categ:0
+#: field:product.template,property_account_expense:0
+msgid "Expense Account"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,message_summary:0
+#: field:account.invoice,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,period_id:0
+msgid "Keep empty to use the period of the validation(invoice) date."
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement,account_id:0
+msgid ""
+"used in statement reconciliation domain, but shouldn't be used elswhere."
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,date_stop:0
+msgid "End date"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,base_amount:0
+msgid "Base Code Amount"
+msgstr ""
+
+#. module: account
+#: field:wizard.multi.charts.accounts,sale_tax:0
+msgid "Default Sale Tax"
+msgstr ""
+
+#. module: account
+#: help:account.model.line,date_maturity:0
+msgid ""
+"The maturity date of the generated entries for this model. You can choose "
+"between the creation date or the creation date of the entries plus the "
+"partner payment terms."
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_accounting
+msgid "Financial Accounting"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_account_report_pl
+msgid "Profit And Loss"
+msgstr ""
+
+#. module: account
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,name:0
+#: field:account.fiscal.position.account,position_id:0
+#: field:account.fiscal.position.tax,position_id:0
+#: field:account.fiscal.position.tax.template,position_id:0
+#: view:account.fiscal.position.template:0
+#: field:account.invoice,fiscal_position:0
+#: field:account.invoice.report,fiscal_position:0
+#: model:ir.model,name:account.model_account_fiscal_position
+#: field:res.partner,property_account_position:0
+msgid "Fiscal Position"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:823
+#, python-format
+msgid ""
+"Tax base different!\n"
+"Click on compute to update the tax base."
+msgstr ""
+
+#. module: account
+#: field:account.partner.ledger,page_split:0
+msgid "One Partner Per Page"
+msgstr ""
+
+#. module: account
+#: field:account.account,child_parent_ids:0
+#: field:account.account.template,child_parent_ids:0
+msgid "Children"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: model:ir.actions.act_window,name:account.action_account_balance_menu
+#: model:ir.actions.report.xml,name:account.account_account_balance
+#: model:ir.ui.menu,name:account.menu_general_Balance_report
+msgid "Trial Balance"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:431
+#, python-format
+msgid "Unable to adapt the initial balance (negative value)."
+msgstr ""
+
+#. module: account
+#: selection:account.invoice,type:0
+#: selection:account.invoice.report,type:0
+#: model:process.process,name:account.process_process_invoiceprocess0
+#: selection:report.invoice.created,type:0
+msgid "Customer Invoice"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_open_closed_fiscalyear
+msgid "Choose Fiscal Year"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+#: view:account.installer:0
+msgid "Date Range"
+msgstr ""
+
+#. module: account
+#: view:account.period:0
+msgid "Search Period"
+msgstr ""
+
+#. module: account
+#: view:account.change.currency:0
+msgid "Invoice Currency"
+msgstr ""
+
+#. module: account
+#: field:accounting.report,account_report_id:0
+#: model:ir.ui.menu,name:account.menu_account_financial_reports_tree
+msgid "Account Reports"
+msgstr ""
+
+#. module: account
+#: field:account.payment.term,line_ids:0
+msgid "Terms"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,tax_template_ids:0
+msgid "Tax Template List"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_account_print_sale_purchase_journal
+msgid "Sale/Purchase Journals"
+msgstr ""
+
+#. module: account
+#: help:account.account,currency_mode:0
+msgid ""
+"This will select how the current currency rate for outgoing transactions is "
+"computed. In most countries the legal method is \"average\" but only a few "
+"software systems are able to manage this. So if you import from another "
+"software system you may have to use the rate at date. Incoming transactions "
+"always use the rate at date."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:2678
+#, python-format
+msgid "There is no parent code for the template account."
+msgstr ""
+
+#. module: account
+#: help:account.chart.template,code_digits:0
+#: help:wizard.multi.charts.accounts,code_digits:0
+msgid "No. of Digits to use for account code"
+msgstr ""
+
+#. module: account
+#: field:res.partner,property_supplier_payment_term:0
+msgid "Supplier Payment Term"
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear:0
+msgid "Search Fiscalyear"
+msgstr ""
+
+#. module: account
+#: selection:account.tax,applicable_type:0
+msgid "Always"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,module_account_accountant:0
+msgid ""
+"Full accounting features: journals, legal statements, chart of accounts, etc."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Total Quantity"
+msgstr ""
+
+#. module: account
+#: field:account.move.line.reconcile.writeoff,writeoff_acc_id:0
+msgid "Write-Off account"
+msgstr ""
+
+#. module: account
+#: field:account.model.line,model_id:0
+#: view:account.subscription:0
+#: field:account.subscription,model_id:0
+msgid "Model"
+msgstr ""
+
+#. module: account
+#: help:account.invoice.tax,base_code_id:0
+msgid "The account basis of the tax declaration."
+msgstr ""
+
+#. module: account
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
+#: selection:account.entries.report,type:0
+#: selection:account.financial.report,type:0
+msgid "View"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3460
+#: code:addons/account/account_bank.py:94
+#, python-format
+msgid "BNK"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,analytic_lines:0
+msgid "Analytic lines"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Proforma Invoices"
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_electronicfile0
+msgid "Electronic File"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,reconcile:0
+msgid "Reconcile Ref"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,has_chart_of_accounts:0
+msgid "Company has a chart of accounts"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_tax_code_template
+msgid "Tax Code Template"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_partner_ledger
+msgid "Account Partner Ledger"
+msgstr ""
+
+#. module: account
+#: model:email.template,body_html:account.email_template_edi_invoice
+msgid ""
+"\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: view:account.period:0
+msgid "Account Period"
+msgstr ""
+
+#. module: account
+#: help:account.account,currency_id:0
+#: help:account.account.template,currency_id:0
+#: help:account.bank.accounts.wizard,currency_id:0
+msgid "Forces all moves for this account to have this secondary currency."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_validate_account_move_line
+msgid ""
+"This wizard will validate all journal entries of a particular journal and "
+"period. Once journal entries are validated, you can not update them anymore."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_chart_template_form
+#: model:ir.ui.menu,name:account.menu_action_account_chart_template_form
+msgid "Chart of Accounts Templates"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Transactions"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_unreconcile_reconcile
+msgid "Account Unreconcile Reconcile"
+msgstr ""
+
+#. module: account
+#: help:account.account.type,close_method:0
+msgid ""
+"Set here the method that will be used to generate the end of year journal "
+"entries for all the accounts of this type.\n"
+"\n"
+" 'None' means that nothing will be done.\n"
+" 'Balance' will generally be used for cash accounts.\n"
+" 'Detail' will copy each existing journal item of the previous year, even "
+"the reconciled ones.\n"
+" 'Unreconciled' will copy only the journal items that were unreconciled on "
+"the first day of the new fiscal year."
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Keep empty to use the expense account"
+msgstr ""
+
+#. module: account
+#: field:account.aged.trial.balance,journal_ids:0
+#: field:account.analytic.cost.ledger.journal.report,journal:0
+#: field:account.balance.report,journal_ids:0
+#: field:account.central.journal,journal_ids:0
+#: field:account.common.account.report,journal_ids:0
+#: field:account.common.journal.report,journal_ids:0
+#: field:account.common.partner.report,journal_ids:0
+#: view:account.common.report:0
+#: field:account.common.report,journal_ids:0
+#: report:account.general.journal:0
+#: field:account.general.journal,journal_ids:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: view:account.journal.period:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,journal_ids:0
+#: field:account.partner.ledger,journal_ids:0
+#: view:account.print.journal:0
+#: field:account.print.journal,journal_ids:0
+#: field:account.report.general.ledger,journal_ids:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:account.vat.declaration,journal_ids:0
+#: field:accounting.report,journal_ids:0
+#: model:ir.actions.act_window,name:account.action_account_journal_form
+#: model:ir.actions.act_window,name:account.action_account_journal_period_tree
+#: model:ir.ui.menu,name:account.menu_account_print_journal
+#: model:ir.ui.menu,name:account.menu_action_account_journal_form
+#: model:ir.ui.menu,name:account.menu_journals
+#: model:ir.ui.menu,name:account.menu_journals_report
+msgid "Journals"
+msgstr ""
+
+#. module: account
+#: field:account.partner.reconcile.process,to_reconcile:0
+msgid "Remaining Partners"
+msgstr ""
+
+#. module: account
+#: view:account.subscription:0
+#: field:account.subscription,lines_id:0
+msgid "Subscription Lines"
+msgstr ""
+
+#. module: account
+#: selection:account.analytic.journal,type:0
+#: view:account.config.settings:0
+#: view:account.journal:0
+#: selection:account.journal,type:0
+#: view:account.model:0
+#: selection:account.tax,type_tax_use:0
+#: view:account.tax.template:0
+#: selection:account.tax.template,type_tax_use:0
+msgid "Purchase"
+msgstr ""
+
+#. module: account
+#: view:account.installer:0
+#: view:wizard.multi.charts.accounts:0
+msgid "Accounting Application Configuration"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_vat_declaration
+msgid "Account Tax Declaration"
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement,name:0
+msgid ""
+"if you give the Name other then /, its created Accounting Entries Move will "
+"be with same name as statement name. This allows the statement entries to "
+"have the same references than the statement itself"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:1016
+#, python-format
+msgid ""
+"You cannot create an invoice on a centralized journal. Uncheck the "
+"centralized counterpart box in the related journal from the configuration "
+"menu."
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,balance_start:0
+#: field:account.treasury.report,starting_balance:0
+msgid "Starting Balance"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:1465
+#, python-format
+msgid "No Partner Defined !"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_period_close
+#: model:ir.actions.act_window,name:account.action_account_period_tree
+#: model:ir.ui.menu,name:account.menu_action_account_period_close_tree
+msgid "Close a Period"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: field:account.cashbox.line,subtotal_opening:0
+msgid "Opening Subtotal"
+msgstr ""
+
+#. module: account
+#: constraint:account.move.line:0
+msgid ""
+"You cannot create journal items with a secondary currency without recording "
+"both 'currency' and 'amount currency' field."
+msgstr ""
+
+#. module: account
+#: field:account.financial.report,display_detail:0
+msgid "Display details"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "VAT:"
+msgstr ""
+
+#. module: account
+#: help:account.analytic.line,amount_currency:0
+msgid ""
+"The amount expressed in the related account currency if not equal to the "
+"company one."
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,paypal_account:0
+msgid ""
+"Paypal account (email) for receiving online payments (credit card, etc.) If "
+"you set a paypal account, the customer will be able to pay your invoices or "
+"quotations with a button \"Pay with Paypal\" in automated emails or through "
+"the OpenERP portal."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:536
+#, python-format
+msgid ""
+"Cannot find any account journal of %s type for this company.\n"
+"\n"
+"You can create one in the menu: \n"
+"Configuration/Journals/Journals."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_unreconcile
+#: model:ir.actions.act_window,name:account.action_account_unreconcile_reconcile
+#: model:ir.actions.act_window,name:account.action_account_unreconcile_select
+msgid "Unreconcile Entries"
+msgstr ""
+
+#. module: account
+#: field:account.tax.code,notprintable:0
+#: field:account.tax.code.template,notprintable:0
+msgid "Not Printable in Invoice"
+msgstr ""
+
+#. module: account
+#: report:account.vat.declaration:0
+#: field:account.vat.declaration,chart_tax_id:0
+msgid "Chart of Tax"
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+msgid "Search Account Journal"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_invoice_tree_pending_invoice
+msgid "Pending Invoice"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+#: selection:account.subscription,period_type:0
+msgid "year"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,date_start:0
+msgid "Start date"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.refund:0
+msgid ""
+"You will be able to edit and validate this\n"
+" credit note directly or keep it draft,\n"
+" waiting for the document to be issued "
+"by\n"
+" your supplier/customer."
+msgstr ""
+
+#. module: account
+#: view:validate.account.move.lines:0
+msgid ""
+"All selected journal entries will be validated and posted. It means you "
+"won't be able to modify their accounting fields anymore."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:98
+#, python-format
+msgid ""
+"You have not supplied enough arguments to compute the initial balance, "
+"please select a period and a journal in the context."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.report.xml,name:account.account_transfers
+msgid "Transfers"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,expects_chart_of_accounts:0
+msgid "This company has its own chart of accounts"
+msgstr ""
+
+#. module: account
+#: view:account.chart:0
+msgid "Account charts"
+msgstr ""
+
+#. module: account
+#: view:cash.box.out:0
+#: model:ir.actions.act_window,name:account.action_cash_box_out
+msgid "Take Money Out"
+msgstr ""
+
+#. module: account
+#: report:account.vat.declaration:0
+msgid "Tax Amount"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+msgid "Search Move"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_invoice_tree1
+msgid ""
+"
\n"
+" Click to create a customer invoice.\n"
+"
\n"
+" OpenERP's electronic invoicing allows to ease and fasten "
+"the\n"
+" collection of customer payments. Your customer receives the\n"
+" invoice by email and he can pay online and/or import it\n"
+" in his own system.\n"
+"
\n"
+" The discussions with your customer are automatically "
+"displayed at\n"
+" the bottom of each invoice.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: field:account.tax.code,name:0
+#: field:account.tax.code.template,name:0
+msgid "Tax Case Name"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: view:account.invoice:0
+#: model:process.node,name:account.process_node_draftinvoices0
+msgid "Draft Invoice"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "Options"
+msgstr ""
+
+#. module: account
+#: field:account.aged.trial.balance,period_length:0
+msgid "Period Length (days)"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1363
+#, python-format
+msgid ""
+"You cannot modify a posted entry of this journal.\n"
+"First you should set the journal to allow cancelling entries."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_print_sale_purchase_journal
+msgid "Print Sale/Purchase Journal"
+msgstr ""
+
+#. module: account
+#: view:account.installer:0
+msgid "Continue"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+#: field:account.invoice.report,categ_id:0
+msgid "Category of Product"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:930
+#, python-format
+msgid ""
+"There is no fiscal year defined for this date.\n"
+"Please create one from the configuration of the accounting menu."
+msgstr ""
+
+#. module: account
+#: view:account.addtmpl.wizard:0
+#: model:ir.actions.act_window,name:account.action_account_addtmpl_wizard_form
+msgid "Create Account"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_fiscalyear_close.py:62
+#, python-format
+msgid "The entries to reconcile should belong to the same company."
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,tax_amount:0
+msgid "Tax Code Amount"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Unreconciled Journal Items"
+msgstr ""
+
+#. module: account
+#: selection:account.account.type,close_method:0
+msgid "Detail"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,default_purchase_tax:0
+msgid "This purchase tax will be assigned by default on new products."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "VAT :"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: report:account.central.journal:0
+#: view:account.config.settings:0
+#: report:account.general.journal:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.journal.period.print:0
+#: report:account.partner.balance:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: model:ir.actions.act_window,name:account.action_account_chart
+#: model:ir.actions.act_window,name:account.action_account_tree
+#: model:ir.ui.menu,name:account.menu_action_account_tree2
+msgid "Chart of Accounts"
+msgstr ""
+
+#. module: account
+#: view:account.tax.chart:0
+msgid "(If you do not select period it will take all open periods)"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_journal_cashbox_line
+msgid "account.journal.cashbox.line"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_partner_reconcile_process
+msgid "Reconcilation Process partner by partner"
+msgstr ""
+
+#. module: account
+#: view:account.chart:0
+msgid "(If you do not select Fiscal year it will take all open fiscal years)"
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,filter:0
+#: report:account.analytic.account.journal:0
+#: view:account.analytic.line:0
+#: selection:account.balance.report,filter:0
+#: field:account.bank.statement,date:0
+#: field:account.bank.statement.line,date:0
+#: selection:account.central.journal,filter:0
+#: selection:account.common.account.report,filter:0
+#: selection:account.common.journal.report,filter:0
+#: selection:account.common.partner.report,filter:0
+#: selection:account.common.report,filter:0
+#: view:account.entries.report:0
+#: field:account.entries.report,date:0
+#: selection:account.general.journal,filter:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: field:account.invoice.refund,date:0
+#: field:account.invoice.report,date:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: view:account.move:0
+#: field:account.move,date:0
+#: field:account.move.line.reconcile.writeoff,date_p:0
+#: report:account.overdue:0
+#: selection:account.partner.balance,filter:0
+#: selection:account.partner.ledger,filter:0
+#: selection:account.print.journal,filter:0
+#: selection:account.print.journal,sort_selection:0
+#: selection:account.report.general.ledger,filter:0
+#: selection:account.report.general.ledger,sortby:0
+#: field:account.subscription.line,date:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: xsl:account.transfer:0
+#: selection:account.vat.declaration,filter:0
+#: selection:accounting.report,filter:0
+#: selection:accounting.report,filter_cmp:0
+#: field:analytic.entries.report,date:0
+msgid "Date"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+msgid "Post"
+msgstr ""
+
+#. module: account
+#: view:account.unreconcile:0
+#: view:account.unreconcile.reconcile:0
+msgid "Unreconcile"
+msgstr ""
+
+#. module: account
+#: view:account.chart.template:0
+msgid "Chart of Accounts Template"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:2358
+#, python-format
+msgid ""
+"Maturity date of entry line generated by model line '%s' of model '%s' is "
+"based on partner payment term!\n"
+"Please define partner on it!"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: selection:account.balance.report,display_account:0
+#: selection:account.common.account.report,display_account:0
+#: report:account.general.ledger_landscape:0
+#: selection:account.report.general.ledger,display_account:0
+#: selection:account.tax,type_tax_use:0
+#: selection:account.tax.template,type_tax_use:0
+msgid "All"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_reporting_budgets
+msgid "Budgets"
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,filter:0
+#: selection:account.balance.report,filter:0
+#: selection:account.central.journal,filter:0
+#: selection:account.common.account.report,filter:0
+#: selection:account.common.journal.report,filter:0
+#: selection:account.common.partner.report,filter:0
+#: selection:account.common.report,filter:0
+#: selection:account.general.journal,filter:0
+#: selection:account.partner.balance,filter:0
+#: selection:account.partner.ledger,filter:0
+#: selection:account.print.journal,filter:0
+#: selection:account.report.general.ledger,filter:0
+#: selection:account.vat.declaration,filter:0
+#: selection:accounting.report,filter:0
+#: selection:accounting.report,filter_cmp:0
+msgid "No Filters"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+#: model:res.groups,name:account.group_proforma_invoices
+msgid "Pro-forma Invoices"
+msgstr ""
+
+#. module: account
+#: view:res.partner:0
+msgid "History"
+msgstr ""
+
+#. module: account
+#: help:account.tax,applicable_type:0
+#: help:account.tax.template,applicable_type:0
+msgid ""
+"If not applicable (computed through a Python code), the tax won't appear on "
+"the invoice."
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,group_check_supplier_invoice_total:0
+msgid "Check the total of supplier invoices"
+msgstr ""
+
+#. module: account
+#: view:account.tax:0
+#: view:account.tax.template:0
+msgid "Applicable Code (if type=code)"
+msgstr ""
+
+#. module: account
+#: help:account.period,state:0
+msgid ""
+"When monthly periods are created. The status is 'Draft'. At the end of "
+"monthly period it is in 'Done' status."
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+#: field:account.invoice.report,product_qty:0
+msgid "Qty"
+msgstr ""
+
+#. module: account
+#: help:account.tax.code,sign:0
+msgid ""
+"You can specify here the coefficient that will be used when consolidating "
+"the amount of this case into its parent. For example, set 1/-1 if you want "
+"to add/substract it."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Search Analytic Lines"
+msgstr ""
+
+#. module: account
+#: field:res.partner,property_account_payable:0
+msgid "Account Payable"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_fiscalyear_close.py:88
+#, python-format
+msgid "The periods to generate opening entries cannot be found."
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_supplierpaymentorder0
+msgid "Payment Order"
+msgstr ""
+
+#. module: account
+#: help:account.account.template,reconcile:0
+msgid ""
+"Check this option if you want the user to reconcile entries in this account."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: field:account.invoice.line,price_unit:0
+msgid "Unit Price"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_tree1
+msgid "Analytic Items"
+msgstr ""
+
+#. module: account
+#: field:analytic.entries.report,nbr:0
+msgid "#Entries"
+msgstr ""
+
+#. module: account
+#: view:account.state.open:0
+msgid "Open Invoice"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,factor_tax:0
+msgid "Multipication factor Tax code"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,complete_tax_set:0
+msgid "Complete set of taxes"
+msgstr ""
+
+#. module: account
+#: field:account.account,name:0
+#: field:account.account.template,name:0
+#: report:account.analytic.account.inverted.balance:0
+#: field:account.chart.template,name:0
+#: field:account.model.line,name:0
+#: field:account.move.line,name:0
+#: field:account.move.reconcile,name:0
+#: field:account.subscription,name:0
+msgid "Name"
+msgstr ""
+
+#. module: account
+#: code:addons/account/installer.py:115
+#, python-format
+msgid "No unconfigured company !"
+msgstr ""
+
+#. module: account
+#: field:res.company,expects_chart_of_accounts:0
+msgid "Expects a Chart of Accounts"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,date:0
+msgid "Effective date"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_fiscalyear_close.py:100
+#, python-format
+msgid "The journal must have default credit and debit account."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_bank_tree
+#: model:ir.ui.menu,name:account.menu_action_bank_tree
+msgid "Setup your Bank Accounts"
+msgstr ""
+
+#. module: account
+#: xsl:account.transfer:0
+msgid "Partner ID"
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement,message_ids:0
+#: help:account.invoice,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: account
+#: help:account.journal,analytic_journal_id:0
+msgid "Journal for analytic entries"
+msgstr ""
+
+#. module: account
+#: constraint:account.aged.trial.balance:0
+#: constraint:account.balance.report:0
+#: constraint:account.central.journal:0
+#: constraint:account.common.account.report:0
+#: constraint:account.common.journal.report:0
+#: constraint:account.common.partner.report:0
+#: constraint:account.common.report:0
+#: constraint:account.general.journal:0
+#: constraint:account.partner.balance:0
+#: constraint:account.partner.ledger:0
+#: constraint:account.print.journal:0
+#: constraint:account.report.general.ledger:0
+#: constraint:account.vat.declaration:0
+#: constraint:accounting.report:0
+msgid ""
+"The fiscalyear, periods or chart of account chosen have to belong to the "
+"same company."
+msgstr ""
+
+#. module: account
+#: help:account.tax.code.template,notprintable:0
+msgid ""
+"Check this box if you don't want any tax related to this tax Code to appear "
+"on invoices."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1058
+#: code:addons/account/account_move_line.py:1143
+#, python-format
+msgid "You cannot use an inactive account."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.open_board_account
+#: model:ir.ui.menu,name:account.menu_account_config
+#: model:ir.ui.menu,name:account.menu_board_account
+#: model:ir.ui.menu,name:account.menu_finance
+#: model:ir.ui.menu,name:account.menu_finance_reporting
+#: model:process.node,name:account.process_node_accountingentries0
+#: model:process.node,name:account.process_node_supplieraccountingentries0
+#: view:product.product:0
+#: view:product.template:0
+#: view:res.partner:0
+msgid "Accounting"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "Journal Entries with period in current year"
+msgstr ""
+
+#. module: account
+#: field:account.account,child_consol_ids:0
+msgid "Consolidated Children"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:573
+#: code:addons/account/wizard/account_invoice_refund.py:146
+#, python-format
+msgid "Insufficient Data!"
+msgstr ""
+
+#. module: account
+#: help:account.account,unrealized_gain_loss:0
+msgid ""
+"Value of Loss or Gain due to changes in exchange rate when doing multi-"
+"currency transactions."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "General Accounting"
+msgstr ""
+
+#. module: account
+#: help:account.fiscalyear.close,journal_id:0
+msgid ""
+"The best practice here is to use a journal dedicated to contain the opening "
+"entries of all fiscal years. Note that you should define it with default "
+"debit/credit accounts, of type 'situation' and with a centralized "
+"counterpart."
+msgstr ""
+
+#. module: account
+#: view:account.installer:0
+msgid "title"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: view:account.subscription:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_subscription_form
+msgid "Recurring Lines"
+msgstr ""
+
+#. module: account
+#: field:account.partner.balance,display_partner:0
+msgid "Display Partners"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Validate"
+msgstr ""
+
+#. module: account
+#: model:account.financial.report,name:account.account_financial_report_assets0
+msgid "Assets"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "Accounting & Finance"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.confirm:0
+msgid "Confirm Invoices"
+msgstr ""
+
+#. module: account
+#: selection:account.account,currency_mode:0
+msgid "Average Rate"
+msgstr ""
+
+#. module: account
+#: field:account.balance.report,display_account:0
+#: field:account.common.account.report,display_account:0
+#: field:account.report.general.ledger,display_account:0
+msgid "Display Accounts"
+msgstr ""
+
+#. module: account
+#: view:account.state.open:0
+msgid "(Invoice should be unreconciled if you want to open it)"
+msgstr ""
+
+#. module: account
+#: field:account.tax,account_analytic_collected_id:0
+msgid "Invoice Tax Analytic Account"
+msgstr ""
+
+#. module: account
+#: field:account.chart,period_from:0
+msgid "Start period"
+msgstr ""
+
+#. module: account
+#: field:account.tax,name:0
+#: field:account.tax.template,name:0
+#: report:account.vat.declaration:0
+msgid "Tax Name"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+#: model:ir.ui.menu,name:account.menu_finance_configuration
+msgid "Configuration"
+msgstr ""
+
+#. module: account
+#: model:account.payment.term,name:account.account_payment_term
+#: model:account.payment.term,note:account.account_payment_term
+msgid "30 Days End of Month"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_analytic_balance
+#: model:ir.actions.report.xml,name:account.account_analytic_account_balance
+msgid "Analytic Balance"
+msgstr ""
+
+#. module: account
+#: help:res.partner,property_payment_term:0
+msgid ""
+"This payment term will be used instead of the default one for sale orders "
+"and customer invoices"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid ""
+"If you put \"%(year)s\" in the prefix, it will be replaced by the current "
+"year."
+msgstr ""
+
+#. module: account
+#: help:account.account,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the account "
+"without removing it."
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Posted Journal Items"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,blocked:0
+msgid "No Follow-up"
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Search Tax Templates"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.periodical_processing_journal_entries_validation
+msgid "Draft Entries"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,decimal_precision:0
+msgid ""
+"As an example, a decimal precision of 2 will allow journal entries like: "
+"9.99 EUR, whereas a decimal precision of 4 will allow journal entries like: "
+"0.0231 EUR."
+msgstr ""
+
+#. module: account
+#: field:account.account,shortcut:0
+#: field:account.account.template,shortcut:0
+msgid "Shortcut"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+#: field:account.account,user_type:0
+#: view:account.account.template:0
+#: field:account.account.template,user_type:0
+#: view:account.account.type:0
+#: field:account.account.type,name:0
+#: field:account.bank.accounts.wizard,account_type:0
+#: field:account.entries.report,user_type:0
+#: selection:account.financial.report,type:0
+#: model:ir.model,name:account.model_account_account_type
+#: field:report.account.receivable,type:0
+#: field:report.account_type.sales,user_type:0
+msgid "Account Type"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Close CashBox"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_invoice_cancel
+msgid "Cancel the Selected Invoices"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_bank_statement.py:424
+#, python-format
+msgid "You have to assign an analytic journal on the '%s' journal!"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_supplieranalyticcost0
+msgid ""
+"Analytic costs (timesheets, some purchased products, ...) come from analytic "
+"accounts. These generate draft supplier invoices."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_bank_tree
+msgid ""
+"
\n"
+" Click to setup a new bank account. \n"
+"
\n"
+" Configure your company's bank account and select those that "
+"must\n"
+" appear on the report footer.\n"
+"
\n"
+" If you use the accounting application of OpenERP, journals and\n"
+" accounts will be created automatically based on these data.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: constraint:account.tax.code.template:0
+msgid ""
+"Error!\n"
+"You cannot create recursive Tax Codes."
+msgstr ""
+
+#. module: account
+#: constraint:account.period:0
+msgid ""
+"Error!\n"
+"The duration of the Period(s) is/are invalid."
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,month:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,month:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,month:0
+#: field:report.account.sales,month:0
+#: field:report.account_type.sales,month:0
+msgid "Month"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:668
+#, python-format
+msgid "You cannot change the code of account which contains journal items!"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,purchase_sequence_prefix:0
+msgid "Supplier invoice sequence"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:610
+#: code:addons/account/account_invoice.py:625
+#, python-format
+msgid ""
+"Cannot find a chart of account, you should create one from Settings\\"
+"Configuration\\Accounting menu."
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,product_uom_id:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,product_uom_id:0
+msgid "Product Unit of Measure"
+msgstr ""
+
+#. module: account
+#: field:res.company,paypal_account:0
+msgid "Paypal Account"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "Acc.Type"
+msgstr ""
+
+#. module: account
+#: selection:account.journal,type:0
+msgid "Bank and Checks"
+msgstr ""
+
+#. module: account
+#: field:account.account.template,note:0
+msgid "Note"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,sign:0
+msgid "Reverse balance sign"
+msgstr ""
+
+#. module: account
+#: selection:account.account.type,report_type:0
+#: code:addons/account/account.py:191
+#, python-format
+msgid "Balance Sheet (Liability account)"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,date_invoice:0
+msgid "Keep empty to use the current date"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: field:account.cashbox.line,subtotal_closing:0
+msgid "Closing Subtotal"
+msgstr ""
+
+#. module: account
+#: field:account.tax,base_code_id:0
+msgid "Account Base Code"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:864
+#, python-format
+msgid ""
+"You have to provide an account for the write off/exchange difference entry."
+msgstr ""
+
+#. module: account
+#: help:res.company,paypal_account:0
+msgid "Paypal username (usually email) for receiving online payments."
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,target_move:0
+#: selection:account.balance.report,target_move:0
+#: selection:account.central.journal,target_move:0
+#: selection:account.chart,target_move:0
+#: selection:account.common.account.report,target_move:0
+#: selection:account.common.journal.report,target_move:0
+#: selection:account.common.partner.report,target_move:0
+#: selection:account.common.report,target_move:0
+#: selection:account.general.journal,target_move:0
+#: selection:account.partner.balance,target_move:0
+#: selection:account.partner.ledger,target_move:0
+#: selection:account.print.journal,target_move:0
+#: selection:account.report.general.ledger,target_move:0
+#: selection:account.tax.chart,target_move:0
+#: selection:account.vat.declaration,target_move:0
+#: selection:accounting.report,target_move:0
+#: code:addons/account/report/common_report_header.py:68
+#, python-format
+msgid "All Posted Entries"
+msgstr ""
+
+#. module: account
+#: field:report.aged.receivable,name:0
+msgid "Month Range"
+msgstr ""
+
+#. module: account
+#: help:account.analytic.balance,empty_acc:0
+msgid "Check if you want to display Accounts with 0 balance too."
+msgstr ""
+
+#. module: account
+#: field:account.move.reconcile,opening_reconciliation:0
+msgid "Opening Entries Reconciliation"
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/static/src/xml/account_move_reconciliation.xml:24
+#, python-format
+msgid "Last Reconciliation:"
+msgstr ""
+
+#. module: account
+#: selection:account.move.line,state:0
+msgid "Balanced"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_importinvoice0
+msgid "Statement from invoice or payment"
+msgstr ""
+
+#. module: account
+#: code:addons/account/installer.py:115
+#, python-format
+msgid ""
+"There is currently no company without chart of account. The wizard will "
+"therefore not be executed."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_wizard_multi_chart
+msgid "Set Your Accounting Options"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_chart
+msgid "Account chart"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,reference_type:0
+msgid "Payment Reference"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,style_overwrite:0
+msgid "Main Title 1 (bold, underlined)"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.balance:0
+#: report:account.central.journal:0
+msgid "Account Name"
+msgstr ""
+
+#. module: account
+#: help:account.fiscalyear.close,report_name:0
+msgid "Give name of the new entries"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_invoice_report
+msgid "Invoices Statistics"
+msgstr ""
+
+#. module: account
+#: field:account.account,exchange_rate:0
+msgid "Exchange Rate"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_paymentorderreconcilation0
+msgid "Bank statements are entered in the system."
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_reconcile.py:122
+#, python-format
+msgid "Reconcile Writeoff"
+msgstr ""
+
+#. module: account
+#: view:account.account.template:0
+#: view:account.chart.template:0
+msgid "Account Template"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Closing Balance"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,visible:0
+msgid "Can be Visible?"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_journal_select
+msgid "Account Journal Select"
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Credit Notes"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+#: model:ir.actions.act_window,name:account.action_account_manual_reconcile
+msgid "Journal Items to Reconcile"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_tax_template
+msgid "Templates for Taxes"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.period:0
+msgid "The name of the period must be unique per company!"
+msgstr ""
+
+#. module: account
+#: help:wizard.multi.charts.accounts,currency_id:0
+msgid "Currency as per company's country."
+msgstr ""
+
+#. module: account
+#: view:account.tax:0
+msgid "Tax Computation"
+msgstr ""
+
+#. module: account
+#: view:wizard.multi.charts.accounts:0
+msgid "res_config_contents"
+msgstr ""
+
+#. module: account
+#: help:account.chart.template,visible:0
+msgid ""
+"Set this to False if you don't want this template to be used actively in the "
+"wizard that generate Chart of Accounts from templates, this is useful when "
+"you want to generate accounts of this template only when loading its child "
+"template."
+msgstr ""
+
+#. module: account
+#: view:account.use.model:0
+msgid "Create Entries From Models"
+msgstr ""
+
+#. module: account
+#: field:account.account,reconcile:0
+#: field:account.account.template,reconcile:0
+msgid "Allow Reconciliation"
+msgstr ""
+
+#. module: account
+#: constraint:account.account:0
+msgid ""
+"Error!\n"
+"You cannot create an account which has parent account of different company."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:658
+#, python-format
+msgid ""
+"Cannot find any account journal of %s type for this company.\n"
+"\n"
+"You can create one in the menu: \n"
+"Configuration\\Journals\\Journals."
+msgstr ""
+
+#. module: account
+#: report:account.vat.declaration:0
+msgid "Based On"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3204
+#, python-format
+msgid "ECNJ"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_analytic_cost_ledger_journal_report
+msgid "Account Analytic Cost Ledger For Journal Report"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_model_form
+msgid "Recurring Models"
+msgstr ""
+
+#. module: account
+#: view:account.tax:0
+msgid "Children/Sub Taxes"
+msgstr ""
+
+#. module: account
+#: xsl:account.transfer:0
+msgid "Change"
+msgstr ""
+
+#. module: account
+#: field:account.journal,type_control_ids:0
+msgid "Type Controls"
+msgstr ""
+
+#. module: account
+#: help:account.journal,default_credit_account_id:0
+msgid "It acts as a default account for credit amount"
+msgstr ""
+
+#. module: account
+#: view:cash.box.out:0
+msgid "Describe why you take money from the cash register:"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice,state:0
+#: selection:account.invoice.report,state:0
+#: selection:report.invoice.created,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,group_proforma_invoices:0
+msgid "Allows you to put invoices in pro-forma state."
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+msgid "Unit Of Currency Definition"
+msgstr ""
+
+#. module: account
+#: help:account.partner.ledger,amount_currency:0
+#: help:account.report.general.ledger,amount_currency:0
+msgid ""
+"It adds the currency column on report if the currency differs from the "
+"company currency."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3394
+#, python-format
+msgid "Purchase Tax %.2f%%"
+msgstr ""
+
+#. module: account
+#: view:account.subscription.generate:0
+#: model:ir.actions.act_window,name:account.action_account_subscription_generate
+#: model:ir.ui.menu,name:account.menu_generate_subscription
+msgid "Generate Entries"
+msgstr ""
+
+#. module: account
+#: help:account.vat.declaration,chart_tax_id:0
+msgid "Select Charts of Taxes"
+msgstr ""
+
+#. module: account
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,account_ids:0
+#: field:account.fiscal.position.template,account_ids:0
+msgid "Account Mapping"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Cancelled Invoice"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "My Invoices"
+msgstr ""
+
+#. module: account
+#: selection:account.bank.statement,state:0
+msgid "New"
+msgstr ""
+
+#. module: account
+#: view:wizard.multi.charts.accounts:0
+msgid "Sale Tax"
+msgstr ""
+
+#. module: account
+#: field:account.tax,ref_tax_code_id:0
+#: field:account.tax.template,ref_tax_code_id:0
+msgid "Refund Tax Code"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Invoice "
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,property_account_income:0
+msgid "Income Account on Product Template"
+msgstr ""
+
+#. module: account
+#: help:account.journal.period,state:0
+msgid ""
+"When journal period is created. The status is 'Draft'. If a report is "
+"printed it comes to 'Printed' status. When all transactions are done, it "
+"comes in 'Done' status."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3205
+#, python-format
+msgid "MISC"
+msgstr ""
+
+#. module: account
+#: field:account.fiscalyear.close,fy2_id:0
+msgid "New Fiscal Year"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: view:account.tax:0
+#: view:account.tax.template:0
+#: selection:account.vat.declaration,based_on:0
+#: model:ir.actions.act_window,name:account.act_res_partner_2_account_invoice_opened
+#: model:ir.actions.act_window,name:account.action_invoice_tree
+#: model:ir.actions.report.xml,name:account.account_invoices
+#: view:report.invoice.created:0
+#: field:res.partner,invoice_ids:0
+msgid "Invoices"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,expects_chart_of_accounts:0
+msgid "Check this box if this company is a legal entity."
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.conf_account_type_chk
+#: selection:account.bank.accounts.wizard,account_type:0
+msgid "Check"
+msgstr ""
+
+#. module: account
+#: view:account.aged.trial.balance:0
+#: view:account.analytic.balance:0
+#: view:account.analytic.chart:0
+#: view:account.analytic.cost.ledger:0
+#: view:account.analytic.cost.ledger.journal.report:0
+#: view:account.analytic.inverted.balance:0
+#: view:account.analytic.journal.report:0
+#: view:account.automatic.reconcile:0
+#: view:account.change.currency:0
+#: view:account.chart:0
+#: view:account.common.report:0
+#: view:account.config.settings:0
+#: view:account.fiscalyear.close:0
+#: view:account.fiscalyear.close.state:0
+#: view:account.invoice.cancel:0
+#: view:account.invoice.confirm:0
+#: view:account.invoice.refund:0
+#: view:account.journal.select:0
+#: view:account.move.bank.reconcile:0
+#: view:account.move.line.reconcile:0
+#: view:account.move.line.reconcile.select:0
+#: view:account.move.line.reconcile.writeoff:0
+#: view:account.move.line.unreconcile.select:0
+#: view:account.open.closed.fiscalyear:0
+#: view:account.period.close:0
+#: view:account.state.open:0
+#: view:account.subscription.generate:0
+#: view:account.tax.chart:0
+#: view:account.unreconcile:0
+#: view:account.use.model:0
+#: view:account.vat.declaration:0
+#: view:cash.box.in:0
+#: view:cash.box.out:0
+#: view:project.account.analytic.line:0
+#: view:validate.account.move:0
+#: view:validate.account.move.lines:0
+msgid "or"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Invoiced"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+msgid "Posted Journal Entries"
+msgstr ""
+
+#. module: account
+#: view:account.use.model:0
+msgid "Use Model"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,partner_bank_id:0
+msgid ""
+"Bank Account Number to which the invoice will be paid. A Company bank "
+"account if this is a Customer Invoice or Supplier Refund, otherwise a "
+"Partner bank account number."
+msgstr ""
+
+#. module: account
+#: field:account.partner.reconcile.process,today_reconciled:0
+msgid "Partners Reconciled Today"
+msgstr ""
+
+#. module: account
+#: help:account.invoice.tax,tax_code_id:0
+msgid "The tax basis of the tax declaration."
+msgstr ""
+
+#. module: account
+#: view:account.addtmpl.wizard:0
+msgid "Add"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice,state:0
+#: report:account.overdue:0
+#: model:mail.message.subtype,name:account.mt_invoice_paid
+msgid "Paid"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,tax_line:0
+msgid "Tax Lines"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,statement_id:0
+msgid "The bank statement used for bank reconciliation"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_suppliercustomerinvoice0
+msgid "Draft invoices are validated. "
+msgstr ""
+
+#. module: account
+#: help:account.tax,account_collected_id:0
+msgid ""
+"Set the account that will be set by default on invoice tax lines for "
+"invoices. Leave empty to use the expense account."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:890
+#, python-format
+msgid "Opening Period"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+msgid "Journal Entries to Review"
+msgstr ""
+
+#. module: account
+#: selection:res.company,tax_calculation_rounding_method:0
+msgid "Round Globally"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: view:account.subscription:0
+msgid "Compute"
+msgstr ""
+
+#. module: account
+#: field:account.tax,type_tax_use:0
+msgid "Tax Application"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:922
+#, python-format
+msgid ""
+"Please verify the price of the invoice !\n"
+"The encoded total does not match the computed total."
+msgstr ""
+
+#. module: account
+#: field:account.account,active:0
+#: field:account.analytic.journal,active:0
+#: field:account.fiscal.position,active:0
+#: field:account.journal.period,active:0
+#: field:account.payment.term,active:0
+#: field:account.tax,active:0
+msgid "Active"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: field:account.journal,cash_control:0
+msgid "Cash Control"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.balance,date2:0
+#: field:account.analytic.cost.ledger,date2:0
+#: field:account.analytic.cost.ledger.journal.report,date2:0
+#: field:account.analytic.inverted.balance,date2:0
+#: field:account.analytic.journal.report,date2:0
+msgid "End of period"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_supplierpaymentorder0
+msgid "Payment of invoices"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.invoice:0
+msgid "Invoice Number must be unique per Company!"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_receivable_graph
+msgid "Balance by Type of Account"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_cash_statement.py:301
+#, python-format
+msgid "There is no %s Account on the journal %s."
+msgstr ""
+
+#. module: account
+#: model:res.groups,name:account.group_account_user
+msgid "Accountant"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_treasury_report_all
+msgid ""
+"From this view, have an analysis of your treasury. It sums the balance of "
+"every accounting entries made on liquidity accounts per period."
+msgstr ""
+
+#. module: account
+#: model:res.groups,name:account.group_account_manager
+msgid "Financial Manager"
+msgstr ""
+
+#. module: account
+#: field:account.journal,group_invoice_lines:0
+msgid "Group Invoice Lines"
+msgstr ""
+
+#. module: account
+#: view:account.automatic.reconcile:0
+msgid "Close"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement.line,move_ids:0
+msgid "Moves"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,details_ids:0
+#: view:account.journal:0
+msgid "CashBox Lines"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_vat_declaration
+msgid "Account Vat Declaration"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,module_account_accountant:0
+msgid ""
+"If you do not check this box, you will be able to do invoicing & payments, "
+"but not accounting (Journal Items, Chart of Accounts, ...)"
+msgstr ""
+
+#. module: account
+#: view:account.period:0
+msgid "To Close"
+msgstr ""
+
+#. module: account
+#: field:account.treasury.report,date:0
+msgid "Beginning of Period Date"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.account_template_folder
+msgid "Templates"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,name:0
+msgid "Tax Description"
+msgstr ""
+
+#. module: account
+#: field:account.tax,child_ids:0
+msgid "Child Tax Accounts"
+msgstr ""
+
+#. module: account
+#: help:account.tax,price_include:0
+#: help:account.tax.template,price_include:0
+msgid ""
+"Check this if the price you use on the product and invoices includes this "
+"tax."
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.balance:0
+msgid "Analytic Balance -"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: field:account.aged.trial.balance,target_move:0
+#: field:account.balance.report,target_move:0
+#: report:account.central.journal:0
+#: field:account.central.journal,target_move:0
+#: field:account.chart,target_move:0
+#: field:account.common.account.report,target_move:0
+#: field:account.common.journal.report,target_move:0
+#: field:account.common.partner.report,target_move:0
+#: field:account.common.report,target_move:0
+#: report:account.general.journal:0
+#: field:account.general.journal,target_move:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,target_move:0
+#: field:account.partner.ledger,target_move:0
+#: field:account.print.journal,target_move:0
+#: field:account.report.general.ledger,target_move:0
+#: field:account.tax.chart,target_move:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:account.vat.declaration,target_move:0
+#: field:accounting.report,target_move:0
+msgid "Target Moves"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1454
+#, python-format
+msgid ""
+"Move cannot be deleted if linked to an invoice. (Invoice: %s - Move ID:%s)"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: help:account.cashbox.line,number_opening:0
+msgid "Opening Unit Numbers"
+msgstr ""
+
+#. module: account
+#: field:account.subscription,period_type:0
+msgid "Period Type"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: field:account.invoice,payment_ids:0
+#: selection:account.vat.declaration,based_on:0
+msgid "Payments"
+msgstr ""
+
+#. module: account
+#: field:account.subscription.line,move_id:0
+msgid "Entry"
+msgstr ""
+
+#. module: account
+#: field:account.tax,python_compute_inv:0
+#: field:account.tax.template,python_compute_inv:0
+msgid "Python Code (reverse)"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,payment_term:0
+#: model:ir.actions.act_window,name:account.action_payment_term_form
+#: model:ir.ui.menu,name:account.menu_action_payment_term_form
+msgid "Payment Terms"
+msgstr ""
+
+#. module: account
+#: help:account.chart.template,complete_tax_set:0
+msgid ""
+"This boolean helps you to choose if you want to propose to the user to "
+"encode the sale and purchase rates or choose from list of taxes. This last "
+"choice assumes that the set of tax defined on this template is complete"
+msgstr ""
+
+#. module: account
+#: view:account.financial.report:0
+#: field:account.financial.report,children_ids:0
+#: model:ir.model,name:account.model_account_financial_report
+msgid "Account Report"
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,year:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,year:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,year:0
+#: view:report.account.sales:0
+#: field:report.account.sales,name:0
+#: view:report.account_type.sales:0
+#: field:report.account_type.sales,name:0
+msgid "Year"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,sent:0
+msgid "It indicates that the invoice has been sent."
+msgstr ""
+
+#. module: account
+#: field:account.tax.template,description:0
+msgid "Internal Name"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1185
+#, python-format
+msgid ""
+"Cannot create an automatic sequence for this piece.\n"
+"Put a sequence in the journal definition for automatic numbering or create a "
+"sequence manually for this piece."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Pro Forma Invoice "
+msgstr ""
+
+#. module: account
+#: selection:account.subscription,period_type:0
+msgid "month"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+#: field:account.partner.reconcile.process,next_partner_id:0
+msgid "Next Partner to Reconcile"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,account_id:0
+#: field:account.move.line,tax_code_id:0
+msgid "Tax Account"
+msgstr ""
+
+#. module: account
+#: model:account.financial.report,name:account.account_financial_report_balancesheet0
+#: model:ir.actions.act_window,name:account.action_account_report_bs
+#: model:ir.ui.menu,name:account.menu_account_report_bs
+msgid "Balance Sheet"
+msgstr ""
+
+#. module: account
+#: selection:account.account.type,report_type:0
+#: code:addons/account/account.py:188
+#, python-format
+msgid "Profit & Loss (Income account)"
+msgstr ""
+
+#. module: account
+#: field:account.journal,allow_date:0
+msgid "Check Date in Period"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.final_accounting_reports
+msgid "Accounting Reports"
+msgstr ""
+
+#. module: account
+#: field:account.move,line_id:0
+#: view:analytic.entries.report:0
+#: model:ir.actions.act_window,name:account.action_move_line_form
+msgid "Entries"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "This Period"
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Compute Code (if type=code)"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:508
+#, python-format
+msgid ""
+"Cannot find a chart of accounts for this company, you should create one."
+msgstr ""
+
+#. module: account
+#: selection:account.analytic.journal,type:0
+#: view:account.config.settings:0
+#: view:account.journal:0
+#: selection:account.journal,type:0
+#: view:account.model:0
+#: selection:account.tax,type_tax_use:0
+#: view:account.tax.template:0
+#: selection:account.tax.template,type_tax_use:0
+msgid "Sale"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_automatic_reconcile
+msgid "Automatic Reconcile"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+#: field:account.bank.statement.line,amount:0
+#: report:account.invoice:0
+#: field:account.invoice.line,price_subtotal:0
+#: field:account.invoice.tax,amount:0
+#: view:account.move:0
+#: field:account.move,amount:0
+#: view:account.move.line:0
+#: field:account.tax,amount:0
+#: field:account.tax.template,amount:0
+#: xsl:account.transfer:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,amount:0
+#: field:cash.box.in,amount:0
+#: field:cash.box.out,amount:0
+msgid "Amount"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_fiscalyear_close.py:41
+#, python-format
+msgid "End of Fiscal Year Entry"
+msgstr ""
+
+#. module: account
+#: model:process.transition,name:account.process_transition_customerinvoice0
+#: model:process.transition,name:account.process_transition_paymentorderreconcilation0
+#: model:process.transition,name:account.process_transition_statemententries0
+#: model:process.transition,name:account.process_transition_suppliercustomerinvoice0
+#: model:process.transition,name:account.process_transition_suppliervalidentries0
+#: model:process.transition,name:account.process_transition_validentries0
+msgid "Validation"
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement,message_summary:0
+#: help:account.invoice,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
+#: field:account.tax,child_depend:0
+#: field:account.tax.template,child_depend:0
+msgid "Tax on Children"
+msgstr ""
+
+#. module: account
+#: help:res.partner,last_reconciliation_date:0
+msgid ""
+"Date on which the partner accounting entries were fully reconciled last "
+"time. It differs from the date of the last reconciliation made for this "
+"partner, as here we depict the fact that nothing more was to be reconciled "
+"at this date. This can be achieved in 2 ways: either the last debit/credit "
+"entry was reconciled, either the user pressed the button \"Fully "
+"Reconciled\" in the manual reconciliation process"
+msgstr ""
+
+#. module: account
+#: field:account.journal,update_posted:0
+msgid "Allow Cancelling Entries"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_use_model.py:44
+#, python-format
+msgid ""
+"Maturity date of entry line generated by model line '%s' is based on partner "
+"payment term!\n"
+"Please define partner on it!"
+msgstr ""
+
+#. module: account
+#: field:account.tax.code,sign:0
+msgid "Coefficent for parent"
+msgstr ""
+
+#. module: account
+#: report:account.partner.balance:0
+msgid "(Account/Partner) Name"
+msgstr ""
+
+#. module: account
+#: field:account.partner.reconcile.process,progress:0
+msgid "Progress"
+msgstr ""
+
+#. module: account
+#: field:wizard.multi.charts.accounts,bank_accounts_id:0
+msgid "Cash and Banks"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_installer
+msgid "account.installer"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Recompute taxes and total"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1116
+#, python-format
+msgid "You cannot modify/delete a journal with entries for this period."
+msgstr ""
+
+#. module: account
+#: field:account.tax.template,include_base_amount:0
+msgid "Include in Base Amount"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,supplier_invoice_number:0
+msgid "Supplier Invoice Number"
+msgstr ""
+
+#. module: account
+#: help:account.payment.term.line,days:0
+msgid ""
+"Number of days to add before computation of the day of month.If Date=15/01, "
+"Number of Days=22, Day of Month=-1, then the due date is 28/02."
+msgstr ""
+
+#. module: account
+#: view:account.payment.term.line:0
+msgid "Amount Computation"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1105
+#, python-format
+msgid "You can not add/modify entries in a closed period %s of journal %s."
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+msgid "Entry Controls"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.chart:0
+#: view:project.account.analytic.line:0
+msgid "(Keep empty to open the current situation)"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.balance,date1:0
+#: field:account.analytic.cost.ledger,date1:0
+#: field:account.analytic.cost.ledger.journal.report,date1:0
+#: field:account.analytic.inverted.balance,date1:0
+#: field:account.analytic.journal.report,date1:0
+msgid "Start of period"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.account_type_asset_view1
+msgid "Asset View"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_common_account_report
+msgid "Account Common Account Report"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+#: view:account.bank.statement:0
+#: selection:account.bank.statement,state:0
+#: view:account.fiscalyear:0
+#: selection:account.fiscalyear,state:0
+#: selection:account.invoice,state:0
+#: selection:account.invoice.report,state:0
+#: selection:account.period,state:0
+#: selection:report.invoice.created,state:0
+msgid "Open"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+#: model:ir.ui.menu,name:account.menu_analytic_accounting
+msgid "Analytic Accounting"
+msgstr ""
+
+#. module: account
+#: help:account.payment.term.line,value:0
+msgid ""
+"Select here the kind of valuation related to this payment term line. Note "
+"that you should have your last line with the type 'Balance' to ensure that "
+"the whole amount will be treated."
+msgstr ""
+
+#. module: account
+#: field:account.partner.ledger,initial_balance:0
+#: field:account.report.general.ledger,initial_balance:0
+msgid "Include Initial Balances"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.tax:0
+msgid "Tax Codes"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice,type:0
+#: selection:account.invoice.report,type:0
+#: selection:report.invoice.created,type:0
+msgid "Customer Refund"
+msgstr ""
+
+#. module: account
+#: field:account.tax,ref_tax_sign:0
+#: field:account.tax,tax_sign:0
+#: field:account.tax.template,ref_tax_sign:0
+#: field:account.tax.template,tax_sign:0
+msgid "Tax Code Sign"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_report_invoice_created
+msgid "Report of Invoices Created within Last 15 days"
+msgstr ""
+
+#. module: account
+#: field:account.fiscalyear,end_journal_period_id:0
+msgid "End of Year Entries Journal"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Draft Refund "
+msgstr ""
+
+#. module: account
+#: view:cash.box.in:0
+msgid "Fill in this form if you put money in the cash register:"
+msgstr ""
+
+#. module: account
+#: view:account.payment.term.line:0
+#: field:account.payment.term.line,value_amount:0
+msgid "Amount To Pay"
+msgstr ""
+
+#. module: account
+#: help:account.partner.reconcile.process,to_reconcile:0
+msgid ""
+"This is the remaining partners for who you should check if there is "
+"something to reconcile or not. This figure already count the current partner "
+"as reconciled."
+msgstr ""
+
+#. module: account
+#: view:account.subscription.line:0
+msgid "Subscription lines"
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,quantity:0
+msgid "Products Quantity"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+#: selection:account.entries.report,move_state:0
+#: view:account.move:0
+#: selection:account.move,state:0
+#: view:account.move.line:0
+msgid "Unposted"
+msgstr ""
+
+#. module: account
+#: view:account.change.currency:0
+#: model:ir.actions.act_window,name:account.action_account_change_currency
+#: model:ir.model,name:account.model_account_change_currency
+msgid "Change Currency"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_accountingentries0
+#: model:process.node,note:account.process_node_supplieraccountingentries0
+msgid "Accounting entries."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Payment Date"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: field:account.bank.statement,opening_details_ids:0
+msgid "Opening Cashbox Lines"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+#: model:ir.actions.act_window,name:account.action_account_analytic_account_form
+#: model:ir.ui.menu,name:account.account_analytic_def_account
+msgid "Analytic Accounts"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Customer Invoices And Refunds"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.line,amount_currency:0
+#: field:account.entries.report,amount_currency:0
+#: field:account.model.line,amount_currency:0
+#: field:account.move.line,amount_currency:0
+msgid "Amount Currency"
+msgstr ""
+
+#. module: account
+#: selection:res.company,tax_calculation_rounding_method:0
+msgid "Round per Line"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.balance:0
+#: report:account.analytic.account.inverted.balance:0
+#: report:account.analytic.account.quantity_cost_ledger:0
+#: report:account.invoice:0
+#: field:account.invoice.line,quantity:0
+#: field:account.model.line,quantity:0
+#: field:account.move.line,quantity:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,unit_amount:0
+#: field:report.account.sales,quantity:0
+#: field:report.account_type.sales,quantity:0
+msgid "Quantity"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Number (Move)"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,style_overwrite:0
+msgid "Normal Text"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_paymentreconcile0
+msgid "Payment entries are the second input of the reconciliation."
+msgstr ""
+
+#. module: account
+#: help:res.partner,property_supplier_payment_term:0
+msgid ""
+"This payment term will be used instead of the default one for purchase "
+"orders and supplier invoices"
+msgstr ""
+
+#. module: account
+#: help:account.automatic.reconcile,power:0
+msgid ""
+"Number of partial amounts that can be combined to find a balance point can "
+"be chosen as the power of the automatic reconciliation"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_report_aged_partner_balance.py:56
+#, python-format
+msgid "You must set a period length greater than 0."
+msgstr ""
+
+#. module: account
+#: view:account.fiscal.position.template:0
+#: field:account.fiscal.position.template,name:0
+msgid "Fiscal Position Template"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Draft Refund"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.chart:0
+#: view:account.chart:0
+#: view:account.tax.chart:0
+msgid "Open Charts"
+msgstr ""
+
+#. module: account
+#: field:account.central.journal,amount_currency:0
+#: field:account.common.journal.report,amount_currency:0
+#: field:account.general.journal,amount_currency:0
+#: field:account.partner.ledger,amount_currency:0
+#: field:account.print.journal,amount_currency:0
+#: field:account.report.general.ledger,amount_currency:0
+msgid "With Currency"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Open CashBox"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,style_overwrite:0
+msgid "Automatic formatting"
+msgstr ""
+
+#. module: account
+#: view:account.move.line.reconcile:0
+msgid "Reconcile With Write-Off"
+msgstr ""
+
+#. module: account
+#: constraint:account.move.line:0
+msgid "You cannot create journal items on an account of type view."
+msgstr ""
+
+#. module: account
+#: selection:account.payment.term.line,value:0
+#: selection:account.tax,type:0
+msgid "Fixed Amount"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1056
+#, python-format
+msgid "You cannot change the tax, you should remove and recreate lines."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_automatic_reconcile
+msgid "Account Automatic Reconcile"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: view:account.move.line:0
+msgid "Journal Item"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_fiscalyear_close
+#: model:ir.ui.menu,name:account.menu_wizard_fy_close
+msgid "Generate Opening Entries"
+msgstr ""
+
+#. module: account
+#: help:account.tax,type:0
+msgid "The computation method for the tax amount."
+msgstr ""
+
+#. module: account
+#: view:account.payment.term.line:0
+msgid "Due Date Computation"
+msgstr ""
+
+#. module: account
+#: field:report.invoice.created,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.journal:0
+#: field:account.analytic.journal.report,analytic_account_journal_id:0
+#: model:ir.actions.act_window,name:account.action_account_analytic_journal_form
+#: model:ir.ui.menu,name:account.account_def_analytic_journal
+msgid "Analytic Journals"
+msgstr ""
+
+#. module: account
+#: field:account.account,child_id:0
+msgid "Child Accounts"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1117
+#, python-format
+msgid "Move name (id): %s (%s)"
+msgstr ""
+
+#. module: account
+#: view:account.move.line.reconcile:0
+#: code:addons/account/account_move_line.py:879
+#, python-format
+msgid "Write-Off"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "entries"
+msgstr ""
+
+#. module: account
+#: field:res.partner,debit:0
+msgid "Total Payable"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.data_account_type_income
+#: model:account.financial.report,name:account.account_financial_report_income0
+msgid "Income"
+msgstr ""
+
+#. module: account
+#: selection:account.bank.statement.line,type:0
+#: view:account.config.settings:0
+#: view:account.invoice:0
+#: view:account.invoice.report:0
+#: code:addons/account/account_invoice.py:390
+#, python-format
+msgid "Supplier"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "March"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.journal:0
+msgid "Account n°"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:95
+#, python-format
+msgid "Free Reference"
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,result_selection:0
+#: selection:account.common.partner.report,result_selection:0
+#: selection:account.partner.balance,result_selection:0
+#: selection:account.partner.ledger,result_selection:0
+#: report:account.third_party_ledger:0
+#: code:addons/account/report/account_partner_balance.py:301
+#: code:addons/account/report/account_partner_ledger.py:276
+#, python-format
+msgid "Receivable and Payable Accounts"
+msgstr ""
+
+#. module: account
+#: field:account.fiscal.position.account.template,position_id:0
+msgid "Fiscal Mapping"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "Select Company"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_state_open
+#: model:ir.model,name:account.model_account_state_open
+msgid "Account State Open"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.quantity_cost_ledger:0
+msgid "Max Qty:"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: model:ir.actions.act_window,name:account.action_account_invoice_refund
+msgid "Refund Invoice"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_entries_report_all
+msgid ""
+"From this view, have an analysis of your different financial accounts. The "
+"document shows your debit and credit taking in consideration some criteria "
+"you can choose by using the search tool."
+msgstr ""
+
+#. module: account
+#: help:account.partner.reconcile.process,progress:0
+msgid ""
+"Shows you the progress made today on the reconciliation process. Given by \n"
+"Partners Reconciled Today \\ (Remaining Partners + Partners Reconciled Today)"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,period_id:0
+#: field:account.invoice.report,period_id:0
+#: field:report.account.sales,period_id:0
+#: field:report.account_type.sales,period_id:0
+msgid "Force Period"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_form
+msgid ""
+"
\n"
+" Click to add an account.\n"
+"
\n"
+" An account is part of a ledger allowing your company\n"
+" to register all kinds of debit and credit transactions.\n"
+" Companies present their annual accounts in two main parts: "
+"the\n"
+" balance sheet and the income statement (profit and loss\n"
+" account). The annual accounts of a company are required by "
+"law\n"
+" to disclose a certain amount of information.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+#: field:account.invoice.report,nbr:0
+msgid "# of Lines"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "(update)"
+msgstr ""
+
+#. module: account
+#: field:account.aged.trial.balance,filter:0
+#: field:account.balance.report,filter:0
+#: field:account.central.journal,filter:0
+#: field:account.common.account.report,filter:0
+#: field:account.common.journal.report,filter:0
+#: field:account.common.partner.report,filter:0
+#: field:account.common.report,filter:0
+#: field:account.general.journal,filter:0
+#: field:account.partner.balance,filter:0
+#: field:account.partner.ledger,filter:0
+#: field:account.print.journal,filter:0
+#: field:account.report.general.ledger,filter:0
+#: field:account.vat.declaration,filter:0
+#: field:accounting.report,filter:0
+#: field:accounting.report,filter_cmp:0
+msgid "Filter by"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:2334
+#, python-format
+msgid "You have a wrong expression \"%(...)s\" in your model !"
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Compute Code for Taxes Included Prices"
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement,balance_end:0
+msgid "Balance as calculated based on Starting Balance and transaction lines"
+msgstr ""
+
+#. module: account
+#: field:account.journal,loss_account_id:0
+msgid "Loss Account"
+msgstr ""
+
+#. module: account
+#: field:account.tax,account_collected_id:0
+#: field:account.tax.template,account_collected_id:0
+msgid "Invoice Tax Account"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_general_journal
+#: model:ir.model,name:account.model_account_general_journal
+msgid "Account General Journal"
+msgstr ""
+
+#. module: account
+#: help:account.move,state:0
+msgid ""
+"All manually created new journal entries are usually in the status "
+"'Unposted', but you can set the option to skip that status on the related "
+"journal. In that case, they will behave as journal entries automatically "
+"created by the system on document validation (invoices, bank statements...) "
+"and will be created in 'Posted' status."
+msgstr ""
+
+#. module: account
+#: field:account.payment.term.line,days:0
+msgid "Number of Days"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1357
+#, python-format
+msgid ""
+"You cannot validate this journal entry because account \"%s\" does not "
+"belong to chart of accounts \"%s\"."
+msgstr ""
+
+#. module: account
+#: view:account.financial.report:0
+msgid "Report"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_fiscal_position_tax_template
+msgid "Template Tax Fiscal Position"
+msgstr ""
+
+#. module: account
+#: help:account.tax,name:0
+msgid "This name will be displayed on reports"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.quantity_cost_ledger:0
+msgid "Printing date"
+msgstr ""
+
+#. module: account
+#: selection:account.account.type,close_method:0
+#: selection:account.tax,type:0
+#: selection:account.tax.template,type:0
+msgid "None"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_invoice_tree3
+#: model:ir.ui.menu,name:account.menu_action_invoice_tree3
+msgid "Customer Refunds"
+msgstr ""
+
+#. module: account
+#: field:account.account,foreign_balance:0
+msgid "Foreign Balance"
+msgstr ""
+
+#. module: account
+#: field:account.journal.period,name:0
+msgid "Journal-Period Name"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,factor_base:0
+msgid "Multipication factor for Base code"
+msgstr ""
+
+#. module: account
+#: help:account.journal,company_id:0
+msgid "Company related to this journal"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,group_multi_currency:0
+msgid "Allows you multi currency environment"
+msgstr ""
+
+#. module: account
+#: view:account.subscription:0
+msgid "Running Subscription"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Fiscal Position Remark :"
+msgstr ""
+
+#. module: account
+#: view:analytic.entries.report:0
+#: model:ir.actions.act_window,name:account.action_analytic_entries_report
+#: model:ir.ui.menu,name:account.menu_action_analytic_entries_report
+msgid "Analytic Entries Analysis"
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,direction_selection:0
+msgid "Past"
+msgstr ""
+
+#. module: account
+#: help:res.partner.bank,journal_id:0
+msgid ""
+"This journal will be created automatically for this bank account when you "
+"save the record"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Analytic Entry"
+msgstr ""
+
+#. module: account
+#: view:res.company:0
+#: field:res.company,overdue_msg:0
+msgid "Overdue Payments Message"
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,date_created:0
+msgid "Date Created"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_analytic_account_line_extended_form
+msgid "account.analytic.line.extended"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_supplierreconcilepaid0
+msgid ""
+"As soon as the reconciliation is done, the invoice's state turns to “done” "
+"(i.e. paid) in the system."
+msgstr ""
+
+#. module: account
+#: view:account.chart.template:0
+#: field:account.chart.template,account_root_id:0
+msgid "Root Account"
+msgstr ""
+
+#. module: account
+#: field:res.partner,last_reconciliation_date:0
+msgid "Latest Reconciliation Date"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+#: model:ir.model,name:account.model_account_analytic_line
+msgid "Analytic Line"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_action_model_form
+msgid "Models"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:1124
+#, python-format
+msgid ""
+"You cannot cancel an invoice which is partially paid. You need to "
+"unreconcile related payment entries first."
+msgstr ""
+
+#. module: account
+#: field:product.template,taxes_id:0
+msgid "Customer Taxes"
+msgstr ""
+
+#. module: account
+#: help:account.model,name:0
+msgid "This is a model for recurring accounting entries"
+msgstr ""
+
+#. module: account
+#: field:wizard.multi.charts.accounts,sale_tax_rate:0
+msgid "Sales Tax(%)"
+msgstr ""
+
+#. module: account
+#: view:account.tax.code:0
+msgid "Reporting Configuration"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_invoice_tree4
+msgid ""
+"
\n"
+" Click to register a refund you received from a supplier.\n"
+"
\n"
+" Instead of creating the supplier refund manually, you can "
+"generate\n"
+" refunds and reconcile them directly from the related "
+"supplier invoice.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: field:account.tax,type:0
+#: field:account.tax.template,type:0
+msgid "Tax Type"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_template_form
+#: model:ir.ui.menu,name:account.menu_action_account_template_form
+msgid "Account Templates"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,complete_tax_set:0
+#: help:wizard.multi.charts.accounts,complete_tax_set:0
+msgid ""
+"This boolean helps you to choose if you want to propose to the user to "
+"encode the sales and purchase rates or use the usual m2o fields. This last "
+"choice assumes that the set of tax defined for the chosen template is "
+"complete"
+msgstr ""
+
+#. module: account
+#: report:account.vat.declaration:0
+msgid "Tax Statement"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Open and Paid Invoices"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,display_detail:0
+msgid "Display children flat"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "Bank & Cash"
+msgstr ""
+
+#. module: account
+#: help:account.fiscalyear.close.state,fy_id:0
+msgid "Select a fiscal year to close"
+msgstr ""
+
+#. module: account
+#: help:account.chart.template,tax_template_ids:0
+msgid "List of all the taxes that have to be installed by the wizard"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.report.xml,name:account.account_intracom
+msgid "IntraCom"
+msgstr ""
+
+#. module: account
+#: view:account.move.line.reconcile.writeoff:0
+msgid "Information addendum"
+msgstr ""
+
+#. module: account
+#: field:account.chart,fiscalyear:0
+#: view:account.fiscalyear:0
+msgid "Fiscal year"
+msgstr ""
+
+#. module: account
+#: view:account.move.reconcile:0
+msgid "Partial Reconcile Entries"
+msgstr ""
+
+#. module: account
+#: view:account.aged.trial.balance:0
+#: view:account.analytic.balance:0
+#: view:account.analytic.chart:0
+#: view:account.analytic.cost.ledger:0
+#: view:account.analytic.cost.ledger.journal.report:0
+#: view:account.analytic.inverted.balance:0
+#: view:account.analytic.journal.report:0
+#: view:account.automatic.reconcile:0
+#: view:account.change.currency:0
+#: view:account.chart:0
+#: view:account.common.report:0
+#: view:account.config.settings:0
+#: view:account.fiscalyear.close:0
+#: view:account.fiscalyear.close.state:0
+#: view:account.invoice.cancel:0
+#: view:account.invoice.confirm:0
+#: view:account.invoice.refund:0
+#: view:account.journal.select:0
+#: view:account.move.bank.reconcile:0
+#: view:account.move.line.reconcile:0
+#: view:account.move.line.reconcile.select:0
+#: view:account.move.line.reconcile.writeoff:0
+#: view:account.move.line.unreconcile.select:0
+#: view:account.period.close:0
+#: view:account.state.open:0
+#: view:account.subscription.generate:0
+#: view:account.tax.chart:0
+#: view:account.unreconcile:0
+#: view:account.use.model:0
+#: view:account.vat.declaration:0
+#: view:cash.box.in:0
+#: view:cash.box.out:0
+#: view:project.account.analytic.line:0
+#: view:validate.account.move:0
+#: view:validate.account.move.lines:0
+msgid "Cancel"
+msgstr ""
+
+#. module: account
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
+#: model:account.account.type,name:account.data_account_type_receivable
+#: selection:account.entries.report,type:0
+msgid "Receivable"
+msgstr ""
+
+#. module: account
+#: constraint:account.move.line:0
+msgid "You cannot create journal items on closed account."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:633
+#, python-format
+msgid "Invoice line account's company and invoice's compnay does not match."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Other Info"
+msgstr ""
+
+#. module: account
+#: field:account.journal,default_credit_account_id:0
+msgid "Default Credit Account"
+msgstr ""
+
+#. module: account
+#: help:account.analytic.line,currency_id:0
+msgid "The related account currency if not equal to the company one."
+msgstr ""
+
+#. module: account
+#: code:addons/account/installer.py:69
+#, python-format
+msgid "Custom"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+msgid "Current"
+msgstr ""
+
+#. module: account
+#: field:account.journal,cashbox_line_ids:0
+msgid "CashBox"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.account_type_cash_equity
+#: model:account.account.type,name:account.conf_account_type_equity
+msgid "Equity"
+msgstr ""
+
+#. module: account
+#: field:account.journal,internal_account_id:0
+msgid "Internal Transfers Account"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/pos_box.py:32
+#, python-format
+msgid "Please check that the field 'Journal' is set on the Bank Statement"
+msgstr ""
+
+#. module: account
+#: selection:account.tax,type:0
+msgid "Percentage"
+msgstr ""
+
+#. module: account
+#: selection:account.config.settings,tax_calculation_rounding_method:0
+msgid "Round globally"
+msgstr ""
+
+#. module: account
+#: selection:account.report.general.ledger,sortby:0
+msgid "Journal & Partner"
+msgstr ""
+
+#. module: account
+#: field:account.automatic.reconcile,power:0
+msgid "Power"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3465
+#, python-format
+msgid "Cannot generate an unused journal code."
+msgstr ""
+
+#. module: account
+#: view:project.account.analytic.line:0
+msgid "View Account Analytic Lines"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,internal_number:0
+#: field:report.invoice.created,number:0
+msgid "Invoice Number"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,difference:0
+msgid "Difference"
+msgstr ""
+
+#. module: account
+#: help:account.tax,include_base_amount:0
+msgid ""
+"Indicates if the amount of tax must be included in the base amount for the "
+"computation of the next taxes"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_partner_reconcile
+msgid "Reconciliation: Go to Next Partner"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_analytic_invert_balance
+#: model:ir.actions.report.xml,name:account.account_analytic_account_inverted_balance
+msgid "Inverted Analytic Balance"
+msgstr ""
+
+#. module: account
+#: field:account.tax.template,applicable_type:0
+msgid "Applicable Type"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,date_due:0
+msgid ""
+"If you use payment terms, the due date will be computed automatically at the "
+"generation of accounting entries. The payment term may compute several due "
+"dates, for example 50% now and 50% in one month, but if you want to force a "
+"due date, make sure that the payment term is not set on the invoice. If you "
+"keep the payment term and the due date empty, it means direct payment."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:414
+#, python-format
+msgid ""
+"There is no opening/closing period defined, please create one to set the "
+"initial balance."
+msgstr ""
+
+#. module: account
+#: help:account.tax.template,sequence:0
+msgid ""
+"The sequence field is used to order the taxes lines from lower sequences to "
+"higher ones. The order is important if you have a tax that has several tax "
+"children. In this case, the evaluation order is important."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1448
+#: code:addons/account/account.py:1453
+#: code:addons/account/account.py:1482
+#: code:addons/account/account.py:1489
+#: code:addons/account/account_invoice.py:1015
+#: code:addons/account/account_move_line.py:1005
+#: code:addons/account/wizard/account_automatic_reconcile.py:148
+#: code:addons/account/wizard/account_fiscalyear_close.py:88
+#: code:addons/account/wizard/account_fiscalyear_close.py:99
+#: code:addons/account/wizard/account_fiscalyear_close.py:102
+#: code:addons/account/wizard/account_report_aged_partner_balance.py:56
+#: code:addons/account/wizard/account_report_aged_partner_balance.py:58
+#, python-format
+msgid "User Error!"
+msgstr ""
+
+#. module: account
+#: view:account.open.closed.fiscalyear:0
+msgid "Discard"
+msgstr ""
+
+#. module: account
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
+#: view:account.journal:0
+msgid "Liquidity"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_analytic_journal_open_form
+#: model:ir.ui.menu,name:account.account_analytic_journal_entries
+msgid "Analytic Journal Items"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,has_default_company:0
+msgid "Has default company"
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear.close:0
+msgid ""
+"This wizard will generate the end of year journal entries of selected fiscal "
+"year. Note that you can run this wizard many times for the same fiscal year: "
+"it will simply replace the old opening entries with the new ones."
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_bank_and_cash
+msgid "Bank and Cash"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_analytic_entries_report
+msgid ""
+"From this view, have an analysis of your different analytic entries "
+"following the analytic account you defined matching your business need. Use "
+"the tool search to analyse information about analytic entries generated in "
+"the system."
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.journal:0
+msgid "The name of the journal must be unique per company !"
+msgstr ""
+
+#. module: account
+#: field:account.account.template,nocreate:0
+msgid "Optional create"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:686
+#, python-format
+msgid ""
+"You cannot change the owner company of an account that already contains "
+"journal items."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: selection:account.invoice,type:0
+#: selection:account.invoice.report,type:0
+#: code:addons/account/account_invoice.py:1160
+#: selection:report.invoice.created,type:0
+#, python-format
+msgid "Supplier Refund"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,move_line_ids:0
+msgid "Entry lines"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,centralisation:0
+msgid "Centralisation"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+#: view:account.account.template:0
+#: view:account.analytic.account:0
+#: view:account.analytic.journal:0
+#: view:account.analytic.line:0
+#: view:account.bank.statement:0
+#: view:account.chart.template:0
+#: view:account.entries.report:0
+#: view:account.financial.report:0
+#: view:account.fiscalyear:0
+#: view:account.invoice:0
+#: view:account.invoice.report:0
+#: view:account.journal:0
+#: view:account.model:0
+#: view:account.move:0
+#: view:account.move.line:0
+#: view:account.subscription:0
+#: view:account.tax.code.template:0
+#: view:analytic.entries.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1024
+#, python-format
+msgid ""
+"There is no period defined for this date: %s.\n"
+"Please create one."
+msgstr ""
+
+#. module: account
+#: field:account.analytic.line,product_uom_id:0
+#: field:account.invoice.line,uos_id:0
+#: field:account.move.line,product_uom_id:0
+msgid "Unit of Measure"
+msgstr ""
+
+#. module: account
+#: help:account.journal,group_invoice_lines:0
+msgid ""
+"If this box is checked, the system will try to group the accounting lines "
+"when generating them from invoices."
+msgstr ""
+
+#. module: account
+#: field:account.installer,has_default_company:0
+msgid "Has Default Company"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_sequence_fiscalyear
+msgid "account.sequence.fiscalyear"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.journal:0
+#: view:account.analytic.journal:0
+#: field:account.analytic.line,journal_id:0
+#: field:account.journal,analytic_journal_id:0
+#: model:ir.actions.act_window,name:account.action_account_analytic_journal
+#: model:ir.actions.report.xml,name:account.analytic_journal_print
+#: model:ir.model,name:account.model_account_analytic_journal
+#: model:ir.ui.menu,name:account.account_analytic_journal_print
+msgid "Analytic Journal"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "Reconciled"
+msgstr ""
+
+#. module: account
+#: constraint:account.payment.term.line:0
+msgid ""
+"Percentages for Payment Term Line must be between 0 and 1, Example: 0.02 for "
+"2%."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: field:account.invoice.tax,base:0
+msgid "Base"
+msgstr ""
+
+#. module: account
+#: field:account.model,name:0
+msgid "Model Name"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,property_account_expense_categ:0
+msgid "Expense Category Account"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.tax:0
+msgid "Tax Name must be unique per company!"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Cash Transactions"
+msgstr ""
+
+#. module: account
+#: view:account.unreconcile:0
+msgid ""
+"If you unreconcile transactions, you must also verify all the actions that "
+"are linked to those transactions because they will not be disabled"
+msgstr ""
+
+#. module: account
+#: view:account.account.template:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement.line,note:0
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,note:0
+#: field:account.fiscal.position.template,note:0
+msgid "Notes"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_analytic_entries_report
+msgid "Analytic Entries Statistics"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_analytic_line.py:142
+#: code:addons/account/account_move_line.py:955
+#, python-format
+msgid "Entries: "
+msgstr ""
+
+#. module: account
+#: help:res.partner.bank,currency_id:0
+msgid "Currency of the related account journal."
+msgstr ""
+
+#. module: account
+#: constraint:account.move.line:0
+msgid ""
+"You cannot provide a secondary currency if it is the same than the company "
+"one."
+msgstr ""
+
+#. module: account
+#: selection:account.tax.template,applicable_type:0
+msgid "True"
+msgstr ""
+
+#. module: account
+#: selection:account.account.type,report_type:0
+#: code:addons/account/account.py:190
+#, python-format
+msgid "Balance Sheet (Asset account)"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_draftstatement0
+msgid "State is draft"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Total debit"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Next Partner Entries to reconcile"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Fax :"
+msgstr ""
+
+#. module: account
+#: help:res.partner,property_account_receivable:0
+msgid ""
+"This account will be used instead of the default one as the receivable "
+"account for the current partner"
+msgstr ""
+
+#. module: account
+#: field:account.tax,python_applicable:0
+#: field:account.tax,python_compute:0
+#: selection:account.tax,type:0
+#: selection:account.tax.template,applicable_type:0
+#: field:account.tax.template,python_applicable:0
+#: field:account.tax.template,python_compute:0
+#: selection:account.tax.template,type:0
+msgid "Python Code"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "Journal Entries with period in current period"
+msgstr ""
+
+#. module: account
+#: help:account.journal,update_posted:0
+msgid ""
+"Check this box if you want to allow the cancellation the entries related to "
+"this journal or of the invoice related to this journal"
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear.close:0
+msgid "Create"
+msgstr ""
+
+#. module: account
+#: model:process.transition.action,name:account.process_transition_action_createentries0
+msgid "Create entry"
+msgstr ""
+
+#. module: account
+#: selection:account.account.type,report_type:0
+#: code:addons/account/account.py:189
+#, python-format
+msgid "Profit & Loss (Expense account)"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,total_entry_encoding:0
+msgid "Total Transactions"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:636
+#, python-format
+msgid "You cannot remove an account that contains journal items."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1024
+#: code:addons/account/account_move_line.py:1105
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: account
+#: field:account.financial.report,style_overwrite:0
+msgid "Financial Report Style"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,sign:0
+msgid "Preserve balance sign"
+msgstr ""
+
+#. module: account
+#: view:account.vat.declaration:0
+#: model:ir.actions.report.xml,name:account.account_vat_declaration
+#: model:ir.ui.menu,name:account.menu_account_vat_declaration
+msgid "Taxes Report"
+msgstr ""
+
+#. module: account
+#: selection:account.journal.period,state:0
+msgid "Printed"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Project line"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,manual:0
+msgid "Manual"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice.refund,filter_refund:0
+msgid "Cancel: create refund and reconcile"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_report_aged_partner_balance.py:58
+#, python-format
+msgid "You must set a start date."
+msgstr ""
+
+#. module: account
+#: view:account.automatic.reconcile:0
+msgid ""
+"For an invoice to be considered as paid, the invoice entries must be "
+"reconciled with counterparts, usually payments. With the automatic "
+"reconciliation functionality, OpenERP makes its own search for entries to "
+"reconcile in a series of accounts. It finds entries for each partner where "
+"the amounts correspond."
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: field:account.move,to_check:0
+msgid "To Review"
+msgstr ""
+
+#. module: account
+#: help:account.partner.ledger,initial_balance:0
+#: help:account.report.general.ledger,initial_balance:0
+msgid ""
+"If you selected to filter by date or period, this field allow you to add a "
+"row to display the amount of debit/credit/balance that precedes the filter "
+"you've set."
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: view:account.move:0
+#: model:ir.actions.act_window,name:account.action_move_journal_line
+#: model:ir.ui.menu,name:account.menu_action_move_journal_line_form
+#: model:ir.ui.menu,name:account.menu_finance_entries
+msgid "Journal Entries"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_invoice_refund.py:147
+#, python-format
+msgid "No period found on the invoice."
+msgstr ""
+
+#. module: account
+#: help:account.partner.ledger,page_split:0
+msgid "Display Ledger Report with One partner per page"
+msgstr ""
+
+#. module: account
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+msgid "JRNL"
+msgstr ""
+
+#. module: account
+#: view:account.state.open:0
+msgid "Yes"
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,target_move:0
+#: selection:account.balance.report,target_move:0
+#: selection:account.central.journal,target_move:0
+#: selection:account.chart,target_move:0
+#: selection:account.common.account.report,target_move:0
+#: selection:account.common.journal.report,target_move:0
+#: selection:account.common.partner.report,target_move:0
+#: selection:account.common.report,target_move:0
+#: selection:account.general.journal,target_move:0
+#: selection:account.partner.balance,target_move:0
+#: selection:account.partner.ledger,target_move:0
+#: selection:account.print.journal,target_move:0
+#: selection:account.report.general.ledger,target_move:0
+#: selection:account.tax.chart,target_move:0
+#: selection:account.vat.declaration,target_move:0
+#: selection:accounting.report,target_move:0
+#: code:addons/account/report/common_report_header.py:67
+#, python-format
+msgid "All Entries"
+msgstr ""
+
+#. module: account
+#: constraint:account.move.reconcile:0
+msgid "You can only reconcile journal items with the same partner."
+msgstr ""
+
+#. module: account
+#: view:account.journal.select:0
+msgid "Journal Select"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: code:addons/account/account.py:422
+#: code:addons/account/account.py:434
+#, python-format
+msgid "Opening Balance"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_move_reconcile
+msgid "Account Reconciliation"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_fiscal_position_tax
+msgid "Taxes Fiscal Position"
+msgstr ""
+
+#. module: account
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: model:ir.actions.act_window,name:account.action_account_general_ledger_menu
+#: model:ir.actions.report.xml,name:account.account_general_ledger
+#: model:ir.actions.report.xml,name:account.account_general_ledger_landscape
+#: model:ir.ui.menu,name:account.menu_general_ledger
+msgid "General Ledger"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_paymentorderbank0
+msgid "The payment order is sent to the bank."
+msgstr ""
+
+#. module: account
+#: help:account.move,to_check:0
+msgid ""
+"Check this box if you are unsure of that journal entry and if you want to "
+"note it as 'to be reviewed' by an accounting expert."
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,complete_tax_set:0
+#: field:wizard.multi.charts.accounts,complete_tax_set:0
+msgid "Complete Set of Taxes"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_validate_account_move.py:61
+#, python-format
+msgid ""
+"Selected Entry Lines does not have any account move enties in draft state."
+msgstr ""
+
+#. module: account
+#: view:account.chart.template:0
+msgid "Properties"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_tax_chart
+msgid "Account tax chart"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.quantity_cost_ledger:0
+#: report:account.central.journal:0
+#: report:account.general.journal:0
+#: report:account.invoice:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: report:account.partner.balance:0
+msgid "Total:"
+msgstr ""
+
+#. module: account
+#: constraint:account.journal:0
+msgid ""
+"Configuration error!\n"
+"The currency chosen should be shared by the default accounts too."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:2304
+#, python-format
+msgid ""
+"You can specify year, month and date in the name of the model using the "
+"following labels:\n"
+"\n"
+"%(year)s: To Specify Year \n"
+"%(month)s: To Specify Month \n"
+"%(date)s: Current Date\n"
+"\n"
+"e.g. My model on %(date)s"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,paypal_url:0
+msgid "Paypal Url"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,module_account_voucher:0
+msgid "Manage customer payments"
+msgstr ""
+
+#. module: account
+#: help:report.invoice.created,origin:0
+msgid "Reference of the document that generated this invoice report."
+msgstr ""
+
+#. module: account
+#: field:account.tax.code,child_ids:0
+#: field:account.tax.code.template,child_ids:0
+msgid "Child Codes"
+msgstr ""
+
+#. module: account
+#: constraint:account.fiscalyear:0
+msgid ""
+"Error!\n"
+"The start date of a fiscal year must precede its end date."
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Taxes used in Sales"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_invoice_tree1
+#: model:ir.ui.menu,name:account.menu_action_invoice_tree1
+msgid "Customer Invoices"
+msgstr ""
+
+#. module: account
+#: view:account.tax:0
+msgid "Misc"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Sales"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice.report,state:0
+#: selection:account.journal.period,state:0
+#: selection:account.subscription,state:0
+#: selection:report.invoice.created,state:0
+msgid "Done"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1319
+#, python-format
+msgid ""
+"You cannot validate a non-balanced entry.\n"
+"Make sure you have configured payment terms properly.\n"
+"The latest payment term line should be of the \"Balance\" type."
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_invoicemanually0
+msgid "A statement with manual entries becomes a draft statement."
+msgstr ""
+
+#. module: account
+#: view:account.aged.trial.balance:0
+msgid ""
+"Aged Partner Balance is a more detailed report of your receivables by "
+"intervals. When opening that report, OpenERP asks for the name of the "
+"company, the fiscal period and the size of the interval to be analyzed (in "
+"days). OpenERP then calculates a table of credit balance by period. So if "
+"you request an interval of 30 days OpenERP generates an analysis of "
+"creditors for the past month, past two months, and so on. "
+msgstr ""
+
+#. module: account
+#: field:account.invoice,origin:0
+#: field:account.invoice.line,origin:0
+#: field:report.invoice.created,origin:0
+msgid "Source Document"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,company_footer:0
+msgid "Bank accounts as printed in the footer of each printed document"
+msgstr ""
+
+#. module: account
+#: constraint:account.account:0
+msgid ""
+"Configuration Error!\n"
+"You cannot define children to an account with internal type different of "
+"\"View\"."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_accounting_report
+msgid "Accounting Report"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.line,currency_id:0
+msgid "Account Currency"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Taxes:"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:458
+#, python-format
+msgid ""
+"You can not delete an invoice which is not cancelled. You should refund it "
+"instead."
+msgstr ""
+
+#. module: account
+#: help:account.tax,amount:0
+msgid "For taxes of type percentage, enter % ratio between 0-1."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_report_tree_hierarchy
+msgid "Financial Reports Hierarchy"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.act_account_invoice_partner_relation
+msgid "Monthly Turnover"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: view:account.move.line:0
+msgid "Analytic Lines"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.journal,line_ids:0
+#: field:account.tax.code,line_ids:0
+msgid "Lines"
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Account Tax Template"
+msgstr ""
+
+#. module: account
+#: view:account.journal.select:0
+msgid "Are you sure you want to open Journal Entries?"
+msgstr ""
+
+#. module: account
+#: view:account.state.open:0
+msgid "Are you sure you want to open this invoice ?"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,property_account_expense_opening:0
+msgid "Opening Entries Expense Account"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Customer Reference"
+msgstr ""
+
+#. module: account
+#: field:account.account.template,parent_id:0
+msgid "Parent Account Template"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Price"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: field:account.bank.statement,closing_details_ids:0
+msgid "Closing Cashbox Lines"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: field:account.bank.statement.line,statement_id:0
+#: field:account.move.line,statement_id:0
+#: model:process.process,name:account.process_process_statementprocess0
+msgid "Statement"
+msgstr ""
+
+#. module: account
+#: help:account.journal,default_debit_account_id:0
+msgid "It acts as a default account for debit amount"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "Posted entries"
+msgstr ""
+
+#. module: account
+#: help:account.payment.term.line,value_amount:0
+msgid "For percent enter a ratio between 0-1."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: view:account.invoice:0
+#: field:account.invoice,date_invoice:0
+#: field:report.invoice.created,date_invoice:0
+msgid "Invoice Date"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Group by year of Invoice Date"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,purchase_tax_rate:0
+msgid "Purchase tax (%)"
+msgstr ""
+
+#. module: account
+#: help:res.partner,credit:0
+msgid "Total amount this customer owes you."
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Unbalanced Journal Items"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.open_account_charts_modules
+msgid "Chart Templates"
+msgstr ""
+
+#. module: account
+#: field:account.journal.period,icon:0
+msgid "Icon"
+msgstr ""
+
+#. module: account
+#: view:account.use.model:0
+msgid "Ok"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,tax_code_root_id:0
+msgid "Root Tax Code"
+msgstr ""
+
+#. module: account
+#: help:account.journal,centralisation:0
+msgid ""
+"Check this box to determine that each entry of this journal won't create a "
+"new counterpart but will share the same counterpart. This is used in fiscal "
+"year closing."
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,closing_date:0
+msgid "Closed On"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_bank_statement_line
+msgid "Bank Statement Line"
+msgstr ""
+
+#. module: account
+#: field:wizard.multi.charts.accounts,purchase_tax:0
+msgid "Default Purchase Tax"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,property_account_income_opening:0
+msgid "Opening Entries Income Account"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,group_proforma_invoices:0
+msgid "Allow pro-forma invoices"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Confirm"
+msgstr ""
+
+#. module: account
+#: help:account.tax,domain:0
+#: help:account.tax.template,domain:0
+msgid ""
+"This field is only used if you develop your own module allowing developers "
+"to create specific taxes in a custom domain."
+msgstr ""
+
+#. module: account
+#: field:account.invoice,reference:0
+#: field:account.invoice.line,invoice_id:0
+msgid "Invoice Reference"
+msgstr ""
+
+#. module: account
+#: field:account.fiscalyear.close,report_name:0
+msgid "Name of new entries"
+msgstr ""
+
+#. module: account
+#: view:account.use.model:0
+msgid "Create Entries"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_cash_box_out
+msgid "cash.box.out"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,currency_id:0
+msgid "Main currency of the company."
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_reports
+msgid "Reporting"
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/account_move_line.py:780
+#: code:addons/account/static/src/js/account_move_reconciliation.js:90
+#, python-format
+msgid "Warning"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_analytic_open
+msgid "Contracts/Analytic Accounts"
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+#: field:res.partner.bank,journal_id:0
+msgid "Account Journal"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,tax_calculation_rounding_method:0
+msgid "Tax calculation rounding method"
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_paidinvoice0
+#: model:process.node,name:account.process_node_supplierpaidinvoice0
+msgid "Paid invoice"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.refund:0
+msgid ""
+"Use this option if you want to cancel an invoice you should not\n"
+" have issued. The credit note will be "
+"created, validated and reconciled\n"
+" with the invoice. You will not be able "
+"to modify the credit note."
+msgstr ""
+
+#. module: account
+#: help:account.partner.reconcile.process,next_partner_id:0
+msgid ""
+"This field shows you the next partner that will be automatically chosen by "
+"the system to go through the reconciliation process, based on the latest day "
+"it have been reconciled."
+msgstr ""
+
+#. module: account
+#: field:account.move.line.reconcile.writeoff,comment:0
+msgid "Comment"
+msgstr ""
+
+#. module: account
+#: field:account.tax,domain:0
+#: field:account.tax.template,domain:0
+msgid "Domain"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_use_model
+msgid "Use model"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1490
+#, python-format
+msgid ""
+"There is no default credit account defined \n"
+"on journal \"%s\"."
+msgstr ""
+
+#. module: account
+#: view:account.invoice.line:0
+#: field:account.invoice.tax,invoice_id:0
+#: model:ir.model,name:account.model_account_invoice_line
+msgid "Invoice Line"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Customer And Supplier Refunds"
+msgstr ""
+
+#. module: account
+#: field:account.financial.report,sign:0
+msgid "Sign on Reports"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_analytic_account_tree2
+msgid ""
+"
\n"
+" Click to add a new analytic account.\n"
+"
\n"
+" The normal chart of accounts has a structure defined by the\n"
+" legal requirement of the country. The analytic chart of\n"
+" accounts structure should reflect your own business needs "
+"in\n"
+" term of costs/revenues reporting.\n"
+"
\n"
+" They are usually structured by contracts, projects, products "
+"or\n"
+" departements. Most of the OpenERP operations (invoices,\n"
+" timesheets, expenses, etc) generate analytic entries on the\n"
+" related account.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.data_account_type_view
+msgid "Root/View"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3206
+#, python-format
+msgid "OPEJ"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: view:account.invoice:0
+msgid "PRO-FORMA"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,move_line_state:0
+#: view:account.move.line:0
+#: selection:account.move.line,state:0
+msgid "Unbalanced"
+msgstr ""
+
+#. module: account
+#: selection:account.move.line,centralisation:0
+msgid "Normal"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_email_templates
+#: model:ir.ui.menu,name:account.menu_email_templates
+msgid "Email Templates"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Optional Information"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+#: field:account.bank.statement,user_id:0
+#: view:account.journal:0
+#: field:account.journal,user_id:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: account
+#: selection:account.account,currency_mode:0
+msgid "At Date"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,date_maturity:0
+msgid ""
+"This field is used for payable and receivable journal entries. You can put "
+"the limit date for the payment of this line."
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_multi_currency
+msgid "Multi-Currencies"
+msgstr ""
+
+#. module: account
+#: field:account.model.line,date_maturity:0
+msgid "Maturity Date"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3193
+#, python-format
+msgid "Sales Journal"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_invoice_tax
+msgid "Invoice Tax"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1185
+#, python-format
+msgid "No piece number !"
+msgstr ""
+
+#. module: account
+#: view:account.financial.report:0
+#: model:ir.ui.menu,name:account.menu_account_report_tree_hierarchy
+msgid "Account Reports Hierarchy"
+msgstr ""
+
+#. module: account
+#: help:account.account.template,chart_template_id:0
+msgid ""
+"This optional field allow you to link an account template to a specific "
+"chart template that may differ from the one its root parent belongs to. This "
+"allow you to define chart templates that extend another and complete it with "
+"few new accounts (You don't need to define the whole structure that is "
+"common to both several times)."
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+msgid "Unposted Journal Entries"
+msgstr ""
+
+#. module: account
+#: help:account.invoice.refund,date:0
+msgid ""
+"This date will be used as the invoice date for credit note and period will "
+"be chosen accordingly!"
+msgstr ""
+
+#. module: account
+#: view:product.template:0
+msgid "Sales Properties"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3541
+#, python-format
+msgid ""
+"You have to set a code for the bank account defined on the selected chart of "
+"accounts."
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_manual_reconcile
+msgid "Manual Reconciliation"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Total amount due:"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.chart,to_date:0
+#: field:project.account.analytic.line,to_date:0
+msgid "To"
+msgstr ""
+
+#. module: account
+#: selection:account.move.line,centralisation:0
+#: code:addons/account/account.py:1541
+#, python-format
+msgid "Currency Adjustment"
+msgstr ""
+
+#. module: account
+#: field:account.fiscalyear.close,fy_id:0
+msgid "Fiscal Year to close"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.cancel:0
+#: model:ir.actions.act_window,name:account.action_account_invoice_cancel
+msgid "Cancel Selected Invoices"
+msgstr ""
+
+#. module: account
+#: help:account.account.type,report_type:0
+msgid ""
+"This field is used to generate legal reports: profit and loss, balance sheet."
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "May"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:820
+#, python-format
+msgid "Global taxes defined, but they are not in invoice lines !"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_chart_template
+msgid "Templates for Account Chart"
+msgstr ""
+
+#. module: account
+#: help:account.model.line,sequence:0
+msgid ""
+"The sequence field is used to order the resources from lower sequences to "
+"higher ones."
+msgstr ""
+
+#. module: account
+#: field:account.move.line,amount_residual_currency:0
+msgid "Residual Amount in Currency"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,sale_refund_sequence_prefix:0
+msgid "Credit note sequence"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_validate_account_move
+#: model:ir.actions.act_window,name:account.action_validate_account_move_line
+#: model:ir.ui.menu,name:account.menu_validate_account_moves
+#: view:validate.account.move:0
+#: view:validate.account.move.lines:0
+msgid "Post Journal Entries"
+msgstr ""
+
+#. module: account
+#: selection:account.bank.statement.line,type:0
+#: view:account.config.settings:0
+#: view:account.invoice:0
+#: view:account.invoice.report:0
+#: code:addons/account/account_invoice.py:388
+#, python-format
+msgid "Customer"
+msgstr ""
+
+#. module: account
+#: field:account.financial.report,name:0
+msgid "Report Name"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.data_account_type_cash
+#: selection:account.analytic.journal,type:0
+#: selection:account.bank.accounts.wizard,account_type:0
+#: selection:account.entries.report,type:0
+#: selection:account.journal,type:0
+#: code:addons/account/account.py:3092
+#, python-format
+msgid "Cash"
+msgstr ""
+
+#. module: account
+#: field:account.fiscal.position.account,account_dest_id:0
+#: field:account.fiscal.position.account.template,account_dest_id:0
+msgid "Account Destination"
+msgstr ""
+
+#. module: account
+#: help:account.invoice.refund,filter_refund:0
+msgid ""
+"Refund base on this type. You can not Modify and Cancel if the invoice is "
+"already reconciled"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement.line,sequence:0
+#: field:account.financial.report,sequence:0
+#: field:account.invoice.line,sequence:0
+#: field:account.invoice.tax,sequence:0
+#: field:account.model.line,sequence:0
+#: field:account.sequence.fiscalyear,sequence_id:0
+#: field:account.tax,sequence:0
+#: field:account.tax.code,sequence:0
+#: field:account.tax.template,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,paypal_account:0
+msgid "Paypal account"
+msgstr ""
+
+#. module: account
+#: selection:account.print.journal,sort_selection:0
+msgid "Journal Entry Number"
+msgstr ""
+
+#. module: account
+#: view:account.financial.report:0
+msgid "Parent Report"
+msgstr ""
+
+#. module: account
+#: constraint:account.account:0
+#: constraint:account.tax.code:0
+msgid ""
+"Error!\n"
+"You cannot create recursive accounts."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_cash_box_in
+msgid "cash.box.in"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,move_id:0
+msgid "Link to the automatically generated Journal Items."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_config_settings
+msgid "account.config.settings"
+msgstr ""
+
+#. module: account
+#: selection:account.config.settings,period:0
+#: selection:account.installer,period:0
+msgid "Monthly"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.data_account_type_asset
+msgid "Asset"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,balance_end:0
+msgid "Computed Balance"
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/static/src/js/account_move_reconciliation.js:89
+#, python-format
+msgid "You must choose at least one record."
+msgstr ""
+
+#. module: account
+#: field:account.account,parent_id:0
+#: field:account.financial.report,parent_id:0
+msgid "Parent"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_cash_statement.py:292
+#, python-format
+msgid "Profit"
+msgstr ""
+
+#. module: account
+#: help:account.payment.term.line,days2:0
+msgid ""
+"Day of the month, set -1 for the last day of the current month. If it's "
+"positive, it gives the day of the next month. Set 0 for net days (otherwise "
+"it's based on the beginning of the month)."
+msgstr ""
+
+#. module: account
+#: view:account.move.line.reconcile:0
+msgid "Reconciliation Transactions"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_legal_statement
+msgid "Legal Reports"
+msgstr ""
+
+#. module: account
+#: field:account.tax.code,sum_period:0
+msgid "Period Sum"
+msgstr ""
+
+#. module: account
+#: help:account.tax,sequence:0
+msgid ""
+"The sequence field is used to order the tax lines from the lowest sequences "
+"to the higher ones. The order is important if you have a tax with several "
+"tax children. In this case, the evaluation order is important."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_cashbox_line
+msgid "CashBox Line"
+msgstr ""
+
+#. module: account
+#: field:account.installer,charts:0
+msgid "Accounting Package"
+msgstr ""
+
+#. module: account
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: model:ir.actions.act_window,name:account.action_account_partner_ledger
+#: model:ir.actions.report.xml,name:account.account_3rdparty_ledger
+#: model:ir.actions.report.xml,name:account.account_3rdparty_ledger_other
+#: model:ir.ui.menu,name:account.menu_account_partner_ledger
+msgid "Partner Ledger"
+msgstr ""
+
+#. module: account
+#: selection:account.tax.template,type:0
+msgid "Fixed"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:653
+#: code:addons/account/account.py:656
+#: code:addons/account/account.py:668
+#: code:addons/account/account.py:1031
+#, python-format
+msgid "Warning !"
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement,message_unread:0
+#: help:account.invoice,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: account
+#: field:res.company,tax_calculation_rounding_method:0
+msgid "Tax Calculation Rounding Method"
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,move_line_state:0
+msgid "State of Move Line"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_move_line_reconcile
+msgid "Account move line reconcile"
+msgstr ""
+
+#. module: account
+#: view:account.subscription.generate:0
+#: model:ir.model,name:account.model_account_subscription_generate
+msgid "Subscription Compute"
+msgstr ""
+
+#. module: account
+#: view:account.move.line.unreconcile.select:0
+msgid "Open for Unreconciliation"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement.line,partner_id:0
+#: view:account.entries.report:0
+#: field:account.entries.report,partner_id:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: view:account.invoice:0
+#: field:account.invoice,partner_id:0
+#: field:account.invoice.line,partner_id:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,partner_id:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: field:account.model.line,partner_id:0
+#: view:account.move:0
+#: field:account.move,partner_id:0
+#: view:account.move.line:0
+#: field:account.move.line,partner_id:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,partner_id:0
+#: model:ir.model,name:account.model_res_partner
+#: field:report.invoice.created,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: account
+#: help:account.change.currency,currency_id:0
+msgid "Select a currency to apply on the invoice"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:901
+#, python-format
+msgid "No Invoice Lines !"
+msgstr ""
+
+#. module: account
+#: view:account.financial.report:0
+msgid "Report Type"
+msgstr ""
+
+#. module: account
+#: help:account.open.closed.fiscalyear,fyear_id:0
+msgid ""
+"Select Fiscal Year which you want to remove entries for its End of year "
+"entries journal"
+msgstr ""
+
+#. module: account
+#: field:account.tax.template,type_tax_use:0
+msgid "Tax Use In"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_bank_statement.py:382
+#, python-format
+msgid ""
+"The statement balance is incorrect !\n"
+"The expected balance (%.2f) is different than the computed one. (%.2f)"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_bank_statement.py:420
+#, python-format
+msgid "The account entries lines are not in valid state."
+msgstr ""
+
+#. module: account
+#: field:account.account.type,close_method:0
+msgid "Deferral Method"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_electronicfile0
+msgid "Automatic entry"
+msgstr ""
+
+#. module: account
+#: help:account.account,reconcile:0
+msgid ""
+"Check this box if this account allows reconciliation of journal items."
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.inverted.balance:0
+msgid "Inverted Analytic Balance -"
+msgstr ""
+
+#. module: account
+#: help:account.move.reconcile,opening_reconciliation:0
+msgid ""
+"Is this reconciliation produced by the opening of a new fiscal year ?."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+#: model:ir.actions.act_window,name:account.action_account_analytic_line_form
+msgid "Analytic Entries"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+msgid "Associated Partner"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:1465
+#, python-format
+msgid "You must first select a partner !"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,comment:0
+msgid "Additional Information"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.report,residual:0
+#: field:account.invoice.report,user_currency_residual:0
+msgid "Total Residual"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Opening Cash Control"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_invoiceinvoice0
+#: model:process.node,note:account.process_node_supplierinvoiceinvoice0
+msgid "Invoice's state is Open"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement,state:0
+#: field:account.entries.report,move_state:0
+#: view:account.fiscalyear:0
+#: field:account.fiscalyear,state:0
+#: view:account.invoice:0
+#: field:account.invoice,state:0
+#: view:account.invoice.report:0
+#: field:account.journal.period,state:0
+#: field:account.move,state:0
+#: view:account.move.line:0
+#: field:account.move.line,state:0
+#: field:account.period,state:0
+#: view:account.subscription:0
+#: field:account.subscription,state:0
+#: field:report.invoice.created,state:0
+msgid "Status"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.quantity_cost_ledger:0
+#: model:ir.actions.act_window,name:account.action_account_analytic_cost
+#: model:ir.actions.report.xml,name:account.account_analytic_account_cost_ledger
+msgid "Cost Ledger"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "No Fiscal Year Defined for This Company"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Proforma"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.cost_ledger:0
+msgid "J.C. /Move name"
+msgstr ""
+
+#. module: account
+#: help:account.tax.template,include_base_amount:0
+msgid ""
+"Set if the amount of tax must be included in the base amount before "
+"computing the next taxes."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3196
+#, python-format
+msgid "Purchase Refund Journal"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1333
+#, python-format
+msgid "Please define a sequence on the journal."
+msgstr ""
+
+#. module: account
+#: help:account.tax.template,amount:0
+msgid "For Tax Type percent enter % ratio between 0-1."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+msgid "Current Accounts"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Group by Invoice Date"
+msgstr ""
+
+#. module: account
+#: help:account.journal,user_id:0
+msgid "The user responsible for this journal"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,module_account_followup:0
+msgid ""
+"This allows to automate letters for unpaid invoices, with multi-level "
+"recalls.\n"
+" This installs the module account_followup."
+msgstr ""
+
+#. module: account
+#: field:account.automatic.reconcile,period_id:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement,period_id:0
+#: view:account.entries.report:0
+#: field:account.entries.report,period_id:0
+#: view:account.fiscalyear:0
+#: report:account.general.ledger_landscape:0
+#: view:account.invoice:0
+#: view:account.invoice.report:0
+#: field:account.journal.period,period_id:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: view:account.move:0
+#: field:account.move,period_id:0
+#: view:account.move.line:0
+#: field:account.move.line,period_id:0
+#: view:account.period:0
+#: field:account.subscription,period_nbr:0
+#: field:account.tax.chart,period_id:0
+#: field:account.treasury.report,period_id:0
+#: field:validate.account.move,period_id:0
+msgid "Period"
+msgstr ""
+
+#. module: account
+#: help:account.account,adjusted_balance:0
+msgid ""
+"Total amount (in Company currency) for transactions held in secondary "
+"currency for this account."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Net Total:"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_report_common.py:158
+#, python-format
+msgid "Select a starting and an ending period."
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,sale_sequence_next:0
+msgid "Next invoice number"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_generic_reporting
+msgid "Generic Reporting"
+msgstr ""
+
+#. module: account
+#: field:account.move.line.reconcile.writeoff,journal_id:0
+msgid "Write-Off Journal"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,property_account_income_categ:0
+msgid "Income Category Account"
+msgstr ""
+
+#. module: account
+#: field:account.account,adjusted_balance:0
+msgid "Adjusted Balance"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_fiscal_position_template_form
+#: model:ir.ui.menu,name:account.menu_action_account_fiscal_position_form_template
+msgid "Fiscal Position Templates"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "Int.Type"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,tax_amount:0
+msgid "Tax/Base Amount"
+msgstr ""
+
+#. module: account
+#: view:account.open.closed.fiscalyear:0
+msgid ""
+"This wizard will remove the end of year journal entries of selected fiscal "
+"year. Note that you can run this wizard many times for the same fiscal year."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Tel. :"
+msgstr ""
+
+#. module: account
+#: field:account.account,company_currency_id:0
+msgid "Company Currency"
+msgstr ""
+
+#. module: account
+#: field:account.aged.trial.balance,chart_account_id:0
+#: field:account.balance.report,chart_account_id:0
+#: field:account.central.journal,chart_account_id:0
+#: field:account.common.account.report,chart_account_id:0
+#: field:account.common.journal.report,chart_account_id:0
+#: field:account.common.partner.report,chart_account_id:0
+#: field:account.common.report,chart_account_id:0
+#: view:account.config.settings:0
+#: field:account.general.journal,chart_account_id:0
+#: field:account.partner.balance,chart_account_id:0
+#: field:account.partner.ledger,chart_account_id:0
+#: field:account.print.journal,chart_account_id:0
+#: field:account.report.general.ledger,chart_account_id:0
+#: field:account.vat.declaration,chart_account_id:0
+#: field:accounting.report,chart_account_id:0
+msgid "Chart of Account"
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_paymententries0
+#: model:process.transition,name:account.process_transition_reconcilepaid0
+msgid "Payment"
+msgstr ""
+
+#. module: account
+#: view:account.automatic.reconcile:0
+msgid "Reconciliation Result"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,balance_end_real:0
+#: field:account.treasury.report,ending_balance:0
+msgid "Ending Balance"
+msgstr ""
+
+#. module: account
+#: field:account.journal,centralisation:0
+msgid "Centralized Counterpart"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,blocked:0
+msgid ""
+"You can check this box to mark this journal item as a litigation with the "
+"associated partner"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,reconcile_partial_id:0
+#: view:account.move.line.reconcile:0
+msgid "Partial Reconcile"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_analytic_inverted_balance
+msgid "Account Analytic Inverted Balance"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_common_report
+msgid "Account Common Report"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.refund:0
+msgid ""
+"Use this option if you want to cancel an invoice and create a new\n"
+" one. The credit note will be created, "
+"validated and reconciled\n"
+" with the current invoice. A new, draft, "
+"invoice will be created \n"
+" so that you can edit it."
+msgstr ""
+
+#. module: account
+#: model:process.transition,name:account.process_transition_filestatement0
+msgid "Automatic import of the bank sta"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:381
+#, python-format
+msgid "Unknown Error!"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_move_bank_reconcile
+msgid "Move bank reconcile"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "Apply"
+msgstr ""
+
+#. module: account
+#: field:account.financial.report,account_type_ids:0
+#: model:ir.actions.act_window,name:account.action_account_type_form
+#: model:ir.ui.menu,name:account.menu_action_account_type_form
+msgid "Account Types"
+msgstr ""
+
+#. module: account
+#: model:email.template,subject:account.email_template_edi_invoice
+msgid "${object.company_id.name} Invoice (Ref ${object.number or 'n/a'})"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1210
+#, python-format
+msgid ""
+"You cannot use this general account in this journal, check the tab 'Entry "
+"Controls' on the related journal."
+msgstr ""
+
+#. module: account
+#: field:account.account.type,report_type:0
+msgid "P&L / BS Category"
+msgstr ""
+
+#. module: account
+#: view:account.automatic.reconcile:0
+#: view:account.move:0
+#: view:account.move.line:0
+#: view:account.move.line.reconcile:0
+#: view:account.move.line.reconcile.select:0
+#: code:addons/account/wizard/account_move_line_reconcile_select.py:45
+#: model:ir.ui.menu,name:account.periodical_processing_reconciliation
+#: model:process.node,name:account.process_node_reconciliation0
+#: model:process.node,name:account.process_node_supplierreconciliation0
+#, python-format
+msgid "Reconciliation"
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Keep empty to use the income account"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid ""
+"This button only appears when the state of the invoice is 'paid' (showing "
+"that it has been fully reconciled) and auto-computed boolean 'reconciled' is "
+"False (depicting that it's not the case anymore). In other words, the "
+"invoice has been dereconciled and it does not fit anymore the 'paid' state. "
+"You should press this button to re-open it and let it continue its normal "
+"process after having resolved the eventual exceptions it may have created."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_journal_form
+msgid ""
+"
\n"
+" Click to add a journal.\n"
+"
\n"
+" A journal is used to record transactions of all accounting "
+"data\n"
+" related to the day-to-day business.\n"
+"
\n"
+" A typical company may use one journal per payment method "
+"(cash,\n"
+" bank accounts, checks), one purchase journal, one sale "
+"journal\n"
+" and one for miscellaneous information.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_fiscalyear_close_state
+msgid "Fiscalyear Close state"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.refund,journal_id:0
+msgid "Refund Journal"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: report:account.central.journal:0
+#: report:account.general.journal:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.partner.balance:0
+msgid "Filter By"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_period_close.py:51
+#, python-format
+msgid ""
+"In order to close a period, you must first post related journal entries."
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+#: view:board.board:0
+#: model:ir.actions.act_window,name:account.action_company_analysis_tree
+msgid "Company Analysis"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,account_id:0
+msgid "The partner account used for this invoice."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3391
+#, python-format
+msgid "Tax %.2f%%"
+msgstr ""
+
+#. module: account
+#: field:account.tax.code,parent_id:0
+#: view:account.tax.code.template:0
+#: field:account.tax.code.template,parent_id:0
+msgid "Parent Code"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_payment_term_line
+msgid "Payment Term Line"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3194
+#, python-format
+msgid "Purchase Journal"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,amount_untaxed:0
+msgid "Subtotal"
+msgstr ""
+
+#. module: account
+#: view:account.vat.declaration:0
+msgid "Print Tax Statement"
+msgstr ""
+
+#. module: account
+#: view:account.model.line:0
+msgid "Journal Entry Model Line"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: field:account.invoice,date_due:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,date_due:0
+#: field:report.invoice.created,date_due:0
+msgid "Due Date"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_account_supplier
+#: model:ir.ui.menu,name:account.menu_finance_payables
+msgid "Suppliers"
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+msgid "Accounts Type Allowed (empty for no control)"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,amount_residual:0
+msgid ""
+"The residual amount on a receivable or payable of a journal entry expressed "
+"in the company currency."
+msgstr ""
+
+#. module: account
+#: view:account.tax.code:0
+msgid "Statistics"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.chart,from_date:0
+#: field:project.account.analytic.line,from_date:0
+msgid "From"
+msgstr ""
+
+#. module: account
+#: help:accounting.report,debit_credit:0
+msgid ""
+"This option allows you to get more details about the way your balances are "
+"computed. Because it is space consuming, we do not allow to use it while "
+"doing a comparison."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_fiscalyear_close
+msgid "Fiscalyear Close"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.account:0
+msgid "The code of the account must be unique per company !"
+msgstr ""
+
+#. module: account
+#: help:product.category,property_account_expense_categ:0
+#: help:product.template,property_account_expense:0
+msgid "This account will be used to value outgoing stock using cost price."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: model:ir.actions.act_window,name:account.act_account_journal_2_account_invoice_opened
+msgid "Unpaid Invoices"
+msgstr ""
+
+#. module: account
+#: field:account.move.line.reconcile,debit:0
+msgid "Debit amount"
+msgstr ""
+
+#. module: account
+#: view:account.aged.trial.balance:0
+#: view:account.analytic.balance:0
+#: view:account.analytic.cost.ledger:0
+#: view:account.analytic.cost.ledger.journal.report:0
+#: view:account.analytic.inverted.balance:0
+#: view:account.analytic.journal.report:0
+#: view:account.common.report:0
+#: view:account.invoice:0
+msgid "Print"
+msgstr ""
+
+#. module: account
+#: view:account.period.close:0
+msgid "Are you sure?"
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+msgid "Accounts Allowed (empty for no control)"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,sale_tax_rate:0
+msgid "Sales tax (%)"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_analytic_account_tree2
+#: model:ir.actions.act_window,name:account.action_account_analytic_chart
+#: model:ir.ui.menu,name:account.menu_action_analytic_account_tree2
+msgid "Chart of Analytic Accounts"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_subscription_form
+msgid ""
+"
\n"
+" Click to define a new recurring entry.\n"
+"
\n"
+" A recurring entry occurs on a recurrent basis from a "
+"specific\n"
+" date, i.e. corresponding to the signature of a contract or "
+"an\n"
+" agreement with a customer or a supplier. You can create "
+"such\n"
+" entries to automate the postings in the system.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+#: model:ir.ui.menu,name:account.menu_configuration_misc
+msgid "Miscellaneous"
+msgstr ""
+
+#. module: account
+#: help:res.partner,debit:0
+msgid "Total amount you have to pay to this supplier."
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_analytic0
+#: model:process.node,name:account.process_node_analyticcost0
+msgid "Analytic Costs"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.journal,name:0
+#: report:account.general.journal:0
+#: field:account.journal,name:0
+msgid "Journal Name"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:829
+#, python-format
+msgid "Entry \"%s\" is not valid !"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,style_overwrite:0
+msgid "Smallest Text"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,module_account_check_writing:0
+msgid ""
+"This allows you to check writing and printing.\n"
+" This installs the module account_check_writing."
+msgstr ""
+
+#. module: account
+#: model:res.groups,name:account.group_account_invoice
+msgid "Invoicing & Payments"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,internal_number:0
+msgid ""
+"Unique number of the invoice, computed automatically when the invoice is "
+"created."
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.data_account_type_expense
+#: model:account.financial.report,name:account.account_financial_report_expense0
+msgid "Expense"
+msgstr ""
+
+#. module: account
+#: help:account.chart,fiscalyear:0
+msgid "Keep empty for all open fiscal years"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,amount_currency:0
+msgid ""
+"The amount expressed in an optional other currency if it is a multi-currency "
+"entry."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1006
+#, python-format
+msgid "The account move (%s) for centralisation has been confirmed."
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.journal:0
+#: field:account.bank.statement,currency:0
+#: report:account.central.journal:0
+#: view:account.entries.report:0
+#: field:account.entries.report,currency_id:0
+#: report:account.general.journal:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: field:account.invoice,currency_id:0
+#: field:account.invoice.report,currency_id:0
+#: field:account.journal,currency:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: field:account.model.line,currency_id:0
+#: view:account.move:0
+#: view:account.move.line:0
+#: field:account.move.line,currency_id:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:analytic.entries.report,currency_id:0
+#: model:ir.model,name:account.model_res_currency
+#: field:report.account.sales,currency_id:0
+#: field:report.account_type.sales,currency_id:0
+#: field:report.invoice.created,currency_id:0
+#: field:res.partner.bank,currency_id:0
+#: field:wizard.multi.charts.accounts,currency_id:0
+msgid "Currency"
+msgstr ""
+
+#. module: account
+#: help:account.invoice.refund,journal_id:0
+msgid ""
+"You can select here the journal to use for the credit note that will be "
+"created. If you leave that field empty, it will use the same journal as the "
+"current invoice."
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement.line,sequence:0
+msgid ""
+"Gives the sequence order when displaying a list of bank statement lines."
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_validentries0
+msgid "Accountant validates the accounting entries coming from the invoice."
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+#: model:ir.actions.act_window,name:account.act_account_acount_move_line_reconcile_open
+msgid "Reconciled entries"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:2334
+#, python-format
+msgid "Wrong model !"
+msgstr ""
+
+#. module: account
+#: view:account.tax.code.template:0
+#: view:account.tax.template:0
+msgid "Tax Template"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.refund,period:0
+msgid "Force period"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_partner_balance
+msgid "Print Account Partner Balance"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1121
+#, python-format
+msgid ""
+"You cannot do this modification on a reconciled entry. You can just change "
+"some non legal fields or you must unreconcile first.\n"
+"%s."
+msgstr ""
+
+#. module: account
+#: help:account.financial.report,sign:0
+msgid ""
+"For accounts that are typically more debited than credited and that you "
+"would like to print as negative amounts in your reports, you should reverse "
+"the sign of the balance; e.g.: Expense account. The same applies for "
+"accounts that are typically more credited than debited and that you would "
+"like to print as positive amounts in your reports; e.g.: Income account."
+msgstr ""
+
+#. module: account
+#: field:res.partner,contract_ids:0
+msgid "Contracts"
+msgstr ""
+
+#. module: account
+#: field:account.cashbox.line,bank_statement_id:0
+#: field:account.entries.report,reconcile_id:0
+#: field:account.financial.report,balance:0
+#: field:account.financial.report,credit:0
+#: field:account.financial.report,debit:0
+msgid "unknown"
+msgstr ""
+
+#. module: account
+#: field:account.fiscalyear.close,journal_id:0
+#: code:addons/account/account.py:3198
+#, python-format
+msgid "Opening Entries Journal"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_customerinvoice0
+msgid "Draft invoices are checked, validated and printed."
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,message_is_follower:0
+#: field:account.invoice,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: field:account.move,narration:0
+#: field:account.move.line,narration:0
+msgid "Internal Note"
+msgstr ""
+
+#. module: account
+#: constraint:account.account:0
+msgid ""
+"Configuration Error!\n"
+"You cannot select an account type with a deferral method different of "
+"\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"."
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,has_fiscal_year:0
+msgid "Company has a fiscal year"
+msgstr ""
+
+#. module: account
+#: help:account.tax,child_depend:0
+#: help:account.tax.template,child_depend:0
+msgid ""
+"Set if the tax computation is based on the computation of child taxes rather "
+"than on the total amount."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:634
+#, python-format
+msgid "You cannot deactivate an account that contains journal items."
+msgstr ""
+
+#. module: account
+#: selection:account.tax,applicable_type:0
+msgid "Given by Python Code"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.journal,code:0
+msgid "Journal Code"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: field:account.move.line,amount_residual:0
+msgid "Residual Amount"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,move_lines:0
+#: field:account.move.reconcile,line_id:0
+msgid "Entry Lines"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_open_journal_button
+msgid "Open Journal"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.journal:0
+msgid "KI"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.journal:0
+#: report:account.analytic.account.quantity_cost_ledger:0
+msgid "Period from"
+msgstr ""
+
+#. module: account
+#: field:account.cashbox.line,pieces:0
+msgid "Unit of Currency"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3195
+#, python-format
+msgid "Sales Refund Journal"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: view:account.move.line:0
+msgid "Information"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.confirm:0
+msgid ""
+"Once draft invoices are confirmed, you will not be able\n"
+" to modify them. The invoices will receive a unique\n"
+" number and journal items will be created in your "
+"chart\n"
+" of accounts."
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_bankstatement0
+msgid "Registered payment"
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear.close.state:0
+msgid "Close states of Fiscal year and periods"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,purchase_refund_journal_id:0
+msgid "Purchase refund journal"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Product Information"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.journal:0
+#: view:account.move:0
+#: view:account.move.line:0
+#: model:ir.ui.menu,name:account.next_id_40
+msgid "Analytic"
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_invoiceinvoice0
+#: model:process.node,name:account.process_node_supplierinvoiceinvoice0
+msgid "Create Invoice"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_configuration_installer
+msgid "Configure Accounting Data"
+msgstr ""
+
+#. module: account
+#: field:wizard.multi.charts.accounts,purchase_tax_rate:0
+msgid "Purchase Tax(%)"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:901
+#, python-format
+msgid "Please create some invoice lines."
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/pos_box.py:36
+#, python-format
+msgid ""
+"Please check that the field 'Internal Transfers Account' is set on the "
+"payment method '%s'."
+msgstr ""
+
+#. module: account
+#: field:account.vat.declaration,display_detail:0
+msgid "Display Detail"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3203
+#, python-format
+msgid "SCNJ"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_analyticinvoice0
+msgid ""
+"Analytic costs (timesheets, some purchased products, ...) come from analytic "
+"accounts. These generate draft invoices."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+#: view:analytic.entries.report:0
+msgid "My Entries"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,state:0
+msgid ""
+" * The 'Draft' status is used when a user is encoding a new and unconfirmed "
+"Invoice. \n"
+"* The 'Pro-forma' when invoice is in Pro-forma status,invoice does not have "
+"an invoice number. \n"
+"* The 'Open' status is used when user create invoice,a invoice number is "
+"generated.Its in open status till user does not pay invoice. \n"
+"* The 'Paid' status is set automatically when the invoice is paid. Its "
+"related journal entries may or may not be reconciled. \n"
+"* The 'Cancelled' status is used when user cancel invoice."
+msgstr ""
+
+#. module: account
+#: field:account.period,date_stop:0
+#: model:ir.ui.menu,name:account.menu_account_end_year_treatments
+msgid "End of Period"
+msgstr ""
+
+#. module: account
+#: field:account.account,financial_report_ids:0
+#: field:account.account.template,financial_report_ids:0
+#: model:ir.actions.act_window,name:account.action_account_financial_report_tree
+#: model:ir.actions.act_window,name:account.action_account_report
+#: model:ir.ui.menu,name:account.menu_account_reports
+msgid "Financial Reports"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.account_type_liability_view1
+msgid "Liability View"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: field:account.aged.trial.balance,period_from:0
+#: field:account.balance.report,period_from:0
+#: report:account.central.journal:0
+#: field:account.central.journal,period_from:0
+#: field:account.common.account.report,period_from:0
+#: field:account.common.journal.report,period_from:0
+#: field:account.common.partner.report,period_from:0
+#: field:account.common.report,period_from:0
+#: report:account.general.journal:0
+#: field:account.general.journal,period_from:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,period_from:0
+#: field:account.partner.ledger,period_from:0
+#: field:account.print.journal,period_from:0
+#: field:account.report.general.ledger,period_from:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: report:account.vat.declaration:0
+#: field:account.vat.declaration,period_from:0
+#: field:accounting.report,period_from:0
+#: field:accounting.report,period_from_cmp:0
+msgid "Start Period"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.report.xml,name:account.account_central_journal
+msgid "Central Journal"
+msgstr ""
+
+#. module: account
+#: field:account.aged.trial.balance,direction_selection:0
+msgid "Analysis Direction"
+msgstr ""
+
+#. module: account
+#: field:res.partner,ref_companies:0
+msgid "Companies that refers to partner"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Ask Refund"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Total credit"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_suppliervalidentries0
+msgid "Accountant validates the accounting entries coming from the invoice. "
+msgstr ""
+
+#. module: account
+#: field:account.subscription,period_total:0
+msgid "Number of Periods"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Document: Customer account statement"
+msgstr ""
+
+#. module: account
+#: view:account.account.template:0
+msgid "Receivale Accounts"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,purchase_refund_sequence_prefix:0
+msgid "Supplier credit note sequence"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_state_open.py:37
+#, python-format
+msgid "Invoice is already reconciled."
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,module_account_payment:0
+msgid ""
+"This allows you to create and manage your payment orders, with purposes to\n"
+" * serve as base for an easy plug-in of various automated "
+"payment mechanisms, and\n"
+" * provide a more efficient way to manage invoice "
+"payments.\n"
+" This installs the module account_payment."
+msgstr ""
+
+#. module: account
+#: xsl:account.transfer:0
+msgid "Document"
+msgstr ""
+
+#. module: account
+#: view:account.chart.template:0
+#: field:account.chart.template,property_account_receivable:0
+msgid "Receivable Account"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:771
+#: code:addons/account/account_move_line.py:824
+#, python-format
+msgid "To reconcile the entries company should be the same for all entries."
+msgstr ""
+
+#. module: account
+#: field:account.account,balance:0
+#: report:account.account.balance:0
+#: selection:account.account.type,close_method:0
+#: report:account.analytic.account.balance:0
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.inverted.balance:0
+#: report:account.central.journal:0
+#: field:account.entries.report,balance:0
+#: report:account.general.journal:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: field:account.invoice,residual:0
+#: field:account.move.line,balance:0
+#: report:account.partner.balance:0
+#: selection:account.payment.term.line,value:0
+#: selection:account.tax,type:0
+#: selection:account.tax.template,type:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:account.treasury.report,balance:0
+#: field:report.account.receivable,balance:0
+#: field:report.aged.receivable,balance:0
+msgid "Balance"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_supplierbankstatement0
+msgid "Manually or automatically entered in the system"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: report:account.general.ledger_landscape:0
+msgid "Display Account"
+msgstr ""
+
+#. module: account
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
+#: model:account.account.type,name:account.data_account_type_payable
+#: selection:account.entries.report,type:0
+msgid "Payable"
+msgstr ""
+
+#. module: account
+#: view:board.board:0
+msgid "Account Board"
+msgstr ""
+
+#. module: account
+#: view:account.model:0
+#: field:account.model,legend:0
+msgid "Legend"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_entriesreconcile0
+msgid "Accounting entries are the first input of the reconciliation."
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear.close:0
+msgid "Generate Fiscal Year Opening Entries"
+msgstr ""
+
+#. module: account
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+msgid "Filters By"
+msgstr ""
+
+#. module: account
+#: field:account.cashbox.line,number_closing:0
+#: field:account.cashbox.line,number_opening:0
+msgid "Number of Units"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_manually0
+#: model:process.transition,name:account.process_transition_invoicemanually0
+msgid "Manual entry"
+msgstr ""
+
+#. module: account
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: view:account.move:0
+#: view:account.move.line:0
+#: field:analytic.entries.report,move_id:0
+msgid "Move"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_bank_statement.py:478
+#: code:addons/account/wizard/account_period_close.py:51
+#, python-format
+msgid "Invalid Action!"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Date / Period"
+msgstr ""
+
+#. module: account
+#: report:account.central.journal:0
+msgid "A/C No."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.act_account_journal_2_account_bank_statement
+msgid "Bank statements"
+msgstr ""
+
+#. module: account
+#: constraint:account.period:0
+msgid ""
+"Error!\n"
+"The period is invalid. Either some periods are overlapping or the period's "
+"dates are not matching the scope of the fiscal year."
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "There is nothing due with this customer."
+msgstr ""
+
+#. module: account
+#: help:account.tax,account_paid_id:0
+msgid ""
+"Set the account that will be set by default on invoice tax lines for "
+"refunds. Leave empty to use the expense account."
+msgstr ""
+
+#. module: account
+#: help:account.addtmpl.wizard,cparent_id:0
+msgid ""
+"Creates an account with the selected template under this existing parent."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Source"
+msgstr ""
+
+#. module: account
+#: selection:account.model.line,date_maturity:0
+msgid "Date of the day"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_move_bank_reconcile.py:49
+#, python-format
+msgid ""
+"You have to define the bank account\n"
+"in the journal definition for reconciliation."
+msgstr ""
+
+#. module: account
+#: help:account.journal,sequence_id:0
+msgid ""
+"This field contains the information related to the numbering of the journal "
+"entries of this journal."
+msgstr ""
+
+#. module: account
+#: field:account.invoice,sent:0
+msgid "Sent"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_common_menu
+msgid "Common Report"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,default_sale_tax:0
+#: field:account.config.settings,sale_tax:0
+msgid "Default sale tax"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Balance :"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1587
+#, python-format
+msgid "Cannot create moves for different companies."
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_periodical_processing
+msgid "Periodic Processing"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Customer And Supplier Invoices"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_paymententries0
+#: model:process.transition,name:account.process_transition_paymentorderbank0
+#: model:process.transition,name:account.process_transition_paymentreconcile0
+msgid "Payment entries"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "July"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+msgid "Chart of accounts"
+msgstr ""
+
+#. module: account
+#: field:account.subscription.line,subscription_id:0
+msgid "Subscription"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_analytic_balance
+msgid "Account Analytic Balance"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: field:account.aged.trial.balance,period_to:0
+#: field:account.balance.report,period_to:0
+#: report:account.central.journal:0
+#: field:account.central.journal,period_to:0
+#: field:account.common.account.report,period_to:0
+#: field:account.common.journal.report,period_to:0
+#: field:account.common.partner.report,period_to:0
+#: field:account.common.report,period_to:0
+#: report:account.general.journal:0
+#: field:account.general.journal,period_to:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,period_to:0
+#: field:account.partner.ledger,period_to:0
+#: field:account.print.journal,period_to:0
+#: field:account.report.general.ledger,period_to:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: report:account.vat.declaration:0
+#: field:account.vat.declaration,period_to:0
+#: field:accounting.report,period_to:0
+#: field:accounting.report,period_to_cmp:0
+msgid "End Period"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.account_type_expense_view1
+msgid "Expense View"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,date_maturity:0
+msgid "Due date"
+msgstr ""
+
+#. module: account
+#: model:account.payment.term,name:account.account_payment_term_immediate
+#: model:account.payment.term,note:account.account_payment_term_immediate
+msgid "Immediate Payment"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1502
+#, python-format
+msgid " Centralisation"
+msgstr ""
+
+#. module: account
+#: help:account.journal,type:0
+msgid ""
+"Select 'Sale' for customer invoices journals. Select 'Purchase' for supplier "
+"invoices journals. Select 'Cash' or 'Bank' for journals that are used in "
+"customer or supplier payments. Select 'General' for miscellaneous operations "
+"journals. Select 'Opening/Closing Situation' for entries generated for new "
+"fiscal years."
+msgstr ""
+
+#. module: account
+#: view:account.subscription:0
+#: model:ir.model,name:account.model_account_subscription
+msgid "Account Subscription"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Maturity date"
+msgstr ""
+
+#. module: account
+#: view:account.subscription:0
+msgid "Entry Subscription"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: field:account.aged.trial.balance,date_from:0
+#: field:account.balance.report,date_from:0
+#: report:account.central.journal:0
+#: field:account.central.journal,date_from:0
+#: field:account.common.account.report,date_from:0
+#: field:account.common.journal.report,date_from:0
+#: field:account.common.partner.report,date_from:0
+#: field:account.common.report,date_from:0
+#: field:account.fiscalyear,date_start:0
+#: report:account.general.journal:0
+#: field:account.general.journal,date_from:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: field:account.installer,date_start:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,date_from:0
+#: field:account.partner.ledger,date_from:0
+#: field:account.print.journal,date_from:0
+#: field:account.report.general.ledger,date_from:0
+#: field:account.subscription,date_start:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:account.vat.declaration,date_from:0
+#: field:accounting.report,date_from:0
+#: field:accounting.report,date_from_cmp:0
+msgid "Start Date"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,reconciled:0
+msgid ""
+"It indicates that the invoice has been paid and the journal entry of the "
+"invoice has been reconciled with one or several journal entries of payment."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: view:account.invoice.report:0
+#: model:process.node,name:account.process_node_supplierdraftinvoices0
+msgid "Draft Invoices"
+msgstr ""
+
+#. module: account
+#: view:cash.box.in:0
+#: model:ir.actions.act_window,name:account.action_cash_box_in
+msgid "Put Money In"
+msgstr ""
+
+#. module: account
+#: selection:account.account.type,close_method:0
+#: view:account.entries.report:0
+#: view:account.move.line:0
+msgid "Unreconciled"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:922
+#, python-format
+msgid "Bad total !"
+msgstr ""
+
+#. module: account
+#: field:account.journal,sequence_id:0
+msgid "Entry Sequence"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_period_tree
+msgid ""
+"A period is a fiscal period of time during which accounting entries should "
+"be recorded for accounting related activities. Monthly period is the norm "
+"but depending on your countries or company needs, you could also have "
+"quarterly periods. Closing a period will make it impossible to record new "
+"accounting entries, all new entries should then be made on the following "
+"open period. Close a period when you do not want to record new entries and "
+"want to lock this period for tax related calculation."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+msgid "Pending"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_analytic_cost_ledger_journal
+#: model:ir.actions.report.xml,name:account.account_analytic_account_quantity_cost_ledger
+msgid "Cost Ledger (Only quantities)"
+msgstr ""
+
+#. module: account
+#: model:process.transition,name:account.process_transition_analyticinvoice0
+#: model:process.transition,name:account.process_transition_supplieranalyticcost0
+msgid "From analytic accounts"
+msgstr ""
+
+#. module: account
+#: view:account.installer:0
+msgid "Configure your Fiscal Year"
+msgstr ""
+
+#. module: account
+#: field:account.period,name:0
+msgid "Period Name"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_invoice_state.py:68
+#, python-format
+msgid ""
+"Selected invoice(s) cannot be cancelled as they are already in 'Cancelled' "
+"or 'Done' state."
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.quantity_cost_ledger:0
+msgid "Code/Date"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: view:account.move:0
+#: view:account.move.line:0
+#: model:ir.actions.act_window,name:account.act_account_journal_2_account_move_line
+#: model:ir.actions.act_window,name:account.act_account_move_to_account_move_line_open
+#: model:ir.actions.act_window,name:account.act_account_partner_account_move
+#: model:ir.actions.act_window,name:account.action_account_items
+#: model:ir.actions.act_window,name:account.action_account_moves_all_a
+#: model:ir.actions.act_window,name:account.action_move_line_select
+#: model:ir.actions.act_window,name:account.action_tax_code_items
+#: model:ir.actions.act_window,name:account.action_tax_code_line_open
+#: model:ir.model,name:account.model_account_move_line
+#: model:ir.ui.menu,name:account.menu_action_account_moves_all
+msgid "Journal Items"
+msgstr ""
+
+#. module: account
+#: view:accounting.report:0
+msgid "Comparison"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1119
+#, python-format
+msgid ""
+"You cannot do this modification on a confirmed entry. You can just change "
+"some non legal fields or you must unconfirm the journal entry first.\n"
+"%s."
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,module_account_budget:0
+msgid ""
+"This allows accountants to manage analytic and crossovered budgets.\n"
+" Once the master budgets and the budgets are defined,\n"
+" the project managers can set the planned amount on each "
+"analytic account.\n"
+" This installs the module account_budget."
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement.line,name:0
+msgid "OBI"
+msgstr ""
+
+#. module: account
+#: help:res.partner,property_account_payable:0
+msgid ""
+"This account will be used instead of the default one as the payable account "
+"for the current partner"
+msgstr ""
+
+#. module: account
+#: field:account.period,special:0
+msgid "Opening/Closing Period"
+msgstr ""
+
+#. module: account
+#: field:account.account,currency_id:0
+#: field:account.account.template,currency_id:0
+#: field:account.bank.accounts.wizard,currency_id:0
+msgid "Secondary Currency"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_validate_account_move
+msgid "Validate Account Move"
+msgstr ""
+
+#. module: account
+#: field:account.account,credit:0
+#: report:account.account.balance:0
+#: report:account.analytic.account.balance:0
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.inverted.balance:0
+#: report:account.central.journal:0
+#: field:account.entries.report,credit:0
+#: report:account.general.journal:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: field:account.model.line,credit:0
+#: field:account.move.line,credit:0
+#: report:account.partner.balance:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:account.treasury.report,credit:0
+#: report:account.vat.declaration:0
+#: field:report.account.receivable,credit:0
+msgid "Credit"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Draft Invoice "
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_account_general_journal
+msgid "General Journals"
+msgstr ""
+
+#. module: account
+#: view:account.model:0
+msgid "Journal Entry Model"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1073
+#, python-format
+msgid "Start period should precede then end period."
+msgstr ""
+
+#. module: account
+#: field:account.invoice,number:0
+#: field:account.move,name:0
+msgid "Number"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.journal:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.bank.statement.line,type:0
+#: selection:account.journal,type:0
+msgid "General"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+#: field:account.invoice.report,price_total:0
+#: field:account.invoice.report,user_currency_price_total:0
+msgid "Total Without Tax"
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,filter:0
+#: selection:account.balance.report,filter:0
+#: selection:account.central.journal,filter:0
+#: view:account.chart:0
+#: selection:account.common.account.report,filter:0
+#: selection:account.common.journal.report,filter:0
+#: selection:account.common.partner.report,filter:0
+#: view:account.common.report:0
+#: selection:account.common.report,filter:0
+#: field:account.config.settings,period:0
+#: field:account.fiscalyear,period_ids:0
+#: selection:account.general.journal,filter:0
+#: field:account.installer,period:0
+#: selection:account.partner.balance,filter:0
+#: selection:account.partner.ledger,filter:0
+#: view:account.print.journal:0
+#: selection:account.print.journal,filter:0
+#: selection:account.report.general.ledger,filter:0
+#: report:account.vat.declaration:0
+#: view:account.vat.declaration:0
+#: selection:account.vat.declaration,filter:0
+#: view:accounting.report:0
+#: selection:accounting.report,filter:0
+#: selection:accounting.report,filter_cmp:0
+#: model:ir.actions.act_window,name:account.action_account_period
+#: model:ir.ui.menu,name:account.menu_action_account_period
+#: model:ir.ui.menu,name:account.next_id_23
+msgid "Periods"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.report,currency_rate:0
+msgid "Currency Rate"
+msgstr ""
+
+#. module: account
+#: field:account.account,tax_ids:0
+#: view:account.account.template:0
+#: field:account.account.template,tax_ids:0
+#: view:account.chart.template:0
+msgid "Default Taxes"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "April"
+msgstr ""
+
+#. module: account
+#: model:account.financial.report,name:account.account_financial_report_profitloss_toreport0
+msgid "Profit (Loss) to report"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:379
+#, python-format
+msgid "There is no Sale/Purchase Journal(s) defined."
+msgstr ""
+
+#. module: account
+#: view:account.move.line.reconcile.select:0
+msgid "Open for Reconciliation"
+msgstr ""
+
+#. module: account
+#: field:account.account,parent_left:0
+msgid "Parent Left"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,style_overwrite:0
+msgid "Title 2 (bold)"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_invoice_tree2
+#: model:ir.ui.menu,name:account.menu_action_invoice_tree2
+msgid "Supplier Invoices"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+#: field:account.analytic.line,product_id:0
+#: view:account.entries.report:0
+#: field:account.entries.report,product_id:0
+#: field:account.invoice.line,product_id:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,product_id:0
+#: field:account.move.line,product_id:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,product_id:0
+#: field:report.account.sales,product_id:0
+#: field:report.account_type.sales,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_validate_account_move
+msgid ""
+"The validation of journal entries process is also called 'ledger posting' "
+"and is the process of transferring debit and credit amounts from a journal "
+"of original entry to a ledger book."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_period
+msgid "Account period"
+msgstr ""
+
+#. module: account
+#: view:account.subscription:0
+msgid "Remove Lines"
+msgstr ""
+
+#. module: account
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
+#: selection:account.entries.report,type:0
+msgid "Regular"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+#: field:account.account,type:0
+#: view:account.account.template:0
+#: field:account.account.template,type:0
+#: field:account.entries.report,type:0
+msgid "Internal Type"
+msgstr ""
+
+#. module: account
+#: field:account.subscription.generate,date:0
+msgid "Generate Entries Before"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_subscription_form_running
+msgid "Running Subscriptions"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.balance:0
+#: view:account.analytic.cost.ledger:0
+#: view:account.analytic.inverted.balance:0
+#: view:account.analytic.journal.report:0
+msgid "Select Period"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+#: selection:account.entries.report,move_state:0
+#: view:account.move:0
+#: selection:account.move,state:0
+#: view:account.move.line:0
+msgid "Posted"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: field:account.aged.trial.balance,date_to:0
+#: field:account.balance.report,date_to:0
+#: report:account.central.journal:0
+#: field:account.central.journal,date_to:0
+#: field:account.common.account.report,date_to:0
+#: field:account.common.journal.report,date_to:0
+#: field:account.common.partner.report,date_to:0
+#: field:account.common.report,date_to:0
+#: field:account.fiscalyear,date_stop:0
+#: report:account.general.journal:0
+#: field:account.general.journal,date_to:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: field:account.installer,date_stop:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,date_to:0
+#: field:account.partner.ledger,date_to:0
+#: field:account.print.journal,date_to:0
+#: field:account.report.general.ledger,date_to:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:account.vat.declaration,date_to:0
+#: field:accounting.report,date_to:0
+#: field:accounting.report,date_to_cmp:0
+msgid "End Date"
+msgstr ""
+
+#. module: account
+#: view:account.open.closed.fiscalyear:0
+#: model:ir.actions.act_window,name:account.action_account_open_closed_fiscalyear
+#: model:ir.ui.menu,name:account.menu_wizard_account_open_closed_fiscalyear
+msgid "Cancel Opening Entries"
+msgstr ""
+
+#. module: account
+#: field:account.payment.term.line,days2:0
+msgid "Day of the Month"
+msgstr ""
+
+#. module: account
+#: field:account.fiscal.position.tax,tax_src_id:0
+#: field:account.fiscal.position.tax.template,tax_src_id:0
+msgid "Tax Source"
+msgstr ""
+
+#. module: account
+#: view:ir.sequence:0
+msgid "Fiscal Year Sequences"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,display_detail:0
+msgid "No detail"
+msgstr ""
+
+#. module: account
+#: field:account.account,unrealized_gain_loss:0
+#: model:ir.actions.act_window,name:account.action_account_gain_loss
+#: model:ir.ui.menu,name:account.menu_unrealized_gains_losses
+msgid "Unrealized Gain or Loss"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: view:account.move.line:0
+msgid "States"
+msgstr ""
+
+#. module: account
+#: help:product.category,property_account_income_categ:0
+#: help:product.template,property_account_income:0
+msgid "This account will be used to value outgoing stock using sale price."
+msgstr ""
+
+#. module: account
+#: field:account.invoice,check_total:0
+msgid "Verification Total"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.balance:0
+#: report:account.analytic.account.inverted.balance:0
+#: report:account.analytic.account.quantity_cost_ledger:0
+#: view:account.analytic.line:0
+#: field:account.invoice,amount_total:0
+#: field:report.account.sales,amount_total:0
+#: field:report.account_type.sales,amount_total:0
+#: field:report.invoice.created,amount_total:0
+msgid "Total"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_invoice_refund.py:109
+#, python-format
+msgid "Cannot %s draft/proforma/cancel invoice."
+msgstr ""
+
+#. module: account
+#: field:account.tax,account_analytic_paid_id:0
+msgid "Refund Tax Analytic Account"
+msgstr ""
+
+#. module: account
+#: view:account.move.bank.reconcile:0
+msgid "Open for Bank Reconciliation"
+msgstr ""
+
+#. module: account
+#: field:account.account,company_id:0
+#: report:account.account.balance:0
+#: field:account.aged.trial.balance,company_id:0
+#: field:account.analytic.journal,company_id:0
+#: field:account.balance.report,company_id:0
+#: field:account.bank.statement,company_id:0
+#: field:account.bank.statement.line,company_id:0
+#: field:account.central.journal,company_id:0
+#: field:account.common.account.report,company_id:0
+#: field:account.common.journal.report,company_id:0
+#: field:account.common.partner.report,company_id:0
+#: field:account.common.report,company_id:0
+#: field:account.config.settings,company_id:0
+#: view:account.entries.report:0
+#: field:account.entries.report,company_id:0
+#: field:account.fiscal.position,company_id:0
+#: field:account.fiscalyear,company_id:0
+#: report:account.general.journal:0
+#: field:account.general.journal,company_id:0
+#: report:account.general.ledger_landscape:0
+#: field:account.installer,company_id:0
+#: field:account.invoice,company_id:0
+#: field:account.invoice.line,company_id:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,company_id:0
+#: field:account.invoice.tax,company_id:0
+#: field:account.journal,company_id:0
+#: field:account.journal.period,company_id:0
+#: report:account.journal.period.print:0
+#: field:account.model,company_id:0
+#: field:account.move,company_id:0
+#: field:account.move.line,company_id:0
+#: field:account.partner.balance,company_id:0
+#: field:account.partner.ledger,company_id:0
+#: field:account.period,company_id:0
+#: field:account.print.journal,company_id:0
+#: field:account.report.general.ledger,company_id:0
+#: field:account.tax,company_id:0
+#: field:account.tax.code,company_id:0
+#: field:account.treasury.report,company_id:0
+#: field:account.vat.declaration,company_id:0
+#: field:accounting.report,company_id:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,company_id:0
+#: field:wizard.multi.charts.accounts,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_action_subscription_form
+msgid "Define Recurring Entries"
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,date_maturity:0
+msgid "Date Maturity"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.refund,description:0
+#: field:cash.box.in,name:0
+#: field:cash.box.out,name:0
+msgid "Reason"
+msgstr ""
+
+#. module: account
+#: selection:account.partner.ledger,filter:0
+#: code:addons/account/report/account_partner_ledger.py:56
+#: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled
+#, python-format
+msgid "Unreconciled Entries"
+msgstr ""
+
+#. module: account
+#: help:account.partner.reconcile.process,today_reconciled:0
+msgid ""
+"This figure depicts the total number of partners that have gone throught the "
+"reconciliation process today. The current partner is counted as already "
+"processed."
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear:0
+msgid "Create Monthly Periods"
+msgstr ""
+
+#. module: account
+#: field:account.tax.code.template,sign:0
+msgid "Sign For Parent"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_balance_report
+msgid "Trial Balance Report"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_bank_statement_draft_tree
+msgid "Draft statements"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_statemententries0
+msgid ""
+"Manual or automatic creation of payment entries according to the statements"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.balance,empty_acc:0
+msgid "Empty Accounts ? "
+msgstr ""
+
+#. module: account
+#: view:account.unreconcile.reconcile:0
+msgid ""
+"If you unreconcile transactions, you must also verify all the actions that "
+"are linked to those transactions because they will not be disable"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1056
+#, python-format
+msgid "Unable to change tax!"
+msgstr ""
+
+#. module: account
+#: constraint:account.bank.statement:0
+msgid "The journal and period chosen have to belong to the same company."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Invoice lines"
+msgstr ""
+
+#. module: account
+#: field:account.chart,period_to:0
+msgid "End period"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.journal:0
+msgid "The code of the journal must be unique per company !"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_invoice_report_all
+msgid ""
+"From this report, you can have an overview of the amount invoiced to your "
+"customer. The tool search can also be used to personalise your Invoices "
+"reports and so, match this analysis to your needs."
+msgstr ""
+
+#. module: account
+#: view:account.partner.reconcile.process:0
+msgid "Go to Next Partner"
+msgstr ""
+
+#. module: account
+#: view:account.automatic.reconcile:0
+#: view:account.move.line.reconcile.writeoff:0
+msgid "Write-Off Move"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_paidinvoice0
+msgid "Invoice's state is Done"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,module_account_followup:0
+msgid "Manage customer payment follow-ups"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_report_account_sales
+msgid "Report of the Sales by Account"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_fiscal_position_account
+msgid "Accounts Fiscal Position"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: view:account.invoice:0
+#: selection:account.invoice,type:0
+#: selection:account.invoice.report,type:0
+#: code:addons/account/account_invoice.py:1158
+#: model:process.process,name:account.process_process_supplierinvoiceprocess0
+#: selection:report.invoice.created,type:0
+#, python-format
+msgid "Supplier Invoice"
+msgstr ""
+
+#. module: account
+#: field:account.account,debit:0
+#: report:account.account.balance:0
+#: report:account.analytic.account.balance:0
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.inverted.balance:0
+#: report:account.central.journal:0
+#: field:account.entries.report,debit:0
+#: report:account.general.journal:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: field:account.model.line,debit:0
+#: field:account.move.line,debit:0
+#: report:account.partner.balance:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:account.treasury.report,debit:0
+#: report:account.vat.declaration:0
+#: field:report.account.receivable,debit:0
+msgid "Debit"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,style_overwrite:0
+msgid "Title 3 (bold, smaller)"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: field:account.invoice,invoice_line:0
+msgid "Invoice Lines"
+msgstr ""
+
+#. module: account
+#: help:account.model.line,quantity:0
+msgid "The optional quantity on entries."
+msgstr ""
+
+#. module: account
+#: field:account.automatic.reconcile,reconciled:0
+msgid "Reconciled transactions"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_report_account_receivable
+msgid "Receivable accounts"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:783
+#, python-format
+msgid "Already reconciled."
+msgstr ""
+
+#. module: account
+#: selection:account.model.line,date_maturity:0
+msgid "Partner Payment Term"
+msgstr ""
+
+#. module: account
+#: field:temp.range,name:0
+msgid "Range"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Analytic Journal Items related to a purchase journal."
+msgstr ""
+
+#. module: account
+#: help:account.account,type:0
+msgid ""
+"The 'Internal Type' is used for features available on different types of "
+"accounts: view can not have journal items, consolidation are accounts that "
+"can have children accounts for multi-company consolidations, "
+"payable/receivable are for partners accounts (for debit/credit "
+"computations), closed for depreciated accounts."
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: selection:account.balance.report,display_account:0
+#: selection:account.common.account.report,display_account:0
+#: report:account.general.ledger_landscape:0
+#: selection:account.report.general.ledger,display_account:0
+msgid "With movements"
+msgstr ""
+
+#. module: account
+#: view:account.tax.code.template:0
+msgid "Account Tax Code Template"
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_manually0
+msgid "Manually"
+msgstr ""
+
+#. module: account
+#: help:account.move,balance:0
+msgid ""
+"This is a field only used for internal purpose and shouldn't be displayed"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "December"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Group by month of Invoice Date"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_analytic_line.py:99
+#, python-format
+msgid "There is no income account defined for this product: \"%s\" (id:%d)."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_aged_receivable_graph
+#: view:report.aged.receivable:0
+msgid "Aged Receivable"
+msgstr ""
+
+#. module: account
+#: field:account.tax,applicable_type:0
+msgid "Applicability"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,currency_id:0
+msgid "The optional other currency if it is a multi-currency entry."
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_invoiceimport0
+msgid ""
+"Import of the statement in the system from a supplier or customer invoice"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_periodical_processing_billing
+msgid "Billing"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+#: view:account.analytic.account:0
+msgid "Parent Account"
+msgstr ""
+
+#. module: account
+#: view:report.account.receivable:0
+msgid "Accounts by Type"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_analytic_chart
+msgid "Account Analytic Chart"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,residual:0
+msgid "Remaining amount due."
+msgstr ""
+
+#. module: account
+#: field:account.print.journal,sort_selection:0
+msgid "Entries Sorted by"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:1546
+#, python-format
+msgid ""
+"The selected unit of measure is not compatible with the unit of measure of "
+"the product."
+msgstr ""
+
+#. module: account
+#: view:account.fiscal.position:0
+#: view:account.fiscal.position.template:0
+msgid "Accounts Mapping"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_tax_code_list
+msgid ""
+"
\n"
+" Click to define a new tax code.\n"
+"
\n"
+" Depending on the country, a tax code is usually a cell to "
+"fill\n"
+" in your legal tax statement. OpenERP allows you to define "
+"the\n"
+" tax structure and each tax computation will be registered "
+"in\n"
+" one or several tax code.\n"
+"
\n"
+" Select the period and the journal you want to fill.\n"
+"
\n"
+" This view can be used by accountants in order to quickly "
+"record\n"
+" entries in OpenERP. If you want to record a supplier "
+"invoice,\n"
+" start by recording the line of the expense account. OpenERP\n"
+" will propose to you automatically the Tax related to this\n"
+" account and the counterpart \"Account Payable\".\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: help:account.invoice.line,account_id:0
+msgid "The income or expense account related to the selected product."
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "Install more chart templates"
+msgstr ""
+
+#. module: account
+#: report:account.general.journal:0
+#: model:ir.actions.report.xml,name:account.account_general_journal
+msgid "General Journal"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Search Invoice"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: view:account.invoice:0
+#: view:account.invoice.report:0
+#: code:addons/account/account_invoice.py:1159
+#, python-format
+msgid "Refund"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_res_partner_bank
+msgid "Bank Accounts"
+msgstr ""
+
+#. module: account
+#: field:res.partner,credit:0
+msgid "Total Receivable"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "General Information"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: view:account.move.line:0
+msgid "Accounting Documents"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:641
+#, python-format
+msgid ""
+"You cannot remove/deactivate an account which is set on a customer or "
+"supplier."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_validate_account_move_lines
+msgid "Validate Account Move Lines"
+msgstr ""
+
+#. module: account
+#: help:res.partner,property_account_position:0
+msgid ""
+"The fiscal position will determine taxes and accounts used for the partner."
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_supplierpaidinvoice0
+msgid "Invoice's state is Done."
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_reconcilepaid0
+msgid "As soon as the reconciliation is done, the invoice can be paid."
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_change_currency.py:59
+#, python-format
+msgid "New currency is not configured properly."
+msgstr ""
+
+#. module: account
+#: view:account.account.template:0
+msgid "Search Account Templates"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.tax:0
+msgid "Manual Invoice Taxes"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:573
+#, python-format
+msgid "The payment term of supplier does not have a payment term line."
+msgstr ""
+
+#. module: account
+#: field:account.account,parent_right:0
+msgid "Parent Right"
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/static/src/js/account_move_reconciliation.js:74
+#: code:addons/account/static/src/js/account_move_reconciliation.js:80
+#, python-format
+msgid "Never"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_addtmpl_wizard
+msgid "account.addtmpl.wizard"
+msgstr ""
+
+#. module: account
+#: field:account.aged.trial.balance,result_selection:0
+#: field:account.common.partner.report,result_selection:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,result_selection:0
+#: field:account.partner.ledger,result_selection:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+msgid "Partner's"
+msgstr ""
+
+#. module: account
+#: field:account.account,note:0
+msgid "Internal Notes"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_fiscalyear
+#: view:ir.sequence:0
+#: model:ir.ui.menu,name:account.menu_action_account_fiscalyear
+msgid "Fiscal Years"
+msgstr ""
+
+#. module: account
+#: help:account.analytic.journal,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the analytic "
+"journal without removing it."
+msgstr ""
+
+#. module: account
+#: field:account.analytic.line,ref:0
+msgid "Ref."
+msgstr ""
+
+#. module: account
+#: field:account.use.model,model:0
+#: model:ir.model,name:account.model_account_model
+msgid "Account Model"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_cash_statement.py:292
+#, python-format
+msgid "Loss"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "February"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: help:account.cashbox.line,number_closing:0
+msgid "Closing Unit Numbers"
+msgstr ""
+
+#. module: account
+#: field:account.bank.accounts.wizard,bank_account_id:0
+#: view:account.chart.template:0
+#: field:account.chart.template,bank_account_view_id:0
+#: field:account.invoice,partner_bank_id:0
+#: field:account.invoice.report,partner_bank_id:0
+msgid "Bank Account"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_central_journal
+#: model:ir.model,name:account.model_account_central_journal
+msgid "Account Central Journal"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Maturity"
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,direction_selection:0
+msgid "Future"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Search Journal Items"
+msgstr ""
+
+#. module: account
+#: help:account.tax,base_sign:0
+#: help:account.tax,ref_base_sign:0
+#: help:account.tax,ref_tax_sign:0
+#: help:account.tax,tax_sign:0
+#: help:account.tax.template,base_sign:0
+#: help:account.tax.template,ref_base_sign:0
+#: help:account.tax.template,ref_tax_sign:0
+#: help:account.tax.template,tax_sign:0
+msgid "Usually 1 or -1."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_fiscal_position_account_template
+msgid "Template Account Fiscal Mapping"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,property_account_expense:0
+msgid "Expense Account on Product Template"
+msgstr ""
+
+#. module: account
+#: field:res.partner,property_payment_term:0
+msgid "Customer Payment Term"
+msgstr ""
+
+#. module: account
+#: help:accounting.report,label_filter:0
+msgid ""
+"This label will be displayed on report to show the balance computed for the "
+"given comparison filter."
+msgstr ""
+
+#. module: account
+#: selection:account.config.settings,tax_calculation_rounding_method:0
+msgid "Round per line"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,amount_residual_currency:0
+msgid ""
+"The residual amount on a receivable or payable of a journal entry expressed "
+"in its currency (maybe different of the company currency)."
+msgstr ""
diff --git a/addons/account/i18n/es_PE.po b/addons/account/i18n/es_PE.po
new file mode 100644
index 00000000000..70e06912436
--- /dev/null
+++ b/addons/account/i18n/es_PE.po
@@ -0,0 +1,10849 @@
+# Spanish (Peru) translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:04+0000\n"
+"PO-Revision-Date: 2013-12-09 17:00+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Spanish (Peru) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
+"X-Generator: Launchpad (build 16869)\n"
+
+#. module: account
+#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
+msgid "System payment"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.fiscal.position.account:0
+msgid ""
+"An account fiscal position could be defined only once time on same accounts."
+msgstr ""
+
+#. module: account
+#: help:account.tax.code,sequence:0
+msgid ""
+"Determine the display order in the report 'Accounting \\ Reporting \\ "
+"Generic Reporting \\ Taxes \\ Taxes Report'"
+msgstr ""
+
+#. module: account
+#: view:account.move.reconcile:0
+msgid "Journal Entry Reconcile"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+#: view:account.bank.statement:0
+#: view:account.move.line:0
+msgid "Account Statistics"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Proforma/Open/Paid Invoices"
+msgstr ""
+
+#. module: account
+#: field:report.invoice.created,residual:0
+msgid "Residual"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_bank_statement.py:369
+#, python-format
+msgid "Journal item \"%s\" is not valid."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_report_aged_receivable
+msgid "Aged Receivable Till Today"
+msgstr ""
+
+#. module: account
+#: model:process.transition,name:account.process_transition_invoiceimport0
+msgid "Import from invoice or payment"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1058
+#: code:addons/account/account_move_line.py:1143
+#: code:addons/account/account_move_line.py:1210
+#, python-format
+msgid "Bad Account!"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: view:account.move.line:0
+msgid "Total Debit"
+msgstr ""
+
+#. module: account
+#: constraint:account.account.template:0
+msgid ""
+"Error!\n"
+"You cannot create recursive account templates."
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: view:account.automatic.reconcile:0
+#: field:account.move.line,reconcile_id:0
+#: view:account.move.line.reconcile:0
+#: view:account.move.line.reconcile.writeoff:0
+#: code:addons/account/static/src/xml/account_move_reconciliation.xml:30
+#, python-format
+msgid "Reconcile"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,name:0
+#: field:account.bank.statement.line,ref:0
+#: field:account.entries.report,ref:0
+#: field:account.move,ref:0
+#: field:account.move.line,ref:0
+#: field:account.subscription,ref:0
+#: xsl:account.transfer:0
+#: field:cash.box.in,ref:0
+msgid "Reference"
+msgstr ""
+
+#. module: account
+#: help:account.payment.term,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the payment "
+"term without removing it."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:641
+#: code:addons/account/account.py:686
+#: code:addons/account/account.py:781
+#: code:addons/account/account.py:1058
+#: code:addons/account/account_invoice.py:820
+#: code:addons/account/account_invoice.py:823
+#: code:addons/account/account_invoice.py:826
+#: code:addons/account/account_invoice.py:1545
+#: code:addons/account/account_move_line.py:98
+#: code:addons/account/account_move_line.py:771
+#: code:addons/account/account_move_line.py:824
+#: code:addons/account/account_move_line.py:864
+#: code:addons/account/wizard/account_fiscalyear_close.py:62
+#: code:addons/account/wizard/account_invoice_state.py:44
+#: code:addons/account/wizard/account_invoice_state.py:68
+#: code:addons/account/wizard/account_state_open.py:37
+#: code:addons/account/wizard/account_validate_account_move.py:39
+#: code:addons/account/wizard/account_validate_account_move.py:61
+#, python-format
+msgid "Warning!"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3197
+#, python-format
+msgid "Miscellaneous Journal"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_open_closed_fiscalyear.py:39
+#, python-format
+msgid ""
+"You have to set the 'End of Year Entries Journal' for this Fiscal Year "
+"which is set after generating opening entries from 'Generate Opening "
+"Entries'."
+msgstr ""
+
+#. module: account
+#: field:account.fiscal.position.account,account_src_id:0
+#: field:account.fiscal.position.account.template,account_src_id:0
+msgid "Account Source"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_period
+msgid ""
+"
\n"
+" Click to add a fiscal period.\n"
+"
\n"
+" An accounting period typically is a month or a quarter. It\n"
+" usually corresponds to the periods of the tax declaration.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_view_created_invoice_dashboard
+msgid "Invoices Created Within Past 15 Days"
+msgstr ""
+
+#. module: account
+#: field:accounting.report,label_filter:0
+msgid "Column Label"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,code_digits:0
+msgid "No. of digits to use for account code"
+msgstr ""
+
+#. module: account
+#: help:account.analytic.journal,type:0
+msgid ""
+"Gives the type of the analytic journal. When it needs for a document (eg: an "
+"invoice) to create analytic entries, OpenERP will look for a matching "
+"journal of the same type."
+msgstr ""
+
+#. module: account
+#: help:account.tax,account_analytic_collected_id:0
+msgid ""
+"Set the analytic account that will be used by default on the invoice tax "
+"lines for invoices. Leave empty if you don't want to use an analytic account "
+"on the invoice tax lines by default."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_tax_template_form
+#: model:ir.ui.menu,name:account.menu_action_account_tax_template_form
+msgid "Tax Templates"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_move_line_reconcile_select
+msgid "Move line reconcile select"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_supplierentriesreconcile0
+msgid "Accounting entries are an input of the reconciliation."
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_management_belgian_reports
+msgid "Belgian Reports"
+msgstr ""
+
+#. module: account
+#: model:mail.message.subtype,name:account.mt_invoice_validated
+msgid "Validated"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.account_type_income_view1
+msgid "Income View"
+msgstr ""
+
+#. module: account
+#: help:account.account,user_type:0
+msgid ""
+"Account Type is used for information purpose, to generate country-specific "
+"legal reports, and set the rules to close a fiscal year and generate opening "
+"entries."
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,sale_refund_sequence_next:0
+msgid "Next credit note number"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,module_account_voucher:0
+msgid ""
+"This includes all the basic requirements of voucher entries for bank, cash, "
+"sales, purchase, expense, contra, etc.\n"
+" This installs the module account_voucher."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_use_model_create_entry
+msgid "Manual Recurring"
+msgstr ""
+
+#. module: account
+#: field:account.automatic.reconcile,allow_write_off:0
+msgid "Allow write off"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.chart:0
+msgid "Select the Period for Analysis"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_invoice_tree3
+msgid ""
+"
\n"
+" Click to create a customer refund. \n"
+"
\n"
+" A refund is a document that credits an invoice completely "
+"or\n"
+" partially.\n"
+"
\n"
+" Instead of manually creating a customer refund, you\n"
+" can generate it directly from the related customer invoice.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: help:account.installer,charts:0
+msgid ""
+"Installs localized accounting charts to match as closely as possible the "
+"accounting needs of your company based on your country."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_unreconcile
+msgid "Account Unreconcile"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,module_account_budget:0
+msgid "Budget management"
+msgstr ""
+
+#. module: account
+#: view:product.template:0
+msgid "Purchase Properties"
+msgstr ""
+
+#. module: account
+#: help:account.financial.report,style_overwrite:0
+msgid ""
+"You can set up here the format you want this record to be displayed. If you "
+"leave the automatic formatting, it will be computed based on the financial "
+"reports hierarchy (auto-computed field 'level')."
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,group_multi_currency:0
+msgid "Allow multi currencies"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:77
+#, python-format
+msgid "You must define an analytic journal of type '%s'!"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "June"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_automatic_reconcile.py:148
+#, python-format
+msgid "You must select accounts to reconcile."
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,group_analytic_accounting:0
+msgid "Allows you to use the analytic accounting."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: field:account.invoice,user_id:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,user_id:0
+msgid "Salesperson"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: view:account.invoice:0
+msgid "Responsible"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_bank_accounts_wizard
+msgid "account.bank.accounts.wizard"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,date_created:0
+#: field:account.move.reconcile,create_date:0
+msgid "Creation date"
+msgstr ""
+
+#. module: account
+#: selection:account.journal,type:0
+msgid "Purchase Refund"
+msgstr ""
+
+#. module: account
+#: selection:account.journal,type:0
+msgid "Opening/Closing Situation"
+msgstr ""
+
+#. module: account
+#: help:account.journal,currency:0
+msgid "The currency used to enter statement"
+msgstr ""
+
+#. module: account
+#: field:account.journal,default_debit_account_id:0
+msgid "Default Debit Account"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: view:account.move.line:0
+msgid "Total Credit"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,module_account_asset:0
+msgid ""
+"This allows you to manage the assets owned by a company or a person.\n"
+" It keeps track of the depreciation occurred on those assets, "
+"and creates account move for those depreciation lines.\n"
+" This installs the module account_asset. If you do not check "
+"this box, you will be able to do invoicing & payments,\n"
+" but not accounting (Journal Items, Chart of Accounts, ...)"
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement.line,name:0
+msgid "Originator to Beneficiary Information"
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/static/src/xml/account_move_line_quickadd.xml:8
+#, python-format
+msgid "Period :"
+msgstr ""
+
+#. module: account
+#: field:account.account.template,chart_template_id:0
+#: field:account.fiscal.position.template,chart_template_id:0
+#: field:account.tax.template,chart_template_id:0
+#: field:wizard.multi.charts.accounts,chart_template_id:0
+msgid "Chart Template"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice.refund,filter_refund:0
+msgid "Modify: create refund, reconcile and create a new draft invoice"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,tax_calculation_rounding_method:0
+msgid ""
+"If you select 'Round per line' : for each tax, the tax amount will first be "
+"computed and rounded for each PO/SO/invoice line and then these rounded "
+"amounts will be summed, leading to the total amount for that tax. If you "
+"select 'Round globally': for each tax, the tax amount will be computed for "
+"each PO/SO/invoice line, then these amounts will be summed and eventually "
+"this total tax amount will be rounded. If you sell with tax included, you "
+"should choose 'Round per line' because you certainly want the sum of your "
+"tax-included line subtotals to be equal to the total amount with taxes."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_wizard_multi_charts_accounts
+msgid "wizard.multi.charts.accounts"
+msgstr ""
+
+#. module: account
+#: help:account.model.line,amount_currency:0
+msgid "The amount expressed in an optional other currency."
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+msgid "Available Coins"
+msgstr ""
+
+#. module: account
+#: field:accounting.report,enable_filter:0
+msgid "Enable Comparison"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+#: field:account.automatic.reconcile,journal_id:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement,journal_id:0
+#: field:account.bank.statement.line,journal_id:0
+#: report:account.central.journal:0
+#: view:account.entries.report:0
+#: field:account.entries.report,journal_id:0
+#: view:account.invoice:0
+#: field:account.invoice,journal_id:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,journal_id:0
+#: view:account.journal:0
+#: field:account.journal.cashbox.line,journal_id:0
+#: field:account.journal.period,journal_id:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: view:account.model:0
+#: field:account.model,journal_id:0
+#: view:account.move:0
+#: field:account.move,journal_id:0
+#: field:account.move.bank.reconcile,journal_id:0
+#: view:account.move.line:0
+#: field:account.move.line,journal_id:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,journal_id:0
+#: model:ir.actions.report.xml,name:account.account_journal
+#: model:ir.model,name:account.model_account_journal
+#: field:validate.account.move,journal_id:0
+msgid "Journal"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_invoice_confirm
+msgid "Confirm the selected invoices"
+msgstr ""
+
+#. module: account
+#: field:account.addtmpl.wizard,cparent_id:0
+msgid "Parent target"
+msgstr ""
+
+#. module: account
+#: help:account.invoice.line,sequence:0
+msgid "Gives the sequence of this line when displaying the invoice."
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,account_id:0
+msgid "Account used in this journal"
+msgstr ""
+
+#. module: account
+#: help:account.aged.trial.balance,chart_account_id:0
+#: help:account.balance.report,chart_account_id:0
+#: help:account.central.journal,chart_account_id:0
+#: help:account.common.account.report,chart_account_id:0
+#: help:account.common.journal.report,chart_account_id:0
+#: help:account.common.partner.report,chart_account_id:0
+#: help:account.common.report,chart_account_id:0
+#: help:account.general.journal,chart_account_id:0
+#: help:account.partner.balance,chart_account_id:0
+#: help:account.partner.ledger,chart_account_id:0
+#: help:account.print.journal,chart_account_id:0
+#: help:account.report.general.ledger,chart_account_id:0
+#: help:account.vat.declaration,chart_account_id:0
+#: help:accounting.report,chart_account_id:0
+msgid "Select Charts of Accounts"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_invoice_refund
+msgid "Invoice Refund"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Li."
+msgstr ""
+
+#. module: account
+#: field:account.automatic.reconcile,unreconciled:0
+msgid "Not reconciled transactions"
+msgstr ""
+
+#. module: account
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+msgid "Counterpart"
+msgstr ""
+
+#. module: account
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,tax_ids:0
+#: field:account.fiscal.position.template,tax_ids:0
+msgid "Tax Mapping"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_fiscalyear_close_state
+#: model:ir.ui.menu,name:account.menu_wizard_fy_close_state
+msgid "Close a Fiscal Year"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_confirmstatementfromdraft0
+msgid "The accountant confirms the statement."
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/static/src/xml/account_move_reconciliation.xml:31
+#, python-format
+msgid "Nothing to reconcile"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,decimal_precision:0
+msgid "Decimal precision on journal entries"
+msgstr ""
+
+#. module: account
+#: selection:account.config.settings,period:0
+#: selection:account.installer,period:0
+msgid "3 Monthly"
+msgstr ""
+
+#. module: account
+#: field:ir.sequence,fiscal_ids:0
+msgid "Sequences"
+msgstr ""
+
+#. module: account
+#: field:account.financial.report,account_report_id:0
+#: selection:account.financial.report,type:0
+msgid "Report Value"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_validate_account_move.py:39
+#, python-format
+msgid ""
+"Specified journal does not have any account move entries in draft state for "
+"this period."
+msgstr ""
+
+#. module: account
+#: view:account.fiscal.position:0
+#: view:account.fiscal.position.template:0
+msgid "Taxes Mapping"
+msgstr ""
+
+#. module: account
+#: report:account.central.journal:0
+msgid "Centralized Journal"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.sequence.fiscalyear:0
+msgid "Main Sequence must be different from current !"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_change_currency.py:64
+#: code:addons/account/wizard/account_change_currency.py:70
+#, python-format
+msgid "Current currency is not configured properly."
+msgstr ""
+
+#. module: account
+#: field:account.journal,profit_account_id:0
+msgid "Profit Account"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1156
+#, python-format
+msgid "No period found or more than one period found for the given date."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_report_account_type_sales
+msgid "Report of the Sales by Account Type"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3201
+#, python-format
+msgid "SAJ"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1591
+#, python-format
+msgid "Cannot create move with currency different from .."
+msgstr ""
+
+#. module: account
+#: model:email.template,report_name:account.email_template_edi_invoice
+msgid ""
+"Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' "
+"and 'draft' or ''}"
+msgstr ""
+
+#. module: account
+#: view:account.period:0
+#: view:account.period.close:0
+msgid "Close Period"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_common_partner_report
+msgid "Account Common Partner Report"
+msgstr ""
+
+#. module: account
+#: field:account.fiscalyear.close,period_id:0
+msgid "Opening Entries Period"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_journal_period
+msgid "Journal Period"
+msgstr ""
+
+#. module: account
+#: constraint:account.move:0
+msgid ""
+"You cannot create more than one move per period on a centralized journal."
+msgstr ""
+
+#. module: account
+#: help:account.tax,account_analytic_paid_id:0
+msgid ""
+"Set the analytic account that will be used by default on the invoice tax "
+"lines for refunds. Leave empty if you don't want to use an analytic account "
+"on the invoice tax lines by default."
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+#: selection:account.aged.trial.balance,result_selection:0
+#: selection:account.common.partner.report,result_selection:0
+#: selection:account.partner.balance,result_selection:0
+#: selection:account.partner.ledger,result_selection:0
+#: report:account.third_party_ledger:0
+#: code:addons/account/report/account_partner_balance.py:297
+#: code:addons/account/report/account_partner_ledger.py:272
+#, python-format
+msgid "Receivable Accounts"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "Configure your company bank accounts"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.refund:0
+msgid "Create Refund"
+msgstr ""
+
+#. module: account
+#: constraint:account.move.line:0
+msgid ""
+"The date of your Journal Entry is not in the defined period! You should "
+"change the date or remove this constraint from the journal."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_report_general_ledger
+msgid "General Ledger Report"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Re-Open"
+msgstr ""
+
+#. module: account
+#: view:account.use.model:0
+msgid "Are you sure you want to create entries?"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:1361
+#, python-format
+msgid "Invoice partially paid: %s%s of %s%s (%s%s remaining)."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Print Invoice"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_invoice_refund.py:111
+#, python-format
+msgid ""
+"Cannot %s invoice which is already reconciled, invoice should be "
+"unreconciled first. You can only refund this invoice."
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,display_detail:0
+msgid "Display children with hierarchy"
+msgstr ""
+
+#. module: account
+#: selection:account.payment.term.line,value:0
+#: selection:account.tax.template,type:0
+msgid "Percent"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_charts
+msgid "Charts"
+msgstr ""
+
+#. module: account
+#: code:addons/account/project/wizard/project_account_analytic_line.py:47
+#: model:ir.model,name:account.model_project_account_analytic_line
+#, python-format
+msgid "Analytic Entries by line"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.refund,filter_refund:0
+msgid "Refund Method"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_account_report
+msgid "Financial Report"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+#: view:account.analytic.journal:0
+#: field:account.analytic.journal,type:0
+#: field:account.bank.statement.line,type:0
+#: field:account.financial.report,type:0
+#: field:account.invoice,type:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,type:0
+#: view:account.journal:0
+#: field:account.journal,type:0
+#: field:account.move.reconcile,type:0
+#: xsl:account.transfer:0
+#: field:report.invoice.created,type:0
+msgid "Type"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:826
+#, python-format
+msgid ""
+"Taxes are missing!\n"
+"Click on compute button."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_subscription_line
+msgid "Account Subscription Line"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,reference:0
+msgid "The partner reference of this invoice."
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Supplier Invoices And Refunds"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:851
+#, python-format
+msgid "Entry is already reconciled."
+msgstr ""
+
+#. module: account
+#: view:account.move.line.unreconcile.select:0
+#: view:account.unreconcile.reconcile:0
+#: model:ir.model,name:account.model_account_move_line_unreconcile_select
+msgid "Unreconciliation"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_analytic_journal_report
+msgid "Account Analytic Journal"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Send by Email"
+msgstr ""
+
+#. module: account
+#: help:account.central.journal,amount_currency:0
+#: help:account.common.journal.report,amount_currency:0
+#: help:account.general.journal,amount_currency:0
+#: help:account.print.journal,amount_currency:0
+msgid ""
+"Print Report with the currency column if the currency differs from the "
+"company currency."
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.quantity_cost_ledger:0
+msgid "J.C./Move name"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+msgid "Account Code and Name"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "September"
+msgstr ""
+
+#. module: account
+#: selection:account.subscription,period_type:0
+msgid "days"
+msgstr ""
+
+#. module: account
+#: help:account.account.template,nocreate:0
+msgid ""
+"If checked, the new chart of accounts will not contain this by default."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_manual_reconcile
+msgid ""
+"
\n"
+" When doing multi-currency transactions, you may loose or "
+"gain\n"
+" some amount due to changes of exchange rate. This menu "
+"gives\n"
+" you a forecast of the Gain or Loss you'd realized if those\n"
+" transactions were ended today. Only for accounts having a\n"
+" secondary currency set.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: field:account.bank.accounts.wizard,acc_name:0
+msgid "Account Name."
+msgstr ""
+
+#. module: account
+#: field:account.journal,with_last_closing_balance:0
+msgid "Opening With Last Closing Balance"
+msgstr ""
+
+#. module: account
+#: help:account.tax.code,notprintable:0
+msgid ""
+"Check this box if you don't want any tax related to this tax code to appear "
+"on invoices"
+msgstr ""
+
+#. module: account
+#: field:report.account.receivable,name:0
+msgid "Week of Year"
+msgstr ""
+
+#. module: account
+#: field:account.report.general.ledger,landscape:0
+msgid "Landscape Mode"
+msgstr ""
+
+#. module: account
+#: help:account.fiscalyear.close,fy_id:0
+msgid "Select a Fiscal year to close"
+msgstr ""
+
+#. module: account
+#: help:account.account.template,user_type:0
+msgid ""
+"These types are defined according to your country. The type contains more "
+"information about the account and its specificities."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Refund "
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_analytic_line.py:90
+#, python-format
+msgid "There is no expense account defined for this product: \"%s\" (id:%d)."
+msgstr ""
+
+#. module: account
+#: view:account.tax:0
+msgid "Applicability Options"
+msgstr ""
+
+#. module: account
+#: report:account.partner.balance:0
+msgid "In dispute"
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+#: model:ir.actions.act_window,name:account.action_view_bank_statement_tree
+#: model:ir.ui.menu,name:account.journal_cash_move_lines
+msgid "Cash Registers"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,sale_refund_journal_id:0
+msgid "Sale refund journal"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_view_bank_statement_tree
+msgid ""
+"
\n"
+" Click to create a new cash log.\n"
+"
\n"
+" A Cash Register allows you to manage cash entries in your "
+"cash\n"
+" journals. This feature provides an easy way to follow up "
+"cash\n"
+" payments on a daily basis. You can enter the coins that are "
+"in\n"
+" your cash box, and then post entries when money comes in or\n"
+" goes out of the cash box.\n"
+"
\n"
+" An account type is used to determine how an account is used "
+"in\n"
+" each journal. The deferral method of an account type "
+"determines\n"
+" the process for the annual closing. Reports such as the "
+"Balance\n"
+" Sheet and the Profit and Loss report use the category\n"
+" (profit/loss or balance sheet).\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: view:account.invoice:0
+#: view:account.invoice.report:0
+#: field:account.move.line,invoice:0
+#: code:addons/account/account_invoice.py:1157
+#: model:ir.model,name:account.model_account_invoice
+#: model:res.request.link,name:account.req_link_invoice
+#, python-format
+msgid "Invoice"
+msgstr ""
+
+#. module: account
+#: field:account.move,balance:0
+msgid "balance"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_analytic0
+#: model:process.node,note:account.process_node_analyticcost0
+msgid "Analytic costs to invoice"
+msgstr ""
+
+#. module: account
+#: view:ir.sequence:0
+msgid "Fiscal Year Sequence"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,group_analytic_accounting:0
+msgid "Analytic accounting"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Sub-Total :"
+msgstr ""
+
+#. module: account
+#: help:res.company,tax_calculation_rounding_method:0
+msgid ""
+"If you select 'Round per Line' : for each tax, the tax amount will first be "
+"computed and rounded for each PO/SO/invoice line and then these rounded "
+"amounts will be summed, leading to the total amount for that tax. If you "
+"select 'Round Globally': for each tax, the tax amount will be computed for "
+"each PO/SO/invoice line, then these amounts will be summed and eventually "
+"this total tax amount will be rounded. If you sell with tax included, you "
+"should choose 'Round per line' because you certainly want the sum of your "
+"tax-included line subtotals to be equal to the total amount with taxes."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_report_account_type_sales_tree_all
+#: view:report.account_type.sales:0
+msgid "Sales by Account Type"
+msgstr ""
+
+#. module: account
+#: model:account.payment.term,name:account.account_payment_term_15days
+#: model:account.payment.term,note:account.account_payment_term_15days
+msgid "15 Days"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.periodical_processing_invoicing
+msgid "Invoicing"
+msgstr ""
+
+#. module: account
+#: code:addons/account/report/account_partner_balance.py:115
+#, python-format
+msgid "Unknown Partner"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_fiscalyear_close.py:103
+#, python-format
+msgid ""
+"The journal must have centralized counterpart without the Skipping draft "
+"state option checked."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:854
+#, python-format
+msgid "Some entries are already reconciled."
+msgstr ""
+
+#. module: account
+#: field:account.tax.code,sum:0
+msgid "Year Sum"
+msgstr ""
+
+#. module: account
+#: view:account.change.currency:0
+msgid "This wizard will change the currency of the invoice"
+msgstr ""
+
+#. module: account
+#: view:account.installer:0
+msgid ""
+"Select a configuration package to setup automatically your\n"
+" taxes and chart of accounts."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+msgid "Pending Accounts"
+msgstr ""
+
+#. module: account
+#: view:account.open.closed.fiscalyear:0
+msgid "Cancel Fiscal Year Opening Entries"
+msgstr ""
+
+#. module: account
+#: report:account.journal.period.print.sale.purchase:0
+#: view:account.tax.template:0
+msgid "Tax Declaration"
+msgstr ""
+
+#. module: account
+#: help:account.journal.period,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the journal "
+"period without removing it."
+msgstr ""
+
+#. module: account
+#: field:account.report.general.ledger,sortby:0
+msgid "Sort by"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.act_account_partner_account_move_all
+msgid "Receivables & Payables"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,module_account_payment:0
+msgid "Manage payment orders"
+msgstr ""
+
+#. module: account
+#: view:account.period:0
+msgid "Duration"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: field:account.bank.statement,last_closing_balance:0
+msgid "Last Closing Balance"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_common_journal_report
+msgid "Account Common Journal Report"
+msgstr ""
+
+#. module: account
+#: selection:account.partner.balance,display_partner:0
+msgid "All Partners"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.chart:0
+msgid "Analytic Account Charts"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Customer Ref:"
+msgstr ""
+
+#. module: account
+#: help:account.tax,base_code_id:0
+#: help:account.tax,ref_base_code_id:0
+#: help:account.tax,ref_tax_code_id:0
+#: help:account.tax,tax_code_id:0
+#: help:account.tax.template,base_code_id:0
+#: help:account.tax.template,ref_base_code_id:0
+#: help:account.tax.template,ref_tax_code_id:0
+#: help:account.tax.template,tax_code_id:0
+msgid "Use this code for the tax declaration."
+msgstr ""
+
+#. module: account
+#: help:account.period,special:0
+msgid "These periods can overlap."
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_draftstatement0
+msgid "Draft statement"
+msgstr ""
+
+#. module: account
+#: model:mail.message.subtype,description:account.mt_invoice_validated
+msgid "Invoice validated"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,module_account_check_writing:0
+msgid "Pay your suppliers by check"
+msgstr ""
+
+#. module: account
+#: field:account.move.line.reconcile,credit:0
+msgid "Credit amount"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,message_ids:0
+#: field:account.invoice,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: account
+#: view:account.vat.declaration:0
+msgid ""
+"This menu prints a tax declaration based on invoices or payments. Select one "
+"or several periods of the fiscal year. The information required for a tax "
+"declaration is automatically generated by OpenERP from invoices (or "
+"payments, in some countries). This data is updated in real time. That’s very "
+"useful because it enables you to preview at any time the tax that you owe at "
+"the start and end of the month or quarter."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:409
+#: code:addons/account/account.py:414
+#: code:addons/account/account.py:431
+#: code:addons/account/account.py:634
+#: code:addons/account/account.py:636
+#: code:addons/account/account.py:930
+#: code:addons/account/account.py:1071
+#: code:addons/account/account.py:1073
+#: code:addons/account/account.py:1116
+#: code:addons/account/account.py:1319
+#: code:addons/account/account.py:1333
+#: code:addons/account/account.py:1356
+#: code:addons/account/account.py:1363
+#: code:addons/account/account.py:1587
+#: code:addons/account/account.py:1591
+#: code:addons/account/account.py:1677
+#: code:addons/account/account.py:2358
+#: code:addons/account/account.py:2678
+#: code:addons/account/account.py:3465
+#: code:addons/account/account_analytic_line.py:89
+#: code:addons/account/account_analytic_line.py:98
+#: code:addons/account/account_bank_statement.py:368
+#: code:addons/account/account_bank_statement.py:381
+#: code:addons/account/account_bank_statement.py:419
+#: code:addons/account/account_cash_statement.py:256
+#: code:addons/account/account_cash_statement.py:300
+#: code:addons/account/account_invoice.py:899
+#: code:addons/account/account_invoice.py:933
+#: code:addons/account/account_invoice.py:1124
+#: code:addons/account/account_move_line.py:579
+#: code:addons/account/account_move_line.py:828
+#: code:addons/account/account_move_line.py:851
+#: code:addons/account/account_move_line.py:854
+#: code:addons/account/account_move_line.py:1119
+#: code:addons/account/account_move_line.py:1121
+#: code:addons/account/account_move_line.py:1156
+#: code:addons/account/report/common_report_header.py:92
+#: code:addons/account/wizard/account_change_currency.py:38
+#: code:addons/account/wizard/account_change_currency.py:59
+#: code:addons/account/wizard/account_change_currency.py:64
+#: code:addons/account/wizard/account_change_currency.py:70
+#: code:addons/account/wizard/account_financial_report.py:70
+#: code:addons/account/wizard/account_invoice_refund.py:109
+#: code:addons/account/wizard/account_invoice_refund.py:111
+#: code:addons/account/wizard/account_move_bank_reconcile.py:49
+#: code:addons/account/wizard/account_open_closed_fiscalyear.py:39
+#: code:addons/account/wizard/account_report_common.py:158
+#: code:addons/account/wizard/account_report_common.py:164
+#: code:addons/account/wizard/account_use_model.py:44
+#: code:addons/account/wizard/pos_box.py:31
+#: code:addons/account/wizard/pos_box.py:35
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_invoice_tree2
+msgid ""
+"
\n"
+" Click to record a new supplier invoice.\n"
+"
\n"
+" You can control the invoice from your supplier according to\n"
+" what you purchased or received. OpenERP can also generate\n"
+" draft invoices automatically from purchase orders or "
+"receipts.\n"
+"
\n"
+" A bank statement is a summary of all financial transactions\n"
+" occurring over a given period of time on a bank account. "
+"You\n"
+" should receive this periodicaly from your bank.\n"
+"
\n"
+" OpenERP allows you to reconcile a statement line directly "
+"with\n"
+" the related sale or puchase invoices.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,currency_id:0
+msgid "Default company currency"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,move_id:0
+#: field:account.invoice,move_name:0
+#: field:account.move.line,move_id:0
+msgid "Journal Entry"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Unpaid"
+msgstr ""
+
+#. module: account
+#: view:account.treasury.report:0
+#: model:ir.actions.act_window,name:account.action_account_treasury_report_all
+#: model:ir.model,name:account.model_account_treasury_report
+#: model:ir.ui.menu,name:account.menu_action_account_treasury_report_all
+msgid "Treasury Analysis"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.report.xml,name:account.account_journal_sale_purchase
+msgid "Sale/Purchase Journal"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+#: field:account.invoice.tax,account_analytic_id:0
+msgid "Analytic account"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_bank_statement.py:406
+#, python-format
+msgid "Please verify that an account is defined in the journal."
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,move_line_state:0
+msgid "Valid"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,message_follower_ids:0
+#: field:account.invoice,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_print_journal
+#: model:ir.model,name:account.model_account_print_journal
+msgid "Account Print Journal"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_product_category
+msgid "Product Category"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:656
+#, python-format
+msgid ""
+"You cannot change the type of account to '%s' type as it contains journal "
+"items!"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_aged_trial_balance
+msgid "Account Aged Trial balance Report"
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear.close.state:0
+msgid "Close Fiscal Year"
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/static/src/xml/account_move_line_quickadd.xml:14
+#, python-format
+msgid "Journal :"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.fiscal.position.tax:0
+msgid "A tax fiscal position could be defined only once time on same taxes."
+msgstr ""
+
+#. module: account
+#: view:account.tax:0
+#: view:account.tax.template:0
+msgid "Tax Definition"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+#: model:ir.actions.act_window,name:account.action_account_config
+msgid "Configure Accounting"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.report,uom_name:0
+msgid "Reference Unit of Measure"
+msgstr ""
+
+#. module: account
+#: help:account.journal,allow_date:0
+msgid ""
+"If set to True then do not accept the entry if the entry date is not into "
+"the period dates"
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/static/src/xml/account_move_reconciliation.xml:8
+#, python-format
+msgid "Good job!"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,module_account_asset:0
+msgid "Assets management"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+#: view:account.account.template:0
+#: selection:account.aged.trial.balance,result_selection:0
+#: selection:account.common.partner.report,result_selection:0
+#: selection:account.partner.balance,result_selection:0
+#: selection:account.partner.ledger,result_selection:0
+#: report:account.third_party_ledger:0
+#: code:addons/account/report/account_partner_balance.py:299
+#: code:addons/account/report/account_partner_ledger.py:274
+#, python-format
+msgid "Payable Accounts"
+msgstr ""
+
+#. module: account
+#: constraint:account.move.line:0
+msgid ""
+"The selected account of your Journal Entry forces to provide a secondary "
+"currency. You should remove the secondary currency on the account or select "
+"a multi-currency view on the journal."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: view:report.invoice.created:0
+msgid "Untaxed Amount"
+msgstr ""
+
+#. module: account
+#: help:account.tax,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the tax "
+"without removing it."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Analytic Journal Items related to a sale journal."
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,style_overwrite:0
+msgid "Italic Text (smaller)"
+msgstr ""
+
+#. module: account
+#: help:account.journal,cash_control:0
+msgid ""
+"If you want the journal should be control at opening/closing, check this "
+"option"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: view:account.invoice:0
+#: selection:account.invoice,state:0
+#: view:account.invoice.report:0
+#: selection:account.invoice.report,state:0
+#: selection:account.journal.period,state:0
+#: view:account.subscription:0
+#: selection:account.subscription,state:0
+#: selection:report.invoice.created,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: account
+#: field:account.move.reconcile,line_partial_ids:0
+msgid "Partial Entry lines"
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear:0
+#: field:account.treasury.report,fiscalyear_id:0
+msgid "Fiscalyear"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_move_bank_reconcile.py:53
+#, python-format
+msgid "Standard Encoding"
+msgstr ""
+
+#. module: account
+#: view:account.journal.select:0
+#: view:project.account.analytic.line:0
+msgid "Open Entries"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,purchase_refund_sequence_next:0
+msgid "Next supplier credit note number"
+msgstr ""
+
+#. module: account
+#: field:account.automatic.reconcile,account_ids:0
+msgid "Accounts to Reconcile"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_filestatement0
+msgid "Import of the statement in the system from an electronic file"
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_importinvoice0
+msgid "Import from invoice"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "January"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "This F.Year"
+msgstr ""
+
+#. module: account
+#: view:account.tax.chart:0
+msgid "Account tax charts"
+msgstr ""
+
+#. module: account
+#: model:account.payment.term,name:account.account_payment_term_net
+#: model:account.payment.term,note:account.account_payment_term_net
+msgid "30 Net Days"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_cash_statement.py:256
+#, python-format
+msgid "You do not have rights to open this %s journal !"
+msgstr ""
+
+#. module: account
+#: model:res.groups,name:account.group_supplier_inv_check_total
+msgid "Check Total on supplier invoices"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice,state:0
+#: view:account.invoice.report:0
+#: selection:account.invoice.report,state:0
+#: selection:report.invoice.created,state:0
+msgid "Pro-forma"
+msgstr ""
+
+#. module: account
+#: help:account.account.template,type:0
+#: help:account.entries.report,type:0
+msgid ""
+"This type is used to differentiate types with special effects in OpenERP: "
+"view can not have entries, consolidation are accounts that can have children "
+"accounts for multi-company consolidations, payable/receivable are for "
+"partners accounts (for debit/credit computations), closed for depreciated "
+"accounts."
+msgstr ""
+
+#. module: account
+#: view:account.chart.template:0
+msgid "Search Chart of Account Templates"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Customer Code"
+msgstr ""
+
+#. module: account
+#: view:account.account.type:0
+#: field:account.account.type,note:0
+#: report:account.invoice:0
+#: field:account.invoice,name:0
+#: field:account.invoice.line,name:0
+#: report:account.overdue:0
+#: field:account.payment.term,note:0
+#: view:account.tax.code:0
+#: field:account.tax.code,info:0
+#: view:account.tax.code.template:0
+#: field:account.tax.code.template,info:0
+#: field:analytic.entries.report,name:0
+#: field:report.invoice.created,name:0
+msgid "Description"
+msgstr ""
+
+#. module: account
+#: field:account.tax,price_include:0
+#: field:account.tax.template,price_include:0
+msgid "Tax Included in Price"
+msgstr ""
+
+#. module: account
+#: view:account.subscription:0
+#: selection:account.subscription,state:0
+msgid "Running"
+msgstr ""
+
+#. module: account
+#: view:account.chart.template:0
+#: field:product.category,property_account_income_categ:0
+#: field:product.template,property_account_income:0
+msgid "Income Account"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,default_sale_tax:0
+msgid "This sale tax will be assigned by default on new products."
+msgstr ""
+
+#. module: account
+#: report:account.general.ledger_landscape:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+msgid "Entries Sorted By"
+msgstr ""
+
+#. module: account
+#: field:account.change.currency,currency_id:0
+msgid "Change to"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "# of Products Qty "
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_product_template
+msgid "Product Template"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: field:account.aged.trial.balance,fiscalyear_id:0
+#: field:account.balance.report,fiscalyear_id:0
+#: report:account.central.journal:0
+#: field:account.central.journal,fiscalyear_id:0
+#: field:account.common.account.report,fiscalyear_id:0
+#: field:account.common.journal.report,fiscalyear_id:0
+#: field:account.common.partner.report,fiscalyear_id:0
+#: field:account.common.report,fiscalyear_id:0
+#: view:account.config.settings:0
+#: view:account.entries.report:0
+#: field:account.entries.report,fiscalyear_id:0
+#: view:account.fiscalyear:0
+#: field:account.fiscalyear,name:0
+#: report:account.general.journal:0
+#: field:account.general.journal,fiscalyear_id:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: field:account.journal.period,fiscalyear_id:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: field:account.open.closed.fiscalyear,fyear_id:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,fiscalyear_id:0
+#: field:account.partner.ledger,fiscalyear_id:0
+#: field:account.period,fiscalyear_id:0
+#: field:account.print.journal,fiscalyear_id:0
+#: field:account.report.general.ledger,fiscalyear_id:0
+#: field:account.sequence.fiscalyear,fiscalyear_id:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: report:account.vat.declaration:0
+#: field:account.vat.declaration,fiscalyear_id:0
+#: field:accounting.report,fiscalyear_id:0
+#: field:accounting.report,fiscalyear_id_cmp:0
+#: model:ir.model,name:account.model_account_fiscalyear
+msgid "Fiscal Year"
+msgstr ""
+
+#. module: account
+#: help:account.aged.trial.balance,fiscalyear_id:0
+#: help:account.balance.report,fiscalyear_id:0
+#: help:account.central.journal,fiscalyear_id:0
+#: help:account.common.account.report,fiscalyear_id:0
+#: help:account.common.journal.report,fiscalyear_id:0
+#: help:account.common.partner.report,fiscalyear_id:0
+#: help:account.common.report,fiscalyear_id:0
+#: help:account.general.journal,fiscalyear_id:0
+#: help:account.partner.balance,fiscalyear_id:0
+#: help:account.partner.ledger,fiscalyear_id:0
+#: help:account.print.journal,fiscalyear_id:0
+#: help:account.report.general.ledger,fiscalyear_id:0
+#: help:account.vat.declaration,fiscalyear_id:0
+#: help:accounting.report,fiscalyear_id:0
+#: help:accounting.report,fiscalyear_id_cmp:0
+msgid "Keep empty for all open fiscal year"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:653
+#, python-format
+msgid ""
+"You cannot change the type of account from 'Closed' to any other type as it "
+"contains journal items!"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.report,account_line_id:0
+msgid "Account Line"
+msgstr ""
+
+#. module: account
+#: view:account.addtmpl.wizard:0
+msgid "Create an Account Based on this Template"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:933
+#, python-format
+msgid ""
+"Cannot create the invoice.\n"
+"The related payment term is probably misconfigured as it gives a computed "
+"amount greater than the total invoiced amount. In order to avoid rounding "
+"issues, the latest line of your payment term must be of type 'balance'."
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: model:ir.model,name:account.model_account_move
+msgid "Account Entry"
+msgstr ""
+
+#. module: account
+#: field:account.sequence.fiscalyear,sequence_main_id:0
+msgid "Main Sequence"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_bank_statement.py:478
+#, python-format
+msgid ""
+"In order to delete a bank statement, you must first cancel it to delete "
+"related journal items."
+msgstr ""
+
+#. module: account
+#: field:account.invoice.report,payment_term:0
+#: view:account.payment.term:0
+#: field:account.payment.term,name:0
+#: view:account.payment.term.line:0
+#: field:account.payment.term.line,payment_id:0
+#: model:ir.model,name:account.model_account_payment_term
+msgid "Payment Term"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_fiscal_position_form
+#: model:ir.ui.menu,name:account.menu_action_account_fiscal_position_form
+msgid "Fiscal Positions"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:579
+#, python-format
+msgid "You cannot create journal items on a closed account %s %s."
+msgstr ""
+
+#. module: account
+#: field:account.period.close,sure:0
+msgid "Check this box"
+msgstr ""
+
+#. module: account
+#: view:account.common.report:0
+msgid "Filters"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_draftinvoices0
+#: model:process.node,note:account.process_node_supplierdraftinvoices0
+msgid "Draft state of an invoice"
+msgstr ""
+
+#. module: account
+#: view:product.category:0
+msgid "Account Properties"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice.refund,filter_refund:0
+msgid "Create a draft refund"
+msgstr ""
+
+#. module: account
+#: view:account.partner.reconcile.process:0
+msgid "Partner Reconciliation"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Fin. Account"
+msgstr ""
+
+#. module: account
+#: field:account.tax,tax_code_id:0
+#: view:account.tax.code:0
+msgid "Account Tax Code"
+msgstr ""
+
+#. module: account
+#: model:account.payment.term,name:account.account_payment_term_advance
+#: model:account.payment.term,note:account.account_payment_term_advance
+msgid "30% Advance End 30 Days"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "Unreconciled entries"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,base_code_id:0
+#: field:account.tax.template,base_code_id:0
+msgid "Base Code"
+msgstr ""
+
+#. module: account
+#: help:account.invoice.tax,sequence:0
+msgid "Gives the sequence order when displaying a list of invoice tax."
+msgstr ""
+
+#. module: account
+#: field:account.tax,base_sign:0
+#: field:account.tax,ref_base_sign:0
+#: field:account.tax.template,base_sign:0
+#: field:account.tax.template,ref_base_sign:0
+msgid "Base Code Sign"
+msgstr ""
+
+#. module: account
+#: selection:account.move.line,centralisation:0
+msgid "Debit Centralisation"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.confirm:0
+#: model:ir.actions.act_window,name:account.action_account_invoice_confirm
+msgid "Confirm Draft Invoices"
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,day:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,day:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.act_account_renew_view
+msgid "Accounts to Renew"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_model_line
+msgid "Account Model Entries"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3202
+#, python-format
+msgid "EXJ"
+msgstr ""
+
+#. module: account
+#: field:product.template,supplier_taxes_id:0
+msgid "Supplier Taxes"
+msgstr ""
+
+#. module: account
+#: view:res.partner:0
+msgid "Bank Details"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_move_journal_line
+msgid ""
+"
\n"
+" Click to create a journal entry.\n"
+"
\n"
+" A journal entry consists of several journal items, each of\n"
+" which is either a debit or a credit transaction.\n"
+"
\n"
+" OpenERP automatically creates one journal entry per "
+"accounting\n"
+" document: invoice, refund, supplier payment, bank "
+"statements,\n"
+" etc. So, you should record journal entries manually "
+"only/mainly\n"
+" for miscellaneous operations.\n"
+"
\n"
+" Define your company's financial year according to your "
+"needs. A\n"
+" financial year is a period at the end of which a company's\n"
+" accounts are made up (usually 12 months). The financial year "
+"is\n"
+" usually referred to by the date in which it ends. For "
+"example,\n"
+" if a company's financial year ends November 30, 2011, then\n"
+" everything between December 1, 2010 and November 30, 2011\n"
+" would be referred to as FY 2011.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: view:account.common.report:0
+#: view:account.move:0
+#: view:account.move.line:0
+#: view:accounting.report:0
+msgid "Dates"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,parent_id:0
+msgid "Parent Chart Template"
+msgstr ""
+
+#. module: account
+#: field:account.tax,parent_id:0
+#: field:account.tax.template,parent_id:0
+msgid "Parent Tax Account"
+msgstr ""
+
+#. module: account
+#: view:account.aged.trial.balance:0
+#: model:ir.actions.act_window,name:account.action_account_aged_balance_view
+#: model:ir.ui.menu,name:account.menu_aged_trial_balance
+msgid "Aged Partner Balance"
+msgstr ""
+
+#. module: account
+#: model:process.transition,name:account.process_transition_entriesreconcile0
+#: model:process.transition,name:account.process_transition_supplierentriesreconcile0
+msgid "Accounting entries"
+msgstr ""
+
+#. module: account
+#: constraint:account.move.line:0
+msgid "Account and Period must belong to the same company."
+msgstr ""
+
+#. module: account
+#: field:account.invoice.line,discount:0
+msgid "Discount (%)"
+msgstr ""
+
+#. module: account
+#: help:account.journal,entry_posted:0
+msgid ""
+"Check this box if you don't want new journal entries to pass through the "
+"'draft' state and instead goes directly to the 'posted state' without any "
+"manual validation. \n"
+"Note that journal entries that are automatically created by the system are "
+"always skipping that state."
+msgstr ""
+
+#. module: account
+#: field:account.move.line.reconcile,writeoff:0
+msgid "Write-Off amount"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,message_unread:0
+#: field:account.invoice,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_invoice_state.py:44
+#, python-format
+msgid ""
+"Selected invoice(s) cannot be confirmed as they are not in 'Draft' or 'Pro-"
+"Forma' state."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1071
+#, python-format
+msgid "You should choose the periods that belong to the same company."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_report_account_sales_tree_all
+#: view:report.account.sales:0
+#: view:report.account_type.sales:0
+msgid "Sales by Account"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1449
+#, python-format
+msgid "You cannot delete a posted journal entry \"%s\"."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Accounting Period"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,sale_journal_id:0
+msgid "Sale journal"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:2346
+#: code:addons/account/account_invoice.py:775
+#: code:addons/account/account_move_line.py:195
+#, python-format
+msgid "You have to define an analytic journal on the '%s' journal!"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:781
+#, python-format
+msgid ""
+"This journal already contains items, therefore you cannot modify its company "
+"field."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:409
+#, python-format
+msgid ""
+"You need an Opening journal with centralisation checked to set the initial "
+"balance."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_tax_code_list
+#: model:ir.ui.menu,name:account.menu_action_tax_code_list
+msgid "Tax codes"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+msgid "Unrealized Gains and losses"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_account_customer
+#: model:ir.ui.menu,name:account.menu_finance_receivables
+msgid "Customers"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.journal:0
+#: report:account.analytic.account.quantity_cost_ledger:0
+msgid "Period to"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "August"
+msgstr ""
+
+#. module: account
+#: field:accounting.report,debit_credit:0
+msgid "Display Debit/Credit Columns"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "October"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,quantity:0
+msgid ""
+"The optional quantity expressed by this line, eg: number of product sold. "
+"The quantity is not a legal requirement but is very useful for some reports."
+msgstr ""
+
+#. module: account
+#: view:account.unreconcile:0
+#: view:account.unreconcile.reconcile:0
+msgid "Unreconcile Transactions"
+msgstr ""
+
+#. module: account
+#: field:wizard.multi.charts.accounts,only_one_chart_template:0
+msgid "Only One Chart Template Available"
+msgstr ""
+
+#. module: account
+#: view:account.chart.template:0
+#: field:product.category,property_account_expense_categ:0
+#: field:product.template,property_account_expense:0
+msgid "Expense Account"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,message_summary:0
+#: field:account.invoice,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,period_id:0
+msgid "Keep empty to use the period of the validation(invoice) date."
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement,account_id:0
+msgid ""
+"used in statement reconciliation domain, but shouldn't be used elswhere."
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,date_stop:0
+msgid "End date"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,base_amount:0
+msgid "Base Code Amount"
+msgstr ""
+
+#. module: account
+#: field:wizard.multi.charts.accounts,sale_tax:0
+msgid "Default Sale Tax"
+msgstr ""
+
+#. module: account
+#: help:account.model.line,date_maturity:0
+msgid ""
+"The maturity date of the generated entries for this model. You can choose "
+"between the creation date or the creation date of the entries plus the "
+"partner payment terms."
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_accounting
+msgid "Financial Accounting"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_account_report_pl
+msgid "Profit And Loss"
+msgstr ""
+
+#. module: account
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,name:0
+#: field:account.fiscal.position.account,position_id:0
+#: field:account.fiscal.position.tax,position_id:0
+#: field:account.fiscal.position.tax.template,position_id:0
+#: view:account.fiscal.position.template:0
+#: field:account.invoice,fiscal_position:0
+#: field:account.invoice.report,fiscal_position:0
+#: model:ir.model,name:account.model_account_fiscal_position
+#: field:res.partner,property_account_position:0
+msgid "Fiscal Position"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:823
+#, python-format
+msgid ""
+"Tax base different!\n"
+"Click on compute to update the tax base."
+msgstr ""
+
+#. module: account
+#: field:account.partner.ledger,page_split:0
+msgid "One Partner Per Page"
+msgstr ""
+
+#. module: account
+#: field:account.account,child_parent_ids:0
+#: field:account.account.template,child_parent_ids:0
+msgid "Children"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: model:ir.actions.act_window,name:account.action_account_balance_menu
+#: model:ir.actions.report.xml,name:account.account_account_balance
+#: model:ir.ui.menu,name:account.menu_general_Balance_report
+msgid "Trial Balance"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:431
+#, python-format
+msgid "Unable to adapt the initial balance (negative value)."
+msgstr ""
+
+#. module: account
+#: selection:account.invoice,type:0
+#: selection:account.invoice.report,type:0
+#: model:process.process,name:account.process_process_invoiceprocess0
+#: selection:report.invoice.created,type:0
+msgid "Customer Invoice"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_open_closed_fiscalyear
+msgid "Choose Fiscal Year"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+#: view:account.installer:0
+msgid "Date Range"
+msgstr ""
+
+#. module: account
+#: view:account.period:0
+msgid "Search Period"
+msgstr ""
+
+#. module: account
+#: view:account.change.currency:0
+msgid "Invoice Currency"
+msgstr ""
+
+#. module: account
+#: field:accounting.report,account_report_id:0
+#: model:ir.ui.menu,name:account.menu_account_financial_reports_tree
+msgid "Account Reports"
+msgstr ""
+
+#. module: account
+#: field:account.payment.term,line_ids:0
+msgid "Terms"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,tax_template_ids:0
+msgid "Tax Template List"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_account_print_sale_purchase_journal
+msgid "Sale/Purchase Journals"
+msgstr ""
+
+#. module: account
+#: help:account.account,currency_mode:0
+msgid ""
+"This will select how the current currency rate for outgoing transactions is "
+"computed. In most countries the legal method is \"average\" but only a few "
+"software systems are able to manage this. So if you import from another "
+"software system you may have to use the rate at date. Incoming transactions "
+"always use the rate at date."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:2678
+#, python-format
+msgid "There is no parent code for the template account."
+msgstr ""
+
+#. module: account
+#: help:account.chart.template,code_digits:0
+#: help:wizard.multi.charts.accounts,code_digits:0
+msgid "No. of Digits to use for account code"
+msgstr ""
+
+#. module: account
+#: field:res.partner,property_supplier_payment_term:0
+msgid "Supplier Payment Term"
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear:0
+msgid "Search Fiscalyear"
+msgstr ""
+
+#. module: account
+#: selection:account.tax,applicable_type:0
+msgid "Always"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,module_account_accountant:0
+msgid ""
+"Full accounting features: journals, legal statements, chart of accounts, etc."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Total Quantity"
+msgstr ""
+
+#. module: account
+#: field:account.move.line.reconcile.writeoff,writeoff_acc_id:0
+msgid "Write-Off account"
+msgstr ""
+
+#. module: account
+#: field:account.model.line,model_id:0
+#: view:account.subscription:0
+#: field:account.subscription,model_id:0
+msgid "Model"
+msgstr ""
+
+#. module: account
+#: help:account.invoice.tax,base_code_id:0
+msgid "The account basis of the tax declaration."
+msgstr ""
+
+#. module: account
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
+#: selection:account.entries.report,type:0
+#: selection:account.financial.report,type:0
+msgid "View"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3460
+#: code:addons/account/account_bank.py:94
+#, python-format
+msgid "BNK"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,analytic_lines:0
+msgid "Analytic lines"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Proforma Invoices"
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_electronicfile0
+msgid "Electronic File"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,reconcile:0
+msgid "Reconcile Ref"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,has_chart_of_accounts:0
+msgid "Company has a chart of accounts"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_tax_code_template
+msgid "Tax Code Template"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_partner_ledger
+msgid "Account Partner Ledger"
+msgstr ""
+
+#. module: account
+#: model:email.template,body_html:account.email_template_edi_invoice
+msgid ""
+"\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: view:account.period:0
+msgid "Account Period"
+msgstr ""
+
+#. module: account
+#: help:account.account,currency_id:0
+#: help:account.account.template,currency_id:0
+#: help:account.bank.accounts.wizard,currency_id:0
+msgid "Forces all moves for this account to have this secondary currency."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_validate_account_move_line
+msgid ""
+"This wizard will validate all journal entries of a particular journal and "
+"period. Once journal entries are validated, you can not update them anymore."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_chart_template_form
+#: model:ir.ui.menu,name:account.menu_action_account_chart_template_form
+msgid "Chart of Accounts Templates"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Transactions"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_unreconcile_reconcile
+msgid "Account Unreconcile Reconcile"
+msgstr ""
+
+#. module: account
+#: help:account.account.type,close_method:0
+msgid ""
+"Set here the method that will be used to generate the end of year journal "
+"entries for all the accounts of this type.\n"
+"\n"
+" 'None' means that nothing will be done.\n"
+" 'Balance' will generally be used for cash accounts.\n"
+" 'Detail' will copy each existing journal item of the previous year, even "
+"the reconciled ones.\n"
+" 'Unreconciled' will copy only the journal items that were unreconciled on "
+"the first day of the new fiscal year."
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Keep empty to use the expense account"
+msgstr ""
+
+#. module: account
+#: field:account.aged.trial.balance,journal_ids:0
+#: field:account.analytic.cost.ledger.journal.report,journal:0
+#: field:account.balance.report,journal_ids:0
+#: field:account.central.journal,journal_ids:0
+#: field:account.common.account.report,journal_ids:0
+#: field:account.common.journal.report,journal_ids:0
+#: field:account.common.partner.report,journal_ids:0
+#: view:account.common.report:0
+#: field:account.common.report,journal_ids:0
+#: report:account.general.journal:0
+#: field:account.general.journal,journal_ids:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: view:account.journal.period:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,journal_ids:0
+#: field:account.partner.ledger,journal_ids:0
+#: view:account.print.journal:0
+#: field:account.print.journal,journal_ids:0
+#: field:account.report.general.ledger,journal_ids:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:account.vat.declaration,journal_ids:0
+#: field:accounting.report,journal_ids:0
+#: model:ir.actions.act_window,name:account.action_account_journal_form
+#: model:ir.actions.act_window,name:account.action_account_journal_period_tree
+#: model:ir.ui.menu,name:account.menu_account_print_journal
+#: model:ir.ui.menu,name:account.menu_action_account_journal_form
+#: model:ir.ui.menu,name:account.menu_journals
+#: model:ir.ui.menu,name:account.menu_journals_report
+msgid "Journals"
+msgstr ""
+
+#. module: account
+#: field:account.partner.reconcile.process,to_reconcile:0
+msgid "Remaining Partners"
+msgstr ""
+
+#. module: account
+#: view:account.subscription:0
+#: field:account.subscription,lines_id:0
+msgid "Subscription Lines"
+msgstr ""
+
+#. module: account
+#: selection:account.analytic.journal,type:0
+#: view:account.config.settings:0
+#: view:account.journal:0
+#: selection:account.journal,type:0
+#: view:account.model:0
+#: selection:account.tax,type_tax_use:0
+#: view:account.tax.template:0
+#: selection:account.tax.template,type_tax_use:0
+msgid "Purchase"
+msgstr ""
+
+#. module: account
+#: view:account.installer:0
+#: view:wizard.multi.charts.accounts:0
+msgid "Accounting Application Configuration"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_vat_declaration
+msgid "Account Tax Declaration"
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement,name:0
+msgid ""
+"if you give the Name other then /, its created Accounting Entries Move will "
+"be with same name as statement name. This allows the statement entries to "
+"have the same references than the statement itself"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:1016
+#, python-format
+msgid ""
+"You cannot create an invoice on a centralized journal. Uncheck the "
+"centralized counterpart box in the related journal from the configuration "
+"menu."
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,balance_start:0
+#: field:account.treasury.report,starting_balance:0
+msgid "Starting Balance"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:1465
+#, python-format
+msgid "No Partner Defined !"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_period_close
+#: model:ir.actions.act_window,name:account.action_account_period_tree
+#: model:ir.ui.menu,name:account.menu_action_account_period_close_tree
+msgid "Close a Period"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: field:account.cashbox.line,subtotal_opening:0
+msgid "Opening Subtotal"
+msgstr ""
+
+#. module: account
+#: constraint:account.move.line:0
+msgid ""
+"You cannot create journal items with a secondary currency without recording "
+"both 'currency' and 'amount currency' field."
+msgstr ""
+
+#. module: account
+#: field:account.financial.report,display_detail:0
+msgid "Display details"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "VAT:"
+msgstr "RUC:"
+
+#. module: account
+#: help:account.analytic.line,amount_currency:0
+msgid ""
+"The amount expressed in the related account currency if not equal to the "
+"company one."
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,paypal_account:0
+msgid ""
+"Paypal account (email) for receiving online payments (credit card, etc.) If "
+"you set a paypal account, the customer will be able to pay your invoices or "
+"quotations with a button \"Pay with Paypal\" in automated emails or through "
+"the OpenERP portal."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:536
+#, python-format
+msgid ""
+"Cannot find any account journal of %s type for this company.\n"
+"\n"
+"You can create one in the menu: \n"
+"Configuration/Journals/Journals."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_unreconcile
+#: model:ir.actions.act_window,name:account.action_account_unreconcile_reconcile
+#: model:ir.actions.act_window,name:account.action_account_unreconcile_select
+msgid "Unreconcile Entries"
+msgstr ""
+
+#. module: account
+#: field:account.tax.code,notprintable:0
+#: field:account.tax.code.template,notprintable:0
+msgid "Not Printable in Invoice"
+msgstr ""
+
+#. module: account
+#: report:account.vat.declaration:0
+#: field:account.vat.declaration,chart_tax_id:0
+msgid "Chart of Tax"
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+msgid "Search Account Journal"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_invoice_tree_pending_invoice
+msgid "Pending Invoice"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+#: selection:account.subscription,period_type:0
+msgid "year"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,date_start:0
+msgid "Start date"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.refund:0
+msgid ""
+"You will be able to edit and validate this\n"
+" credit note directly or keep it draft,\n"
+" waiting for the document to be issued "
+"by\n"
+" your supplier/customer."
+msgstr ""
+
+#. module: account
+#: view:validate.account.move.lines:0
+msgid ""
+"All selected journal entries will be validated and posted. It means you "
+"won't be able to modify their accounting fields anymore."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:98
+#, python-format
+msgid ""
+"You have not supplied enough arguments to compute the initial balance, "
+"please select a period and a journal in the context."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.report.xml,name:account.account_transfers
+msgid "Transfers"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,expects_chart_of_accounts:0
+msgid "This company has its own chart of accounts"
+msgstr ""
+
+#. module: account
+#: view:account.chart:0
+msgid "Account charts"
+msgstr ""
+
+#. module: account
+#: view:cash.box.out:0
+#: model:ir.actions.act_window,name:account.action_cash_box_out
+msgid "Take Money Out"
+msgstr ""
+
+#. module: account
+#: report:account.vat.declaration:0
+msgid "Tax Amount"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+msgid "Search Move"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_invoice_tree1
+msgid ""
+"
\n"
+" Click to create a customer invoice.\n"
+"
\n"
+" OpenERP's electronic invoicing allows to ease and fasten "
+"the\n"
+" collection of customer payments. Your customer receives the\n"
+" invoice by email and he can pay online and/or import it\n"
+" in his own system.\n"
+"
\n"
+" The discussions with your customer are automatically "
+"displayed at\n"
+" the bottom of each invoice.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: field:account.tax.code,name:0
+#: field:account.tax.code.template,name:0
+msgid "Tax Case Name"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: view:account.invoice:0
+#: model:process.node,name:account.process_node_draftinvoices0
+msgid "Draft Invoice"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "Options"
+msgstr ""
+
+#. module: account
+#: field:account.aged.trial.balance,period_length:0
+msgid "Period Length (days)"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1363
+#, python-format
+msgid ""
+"You cannot modify a posted entry of this journal.\n"
+"First you should set the journal to allow cancelling entries."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_print_sale_purchase_journal
+msgid "Print Sale/Purchase Journal"
+msgstr ""
+
+#. module: account
+#: view:account.installer:0
+msgid "Continue"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+#: field:account.invoice.report,categ_id:0
+msgid "Category of Product"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:930
+#, python-format
+msgid ""
+"There is no fiscal year defined for this date.\n"
+"Please create one from the configuration of the accounting menu."
+msgstr ""
+
+#. module: account
+#: view:account.addtmpl.wizard:0
+#: model:ir.actions.act_window,name:account.action_account_addtmpl_wizard_form
+msgid "Create Account"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_fiscalyear_close.py:62
+#, python-format
+msgid "The entries to reconcile should belong to the same company."
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,tax_amount:0
+msgid "Tax Code Amount"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Unreconciled Journal Items"
+msgstr ""
+
+#. module: account
+#: selection:account.account.type,close_method:0
+msgid "Detail"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,default_purchase_tax:0
+msgid "This purchase tax will be assigned by default on new products."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "VAT :"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: report:account.central.journal:0
+#: view:account.config.settings:0
+#: report:account.general.journal:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.journal.period.print:0
+#: report:account.partner.balance:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: model:ir.actions.act_window,name:account.action_account_chart
+#: model:ir.actions.act_window,name:account.action_account_tree
+#: model:ir.ui.menu,name:account.menu_action_account_tree2
+msgid "Chart of Accounts"
+msgstr ""
+
+#. module: account
+#: view:account.tax.chart:0
+msgid "(If you do not select period it will take all open periods)"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_journal_cashbox_line
+msgid "account.journal.cashbox.line"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_partner_reconcile_process
+msgid "Reconcilation Process partner by partner"
+msgstr ""
+
+#. module: account
+#: view:account.chart:0
+msgid "(If you do not select Fiscal year it will take all open fiscal years)"
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,filter:0
+#: report:account.analytic.account.journal:0
+#: view:account.analytic.line:0
+#: selection:account.balance.report,filter:0
+#: field:account.bank.statement,date:0
+#: field:account.bank.statement.line,date:0
+#: selection:account.central.journal,filter:0
+#: selection:account.common.account.report,filter:0
+#: selection:account.common.journal.report,filter:0
+#: selection:account.common.partner.report,filter:0
+#: selection:account.common.report,filter:0
+#: view:account.entries.report:0
+#: field:account.entries.report,date:0
+#: selection:account.general.journal,filter:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: field:account.invoice.refund,date:0
+#: field:account.invoice.report,date:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: view:account.move:0
+#: field:account.move,date:0
+#: field:account.move.line.reconcile.writeoff,date_p:0
+#: report:account.overdue:0
+#: selection:account.partner.balance,filter:0
+#: selection:account.partner.ledger,filter:0
+#: selection:account.print.journal,filter:0
+#: selection:account.print.journal,sort_selection:0
+#: selection:account.report.general.ledger,filter:0
+#: selection:account.report.general.ledger,sortby:0
+#: field:account.subscription.line,date:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: xsl:account.transfer:0
+#: selection:account.vat.declaration,filter:0
+#: selection:accounting.report,filter:0
+#: selection:accounting.report,filter_cmp:0
+#: field:analytic.entries.report,date:0
+msgid "Date"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+msgid "Post"
+msgstr ""
+
+#. module: account
+#: view:account.unreconcile:0
+#: view:account.unreconcile.reconcile:0
+msgid "Unreconcile"
+msgstr ""
+
+#. module: account
+#: view:account.chart.template:0
+msgid "Chart of Accounts Template"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:2358
+#, python-format
+msgid ""
+"Maturity date of entry line generated by model line '%s' of model '%s' is "
+"based on partner payment term!\n"
+"Please define partner on it!"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: selection:account.balance.report,display_account:0
+#: selection:account.common.account.report,display_account:0
+#: report:account.general.ledger_landscape:0
+#: selection:account.report.general.ledger,display_account:0
+#: selection:account.tax,type_tax_use:0
+#: selection:account.tax.template,type_tax_use:0
+msgid "All"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_reporting_budgets
+msgid "Budgets"
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,filter:0
+#: selection:account.balance.report,filter:0
+#: selection:account.central.journal,filter:0
+#: selection:account.common.account.report,filter:0
+#: selection:account.common.journal.report,filter:0
+#: selection:account.common.partner.report,filter:0
+#: selection:account.common.report,filter:0
+#: selection:account.general.journal,filter:0
+#: selection:account.partner.balance,filter:0
+#: selection:account.partner.ledger,filter:0
+#: selection:account.print.journal,filter:0
+#: selection:account.report.general.ledger,filter:0
+#: selection:account.vat.declaration,filter:0
+#: selection:accounting.report,filter:0
+#: selection:accounting.report,filter_cmp:0
+msgid "No Filters"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+#: model:res.groups,name:account.group_proforma_invoices
+msgid "Pro-forma Invoices"
+msgstr ""
+
+#. module: account
+#: view:res.partner:0
+msgid "History"
+msgstr ""
+
+#. module: account
+#: help:account.tax,applicable_type:0
+#: help:account.tax.template,applicable_type:0
+msgid ""
+"If not applicable (computed through a Python code), the tax won't appear on "
+"the invoice."
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,group_check_supplier_invoice_total:0
+msgid "Check the total of supplier invoices"
+msgstr ""
+
+#. module: account
+#: view:account.tax:0
+#: view:account.tax.template:0
+msgid "Applicable Code (if type=code)"
+msgstr ""
+
+#. module: account
+#: help:account.period,state:0
+msgid ""
+"When monthly periods are created. The status is 'Draft'. At the end of "
+"monthly period it is in 'Done' status."
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+#: field:account.invoice.report,product_qty:0
+msgid "Qty"
+msgstr ""
+
+#. module: account
+#: help:account.tax.code,sign:0
+msgid ""
+"You can specify here the coefficient that will be used when consolidating "
+"the amount of this case into its parent. For example, set 1/-1 if you want "
+"to add/substract it."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Search Analytic Lines"
+msgstr ""
+
+#. module: account
+#: field:res.partner,property_account_payable:0
+msgid "Account Payable"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_fiscalyear_close.py:88
+#, python-format
+msgid "The periods to generate opening entries cannot be found."
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_supplierpaymentorder0
+msgid "Payment Order"
+msgstr ""
+
+#. module: account
+#: help:account.account.template,reconcile:0
+msgid ""
+"Check this option if you want the user to reconcile entries in this account."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: field:account.invoice.line,price_unit:0
+msgid "Unit Price"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_tree1
+msgid "Analytic Items"
+msgstr ""
+
+#. module: account
+#: field:analytic.entries.report,nbr:0
+msgid "#Entries"
+msgstr ""
+
+#. module: account
+#: view:account.state.open:0
+msgid "Open Invoice"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,factor_tax:0
+msgid "Multipication factor Tax code"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,complete_tax_set:0
+msgid "Complete set of taxes"
+msgstr ""
+
+#. module: account
+#: field:account.account,name:0
+#: field:account.account.template,name:0
+#: report:account.analytic.account.inverted.balance:0
+#: field:account.chart.template,name:0
+#: field:account.model.line,name:0
+#: field:account.move.line,name:0
+#: field:account.move.reconcile,name:0
+#: field:account.subscription,name:0
+msgid "Name"
+msgstr ""
+
+#. module: account
+#: code:addons/account/installer.py:115
+#, python-format
+msgid "No unconfigured company !"
+msgstr ""
+
+#. module: account
+#: field:res.company,expects_chart_of_accounts:0
+msgid "Expects a Chart of Accounts"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,date:0
+msgid "Effective date"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_fiscalyear_close.py:100
+#, python-format
+msgid "The journal must have default credit and debit account."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_bank_tree
+#: model:ir.ui.menu,name:account.menu_action_bank_tree
+msgid "Setup your Bank Accounts"
+msgstr ""
+
+#. module: account
+#: xsl:account.transfer:0
+msgid "Partner ID"
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement,message_ids:0
+#: help:account.invoice,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: account
+#: help:account.journal,analytic_journal_id:0
+msgid "Journal for analytic entries"
+msgstr ""
+
+#. module: account
+#: constraint:account.aged.trial.balance:0
+#: constraint:account.balance.report:0
+#: constraint:account.central.journal:0
+#: constraint:account.common.account.report:0
+#: constraint:account.common.journal.report:0
+#: constraint:account.common.partner.report:0
+#: constraint:account.common.report:0
+#: constraint:account.general.journal:0
+#: constraint:account.partner.balance:0
+#: constraint:account.partner.ledger:0
+#: constraint:account.print.journal:0
+#: constraint:account.report.general.ledger:0
+#: constraint:account.vat.declaration:0
+#: constraint:accounting.report:0
+msgid ""
+"The fiscalyear, periods or chart of account chosen have to belong to the "
+"same company."
+msgstr ""
+
+#. module: account
+#: help:account.tax.code.template,notprintable:0
+msgid ""
+"Check this box if you don't want any tax related to this tax Code to appear "
+"on invoices."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1058
+#: code:addons/account/account_move_line.py:1143
+#, python-format
+msgid "You cannot use an inactive account."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.open_board_account
+#: model:ir.ui.menu,name:account.menu_account_config
+#: model:ir.ui.menu,name:account.menu_board_account
+#: model:ir.ui.menu,name:account.menu_finance
+#: model:ir.ui.menu,name:account.menu_finance_reporting
+#: model:process.node,name:account.process_node_accountingentries0
+#: model:process.node,name:account.process_node_supplieraccountingentries0
+#: view:product.product:0
+#: view:product.template:0
+#: view:res.partner:0
+msgid "Accounting"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "Journal Entries with period in current year"
+msgstr ""
+
+#. module: account
+#: field:account.account,child_consol_ids:0
+msgid "Consolidated Children"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:573
+#: code:addons/account/wizard/account_invoice_refund.py:146
+#, python-format
+msgid "Insufficient Data!"
+msgstr ""
+
+#. module: account
+#: help:account.account,unrealized_gain_loss:0
+msgid ""
+"Value of Loss or Gain due to changes in exchange rate when doing multi-"
+"currency transactions."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "General Accounting"
+msgstr ""
+
+#. module: account
+#: help:account.fiscalyear.close,journal_id:0
+msgid ""
+"The best practice here is to use a journal dedicated to contain the opening "
+"entries of all fiscal years. Note that you should define it with default "
+"debit/credit accounts, of type 'situation' and with a centralized "
+"counterpart."
+msgstr ""
+
+#. module: account
+#: view:account.installer:0
+msgid "title"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: view:account.subscription:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_subscription_form
+msgid "Recurring Lines"
+msgstr ""
+
+#. module: account
+#: field:account.partner.balance,display_partner:0
+msgid "Display Partners"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Validate"
+msgstr ""
+
+#. module: account
+#: model:account.financial.report,name:account.account_financial_report_assets0
+msgid "Assets"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "Accounting & Finance"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.confirm:0
+msgid "Confirm Invoices"
+msgstr ""
+
+#. module: account
+#: selection:account.account,currency_mode:0
+msgid "Average Rate"
+msgstr ""
+
+#. module: account
+#: field:account.balance.report,display_account:0
+#: field:account.common.account.report,display_account:0
+#: field:account.report.general.ledger,display_account:0
+msgid "Display Accounts"
+msgstr ""
+
+#. module: account
+#: view:account.state.open:0
+msgid "(Invoice should be unreconciled if you want to open it)"
+msgstr ""
+
+#. module: account
+#: field:account.tax,account_analytic_collected_id:0
+msgid "Invoice Tax Analytic Account"
+msgstr ""
+
+#. module: account
+#: field:account.chart,period_from:0
+msgid "Start period"
+msgstr ""
+
+#. module: account
+#: field:account.tax,name:0
+#: field:account.tax.template,name:0
+#: report:account.vat.declaration:0
+msgid "Tax Name"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+#: model:ir.ui.menu,name:account.menu_finance_configuration
+msgid "Configuration"
+msgstr ""
+
+#. module: account
+#: model:account.payment.term,name:account.account_payment_term
+#: model:account.payment.term,note:account.account_payment_term
+msgid "30 Days End of Month"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_analytic_balance
+#: model:ir.actions.report.xml,name:account.account_analytic_account_balance
+msgid "Analytic Balance"
+msgstr ""
+
+#. module: account
+#: help:res.partner,property_payment_term:0
+msgid ""
+"This payment term will be used instead of the default one for sale orders "
+"and customer invoices"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid ""
+"If you put \"%(year)s\" in the prefix, it will be replaced by the current "
+"year."
+msgstr ""
+
+#. module: account
+#: help:account.account,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the account "
+"without removing it."
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Posted Journal Items"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,blocked:0
+msgid "No Follow-up"
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Search Tax Templates"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.periodical_processing_journal_entries_validation
+msgid "Draft Entries"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,decimal_precision:0
+msgid ""
+"As an example, a decimal precision of 2 will allow journal entries like: "
+"9.99 EUR, whereas a decimal precision of 4 will allow journal entries like: "
+"0.0231 EUR."
+msgstr ""
+
+#. module: account
+#: field:account.account,shortcut:0
+#: field:account.account.template,shortcut:0
+msgid "Shortcut"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+#: field:account.account,user_type:0
+#: view:account.account.template:0
+#: field:account.account.template,user_type:0
+#: view:account.account.type:0
+#: field:account.account.type,name:0
+#: field:account.bank.accounts.wizard,account_type:0
+#: field:account.entries.report,user_type:0
+#: selection:account.financial.report,type:0
+#: model:ir.model,name:account.model_account_account_type
+#: field:report.account.receivable,type:0
+#: field:report.account_type.sales,user_type:0
+msgid "Account Type"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Close CashBox"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_invoice_cancel
+msgid "Cancel the Selected Invoices"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_bank_statement.py:424
+#, python-format
+msgid "You have to assign an analytic journal on the '%s' journal!"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_supplieranalyticcost0
+msgid ""
+"Analytic costs (timesheets, some purchased products, ...) come from analytic "
+"accounts. These generate draft supplier invoices."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_bank_tree
+msgid ""
+"
\n"
+" Click to setup a new bank account. \n"
+"
\n"
+" Configure your company's bank account and select those that "
+"must\n"
+" appear on the report footer.\n"
+"
\n"
+" If you use the accounting application of OpenERP, journals and\n"
+" accounts will be created automatically based on these data.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: constraint:account.tax.code.template:0
+msgid ""
+"Error!\n"
+"You cannot create recursive Tax Codes."
+msgstr ""
+
+#. module: account
+#: constraint:account.period:0
+msgid ""
+"Error!\n"
+"The duration of the Period(s) is/are invalid."
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,month:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,month:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,month:0
+#: field:report.account.sales,month:0
+#: field:report.account_type.sales,month:0
+msgid "Month"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:668
+#, python-format
+msgid "You cannot change the code of account which contains journal items!"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,purchase_sequence_prefix:0
+msgid "Supplier invoice sequence"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:610
+#: code:addons/account/account_invoice.py:625
+#, python-format
+msgid ""
+"Cannot find a chart of account, you should create one from Settings\\"
+"Configuration\\Accounting menu."
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,product_uom_id:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,product_uom_id:0
+msgid "Product Unit of Measure"
+msgstr ""
+
+#. module: account
+#: field:res.company,paypal_account:0
+msgid "Paypal Account"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "Acc.Type"
+msgstr ""
+
+#. module: account
+#: selection:account.journal,type:0
+msgid "Bank and Checks"
+msgstr ""
+
+#. module: account
+#: field:account.account.template,note:0
+msgid "Note"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,sign:0
+msgid "Reverse balance sign"
+msgstr ""
+
+#. module: account
+#: selection:account.account.type,report_type:0
+#: code:addons/account/account.py:191
+#, python-format
+msgid "Balance Sheet (Liability account)"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,date_invoice:0
+msgid "Keep empty to use the current date"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: field:account.cashbox.line,subtotal_closing:0
+msgid "Closing Subtotal"
+msgstr ""
+
+#. module: account
+#: field:account.tax,base_code_id:0
+msgid "Account Base Code"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:864
+#, python-format
+msgid ""
+"You have to provide an account for the write off/exchange difference entry."
+msgstr ""
+
+#. module: account
+#: help:res.company,paypal_account:0
+msgid "Paypal username (usually email) for receiving online payments."
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,target_move:0
+#: selection:account.balance.report,target_move:0
+#: selection:account.central.journal,target_move:0
+#: selection:account.chart,target_move:0
+#: selection:account.common.account.report,target_move:0
+#: selection:account.common.journal.report,target_move:0
+#: selection:account.common.partner.report,target_move:0
+#: selection:account.common.report,target_move:0
+#: selection:account.general.journal,target_move:0
+#: selection:account.partner.balance,target_move:0
+#: selection:account.partner.ledger,target_move:0
+#: selection:account.print.journal,target_move:0
+#: selection:account.report.general.ledger,target_move:0
+#: selection:account.tax.chart,target_move:0
+#: selection:account.vat.declaration,target_move:0
+#: selection:accounting.report,target_move:0
+#: code:addons/account/report/common_report_header.py:68
+#, python-format
+msgid "All Posted Entries"
+msgstr ""
+
+#. module: account
+#: field:report.aged.receivable,name:0
+msgid "Month Range"
+msgstr ""
+
+#. module: account
+#: help:account.analytic.balance,empty_acc:0
+msgid "Check if you want to display Accounts with 0 balance too."
+msgstr ""
+
+#. module: account
+#: field:account.move.reconcile,opening_reconciliation:0
+msgid "Opening Entries Reconciliation"
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/static/src/xml/account_move_reconciliation.xml:24
+#, python-format
+msgid "Last Reconciliation:"
+msgstr ""
+
+#. module: account
+#: selection:account.move.line,state:0
+msgid "Balanced"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_importinvoice0
+msgid "Statement from invoice or payment"
+msgstr ""
+
+#. module: account
+#: code:addons/account/installer.py:115
+#, python-format
+msgid ""
+"There is currently no company without chart of account. The wizard will "
+"therefore not be executed."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_wizard_multi_chart
+msgid "Set Your Accounting Options"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_chart
+msgid "Account chart"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,reference_type:0
+msgid "Payment Reference"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,style_overwrite:0
+msgid "Main Title 1 (bold, underlined)"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.balance:0
+#: report:account.central.journal:0
+msgid "Account Name"
+msgstr ""
+
+#. module: account
+#: help:account.fiscalyear.close,report_name:0
+msgid "Give name of the new entries"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_invoice_report
+msgid "Invoices Statistics"
+msgstr ""
+
+#. module: account
+#: field:account.account,exchange_rate:0
+msgid "Exchange Rate"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_paymentorderreconcilation0
+msgid "Bank statements are entered in the system."
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_reconcile.py:122
+#, python-format
+msgid "Reconcile Writeoff"
+msgstr ""
+
+#. module: account
+#: view:account.account.template:0
+#: view:account.chart.template:0
+msgid "Account Template"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Closing Balance"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,visible:0
+msgid "Can be Visible?"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_journal_select
+msgid "Account Journal Select"
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Credit Notes"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+#: model:ir.actions.act_window,name:account.action_account_manual_reconcile
+msgid "Journal Items to Reconcile"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_tax_template
+msgid "Templates for Taxes"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.period:0
+msgid "The name of the period must be unique per company!"
+msgstr ""
+
+#. module: account
+#: help:wizard.multi.charts.accounts,currency_id:0
+msgid "Currency as per company's country."
+msgstr ""
+
+#. module: account
+#: view:account.tax:0
+msgid "Tax Computation"
+msgstr ""
+
+#. module: account
+#: view:wizard.multi.charts.accounts:0
+msgid "res_config_contents"
+msgstr ""
+
+#. module: account
+#: help:account.chart.template,visible:0
+msgid ""
+"Set this to False if you don't want this template to be used actively in the "
+"wizard that generate Chart of Accounts from templates, this is useful when "
+"you want to generate accounts of this template only when loading its child "
+"template."
+msgstr ""
+
+#. module: account
+#: view:account.use.model:0
+msgid "Create Entries From Models"
+msgstr ""
+
+#. module: account
+#: field:account.account,reconcile:0
+#: field:account.account.template,reconcile:0
+msgid "Allow Reconciliation"
+msgstr ""
+
+#. module: account
+#: constraint:account.account:0
+msgid ""
+"Error!\n"
+"You cannot create an account which has parent account of different company."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:658
+#, python-format
+msgid ""
+"Cannot find any account journal of %s type for this company.\n"
+"\n"
+"You can create one in the menu: \n"
+"Configuration\\Journals\\Journals."
+msgstr ""
+
+#. module: account
+#: report:account.vat.declaration:0
+msgid "Based On"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3204
+#, python-format
+msgid "ECNJ"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_analytic_cost_ledger_journal_report
+msgid "Account Analytic Cost Ledger For Journal Report"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_model_form
+msgid "Recurring Models"
+msgstr ""
+
+#. module: account
+#: view:account.tax:0
+msgid "Children/Sub Taxes"
+msgstr ""
+
+#. module: account
+#: xsl:account.transfer:0
+msgid "Change"
+msgstr ""
+
+#. module: account
+#: field:account.journal,type_control_ids:0
+msgid "Type Controls"
+msgstr ""
+
+#. module: account
+#: help:account.journal,default_credit_account_id:0
+msgid "It acts as a default account for credit amount"
+msgstr ""
+
+#. module: account
+#: view:cash.box.out:0
+msgid "Describe why you take money from the cash register:"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice,state:0
+#: selection:account.invoice.report,state:0
+#: selection:report.invoice.created,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,group_proforma_invoices:0
+msgid "Allows you to put invoices in pro-forma state."
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+msgid "Unit Of Currency Definition"
+msgstr ""
+
+#. module: account
+#: help:account.partner.ledger,amount_currency:0
+#: help:account.report.general.ledger,amount_currency:0
+msgid ""
+"It adds the currency column on report if the currency differs from the "
+"company currency."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3394
+#, python-format
+msgid "Purchase Tax %.2f%%"
+msgstr ""
+
+#. module: account
+#: view:account.subscription.generate:0
+#: model:ir.actions.act_window,name:account.action_account_subscription_generate
+#: model:ir.ui.menu,name:account.menu_generate_subscription
+msgid "Generate Entries"
+msgstr ""
+
+#. module: account
+#: help:account.vat.declaration,chart_tax_id:0
+msgid "Select Charts of Taxes"
+msgstr ""
+
+#. module: account
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,account_ids:0
+#: field:account.fiscal.position.template,account_ids:0
+msgid "Account Mapping"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Cancelled Invoice"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "My Invoices"
+msgstr ""
+
+#. module: account
+#: selection:account.bank.statement,state:0
+msgid "New"
+msgstr ""
+
+#. module: account
+#: view:wizard.multi.charts.accounts:0
+msgid "Sale Tax"
+msgstr ""
+
+#. module: account
+#: field:account.tax,ref_tax_code_id:0
+#: field:account.tax.template,ref_tax_code_id:0
+msgid "Refund Tax Code"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Invoice "
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,property_account_income:0
+msgid "Income Account on Product Template"
+msgstr ""
+
+#. module: account
+#: help:account.journal.period,state:0
+msgid ""
+"When journal period is created. The status is 'Draft'. If a report is "
+"printed it comes to 'Printed' status. When all transactions are done, it "
+"comes in 'Done' status."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3205
+#, python-format
+msgid "MISC"
+msgstr ""
+
+#. module: account
+#: field:account.fiscalyear.close,fy2_id:0
+msgid "New Fiscal Year"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: view:account.tax:0
+#: view:account.tax.template:0
+#: selection:account.vat.declaration,based_on:0
+#: model:ir.actions.act_window,name:account.act_res_partner_2_account_invoice_opened
+#: model:ir.actions.act_window,name:account.action_invoice_tree
+#: model:ir.actions.report.xml,name:account.account_invoices
+#: view:report.invoice.created:0
+#: field:res.partner,invoice_ids:0
+msgid "Invoices"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,expects_chart_of_accounts:0
+msgid "Check this box if this company is a legal entity."
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.conf_account_type_chk
+#: selection:account.bank.accounts.wizard,account_type:0
+msgid "Check"
+msgstr ""
+
+#. module: account
+#: view:account.aged.trial.balance:0
+#: view:account.analytic.balance:0
+#: view:account.analytic.chart:0
+#: view:account.analytic.cost.ledger:0
+#: view:account.analytic.cost.ledger.journal.report:0
+#: view:account.analytic.inverted.balance:0
+#: view:account.analytic.journal.report:0
+#: view:account.automatic.reconcile:0
+#: view:account.change.currency:0
+#: view:account.chart:0
+#: view:account.common.report:0
+#: view:account.config.settings:0
+#: view:account.fiscalyear.close:0
+#: view:account.fiscalyear.close.state:0
+#: view:account.invoice.cancel:0
+#: view:account.invoice.confirm:0
+#: view:account.invoice.refund:0
+#: view:account.journal.select:0
+#: view:account.move.bank.reconcile:0
+#: view:account.move.line.reconcile:0
+#: view:account.move.line.reconcile.select:0
+#: view:account.move.line.reconcile.writeoff:0
+#: view:account.move.line.unreconcile.select:0
+#: view:account.open.closed.fiscalyear:0
+#: view:account.period.close:0
+#: view:account.state.open:0
+#: view:account.subscription.generate:0
+#: view:account.tax.chart:0
+#: view:account.unreconcile:0
+#: view:account.use.model:0
+#: view:account.vat.declaration:0
+#: view:cash.box.in:0
+#: view:cash.box.out:0
+#: view:project.account.analytic.line:0
+#: view:validate.account.move:0
+#: view:validate.account.move.lines:0
+msgid "or"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Invoiced"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+msgid "Posted Journal Entries"
+msgstr ""
+
+#. module: account
+#: view:account.use.model:0
+msgid "Use Model"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,partner_bank_id:0
+msgid ""
+"Bank Account Number to which the invoice will be paid. A Company bank "
+"account if this is a Customer Invoice or Supplier Refund, otherwise a "
+"Partner bank account number."
+msgstr ""
+
+#. module: account
+#: field:account.partner.reconcile.process,today_reconciled:0
+msgid "Partners Reconciled Today"
+msgstr ""
+
+#. module: account
+#: help:account.invoice.tax,tax_code_id:0
+msgid "The tax basis of the tax declaration."
+msgstr ""
+
+#. module: account
+#: view:account.addtmpl.wizard:0
+msgid "Add"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice,state:0
+#: report:account.overdue:0
+#: model:mail.message.subtype,name:account.mt_invoice_paid
+msgid "Paid"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,tax_line:0
+msgid "Tax Lines"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,statement_id:0
+msgid "The bank statement used for bank reconciliation"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_suppliercustomerinvoice0
+msgid "Draft invoices are validated. "
+msgstr ""
+
+#. module: account
+#: help:account.tax,account_collected_id:0
+msgid ""
+"Set the account that will be set by default on invoice tax lines for "
+"invoices. Leave empty to use the expense account."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:890
+#, python-format
+msgid "Opening Period"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+msgid "Journal Entries to Review"
+msgstr ""
+
+#. module: account
+#: selection:res.company,tax_calculation_rounding_method:0
+msgid "Round Globally"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: view:account.subscription:0
+msgid "Compute"
+msgstr ""
+
+#. module: account
+#: field:account.tax,type_tax_use:0
+msgid "Tax Application"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:922
+#, python-format
+msgid ""
+"Please verify the price of the invoice !\n"
+"The encoded total does not match the computed total."
+msgstr ""
+
+#. module: account
+#: field:account.account,active:0
+#: field:account.analytic.journal,active:0
+#: field:account.fiscal.position,active:0
+#: field:account.journal.period,active:0
+#: field:account.payment.term,active:0
+#: field:account.tax,active:0
+msgid "Active"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: field:account.journal,cash_control:0
+msgid "Cash Control"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.balance,date2:0
+#: field:account.analytic.cost.ledger,date2:0
+#: field:account.analytic.cost.ledger.journal.report,date2:0
+#: field:account.analytic.inverted.balance,date2:0
+#: field:account.analytic.journal.report,date2:0
+msgid "End of period"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_supplierpaymentorder0
+msgid "Payment of invoices"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.invoice:0
+msgid "Invoice Number must be unique per Company!"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_receivable_graph
+msgid "Balance by Type of Account"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_cash_statement.py:301
+#, python-format
+msgid "There is no %s Account on the journal %s."
+msgstr ""
+
+#. module: account
+#: model:res.groups,name:account.group_account_user
+msgid "Accountant"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_treasury_report_all
+msgid ""
+"From this view, have an analysis of your treasury. It sums the balance of "
+"every accounting entries made on liquidity accounts per period."
+msgstr ""
+
+#. module: account
+#: model:res.groups,name:account.group_account_manager
+msgid "Financial Manager"
+msgstr ""
+
+#. module: account
+#: field:account.journal,group_invoice_lines:0
+msgid "Group Invoice Lines"
+msgstr ""
+
+#. module: account
+#: view:account.automatic.reconcile:0
+msgid "Close"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement.line,move_ids:0
+msgid "Moves"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,details_ids:0
+#: view:account.journal:0
+msgid "CashBox Lines"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_vat_declaration
+msgid "Account Vat Declaration"
+msgstr "Declaración de Impuestos"
+
+#. module: account
+#: help:account.config.settings,module_account_accountant:0
+msgid ""
+"If you do not check this box, you will be able to do invoicing & payments, "
+"but not accounting (Journal Items, Chart of Accounts, ...)"
+msgstr ""
+
+#. module: account
+#: view:account.period:0
+msgid "To Close"
+msgstr ""
+
+#. module: account
+#: field:account.treasury.report,date:0
+msgid "Beginning of Period Date"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.account_template_folder
+msgid "Templates"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,name:0
+msgid "Tax Description"
+msgstr ""
+
+#. module: account
+#: field:account.tax,child_ids:0
+msgid "Child Tax Accounts"
+msgstr ""
+
+#. module: account
+#: help:account.tax,price_include:0
+#: help:account.tax.template,price_include:0
+msgid ""
+"Check this if the price you use on the product and invoices includes this "
+"tax."
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.balance:0
+msgid "Analytic Balance -"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: field:account.aged.trial.balance,target_move:0
+#: field:account.balance.report,target_move:0
+#: report:account.central.journal:0
+#: field:account.central.journal,target_move:0
+#: field:account.chart,target_move:0
+#: field:account.common.account.report,target_move:0
+#: field:account.common.journal.report,target_move:0
+#: field:account.common.partner.report,target_move:0
+#: field:account.common.report,target_move:0
+#: report:account.general.journal:0
+#: field:account.general.journal,target_move:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,target_move:0
+#: field:account.partner.ledger,target_move:0
+#: field:account.print.journal,target_move:0
+#: field:account.report.general.ledger,target_move:0
+#: field:account.tax.chart,target_move:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:account.vat.declaration,target_move:0
+#: field:accounting.report,target_move:0
+msgid "Target Moves"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1454
+#, python-format
+msgid ""
+"Move cannot be deleted if linked to an invoice. (Invoice: %s - Move ID:%s)"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: help:account.cashbox.line,number_opening:0
+msgid "Opening Unit Numbers"
+msgstr ""
+
+#. module: account
+#: field:account.subscription,period_type:0
+msgid "Period Type"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: field:account.invoice,payment_ids:0
+#: selection:account.vat.declaration,based_on:0
+msgid "Payments"
+msgstr ""
+
+#. module: account
+#: field:account.subscription.line,move_id:0
+msgid "Entry"
+msgstr ""
+
+#. module: account
+#: field:account.tax,python_compute_inv:0
+#: field:account.tax.template,python_compute_inv:0
+msgid "Python Code (reverse)"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,payment_term:0
+#: model:ir.actions.act_window,name:account.action_payment_term_form
+#: model:ir.ui.menu,name:account.menu_action_payment_term_form
+msgid "Payment Terms"
+msgstr ""
+
+#. module: account
+#: help:account.chart.template,complete_tax_set:0
+msgid ""
+"This boolean helps you to choose if you want to propose to the user to "
+"encode the sale and purchase rates or choose from list of taxes. This last "
+"choice assumes that the set of tax defined on this template is complete"
+msgstr ""
+
+#. module: account
+#: view:account.financial.report:0
+#: field:account.financial.report,children_ids:0
+#: model:ir.model,name:account.model_account_financial_report
+msgid "Account Report"
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,year:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,year:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,year:0
+#: view:report.account.sales:0
+#: field:report.account.sales,name:0
+#: view:report.account_type.sales:0
+#: field:report.account_type.sales,name:0
+msgid "Year"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,sent:0
+msgid "It indicates that the invoice has been sent."
+msgstr ""
+
+#. module: account
+#: field:account.tax.template,description:0
+msgid "Internal Name"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1185
+#, python-format
+msgid ""
+"Cannot create an automatic sequence for this piece.\n"
+"Put a sequence in the journal definition for automatic numbering or create a "
+"sequence manually for this piece."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Pro Forma Invoice "
+msgstr ""
+
+#. module: account
+#: selection:account.subscription,period_type:0
+msgid "month"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+#: field:account.partner.reconcile.process,next_partner_id:0
+msgid "Next Partner to Reconcile"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,account_id:0
+#: field:account.move.line,tax_code_id:0
+msgid "Tax Account"
+msgstr ""
+
+#. module: account
+#: model:account.financial.report,name:account.account_financial_report_balancesheet0
+#: model:ir.actions.act_window,name:account.action_account_report_bs
+#: model:ir.ui.menu,name:account.menu_account_report_bs
+msgid "Balance Sheet"
+msgstr ""
+
+#. module: account
+#: selection:account.account.type,report_type:0
+#: code:addons/account/account.py:188
+#, python-format
+msgid "Profit & Loss (Income account)"
+msgstr ""
+
+#. module: account
+#: field:account.journal,allow_date:0
+msgid "Check Date in Period"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.final_accounting_reports
+msgid "Accounting Reports"
+msgstr ""
+
+#. module: account
+#: field:account.move,line_id:0
+#: view:analytic.entries.report:0
+#: model:ir.actions.act_window,name:account.action_move_line_form
+msgid "Entries"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "This Period"
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Compute Code (if type=code)"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:508
+#, python-format
+msgid ""
+"Cannot find a chart of accounts for this company, you should create one."
+msgstr ""
+
+#. module: account
+#: selection:account.analytic.journal,type:0
+#: view:account.config.settings:0
+#: view:account.journal:0
+#: selection:account.journal,type:0
+#: view:account.model:0
+#: selection:account.tax,type_tax_use:0
+#: view:account.tax.template:0
+#: selection:account.tax.template,type_tax_use:0
+msgid "Sale"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_automatic_reconcile
+msgid "Automatic Reconcile"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+#: field:account.bank.statement.line,amount:0
+#: report:account.invoice:0
+#: field:account.invoice.line,price_subtotal:0
+#: field:account.invoice.tax,amount:0
+#: view:account.move:0
+#: field:account.move,amount:0
+#: view:account.move.line:0
+#: field:account.tax,amount:0
+#: field:account.tax.template,amount:0
+#: xsl:account.transfer:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,amount:0
+#: field:cash.box.in,amount:0
+#: field:cash.box.out,amount:0
+msgid "Amount"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_fiscalyear_close.py:41
+#, python-format
+msgid "End of Fiscal Year Entry"
+msgstr ""
+
+#. module: account
+#: model:process.transition,name:account.process_transition_customerinvoice0
+#: model:process.transition,name:account.process_transition_paymentorderreconcilation0
+#: model:process.transition,name:account.process_transition_statemententries0
+#: model:process.transition,name:account.process_transition_suppliercustomerinvoice0
+#: model:process.transition,name:account.process_transition_suppliervalidentries0
+#: model:process.transition,name:account.process_transition_validentries0
+msgid "Validation"
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement,message_summary:0
+#: help:account.invoice,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
+#: field:account.tax,child_depend:0
+#: field:account.tax.template,child_depend:0
+msgid "Tax on Children"
+msgstr ""
+
+#. module: account
+#: help:res.partner,last_reconciliation_date:0
+msgid ""
+"Date on which the partner accounting entries were fully reconciled last "
+"time. It differs from the date of the last reconciliation made for this "
+"partner, as here we depict the fact that nothing more was to be reconciled "
+"at this date. This can be achieved in 2 ways: either the last debit/credit "
+"entry was reconciled, either the user pressed the button \"Fully "
+"Reconciled\" in the manual reconciliation process"
+msgstr ""
+
+#. module: account
+#: field:account.journal,update_posted:0
+msgid "Allow Cancelling Entries"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_use_model.py:44
+#, python-format
+msgid ""
+"Maturity date of entry line generated by model line '%s' is based on partner "
+"payment term!\n"
+"Please define partner on it!"
+msgstr ""
+
+#. module: account
+#: field:account.tax.code,sign:0
+msgid "Coefficent for parent"
+msgstr ""
+
+#. module: account
+#: report:account.partner.balance:0
+msgid "(Account/Partner) Name"
+msgstr ""
+
+#. module: account
+#: field:account.partner.reconcile.process,progress:0
+msgid "Progress"
+msgstr ""
+
+#. module: account
+#: field:wizard.multi.charts.accounts,bank_accounts_id:0
+msgid "Cash and Banks"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_installer
+msgid "account.installer"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Recompute taxes and total"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1116
+#, python-format
+msgid "You cannot modify/delete a journal with entries for this period."
+msgstr ""
+
+#. module: account
+#: field:account.tax.template,include_base_amount:0
+msgid "Include in Base Amount"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,supplier_invoice_number:0
+msgid "Supplier Invoice Number"
+msgstr ""
+
+#. module: account
+#: help:account.payment.term.line,days:0
+msgid ""
+"Number of days to add before computation of the day of month.If Date=15/01, "
+"Number of Days=22, Day of Month=-1, then the due date is 28/02."
+msgstr ""
+
+#. module: account
+#: view:account.payment.term.line:0
+msgid "Amount Computation"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1105
+#, python-format
+msgid "You can not add/modify entries in a closed period %s of journal %s."
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+msgid "Entry Controls"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.chart:0
+#: view:project.account.analytic.line:0
+msgid "(Keep empty to open the current situation)"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.balance,date1:0
+#: field:account.analytic.cost.ledger,date1:0
+#: field:account.analytic.cost.ledger.journal.report,date1:0
+#: field:account.analytic.inverted.balance,date1:0
+#: field:account.analytic.journal.report,date1:0
+msgid "Start of period"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.account_type_asset_view1
+msgid "Asset View"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_common_account_report
+msgid "Account Common Account Report"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+#: view:account.bank.statement:0
+#: selection:account.bank.statement,state:0
+#: view:account.fiscalyear:0
+#: selection:account.fiscalyear,state:0
+#: selection:account.invoice,state:0
+#: selection:account.invoice.report,state:0
+#: selection:account.period,state:0
+#: selection:report.invoice.created,state:0
+msgid "Open"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+#: model:ir.ui.menu,name:account.menu_analytic_accounting
+msgid "Analytic Accounting"
+msgstr ""
+
+#. module: account
+#: help:account.payment.term.line,value:0
+msgid ""
+"Select here the kind of valuation related to this payment term line. Note "
+"that you should have your last line with the type 'Balance' to ensure that "
+"the whole amount will be treated."
+msgstr ""
+
+#. module: account
+#: field:account.partner.ledger,initial_balance:0
+#: field:account.report.general.ledger,initial_balance:0
+msgid "Include Initial Balances"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.tax:0
+msgid "Tax Codes"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice,type:0
+#: selection:account.invoice.report,type:0
+#: selection:report.invoice.created,type:0
+msgid "Customer Refund"
+msgstr ""
+
+#. module: account
+#: field:account.tax,ref_tax_sign:0
+#: field:account.tax,tax_sign:0
+#: field:account.tax.template,ref_tax_sign:0
+#: field:account.tax.template,tax_sign:0
+msgid "Tax Code Sign"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_report_invoice_created
+msgid "Report of Invoices Created within Last 15 days"
+msgstr ""
+
+#. module: account
+#: field:account.fiscalyear,end_journal_period_id:0
+msgid "End of Year Entries Journal"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Draft Refund "
+msgstr ""
+
+#. module: account
+#: view:cash.box.in:0
+msgid "Fill in this form if you put money in the cash register:"
+msgstr ""
+
+#. module: account
+#: view:account.payment.term.line:0
+#: field:account.payment.term.line,value_amount:0
+msgid "Amount To Pay"
+msgstr ""
+
+#. module: account
+#: help:account.partner.reconcile.process,to_reconcile:0
+msgid ""
+"This is the remaining partners for who you should check if there is "
+"something to reconcile or not. This figure already count the current partner "
+"as reconciled."
+msgstr ""
+
+#. module: account
+#: view:account.subscription.line:0
+msgid "Subscription lines"
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,quantity:0
+msgid "Products Quantity"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+#: selection:account.entries.report,move_state:0
+#: view:account.move:0
+#: selection:account.move,state:0
+#: view:account.move.line:0
+msgid "Unposted"
+msgstr ""
+
+#. module: account
+#: view:account.change.currency:0
+#: model:ir.actions.act_window,name:account.action_account_change_currency
+#: model:ir.model,name:account.model_account_change_currency
+msgid "Change Currency"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_accountingentries0
+#: model:process.node,note:account.process_node_supplieraccountingentries0
+msgid "Accounting entries."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Payment Date"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: field:account.bank.statement,opening_details_ids:0
+msgid "Opening Cashbox Lines"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+#: model:ir.actions.act_window,name:account.action_account_analytic_account_form
+#: model:ir.ui.menu,name:account.account_analytic_def_account
+msgid "Analytic Accounts"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Customer Invoices And Refunds"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.line,amount_currency:0
+#: field:account.entries.report,amount_currency:0
+#: field:account.model.line,amount_currency:0
+#: field:account.move.line,amount_currency:0
+msgid "Amount Currency"
+msgstr ""
+
+#. module: account
+#: selection:res.company,tax_calculation_rounding_method:0
+msgid "Round per Line"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.balance:0
+#: report:account.analytic.account.inverted.balance:0
+#: report:account.analytic.account.quantity_cost_ledger:0
+#: report:account.invoice:0
+#: field:account.invoice.line,quantity:0
+#: field:account.model.line,quantity:0
+#: field:account.move.line,quantity:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,unit_amount:0
+#: field:report.account.sales,quantity:0
+#: field:report.account_type.sales,quantity:0
+msgid "Quantity"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Number (Move)"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,style_overwrite:0
+msgid "Normal Text"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_paymentreconcile0
+msgid "Payment entries are the second input of the reconciliation."
+msgstr ""
+
+#. module: account
+#: help:res.partner,property_supplier_payment_term:0
+msgid ""
+"This payment term will be used instead of the default one for purchase "
+"orders and supplier invoices"
+msgstr ""
+
+#. module: account
+#: help:account.automatic.reconcile,power:0
+msgid ""
+"Number of partial amounts that can be combined to find a balance point can "
+"be chosen as the power of the automatic reconciliation"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_report_aged_partner_balance.py:56
+#, python-format
+msgid "You must set a period length greater than 0."
+msgstr ""
+
+#. module: account
+#: view:account.fiscal.position.template:0
+#: field:account.fiscal.position.template,name:0
+msgid "Fiscal Position Template"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Draft Refund"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.chart:0
+#: view:account.chart:0
+#: view:account.tax.chart:0
+msgid "Open Charts"
+msgstr ""
+
+#. module: account
+#: field:account.central.journal,amount_currency:0
+#: field:account.common.journal.report,amount_currency:0
+#: field:account.general.journal,amount_currency:0
+#: field:account.partner.ledger,amount_currency:0
+#: field:account.print.journal,amount_currency:0
+#: field:account.report.general.ledger,amount_currency:0
+msgid "With Currency"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Open CashBox"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,style_overwrite:0
+msgid "Automatic formatting"
+msgstr ""
+
+#. module: account
+#: view:account.move.line.reconcile:0
+msgid "Reconcile With Write-Off"
+msgstr ""
+
+#. module: account
+#: constraint:account.move.line:0
+msgid "You cannot create journal items on an account of type view."
+msgstr ""
+
+#. module: account
+#: selection:account.payment.term.line,value:0
+#: selection:account.tax,type:0
+msgid "Fixed Amount"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1056
+#, python-format
+msgid "You cannot change the tax, you should remove and recreate lines."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_automatic_reconcile
+msgid "Account Automatic Reconcile"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: view:account.move.line:0
+msgid "Journal Item"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_fiscalyear_close
+#: model:ir.ui.menu,name:account.menu_wizard_fy_close
+msgid "Generate Opening Entries"
+msgstr ""
+
+#. module: account
+#: help:account.tax,type:0
+msgid "The computation method for the tax amount."
+msgstr ""
+
+#. module: account
+#: view:account.payment.term.line:0
+msgid "Due Date Computation"
+msgstr ""
+
+#. module: account
+#: field:report.invoice.created,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.journal:0
+#: field:account.analytic.journal.report,analytic_account_journal_id:0
+#: model:ir.actions.act_window,name:account.action_account_analytic_journal_form
+#: model:ir.ui.menu,name:account.account_def_analytic_journal
+msgid "Analytic Journals"
+msgstr ""
+
+#. module: account
+#: field:account.account,child_id:0
+msgid "Child Accounts"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1117
+#, python-format
+msgid "Move name (id): %s (%s)"
+msgstr ""
+
+#. module: account
+#: view:account.move.line.reconcile:0
+#: code:addons/account/account_move_line.py:879
+#, python-format
+msgid "Write-Off"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "entries"
+msgstr ""
+
+#. module: account
+#: field:res.partner,debit:0
+msgid "Total Payable"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.data_account_type_income
+#: model:account.financial.report,name:account.account_financial_report_income0
+msgid "Income"
+msgstr ""
+
+#. module: account
+#: selection:account.bank.statement.line,type:0
+#: view:account.config.settings:0
+#: view:account.invoice:0
+#: view:account.invoice.report:0
+#: code:addons/account/account_invoice.py:390
+#, python-format
+msgid "Supplier"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "March"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.journal:0
+msgid "Account n°"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:95
+#, python-format
+msgid "Free Reference"
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,result_selection:0
+#: selection:account.common.partner.report,result_selection:0
+#: selection:account.partner.balance,result_selection:0
+#: selection:account.partner.ledger,result_selection:0
+#: report:account.third_party_ledger:0
+#: code:addons/account/report/account_partner_balance.py:301
+#: code:addons/account/report/account_partner_ledger.py:276
+#, python-format
+msgid "Receivable and Payable Accounts"
+msgstr ""
+
+#. module: account
+#: field:account.fiscal.position.account.template,position_id:0
+msgid "Fiscal Mapping"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "Select Company"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_state_open
+#: model:ir.model,name:account.model_account_state_open
+msgid "Account State Open"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.quantity_cost_ledger:0
+msgid "Max Qty:"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: model:ir.actions.act_window,name:account.action_account_invoice_refund
+msgid "Refund Invoice"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_entries_report_all
+msgid ""
+"From this view, have an analysis of your different financial accounts. The "
+"document shows your debit and credit taking in consideration some criteria "
+"you can choose by using the search tool."
+msgstr ""
+
+#. module: account
+#: help:account.partner.reconcile.process,progress:0
+msgid ""
+"Shows you the progress made today on the reconciliation process. Given by \n"
+"Partners Reconciled Today \\ (Remaining Partners + Partners Reconciled Today)"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,period_id:0
+#: field:account.invoice.report,period_id:0
+#: field:report.account.sales,period_id:0
+#: field:report.account_type.sales,period_id:0
+msgid "Force Period"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_form
+msgid ""
+"
\n"
+" Click to add an account.\n"
+"
\n"
+" An account is part of a ledger allowing your company\n"
+" to register all kinds of debit and credit transactions.\n"
+" Companies present their annual accounts in two main parts: "
+"the\n"
+" balance sheet and the income statement (profit and loss\n"
+" account). The annual accounts of a company are required by "
+"law\n"
+" to disclose a certain amount of information.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+#: field:account.invoice.report,nbr:0
+msgid "# of Lines"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "(update)"
+msgstr ""
+
+#. module: account
+#: field:account.aged.trial.balance,filter:0
+#: field:account.balance.report,filter:0
+#: field:account.central.journal,filter:0
+#: field:account.common.account.report,filter:0
+#: field:account.common.journal.report,filter:0
+#: field:account.common.partner.report,filter:0
+#: field:account.common.report,filter:0
+#: field:account.general.journal,filter:0
+#: field:account.partner.balance,filter:0
+#: field:account.partner.ledger,filter:0
+#: field:account.print.journal,filter:0
+#: field:account.report.general.ledger,filter:0
+#: field:account.vat.declaration,filter:0
+#: field:accounting.report,filter:0
+#: field:accounting.report,filter_cmp:0
+msgid "Filter by"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:2334
+#, python-format
+msgid "You have a wrong expression \"%(...)s\" in your model !"
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Compute Code for Taxes Included Prices"
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement,balance_end:0
+msgid "Balance as calculated based on Starting Balance and transaction lines"
+msgstr ""
+
+#. module: account
+#: field:account.journal,loss_account_id:0
+msgid "Loss Account"
+msgstr ""
+
+#. module: account
+#: field:account.tax,account_collected_id:0
+#: field:account.tax.template,account_collected_id:0
+msgid "Invoice Tax Account"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_general_journal
+#: model:ir.model,name:account.model_account_general_journal
+msgid "Account General Journal"
+msgstr ""
+
+#. module: account
+#: help:account.move,state:0
+msgid ""
+"All manually created new journal entries are usually in the status "
+"'Unposted', but you can set the option to skip that status on the related "
+"journal. In that case, they will behave as journal entries automatically "
+"created by the system on document validation (invoices, bank statements...) "
+"and will be created in 'Posted' status."
+msgstr ""
+
+#. module: account
+#: field:account.payment.term.line,days:0
+msgid "Number of Days"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1357
+#, python-format
+msgid ""
+"You cannot validate this journal entry because account \"%s\" does not "
+"belong to chart of accounts \"%s\"."
+msgstr ""
+
+#. module: account
+#: view:account.financial.report:0
+msgid "Report"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_fiscal_position_tax_template
+msgid "Template Tax Fiscal Position"
+msgstr ""
+
+#. module: account
+#: help:account.tax,name:0
+msgid "This name will be displayed on reports"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.quantity_cost_ledger:0
+msgid "Printing date"
+msgstr ""
+
+#. module: account
+#: selection:account.account.type,close_method:0
+#: selection:account.tax,type:0
+#: selection:account.tax.template,type:0
+msgid "None"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_invoice_tree3
+#: model:ir.ui.menu,name:account.menu_action_invoice_tree3
+msgid "Customer Refunds"
+msgstr ""
+
+#. module: account
+#: field:account.account,foreign_balance:0
+msgid "Foreign Balance"
+msgstr ""
+
+#. module: account
+#: field:account.journal.period,name:0
+msgid "Journal-Period Name"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,factor_base:0
+msgid "Multipication factor for Base code"
+msgstr ""
+
+#. module: account
+#: help:account.journal,company_id:0
+msgid "Company related to this journal"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,group_multi_currency:0
+msgid "Allows you multi currency environment"
+msgstr ""
+
+#. module: account
+#: view:account.subscription:0
+msgid "Running Subscription"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Fiscal Position Remark :"
+msgstr ""
+
+#. module: account
+#: view:analytic.entries.report:0
+#: model:ir.actions.act_window,name:account.action_analytic_entries_report
+#: model:ir.ui.menu,name:account.menu_action_analytic_entries_report
+msgid "Analytic Entries Analysis"
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,direction_selection:0
+msgid "Past"
+msgstr ""
+
+#. module: account
+#: help:res.partner.bank,journal_id:0
+msgid ""
+"This journal will be created automatically for this bank account when you "
+"save the record"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Analytic Entry"
+msgstr ""
+
+#. module: account
+#: view:res.company:0
+#: field:res.company,overdue_msg:0
+msgid "Overdue Payments Message"
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,date_created:0
+msgid "Date Created"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_analytic_account_line_extended_form
+msgid "account.analytic.line.extended"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_supplierreconcilepaid0
+msgid ""
+"As soon as the reconciliation is done, the invoice's state turns to “done” "
+"(i.e. paid) in the system."
+msgstr ""
+
+#. module: account
+#: view:account.chart.template:0
+#: field:account.chart.template,account_root_id:0
+msgid "Root Account"
+msgstr ""
+
+#. module: account
+#: field:res.partner,last_reconciliation_date:0
+msgid "Latest Reconciliation Date"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+#: model:ir.model,name:account.model_account_analytic_line
+msgid "Analytic Line"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_action_model_form
+msgid "Models"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:1124
+#, python-format
+msgid ""
+"You cannot cancel an invoice which is partially paid. You need to "
+"unreconcile related payment entries first."
+msgstr ""
+
+#. module: account
+#: field:product.template,taxes_id:0
+msgid "Customer Taxes"
+msgstr ""
+
+#. module: account
+#: help:account.model,name:0
+msgid "This is a model for recurring accounting entries"
+msgstr ""
+
+#. module: account
+#: field:wizard.multi.charts.accounts,sale_tax_rate:0
+msgid "Sales Tax(%)"
+msgstr ""
+
+#. module: account
+#: view:account.tax.code:0
+msgid "Reporting Configuration"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_invoice_tree4
+msgid ""
+"
\n"
+" Click to register a refund you received from a supplier.\n"
+"
\n"
+" Instead of creating the supplier refund manually, you can "
+"generate\n"
+" refunds and reconcile them directly from the related "
+"supplier invoice.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: field:account.tax,type:0
+#: field:account.tax.template,type:0
+msgid "Tax Type"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_template_form
+#: model:ir.ui.menu,name:account.menu_action_account_template_form
+msgid "Account Templates"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,complete_tax_set:0
+#: help:wizard.multi.charts.accounts,complete_tax_set:0
+msgid ""
+"This boolean helps you to choose if you want to propose to the user to "
+"encode the sales and purchase rates or use the usual m2o fields. This last "
+"choice assumes that the set of tax defined for the chosen template is "
+"complete"
+msgstr ""
+
+#. module: account
+#: report:account.vat.declaration:0
+msgid "Tax Statement"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Open and Paid Invoices"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,display_detail:0
+msgid "Display children flat"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "Bank & Cash"
+msgstr ""
+
+#. module: account
+#: help:account.fiscalyear.close.state,fy_id:0
+msgid "Select a fiscal year to close"
+msgstr ""
+
+#. module: account
+#: help:account.chart.template,tax_template_ids:0
+msgid "List of all the taxes that have to be installed by the wizard"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.report.xml,name:account.account_intracom
+msgid "IntraCom"
+msgstr ""
+
+#. module: account
+#: view:account.move.line.reconcile.writeoff:0
+msgid "Information addendum"
+msgstr ""
+
+#. module: account
+#: field:account.chart,fiscalyear:0
+#: view:account.fiscalyear:0
+msgid "Fiscal year"
+msgstr ""
+
+#. module: account
+#: view:account.move.reconcile:0
+msgid "Partial Reconcile Entries"
+msgstr ""
+
+#. module: account
+#: view:account.aged.trial.balance:0
+#: view:account.analytic.balance:0
+#: view:account.analytic.chart:0
+#: view:account.analytic.cost.ledger:0
+#: view:account.analytic.cost.ledger.journal.report:0
+#: view:account.analytic.inverted.balance:0
+#: view:account.analytic.journal.report:0
+#: view:account.automatic.reconcile:0
+#: view:account.change.currency:0
+#: view:account.chart:0
+#: view:account.common.report:0
+#: view:account.config.settings:0
+#: view:account.fiscalyear.close:0
+#: view:account.fiscalyear.close.state:0
+#: view:account.invoice.cancel:0
+#: view:account.invoice.confirm:0
+#: view:account.invoice.refund:0
+#: view:account.journal.select:0
+#: view:account.move.bank.reconcile:0
+#: view:account.move.line.reconcile:0
+#: view:account.move.line.reconcile.select:0
+#: view:account.move.line.reconcile.writeoff:0
+#: view:account.move.line.unreconcile.select:0
+#: view:account.period.close:0
+#: view:account.state.open:0
+#: view:account.subscription.generate:0
+#: view:account.tax.chart:0
+#: view:account.unreconcile:0
+#: view:account.use.model:0
+#: view:account.vat.declaration:0
+#: view:cash.box.in:0
+#: view:cash.box.out:0
+#: view:project.account.analytic.line:0
+#: view:validate.account.move:0
+#: view:validate.account.move.lines:0
+msgid "Cancel"
+msgstr ""
+
+#. module: account
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
+#: model:account.account.type,name:account.data_account_type_receivable
+#: selection:account.entries.report,type:0
+msgid "Receivable"
+msgstr ""
+
+#. module: account
+#: constraint:account.move.line:0
+msgid "You cannot create journal items on closed account."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:633
+#, python-format
+msgid "Invoice line account's company and invoice's compnay does not match."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Other Info"
+msgstr ""
+
+#. module: account
+#: field:account.journal,default_credit_account_id:0
+msgid "Default Credit Account"
+msgstr ""
+
+#. module: account
+#: help:account.analytic.line,currency_id:0
+msgid "The related account currency if not equal to the company one."
+msgstr ""
+
+#. module: account
+#: code:addons/account/installer.py:69
+#, python-format
+msgid "Custom"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+msgid "Current"
+msgstr ""
+
+#. module: account
+#: field:account.journal,cashbox_line_ids:0
+msgid "CashBox"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.account_type_cash_equity
+#: model:account.account.type,name:account.conf_account_type_equity
+msgid "Equity"
+msgstr ""
+
+#. module: account
+#: field:account.journal,internal_account_id:0
+msgid "Internal Transfers Account"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/pos_box.py:32
+#, python-format
+msgid "Please check that the field 'Journal' is set on the Bank Statement"
+msgstr ""
+
+#. module: account
+#: selection:account.tax,type:0
+msgid "Percentage"
+msgstr ""
+
+#. module: account
+#: selection:account.config.settings,tax_calculation_rounding_method:0
+msgid "Round globally"
+msgstr ""
+
+#. module: account
+#: selection:account.report.general.ledger,sortby:0
+msgid "Journal & Partner"
+msgstr ""
+
+#. module: account
+#: field:account.automatic.reconcile,power:0
+msgid "Power"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3465
+#, python-format
+msgid "Cannot generate an unused journal code."
+msgstr ""
+
+#. module: account
+#: view:project.account.analytic.line:0
+msgid "View Account Analytic Lines"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,internal_number:0
+#: field:report.invoice.created,number:0
+msgid "Invoice Number"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,difference:0
+msgid "Difference"
+msgstr ""
+
+#. module: account
+#: help:account.tax,include_base_amount:0
+msgid ""
+"Indicates if the amount of tax must be included in the base amount for the "
+"computation of the next taxes"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_partner_reconcile
+msgid "Reconciliation: Go to Next Partner"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_analytic_invert_balance
+#: model:ir.actions.report.xml,name:account.account_analytic_account_inverted_balance
+msgid "Inverted Analytic Balance"
+msgstr ""
+
+#. module: account
+#: field:account.tax.template,applicable_type:0
+msgid "Applicable Type"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,date_due:0
+msgid ""
+"If you use payment terms, the due date will be computed automatically at the "
+"generation of accounting entries. The payment term may compute several due "
+"dates, for example 50% now and 50% in one month, but if you want to force a "
+"due date, make sure that the payment term is not set on the invoice. If you "
+"keep the payment term and the due date empty, it means direct payment."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:414
+#, python-format
+msgid ""
+"There is no opening/closing period defined, please create one to set the "
+"initial balance."
+msgstr ""
+
+#. module: account
+#: help:account.tax.template,sequence:0
+msgid ""
+"The sequence field is used to order the taxes lines from lower sequences to "
+"higher ones. The order is important if you have a tax that has several tax "
+"children. In this case, the evaluation order is important."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1448
+#: code:addons/account/account.py:1453
+#: code:addons/account/account.py:1482
+#: code:addons/account/account.py:1489
+#: code:addons/account/account_invoice.py:1015
+#: code:addons/account/account_move_line.py:1005
+#: code:addons/account/wizard/account_automatic_reconcile.py:148
+#: code:addons/account/wizard/account_fiscalyear_close.py:88
+#: code:addons/account/wizard/account_fiscalyear_close.py:99
+#: code:addons/account/wizard/account_fiscalyear_close.py:102
+#: code:addons/account/wizard/account_report_aged_partner_balance.py:56
+#: code:addons/account/wizard/account_report_aged_partner_balance.py:58
+#, python-format
+msgid "User Error!"
+msgstr ""
+
+#. module: account
+#: view:account.open.closed.fiscalyear:0
+msgid "Discard"
+msgstr ""
+
+#. module: account
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
+#: view:account.journal:0
+msgid "Liquidity"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_analytic_journal_open_form
+#: model:ir.ui.menu,name:account.account_analytic_journal_entries
+msgid "Analytic Journal Items"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,has_default_company:0
+msgid "Has default company"
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear.close:0
+msgid ""
+"This wizard will generate the end of year journal entries of selected fiscal "
+"year. Note that you can run this wizard many times for the same fiscal year: "
+"it will simply replace the old opening entries with the new ones."
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_bank_and_cash
+msgid "Bank and Cash"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_analytic_entries_report
+msgid ""
+"From this view, have an analysis of your different analytic entries "
+"following the analytic account you defined matching your business need. Use "
+"the tool search to analyse information about analytic entries generated in "
+"the system."
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.journal:0
+msgid "The name of the journal must be unique per company !"
+msgstr ""
+
+#. module: account
+#: field:account.account.template,nocreate:0
+msgid "Optional create"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:686
+#, python-format
+msgid ""
+"You cannot change the owner company of an account that already contains "
+"journal items."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: selection:account.invoice,type:0
+#: selection:account.invoice.report,type:0
+#: code:addons/account/account_invoice.py:1160
+#: selection:report.invoice.created,type:0
+#, python-format
+msgid "Supplier Refund"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,move_line_ids:0
+msgid "Entry lines"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,centralisation:0
+msgid "Centralisation"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+#: view:account.account.template:0
+#: view:account.analytic.account:0
+#: view:account.analytic.journal:0
+#: view:account.analytic.line:0
+#: view:account.bank.statement:0
+#: view:account.chart.template:0
+#: view:account.entries.report:0
+#: view:account.financial.report:0
+#: view:account.fiscalyear:0
+#: view:account.invoice:0
+#: view:account.invoice.report:0
+#: view:account.journal:0
+#: view:account.model:0
+#: view:account.move:0
+#: view:account.move.line:0
+#: view:account.subscription:0
+#: view:account.tax.code.template:0
+#: view:analytic.entries.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1024
+#, python-format
+msgid ""
+"There is no period defined for this date: %s.\n"
+"Please create one."
+msgstr ""
+
+#. module: account
+#: field:account.analytic.line,product_uom_id:0
+#: field:account.invoice.line,uos_id:0
+#: field:account.move.line,product_uom_id:0
+msgid "Unit of Measure"
+msgstr ""
+
+#. module: account
+#: help:account.journal,group_invoice_lines:0
+msgid ""
+"If this box is checked, the system will try to group the accounting lines "
+"when generating them from invoices."
+msgstr ""
+
+#. module: account
+#: field:account.installer,has_default_company:0
+msgid "Has Default Company"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_sequence_fiscalyear
+msgid "account.sequence.fiscalyear"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.journal:0
+#: view:account.analytic.journal:0
+#: field:account.analytic.line,journal_id:0
+#: field:account.journal,analytic_journal_id:0
+#: model:ir.actions.act_window,name:account.action_account_analytic_journal
+#: model:ir.actions.report.xml,name:account.analytic_journal_print
+#: model:ir.model,name:account.model_account_analytic_journal
+#: model:ir.ui.menu,name:account.account_analytic_journal_print
+msgid "Analytic Journal"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "Reconciled"
+msgstr ""
+
+#. module: account
+#: constraint:account.payment.term.line:0
+msgid ""
+"Percentages for Payment Term Line must be between 0 and 1, Example: 0.02 for "
+"2%."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: field:account.invoice.tax,base:0
+msgid "Base"
+msgstr ""
+
+#. module: account
+#: field:account.model,name:0
+msgid "Model Name"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,property_account_expense_categ:0
+msgid "Expense Category Account"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.tax:0
+msgid "Tax Name must be unique per company!"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Cash Transactions"
+msgstr ""
+
+#. module: account
+#: view:account.unreconcile:0
+msgid ""
+"If you unreconcile transactions, you must also verify all the actions that "
+"are linked to those transactions because they will not be disabled"
+msgstr ""
+
+#. module: account
+#: view:account.account.template:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement.line,note:0
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,note:0
+#: field:account.fiscal.position.template,note:0
+msgid "Notes"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_analytic_entries_report
+msgid "Analytic Entries Statistics"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_analytic_line.py:142
+#: code:addons/account/account_move_line.py:955
+#, python-format
+msgid "Entries: "
+msgstr ""
+
+#. module: account
+#: help:res.partner.bank,currency_id:0
+msgid "Currency of the related account journal."
+msgstr ""
+
+#. module: account
+#: constraint:account.move.line:0
+msgid ""
+"You cannot provide a secondary currency if it is the same than the company "
+"one."
+msgstr ""
+
+#. module: account
+#: selection:account.tax.template,applicable_type:0
+msgid "True"
+msgstr ""
+
+#. module: account
+#: selection:account.account.type,report_type:0
+#: code:addons/account/account.py:190
+#, python-format
+msgid "Balance Sheet (Asset account)"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_draftstatement0
+msgid "State is draft"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Total debit"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Next Partner Entries to reconcile"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Fax :"
+msgstr ""
+
+#. module: account
+#: help:res.partner,property_account_receivable:0
+msgid ""
+"This account will be used instead of the default one as the receivable "
+"account for the current partner"
+msgstr ""
+
+#. module: account
+#: field:account.tax,python_applicable:0
+#: field:account.tax,python_compute:0
+#: selection:account.tax,type:0
+#: selection:account.tax.template,applicable_type:0
+#: field:account.tax.template,python_applicable:0
+#: field:account.tax.template,python_compute:0
+#: selection:account.tax.template,type:0
+msgid "Python Code"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "Journal Entries with period in current period"
+msgstr ""
+
+#. module: account
+#: help:account.journal,update_posted:0
+msgid ""
+"Check this box if you want to allow the cancellation the entries related to "
+"this journal or of the invoice related to this journal"
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear.close:0
+msgid "Create"
+msgstr ""
+
+#. module: account
+#: model:process.transition.action,name:account.process_transition_action_createentries0
+msgid "Create entry"
+msgstr ""
+
+#. module: account
+#: selection:account.account.type,report_type:0
+#: code:addons/account/account.py:189
+#, python-format
+msgid "Profit & Loss (Expense account)"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,total_entry_encoding:0
+msgid "Total Transactions"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:636
+#, python-format
+msgid "You cannot remove an account that contains journal items."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1024
+#: code:addons/account/account_move_line.py:1105
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: account
+#: field:account.financial.report,style_overwrite:0
+msgid "Financial Report Style"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,sign:0
+msgid "Preserve balance sign"
+msgstr ""
+
+#. module: account
+#: view:account.vat.declaration:0
+#: model:ir.actions.report.xml,name:account.account_vat_declaration
+#: model:ir.ui.menu,name:account.menu_account_vat_declaration
+msgid "Taxes Report"
+msgstr ""
+
+#. module: account
+#: selection:account.journal.period,state:0
+msgid "Printed"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Project line"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.tax,manual:0
+msgid "Manual"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice.refund,filter_refund:0
+msgid "Cancel: create refund and reconcile"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_report_aged_partner_balance.py:58
+#, python-format
+msgid "You must set a start date."
+msgstr ""
+
+#. module: account
+#: view:account.automatic.reconcile:0
+msgid ""
+"For an invoice to be considered as paid, the invoice entries must be "
+"reconciled with counterparts, usually payments. With the automatic "
+"reconciliation functionality, OpenERP makes its own search for entries to "
+"reconcile in a series of accounts. It finds entries for each partner where "
+"the amounts correspond."
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: field:account.move,to_check:0
+msgid "To Review"
+msgstr ""
+
+#. module: account
+#: help:account.partner.ledger,initial_balance:0
+#: help:account.report.general.ledger,initial_balance:0
+msgid ""
+"If you selected to filter by date or period, this field allow you to add a "
+"row to display the amount of debit/credit/balance that precedes the filter "
+"you've set."
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: view:account.move:0
+#: model:ir.actions.act_window,name:account.action_move_journal_line
+#: model:ir.ui.menu,name:account.menu_action_move_journal_line_form
+#: model:ir.ui.menu,name:account.menu_finance_entries
+msgid "Journal Entries"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_invoice_refund.py:147
+#, python-format
+msgid "No period found on the invoice."
+msgstr ""
+
+#. module: account
+#: help:account.partner.ledger,page_split:0
+msgid "Display Ledger Report with One partner per page"
+msgstr ""
+
+#. module: account
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+msgid "JRNL"
+msgstr ""
+
+#. module: account
+#: view:account.state.open:0
+msgid "Yes"
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,target_move:0
+#: selection:account.balance.report,target_move:0
+#: selection:account.central.journal,target_move:0
+#: selection:account.chart,target_move:0
+#: selection:account.common.account.report,target_move:0
+#: selection:account.common.journal.report,target_move:0
+#: selection:account.common.partner.report,target_move:0
+#: selection:account.common.report,target_move:0
+#: selection:account.general.journal,target_move:0
+#: selection:account.partner.balance,target_move:0
+#: selection:account.partner.ledger,target_move:0
+#: selection:account.print.journal,target_move:0
+#: selection:account.report.general.ledger,target_move:0
+#: selection:account.tax.chart,target_move:0
+#: selection:account.vat.declaration,target_move:0
+#: selection:accounting.report,target_move:0
+#: code:addons/account/report/common_report_header.py:67
+#, python-format
+msgid "All Entries"
+msgstr ""
+
+#. module: account
+#: constraint:account.move.reconcile:0
+msgid "You can only reconcile journal items with the same partner."
+msgstr ""
+
+#. module: account
+#: view:account.journal.select:0
+msgid "Journal Select"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: code:addons/account/account.py:422
+#: code:addons/account/account.py:434
+#, python-format
+msgid "Opening Balance"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_move_reconcile
+msgid "Account Reconciliation"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_fiscal_position_tax
+msgid "Taxes Fiscal Position"
+msgstr ""
+
+#. module: account
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: model:ir.actions.act_window,name:account.action_account_general_ledger_menu
+#: model:ir.actions.report.xml,name:account.account_general_ledger
+#: model:ir.actions.report.xml,name:account.account_general_ledger_landscape
+#: model:ir.ui.menu,name:account.menu_general_ledger
+msgid "General Ledger"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_paymentorderbank0
+msgid "The payment order is sent to the bank."
+msgstr ""
+
+#. module: account
+#: help:account.move,to_check:0
+msgid ""
+"Check this box if you are unsure of that journal entry and if you want to "
+"note it as 'to be reviewed' by an accounting expert."
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,complete_tax_set:0
+#: field:wizard.multi.charts.accounts,complete_tax_set:0
+msgid "Complete Set of Taxes"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_validate_account_move.py:61
+#, python-format
+msgid ""
+"Selected Entry Lines does not have any account move enties in draft state."
+msgstr ""
+
+#. module: account
+#: view:account.chart.template:0
+msgid "Properties"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_tax_chart
+msgid "Account tax chart"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.quantity_cost_ledger:0
+#: report:account.central.journal:0
+#: report:account.general.journal:0
+#: report:account.invoice:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: report:account.partner.balance:0
+msgid "Total:"
+msgstr ""
+
+#. module: account
+#: constraint:account.journal:0
+msgid ""
+"Configuration error!\n"
+"The currency chosen should be shared by the default accounts too."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:2304
+#, python-format
+msgid ""
+"You can specify year, month and date in the name of the model using the "
+"following labels:\n"
+"\n"
+"%(year)s: To Specify Year \n"
+"%(month)s: To Specify Month \n"
+"%(date)s: Current Date\n"
+"\n"
+"e.g. My model on %(date)s"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,paypal_url:0
+msgid "Paypal Url"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,module_account_voucher:0
+msgid "Manage customer payments"
+msgstr ""
+
+#. module: account
+#: help:report.invoice.created,origin:0
+msgid "Reference of the document that generated this invoice report."
+msgstr ""
+
+#. module: account
+#: field:account.tax.code,child_ids:0
+#: field:account.tax.code.template,child_ids:0
+msgid "Child Codes"
+msgstr ""
+
+#. module: account
+#: constraint:account.fiscalyear:0
+msgid ""
+"Error!\n"
+"The start date of a fiscal year must precede its end date."
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Taxes used in Sales"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_invoice_tree1
+#: model:ir.ui.menu,name:account.menu_action_invoice_tree1
+msgid "Customer Invoices"
+msgstr ""
+
+#. module: account
+#: view:account.tax:0
+msgid "Misc"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Sales"
+msgstr ""
+
+#. module: account
+#: selection:account.invoice.report,state:0
+#: selection:account.journal.period,state:0
+#: selection:account.subscription,state:0
+#: selection:report.invoice.created,state:0
+msgid "Done"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1319
+#, python-format
+msgid ""
+"You cannot validate a non-balanced entry.\n"
+"Make sure you have configured payment terms properly.\n"
+"The latest payment term line should be of the \"Balance\" type."
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_invoicemanually0
+msgid "A statement with manual entries becomes a draft statement."
+msgstr ""
+
+#. module: account
+#: view:account.aged.trial.balance:0
+msgid ""
+"Aged Partner Balance is a more detailed report of your receivables by "
+"intervals. When opening that report, OpenERP asks for the name of the "
+"company, the fiscal period and the size of the interval to be analyzed (in "
+"days). OpenERP then calculates a table of credit balance by period. So if "
+"you request an interval of 30 days OpenERP generates an analysis of "
+"creditors for the past month, past two months, and so on. "
+msgstr ""
+
+#. module: account
+#: field:account.invoice,origin:0
+#: field:account.invoice.line,origin:0
+#: field:report.invoice.created,origin:0
+msgid "Source Document"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,company_footer:0
+msgid "Bank accounts as printed in the footer of each printed document"
+msgstr ""
+
+#. module: account
+#: constraint:account.account:0
+msgid ""
+"Configuration Error!\n"
+"You cannot define children to an account with internal type different of "
+"\"View\"."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_accounting_report
+msgid "Accounting Report"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.line,currency_id:0
+msgid "Account Currency"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Taxes:"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:458
+#, python-format
+msgid ""
+"You can not delete an invoice which is not cancelled. You should refund it "
+"instead."
+msgstr ""
+
+#. module: account
+#: help:account.tax,amount:0
+msgid "For taxes of type percentage, enter % ratio between 0-1."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_report_tree_hierarchy
+msgid "Financial Reports Hierarchy"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.act_account_invoice_partner_relation
+msgid "Monthly Turnover"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: view:account.move.line:0
+msgid "Analytic Lines"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.journal,line_ids:0
+#: field:account.tax.code,line_ids:0
+msgid "Lines"
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Account Tax Template"
+msgstr ""
+
+#. module: account
+#: view:account.journal.select:0
+msgid "Are you sure you want to open Journal Entries?"
+msgstr ""
+
+#. module: account
+#: view:account.state.open:0
+msgid "Are you sure you want to open this invoice ?"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,property_account_expense_opening:0
+msgid "Opening Entries Expense Account"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Customer Reference"
+msgstr ""
+
+#. module: account
+#: field:account.account.template,parent_id:0
+msgid "Parent Account Template"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Price"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: field:account.bank.statement,closing_details_ids:0
+msgid "Closing Cashbox Lines"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: field:account.bank.statement.line,statement_id:0
+#: field:account.move.line,statement_id:0
+#: model:process.process,name:account.process_process_statementprocess0
+msgid "Statement"
+msgstr ""
+
+#. module: account
+#: help:account.journal,default_debit_account_id:0
+msgid "It acts as a default account for debit amount"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "Posted entries"
+msgstr ""
+
+#. module: account
+#: help:account.payment.term.line,value_amount:0
+msgid "For percent enter a ratio between 0-1."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: view:account.invoice:0
+#: field:account.invoice,date_invoice:0
+#: field:report.invoice.created,date_invoice:0
+msgid "Invoice Date"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Group by year of Invoice Date"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,purchase_tax_rate:0
+msgid "Purchase tax (%)"
+msgstr ""
+
+#. module: account
+#: help:res.partner,credit:0
+msgid "Total amount this customer owes you."
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Unbalanced Journal Items"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.open_account_charts_modules
+msgid "Chart Templates"
+msgstr ""
+
+#. module: account
+#: field:account.journal.period,icon:0
+msgid "Icon"
+msgstr ""
+
+#. module: account
+#: view:account.use.model:0
+msgid "Ok"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,tax_code_root_id:0
+msgid "Root Tax Code"
+msgstr ""
+
+#. module: account
+#: help:account.journal,centralisation:0
+msgid ""
+"Check this box to determine that each entry of this journal won't create a "
+"new counterpart but will share the same counterpart. This is used in fiscal "
+"year closing."
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,closing_date:0
+msgid "Closed On"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_bank_statement_line
+msgid "Bank Statement Line"
+msgstr ""
+
+#. module: account
+#: field:wizard.multi.charts.accounts,purchase_tax:0
+msgid "Default Purchase Tax"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,property_account_income_opening:0
+msgid "Opening Entries Income Account"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,group_proforma_invoices:0
+msgid "Allow pro-forma invoices"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Confirm"
+msgstr ""
+
+#. module: account
+#: help:account.tax,domain:0
+#: help:account.tax.template,domain:0
+msgid ""
+"This field is only used if you develop your own module allowing developers "
+"to create specific taxes in a custom domain."
+msgstr ""
+
+#. module: account
+#: field:account.invoice,reference:0
+#: field:account.invoice.line,invoice_id:0
+msgid "Invoice Reference"
+msgstr ""
+
+#. module: account
+#: field:account.fiscalyear.close,report_name:0
+msgid "Name of new entries"
+msgstr ""
+
+#. module: account
+#: view:account.use.model:0
+msgid "Create Entries"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_cash_box_out
+msgid "cash.box.out"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,currency_id:0
+msgid "Main currency of the company."
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_reports
+msgid "Reporting"
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/account_move_line.py:780
+#: code:addons/account/static/src/js/account_move_reconciliation.js:90
+#, python-format
+msgid "Warning"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_analytic_open
+msgid "Contracts/Analytic Accounts"
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+#: field:res.partner.bank,journal_id:0
+msgid "Account Journal"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,tax_calculation_rounding_method:0
+msgid "Tax calculation rounding method"
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_paidinvoice0
+#: model:process.node,name:account.process_node_supplierpaidinvoice0
+msgid "Paid invoice"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.refund:0
+msgid ""
+"Use this option if you want to cancel an invoice you should not\n"
+" have issued. The credit note will be "
+"created, validated and reconciled\n"
+" with the invoice. You will not be able "
+"to modify the credit note."
+msgstr ""
+
+#. module: account
+#: help:account.partner.reconcile.process,next_partner_id:0
+msgid ""
+"This field shows you the next partner that will be automatically chosen by "
+"the system to go through the reconciliation process, based on the latest day "
+"it have been reconciled."
+msgstr ""
+
+#. module: account
+#: field:account.move.line.reconcile.writeoff,comment:0
+msgid "Comment"
+msgstr ""
+
+#. module: account
+#: field:account.tax,domain:0
+#: field:account.tax.template,domain:0
+msgid "Domain"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_use_model
+msgid "Use model"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1490
+#, python-format
+msgid ""
+"There is no default credit account defined \n"
+"on journal \"%s\"."
+msgstr ""
+
+#. module: account
+#: view:account.invoice.line:0
+#: field:account.invoice.tax,invoice_id:0
+#: model:ir.model,name:account.model_account_invoice_line
+msgid "Invoice Line"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Customer And Supplier Refunds"
+msgstr ""
+
+#. module: account
+#: field:account.financial.report,sign:0
+msgid "Sign on Reports"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_analytic_account_tree2
+msgid ""
+"
\n"
+" Click to add a new analytic account.\n"
+"
\n"
+" The normal chart of accounts has a structure defined by the\n"
+" legal requirement of the country. The analytic chart of\n"
+" accounts structure should reflect your own business needs "
+"in\n"
+" term of costs/revenues reporting.\n"
+"
\n"
+" They are usually structured by contracts, projects, products "
+"or\n"
+" departements. Most of the OpenERP operations (invoices,\n"
+" timesheets, expenses, etc) generate analytic entries on the\n"
+" related account.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.data_account_type_view
+msgid "Root/View"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3206
+#, python-format
+msgid "OPEJ"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: view:account.invoice:0
+msgid "PRO-FORMA"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,move_line_state:0
+#: view:account.move.line:0
+#: selection:account.move.line,state:0
+msgid "Unbalanced"
+msgstr ""
+
+#. module: account
+#: selection:account.move.line,centralisation:0
+msgid "Normal"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_email_templates
+#: model:ir.ui.menu,name:account.menu_email_templates
+msgid "Email Templates"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Optional Information"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+#: field:account.bank.statement,user_id:0
+#: view:account.journal:0
+#: field:account.journal,user_id:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: account
+#: selection:account.account,currency_mode:0
+msgid "At Date"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,date_maturity:0
+msgid ""
+"This field is used for payable and receivable journal entries. You can put "
+"the limit date for the payment of this line."
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_multi_currency
+msgid "Multi-Currencies"
+msgstr ""
+
+#. module: account
+#: field:account.model.line,date_maturity:0
+msgid "Maturity Date"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3193
+#, python-format
+msgid "Sales Journal"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_invoice_tax
+msgid "Invoice Tax"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1185
+#, python-format
+msgid "No piece number !"
+msgstr ""
+
+#. module: account
+#: view:account.financial.report:0
+#: model:ir.ui.menu,name:account.menu_account_report_tree_hierarchy
+msgid "Account Reports Hierarchy"
+msgstr ""
+
+#. module: account
+#: help:account.account.template,chart_template_id:0
+msgid ""
+"This optional field allow you to link an account template to a specific "
+"chart template that may differ from the one its root parent belongs to. This "
+"allow you to define chart templates that extend another and complete it with "
+"few new accounts (You don't need to define the whole structure that is "
+"common to both several times)."
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+msgid "Unposted Journal Entries"
+msgstr ""
+
+#. module: account
+#: help:account.invoice.refund,date:0
+msgid ""
+"This date will be used as the invoice date for credit note and period will "
+"be chosen accordingly!"
+msgstr ""
+
+#. module: account
+#: view:product.template:0
+msgid "Sales Properties"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3541
+#, python-format
+msgid ""
+"You have to set a code for the bank account defined on the selected chart of "
+"accounts."
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_manual_reconcile
+msgid "Manual Reconciliation"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Total amount due:"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.chart,to_date:0
+#: field:project.account.analytic.line,to_date:0
+msgid "To"
+msgstr ""
+
+#. module: account
+#: selection:account.move.line,centralisation:0
+#: code:addons/account/account.py:1541
+#, python-format
+msgid "Currency Adjustment"
+msgstr ""
+
+#. module: account
+#: field:account.fiscalyear.close,fy_id:0
+msgid "Fiscal Year to close"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.cancel:0
+#: model:ir.actions.act_window,name:account.action_account_invoice_cancel
+msgid "Cancel Selected Invoices"
+msgstr ""
+
+#. module: account
+#: help:account.account.type,report_type:0
+msgid ""
+"This field is used to generate legal reports: profit and loss, balance sheet."
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "May"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:820
+#, python-format
+msgid "Global taxes defined, but they are not in invoice lines !"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_chart_template
+msgid "Templates for Account Chart"
+msgstr ""
+
+#. module: account
+#: help:account.model.line,sequence:0
+msgid ""
+"The sequence field is used to order the resources from lower sequences to "
+"higher ones."
+msgstr ""
+
+#. module: account
+#: field:account.move.line,amount_residual_currency:0
+msgid "Residual Amount in Currency"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,sale_refund_sequence_prefix:0
+msgid "Credit note sequence"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_validate_account_move
+#: model:ir.actions.act_window,name:account.action_validate_account_move_line
+#: model:ir.ui.menu,name:account.menu_validate_account_moves
+#: view:validate.account.move:0
+#: view:validate.account.move.lines:0
+msgid "Post Journal Entries"
+msgstr ""
+
+#. module: account
+#: selection:account.bank.statement.line,type:0
+#: view:account.config.settings:0
+#: view:account.invoice:0
+#: view:account.invoice.report:0
+#: code:addons/account/account_invoice.py:388
+#, python-format
+msgid "Customer"
+msgstr ""
+
+#. module: account
+#: field:account.financial.report,name:0
+msgid "Report Name"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.data_account_type_cash
+#: selection:account.analytic.journal,type:0
+#: selection:account.bank.accounts.wizard,account_type:0
+#: selection:account.entries.report,type:0
+#: selection:account.journal,type:0
+#: code:addons/account/account.py:3092
+#, python-format
+msgid "Cash"
+msgstr ""
+
+#. module: account
+#: field:account.fiscal.position.account,account_dest_id:0
+#: field:account.fiscal.position.account.template,account_dest_id:0
+msgid "Account Destination"
+msgstr ""
+
+#. module: account
+#: help:account.invoice.refund,filter_refund:0
+msgid ""
+"Refund base on this type. You can not Modify and Cancel if the invoice is "
+"already reconciled"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement.line,sequence:0
+#: field:account.financial.report,sequence:0
+#: field:account.invoice.line,sequence:0
+#: field:account.invoice.tax,sequence:0
+#: field:account.model.line,sequence:0
+#: field:account.sequence.fiscalyear,sequence_id:0
+#: field:account.tax,sequence:0
+#: field:account.tax.code,sequence:0
+#: field:account.tax.template,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,paypal_account:0
+msgid "Paypal account"
+msgstr ""
+
+#. module: account
+#: selection:account.print.journal,sort_selection:0
+msgid "Journal Entry Number"
+msgstr ""
+
+#. module: account
+#: view:account.financial.report:0
+msgid "Parent Report"
+msgstr ""
+
+#. module: account
+#: constraint:account.account:0
+#: constraint:account.tax.code:0
+msgid ""
+"Error!\n"
+"You cannot create recursive accounts."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_cash_box_in
+msgid "cash.box.in"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,move_id:0
+msgid "Link to the automatically generated Journal Items."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_config_settings
+msgid "account.config.settings"
+msgstr ""
+
+#. module: account
+#: selection:account.config.settings,period:0
+#: selection:account.installer,period:0
+msgid "Monthly"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.data_account_type_asset
+msgid "Asset"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,balance_end:0
+msgid "Computed Balance"
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/static/src/js/account_move_reconciliation.js:89
+#, python-format
+msgid "You must choose at least one record."
+msgstr ""
+
+#. module: account
+#: field:account.account,parent_id:0
+#: field:account.financial.report,parent_id:0
+msgid "Parent"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_cash_statement.py:292
+#, python-format
+msgid "Profit"
+msgstr ""
+
+#. module: account
+#: help:account.payment.term.line,days2:0
+msgid ""
+"Day of the month, set -1 for the last day of the current month. If it's "
+"positive, it gives the day of the next month. Set 0 for net days (otherwise "
+"it's based on the beginning of the month)."
+msgstr ""
+
+#. module: account
+#: view:account.move.line.reconcile:0
+msgid "Reconciliation Transactions"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_legal_statement
+msgid "Legal Reports"
+msgstr ""
+
+#. module: account
+#: field:account.tax.code,sum_period:0
+msgid "Period Sum"
+msgstr ""
+
+#. module: account
+#: help:account.tax,sequence:0
+msgid ""
+"The sequence field is used to order the tax lines from the lowest sequences "
+"to the higher ones. The order is important if you have a tax with several "
+"tax children. In this case, the evaluation order is important."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_cashbox_line
+msgid "CashBox Line"
+msgstr ""
+
+#. module: account
+#: field:account.installer,charts:0
+msgid "Accounting Package"
+msgstr ""
+
+#. module: account
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: model:ir.actions.act_window,name:account.action_account_partner_ledger
+#: model:ir.actions.report.xml,name:account.account_3rdparty_ledger
+#: model:ir.actions.report.xml,name:account.account_3rdparty_ledger_other
+#: model:ir.ui.menu,name:account.menu_account_partner_ledger
+msgid "Partner Ledger"
+msgstr ""
+
+#. module: account
+#: selection:account.tax.template,type:0
+msgid "Fixed"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:653
+#: code:addons/account/account.py:656
+#: code:addons/account/account.py:668
+#: code:addons/account/account.py:1031
+#, python-format
+msgid "Warning !"
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement,message_unread:0
+#: help:account.invoice,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: account
+#: field:res.company,tax_calculation_rounding_method:0
+msgid "Tax Calculation Rounding Method"
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,move_line_state:0
+msgid "State of Move Line"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_move_line_reconcile
+msgid "Account move line reconcile"
+msgstr ""
+
+#. module: account
+#: view:account.subscription.generate:0
+#: model:ir.model,name:account.model_account_subscription_generate
+msgid "Subscription Compute"
+msgstr ""
+
+#. module: account
+#: view:account.move.line.unreconcile.select:0
+msgid "Open for Unreconciliation"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement.line,partner_id:0
+#: view:account.entries.report:0
+#: field:account.entries.report,partner_id:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: view:account.invoice:0
+#: field:account.invoice,partner_id:0
+#: field:account.invoice.line,partner_id:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,partner_id:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: field:account.model.line,partner_id:0
+#: view:account.move:0
+#: field:account.move,partner_id:0
+#: view:account.move.line:0
+#: field:account.move.line,partner_id:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,partner_id:0
+#: model:ir.model,name:account.model_res_partner
+#: field:report.invoice.created,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: account
+#: help:account.change.currency,currency_id:0
+msgid "Select a currency to apply on the invoice"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:901
+#, python-format
+msgid "No Invoice Lines !"
+msgstr ""
+
+#. module: account
+#: view:account.financial.report:0
+msgid "Report Type"
+msgstr ""
+
+#. module: account
+#: help:account.open.closed.fiscalyear,fyear_id:0
+msgid ""
+"Select Fiscal Year which you want to remove entries for its End of year "
+"entries journal"
+msgstr ""
+
+#. module: account
+#: field:account.tax.template,type_tax_use:0
+msgid "Tax Use In"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_bank_statement.py:382
+#, python-format
+msgid ""
+"The statement balance is incorrect !\n"
+"The expected balance (%.2f) is different than the computed one. (%.2f)"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_bank_statement.py:420
+#, python-format
+msgid "The account entries lines are not in valid state."
+msgstr ""
+
+#. module: account
+#: field:account.account.type,close_method:0
+msgid "Deferral Method"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_electronicfile0
+msgid "Automatic entry"
+msgstr ""
+
+#. module: account
+#: help:account.account,reconcile:0
+msgid ""
+"Check this box if this account allows reconciliation of journal items."
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.inverted.balance:0
+msgid "Inverted Analytic Balance -"
+msgstr ""
+
+#. module: account
+#: help:account.move.reconcile,opening_reconciliation:0
+msgid ""
+"Is this reconciliation produced by the opening of a new fiscal year ?."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+#: model:ir.actions.act_window,name:account.action_account_analytic_line_form
+msgid "Analytic Entries"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+msgid "Associated Partner"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:1465
+#, python-format
+msgid "You must first select a partner !"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,comment:0
+msgid "Additional Information"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.report,residual:0
+#: field:account.invoice.report,user_currency_residual:0
+msgid "Total Residual"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Opening Cash Control"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_invoiceinvoice0
+#: model:process.node,note:account.process_node_supplierinvoiceinvoice0
+msgid "Invoice's state is Open"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement,state:0
+#: field:account.entries.report,move_state:0
+#: view:account.fiscalyear:0
+#: field:account.fiscalyear,state:0
+#: view:account.invoice:0
+#: field:account.invoice,state:0
+#: view:account.invoice.report:0
+#: field:account.journal.period,state:0
+#: field:account.move,state:0
+#: view:account.move.line:0
+#: field:account.move.line,state:0
+#: field:account.period,state:0
+#: view:account.subscription:0
+#: field:account.subscription,state:0
+#: field:report.invoice.created,state:0
+msgid "Status"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.quantity_cost_ledger:0
+#: model:ir.actions.act_window,name:account.action_account_analytic_cost
+#: model:ir.actions.report.xml,name:account.account_analytic_account_cost_ledger
+msgid "Cost Ledger"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "No Fiscal Year Defined for This Company"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Proforma"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.cost_ledger:0
+msgid "J.C. /Move name"
+msgstr ""
+
+#. module: account
+#: help:account.tax.template,include_base_amount:0
+msgid ""
+"Set if the amount of tax must be included in the base amount before "
+"computing the next taxes."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3196
+#, python-format
+msgid "Purchase Refund Journal"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1333
+#, python-format
+msgid "Please define a sequence on the journal."
+msgstr ""
+
+#. module: account
+#: help:account.tax.template,amount:0
+msgid "For Tax Type percent enter % ratio between 0-1."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+msgid "Current Accounts"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Group by Invoice Date"
+msgstr ""
+
+#. module: account
+#: help:account.journal,user_id:0
+msgid "The user responsible for this journal"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,module_account_followup:0
+msgid ""
+"This allows to automate letters for unpaid invoices, with multi-level "
+"recalls.\n"
+" This installs the module account_followup."
+msgstr ""
+
+#. module: account
+#: field:account.automatic.reconcile,period_id:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement,period_id:0
+#: view:account.entries.report:0
+#: field:account.entries.report,period_id:0
+#: view:account.fiscalyear:0
+#: report:account.general.ledger_landscape:0
+#: view:account.invoice:0
+#: view:account.invoice.report:0
+#: field:account.journal.period,period_id:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: view:account.move:0
+#: field:account.move,period_id:0
+#: view:account.move.line:0
+#: field:account.move.line,period_id:0
+#: view:account.period:0
+#: field:account.subscription,period_nbr:0
+#: field:account.tax.chart,period_id:0
+#: field:account.treasury.report,period_id:0
+#: field:validate.account.move,period_id:0
+msgid "Period"
+msgstr ""
+
+#. module: account
+#: help:account.account,adjusted_balance:0
+msgid ""
+"Total amount (in Company currency) for transactions held in secondary "
+"currency for this account."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Net Total:"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_report_common.py:158
+#, python-format
+msgid "Select a starting and an ending period."
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,sale_sequence_next:0
+msgid "Next invoice number"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_generic_reporting
+msgid "Generic Reporting"
+msgstr ""
+
+#. module: account
+#: field:account.move.line.reconcile.writeoff,journal_id:0
+msgid "Write-Off Journal"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,property_account_income_categ:0
+msgid "Income Category Account"
+msgstr ""
+
+#. module: account
+#: field:account.account,adjusted_balance:0
+msgid "Adjusted Balance"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_fiscal_position_template_form
+#: model:ir.ui.menu,name:account.menu_action_account_fiscal_position_form_template
+msgid "Fiscal Position Templates"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+msgid "Int.Type"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,tax_amount:0
+msgid "Tax/Base Amount"
+msgstr ""
+
+#. module: account
+#: view:account.open.closed.fiscalyear:0
+msgid ""
+"This wizard will remove the end of year journal entries of selected fiscal "
+"year. Note that you can run this wizard many times for the same fiscal year."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Tel. :"
+msgstr ""
+
+#. module: account
+#: field:account.account,company_currency_id:0
+msgid "Company Currency"
+msgstr ""
+
+#. module: account
+#: field:account.aged.trial.balance,chart_account_id:0
+#: field:account.balance.report,chart_account_id:0
+#: field:account.central.journal,chart_account_id:0
+#: field:account.common.account.report,chart_account_id:0
+#: field:account.common.journal.report,chart_account_id:0
+#: field:account.common.partner.report,chart_account_id:0
+#: field:account.common.report,chart_account_id:0
+#: view:account.config.settings:0
+#: field:account.general.journal,chart_account_id:0
+#: field:account.partner.balance,chart_account_id:0
+#: field:account.partner.ledger,chart_account_id:0
+#: field:account.print.journal,chart_account_id:0
+#: field:account.report.general.ledger,chart_account_id:0
+#: field:account.vat.declaration,chart_account_id:0
+#: field:accounting.report,chart_account_id:0
+msgid "Chart of Account"
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_paymententries0
+#: model:process.transition,name:account.process_transition_reconcilepaid0
+msgid "Payment"
+msgstr ""
+
+#. module: account
+#: view:account.automatic.reconcile:0
+msgid "Reconciliation Result"
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,balance_end_real:0
+#: field:account.treasury.report,ending_balance:0
+msgid "Ending Balance"
+msgstr ""
+
+#. module: account
+#: field:account.journal,centralisation:0
+msgid "Centralized Counterpart"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,blocked:0
+msgid ""
+"You can check this box to mark this journal item as a litigation with the "
+"associated partner"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,reconcile_partial_id:0
+#: view:account.move.line.reconcile:0
+msgid "Partial Reconcile"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_analytic_inverted_balance
+msgid "Account Analytic Inverted Balance"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_common_report
+msgid "Account Common Report"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.refund:0
+msgid ""
+"Use this option if you want to cancel an invoice and create a new\n"
+" one. The credit note will be created, "
+"validated and reconciled\n"
+" with the current invoice. A new, draft, "
+"invoice will be created \n"
+" so that you can edit it."
+msgstr ""
+
+#. module: account
+#: model:process.transition,name:account.process_transition_filestatement0
+msgid "Automatic import of the bank sta"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:381
+#, python-format
+msgid "Unknown Error!"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_move_bank_reconcile
+msgid "Move bank reconcile"
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "Apply"
+msgstr ""
+
+#. module: account
+#: field:account.financial.report,account_type_ids:0
+#: model:ir.actions.act_window,name:account.action_account_type_form
+#: model:ir.ui.menu,name:account.menu_action_account_type_form
+msgid "Account Types"
+msgstr ""
+
+#. module: account
+#: model:email.template,subject:account.email_template_edi_invoice
+msgid "${object.company_id.name} Invoice (Ref ${object.number or 'n/a'})"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1210
+#, python-format
+msgid ""
+"You cannot use this general account in this journal, check the tab 'Entry "
+"Controls' on the related journal."
+msgstr ""
+
+#. module: account
+#: field:account.account.type,report_type:0
+msgid "P&L / BS Category"
+msgstr ""
+
+#. module: account
+#: view:account.automatic.reconcile:0
+#: view:account.move:0
+#: view:account.move.line:0
+#: view:account.move.line.reconcile:0
+#: view:account.move.line.reconcile.select:0
+#: code:addons/account/wizard/account_move_line_reconcile_select.py:45
+#: model:ir.ui.menu,name:account.periodical_processing_reconciliation
+#: model:process.node,name:account.process_node_reconciliation0
+#: model:process.node,name:account.process_node_supplierreconciliation0
+#, python-format
+msgid "Reconciliation"
+msgstr ""
+
+#. module: account
+#: view:account.tax.template:0
+msgid "Keep empty to use the income account"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid ""
+"This button only appears when the state of the invoice is 'paid' (showing "
+"that it has been fully reconciled) and auto-computed boolean 'reconciled' is "
+"False (depicting that it's not the case anymore). In other words, the "
+"invoice has been dereconciled and it does not fit anymore the 'paid' state. "
+"You should press this button to re-open it and let it continue its normal "
+"process after having resolved the eventual exceptions it may have created."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_journal_form
+msgid ""
+"
\n"
+" Click to add a journal.\n"
+"
\n"
+" A journal is used to record transactions of all accounting "
+"data\n"
+" related to the day-to-day business.\n"
+"
\n"
+" A typical company may use one journal per payment method "
+"(cash,\n"
+" bank accounts, checks), one purchase journal, one sale "
+"journal\n"
+" and one for miscellaneous information.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_fiscalyear_close_state
+msgid "Fiscalyear Close state"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.refund,journal_id:0
+msgid "Refund Journal"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: report:account.central.journal:0
+#: report:account.general.journal:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.partner.balance:0
+msgid "Filter By"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_period_close.py:51
+#, python-format
+msgid ""
+"In order to close a period, you must first post related journal entries."
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+#: view:board.board:0
+#: model:ir.actions.act_window,name:account.action_company_analysis_tree
+msgid "Company Analysis"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,account_id:0
+msgid "The partner account used for this invoice."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3391
+#, python-format
+msgid "Tax %.2f%%"
+msgstr ""
+
+#. module: account
+#: field:account.tax.code,parent_id:0
+#: view:account.tax.code.template:0
+#: field:account.tax.code.template,parent_id:0
+msgid "Parent Code"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_payment_term_line
+msgid "Payment Term Line"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3194
+#, python-format
+msgid "Purchase Journal"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,amount_untaxed:0
+msgid "Subtotal"
+msgstr ""
+
+#. module: account
+#: view:account.vat.declaration:0
+msgid "Print Tax Statement"
+msgstr ""
+
+#. module: account
+#: view:account.model.line:0
+msgid "Journal Entry Model Line"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: field:account.invoice,date_due:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,date_due:0
+#: field:report.invoice.created,date_due:0
+msgid "Due Date"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_account_supplier
+#: model:ir.ui.menu,name:account.menu_finance_payables
+msgid "Suppliers"
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+msgid "Accounts Type Allowed (empty for no control)"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,amount_residual:0
+msgid ""
+"The residual amount on a receivable or payable of a journal entry expressed "
+"in the company currency."
+msgstr ""
+
+#. module: account
+#: view:account.tax.code:0
+msgid "Statistics"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.chart,from_date:0
+#: field:project.account.analytic.line,from_date:0
+msgid "From"
+msgstr ""
+
+#. module: account
+#: help:accounting.report,debit_credit:0
+msgid ""
+"This option allows you to get more details about the way your balances are "
+"computed. Because it is space consuming, we do not allow to use it while "
+"doing a comparison."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_fiscalyear_close
+msgid "Fiscalyear Close"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.account:0
+msgid "The code of the account must be unique per company !"
+msgstr ""
+
+#. module: account
+#: help:product.category,property_account_expense_categ:0
+#: help:product.template,property_account_expense:0
+msgid "This account will be used to value outgoing stock using cost price."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: model:ir.actions.act_window,name:account.act_account_journal_2_account_invoice_opened
+msgid "Unpaid Invoices"
+msgstr ""
+
+#. module: account
+#: field:account.move.line.reconcile,debit:0
+msgid "Debit amount"
+msgstr ""
+
+#. module: account
+#: view:account.aged.trial.balance:0
+#: view:account.analytic.balance:0
+#: view:account.analytic.cost.ledger:0
+#: view:account.analytic.cost.ledger.journal.report:0
+#: view:account.analytic.inverted.balance:0
+#: view:account.analytic.journal.report:0
+#: view:account.common.report:0
+#: view:account.invoice:0
+msgid "Print"
+msgstr ""
+
+#. module: account
+#: view:account.period.close:0
+msgid "Are you sure?"
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+msgid "Accounts Allowed (empty for no control)"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,sale_tax_rate:0
+msgid "Sales tax (%)"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_analytic_account_tree2
+#: model:ir.actions.act_window,name:account.action_account_analytic_chart
+#: model:ir.ui.menu,name:account.menu_action_analytic_account_tree2
+msgid "Chart of Analytic Accounts"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_subscription_form
+msgid ""
+"
\n"
+" Click to define a new recurring entry.\n"
+"
\n"
+" A recurring entry occurs on a recurrent basis from a "
+"specific\n"
+" date, i.e. corresponding to the signature of a contract or "
+"an\n"
+" agreement with a customer or a supplier. You can create "
+"such\n"
+" entries to automate the postings in the system.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: view:account.journal:0
+#: model:ir.ui.menu,name:account.menu_configuration_misc
+msgid "Miscellaneous"
+msgstr ""
+
+#. module: account
+#: help:res.partner,debit:0
+msgid "Total amount you have to pay to this supplier."
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_analytic0
+#: model:process.node,name:account.process_node_analyticcost0
+msgid "Analytic Costs"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.journal,name:0
+#: report:account.general.journal:0
+#: field:account.journal,name:0
+msgid "Journal Name"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:829
+#, python-format
+msgid "Entry \"%s\" is not valid !"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,style_overwrite:0
+msgid "Smallest Text"
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,module_account_check_writing:0
+msgid ""
+"This allows you to check writing and printing.\n"
+" This installs the module account_check_writing."
+msgstr ""
+
+#. module: account
+#: model:res.groups,name:account.group_account_invoice
+msgid "Invoicing & Payments"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,internal_number:0
+msgid ""
+"Unique number of the invoice, computed automatically when the invoice is "
+"created."
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.data_account_type_expense
+#: model:account.financial.report,name:account.account_financial_report_expense0
+msgid "Expense"
+msgstr ""
+
+#. module: account
+#: help:account.chart,fiscalyear:0
+msgid "Keep empty for all open fiscal years"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,amount_currency:0
+msgid ""
+"The amount expressed in an optional other currency if it is a multi-currency "
+"entry."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1006
+#, python-format
+msgid "The account move (%s) for centralisation has been confirmed."
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.journal:0
+#: field:account.bank.statement,currency:0
+#: report:account.central.journal:0
+#: view:account.entries.report:0
+#: field:account.entries.report,currency_id:0
+#: report:account.general.journal:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: field:account.invoice,currency_id:0
+#: field:account.invoice.report,currency_id:0
+#: field:account.journal,currency:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: field:account.model.line,currency_id:0
+#: view:account.move:0
+#: view:account.move.line:0
+#: field:account.move.line,currency_id:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:analytic.entries.report,currency_id:0
+#: model:ir.model,name:account.model_res_currency
+#: field:report.account.sales,currency_id:0
+#: field:report.account_type.sales,currency_id:0
+#: field:report.invoice.created,currency_id:0
+#: field:res.partner.bank,currency_id:0
+#: field:wizard.multi.charts.accounts,currency_id:0
+msgid "Currency"
+msgstr ""
+
+#. module: account
+#: help:account.invoice.refund,journal_id:0
+msgid ""
+"You can select here the journal to use for the credit note that will be "
+"created. If you leave that field empty, it will use the same journal as the "
+"current invoice."
+msgstr ""
+
+#. module: account
+#: help:account.bank.statement.line,sequence:0
+msgid ""
+"Gives the sequence order when displaying a list of bank statement lines."
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_validentries0
+msgid "Accountant validates the accounting entries coming from the invoice."
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+#: model:ir.actions.act_window,name:account.act_account_acount_move_line_reconcile_open
+msgid "Reconciled entries"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:2334
+#, python-format
+msgid "Wrong model !"
+msgstr ""
+
+#. module: account
+#: view:account.tax.code.template:0
+#: view:account.tax.template:0
+msgid "Tax Template"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.refund,period:0
+msgid "Force period"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_partner_balance
+msgid "Print Account Partner Balance"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1121
+#, python-format
+msgid ""
+"You cannot do this modification on a reconciled entry. You can just change "
+"some non legal fields or you must unreconcile first.\n"
+"%s."
+msgstr ""
+
+#. module: account
+#: help:account.financial.report,sign:0
+msgid ""
+"For accounts that are typically more debited than credited and that you "
+"would like to print as negative amounts in your reports, you should reverse "
+"the sign of the balance; e.g.: Expense account. The same applies for "
+"accounts that are typically more credited than debited and that you would "
+"like to print as positive amounts in your reports; e.g.: Income account."
+msgstr ""
+
+#. module: account
+#: field:res.partner,contract_ids:0
+msgid "Contracts"
+msgstr ""
+
+#. module: account
+#: field:account.cashbox.line,bank_statement_id:0
+#: field:account.entries.report,reconcile_id:0
+#: field:account.financial.report,balance:0
+#: field:account.financial.report,credit:0
+#: field:account.financial.report,debit:0
+msgid "unknown"
+msgstr ""
+
+#. module: account
+#: field:account.fiscalyear.close,journal_id:0
+#: code:addons/account/account.py:3198
+#, python-format
+msgid "Opening Entries Journal"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_customerinvoice0
+msgid "Draft invoices are checked, validated and printed."
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement,message_is_follower:0
+#: field:account.invoice,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: field:account.move,narration:0
+#: field:account.move.line,narration:0
+msgid "Internal Note"
+msgstr ""
+
+#. module: account
+#: constraint:account.account:0
+msgid ""
+"Configuration Error!\n"
+"You cannot select an account type with a deferral method different of "
+"\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"."
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,has_fiscal_year:0
+msgid "Company has a fiscal year"
+msgstr ""
+
+#. module: account
+#: help:account.tax,child_depend:0
+#: help:account.tax.template,child_depend:0
+msgid ""
+"Set if the tax computation is based on the computation of child taxes rather "
+"than on the total amount."
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:634
+#, python-format
+msgid "You cannot deactivate an account that contains journal items."
+msgstr ""
+
+#. module: account
+#: selection:account.tax,applicable_type:0
+msgid "Given by Python Code"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.journal,code:0
+msgid "Journal Code"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: field:account.move.line,amount_residual:0
+msgid "Residual Amount"
+msgstr ""
+
+#. module: account
+#: field:account.invoice,move_lines:0
+#: field:account.move.reconcile,line_id:0
+msgid "Entry Lines"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_open_journal_button
+msgid "Open Journal"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.journal:0
+msgid "KI"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.journal:0
+#: report:account.analytic.account.quantity_cost_ledger:0
+msgid "Period from"
+msgstr ""
+
+#. module: account
+#: field:account.cashbox.line,pieces:0
+msgid "Unit of Currency"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3195
+#, python-format
+msgid "Sales Refund Journal"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: view:account.move.line:0
+msgid "Information"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.confirm:0
+msgid ""
+"Once draft invoices are confirmed, you will not be able\n"
+" to modify them. The invoices will receive a unique\n"
+" number and journal items will be created in your "
+"chart\n"
+" of accounts."
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_bankstatement0
+msgid "Registered payment"
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear.close.state:0
+msgid "Close states of Fiscal year and periods"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,purchase_refund_journal_id:0
+msgid "Purchase refund journal"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Product Information"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.journal:0
+#: view:account.move:0
+#: view:account.move.line:0
+#: model:ir.ui.menu,name:account.next_id_40
+msgid "Analytic"
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_invoiceinvoice0
+#: model:process.node,name:account.process_node_supplierinvoiceinvoice0
+msgid "Create Invoice"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_configuration_installer
+msgid "Configure Accounting Data"
+msgstr ""
+
+#. module: account
+#: field:wizard.multi.charts.accounts,purchase_tax_rate:0
+msgid "Purchase Tax(%)"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:901
+#, python-format
+msgid "Please create some invoice lines."
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/pos_box.py:36
+#, python-format
+msgid ""
+"Please check that the field 'Internal Transfers Account' is set on the "
+"payment method '%s'."
+msgstr ""
+
+#. module: account
+#: field:account.vat.declaration,display_detail:0
+msgid "Display Detail"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:3203
+#, python-format
+msgid "SCNJ"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_analyticinvoice0
+msgid ""
+"Analytic costs (timesheets, some purchased products, ...) come from analytic "
+"accounts. These generate draft invoices."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+#: view:analytic.entries.report:0
+msgid "My Entries"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,state:0
+msgid ""
+" * The 'Draft' status is used when a user is encoding a new and unconfirmed "
+"Invoice. \n"
+"* The 'Pro-forma' when invoice is in Pro-forma status,invoice does not have "
+"an invoice number. \n"
+"* The 'Open' status is used when user create invoice,a invoice number is "
+"generated.Its in open status till user does not pay invoice. \n"
+"* The 'Paid' status is set automatically when the invoice is paid. Its "
+"related journal entries may or may not be reconciled. \n"
+"* The 'Cancelled' status is used when user cancel invoice."
+msgstr ""
+
+#. module: account
+#: field:account.period,date_stop:0
+#: model:ir.ui.menu,name:account.menu_account_end_year_treatments
+msgid "End of Period"
+msgstr ""
+
+#. module: account
+#: field:account.account,financial_report_ids:0
+#: field:account.account.template,financial_report_ids:0
+#: model:ir.actions.act_window,name:account.action_account_financial_report_tree
+#: model:ir.actions.act_window,name:account.action_account_report
+#: model:ir.ui.menu,name:account.menu_account_reports
+msgid "Financial Reports"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.account_type_liability_view1
+msgid "Liability View"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: field:account.aged.trial.balance,period_from:0
+#: field:account.balance.report,period_from:0
+#: report:account.central.journal:0
+#: field:account.central.journal,period_from:0
+#: field:account.common.account.report,period_from:0
+#: field:account.common.journal.report,period_from:0
+#: field:account.common.partner.report,period_from:0
+#: field:account.common.report,period_from:0
+#: report:account.general.journal:0
+#: field:account.general.journal,period_from:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,period_from:0
+#: field:account.partner.ledger,period_from:0
+#: field:account.print.journal,period_from:0
+#: field:account.report.general.ledger,period_from:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: report:account.vat.declaration:0
+#: field:account.vat.declaration,period_from:0
+#: field:accounting.report,period_from:0
+#: field:accounting.report,period_from_cmp:0
+msgid "Start Period"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.report.xml,name:account.account_central_journal
+msgid "Central Journal"
+msgstr ""
+
+#. module: account
+#: field:account.aged.trial.balance,direction_selection:0
+msgid "Analysis Direction"
+msgstr ""
+
+#. module: account
+#: field:res.partner,ref_companies:0
+msgid "Companies that refers to partner"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Ask Refund"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Total credit"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_suppliervalidentries0
+msgid "Accountant validates the accounting entries coming from the invoice. "
+msgstr ""
+
+#. module: account
+#: field:account.subscription,period_total:0
+msgid "Number of Periods"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Document: Customer account statement"
+msgstr ""
+
+#. module: account
+#: view:account.account.template:0
+msgid "Receivale Accounts"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,purchase_refund_sequence_prefix:0
+msgid "Supplier credit note sequence"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_state_open.py:37
+#, python-format
+msgid "Invoice is already reconciled."
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,module_account_payment:0
+msgid ""
+"This allows you to create and manage your payment orders, with purposes to\n"
+" * serve as base for an easy plug-in of various automated "
+"payment mechanisms, and\n"
+" * provide a more efficient way to manage invoice "
+"payments.\n"
+" This installs the module account_payment."
+msgstr ""
+
+#. module: account
+#: xsl:account.transfer:0
+msgid "Document"
+msgstr ""
+
+#. module: account
+#: view:account.chart.template:0
+#: field:account.chart.template,property_account_receivable:0
+msgid "Receivable Account"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:771
+#: code:addons/account/account_move_line.py:824
+#, python-format
+msgid "To reconcile the entries company should be the same for all entries."
+msgstr ""
+
+#. module: account
+#: field:account.account,balance:0
+#: report:account.account.balance:0
+#: selection:account.account.type,close_method:0
+#: report:account.analytic.account.balance:0
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.inverted.balance:0
+#: report:account.central.journal:0
+#: field:account.entries.report,balance:0
+#: report:account.general.journal:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: field:account.invoice,residual:0
+#: field:account.move.line,balance:0
+#: report:account.partner.balance:0
+#: selection:account.payment.term.line,value:0
+#: selection:account.tax,type:0
+#: selection:account.tax.template,type:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:account.treasury.report,balance:0
+#: field:report.account.receivable,balance:0
+#: field:report.aged.receivable,balance:0
+msgid "Balance"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_supplierbankstatement0
+msgid "Manually or automatically entered in the system"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: report:account.general.ledger_landscape:0
+msgid "Display Account"
+msgstr ""
+
+#. module: account
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
+#: model:account.account.type,name:account.data_account_type_payable
+#: selection:account.entries.report,type:0
+msgid "Payable"
+msgstr ""
+
+#. module: account
+#: view:board.board:0
+msgid "Account Board"
+msgstr ""
+
+#. module: account
+#: view:account.model:0
+#: field:account.model,legend:0
+msgid "Legend"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_entriesreconcile0
+msgid "Accounting entries are the first input of the reconciliation."
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear.close:0
+msgid "Generate Fiscal Year Opening Entries"
+msgstr ""
+
+#. module: account
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+msgid "Filters By"
+msgstr ""
+
+#. module: account
+#: field:account.cashbox.line,number_closing:0
+#: field:account.cashbox.line,number_opening:0
+msgid "Number of Units"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_manually0
+#: model:process.transition,name:account.process_transition_invoicemanually0
+msgid "Manual entry"
+msgstr ""
+
+#. module: account
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: view:account.move:0
+#: view:account.move.line:0
+#: field:analytic.entries.report,move_id:0
+msgid "Move"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_bank_statement.py:478
+#: code:addons/account/wizard/account_period_close.py:51
+#, python-format
+msgid "Invalid Action!"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+msgid "Date / Period"
+msgstr ""
+
+#. module: account
+#: report:account.central.journal:0
+msgid "A/C No."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.act_account_journal_2_account_bank_statement
+msgid "Bank statements"
+msgstr ""
+
+#. module: account
+#: constraint:account.period:0
+msgid ""
+"Error!\n"
+"The period is invalid. Either some periods are overlapping or the period's "
+"dates are not matching the scope of the fiscal year."
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "There is nothing due with this customer."
+msgstr ""
+
+#. module: account
+#: help:account.tax,account_paid_id:0
+msgid ""
+"Set the account that will be set by default on invoice tax lines for "
+"refunds. Leave empty to use the expense account."
+msgstr ""
+
+#. module: account
+#: help:account.addtmpl.wizard,cparent_id:0
+msgid ""
+"Creates an account with the selected template under this existing parent."
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+msgid "Source"
+msgstr ""
+
+#. module: account
+#: selection:account.model.line,date_maturity:0
+msgid "Date of the day"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_move_bank_reconcile.py:49
+#, python-format
+msgid ""
+"You have to define the bank account\n"
+"in the journal definition for reconciliation."
+msgstr ""
+
+#. module: account
+#: help:account.journal,sequence_id:0
+msgid ""
+"This field contains the information related to the numbering of the journal "
+"entries of this journal."
+msgstr ""
+
+#. module: account
+#: field:account.invoice,sent:0
+msgid "Sent"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_common_menu
+msgid "Common Report"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,default_sale_tax:0
+#: field:account.config.settings,sale_tax:0
+msgid "Default sale tax"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Balance :"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1587
+#, python-format
+msgid "Cannot create moves for different companies."
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_periodical_processing
+msgid "Periodic Processing"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Customer And Supplier Invoices"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_paymententries0
+#: model:process.transition,name:account.process_transition_paymentorderbank0
+#: model:process.transition,name:account.process_transition_paymentreconcile0
+msgid "Payment entries"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "July"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+msgid "Chart of accounts"
+msgstr ""
+
+#. module: account
+#: field:account.subscription.line,subscription_id:0
+msgid "Subscription"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_analytic_balance
+msgid "Account Analytic Balance"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: field:account.aged.trial.balance,period_to:0
+#: field:account.balance.report,period_to:0
+#: report:account.central.journal:0
+#: field:account.central.journal,period_to:0
+#: field:account.common.account.report,period_to:0
+#: field:account.common.journal.report,period_to:0
+#: field:account.common.partner.report,period_to:0
+#: field:account.common.report,period_to:0
+#: report:account.general.journal:0
+#: field:account.general.journal,period_to:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,period_to:0
+#: field:account.partner.ledger,period_to:0
+#: field:account.print.journal,period_to:0
+#: field:account.report.general.ledger,period_to:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: report:account.vat.declaration:0
+#: field:account.vat.declaration,period_to:0
+#: field:accounting.report,period_to:0
+#: field:accounting.report,period_to_cmp:0
+msgid "End Period"
+msgstr ""
+
+#. module: account
+#: model:account.account.type,name:account.account_type_expense_view1
+msgid "Expense View"
+msgstr ""
+
+#. module: account
+#: field:account.move.line,date_maturity:0
+msgid "Due date"
+msgstr ""
+
+#. module: account
+#: model:account.payment.term,name:account.account_payment_term_immediate
+#: model:account.payment.term,note:account.account_payment_term_immediate
+msgid "Immediate Payment"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1502
+#, python-format
+msgid " Centralisation"
+msgstr ""
+
+#. module: account
+#: help:account.journal,type:0
+msgid ""
+"Select 'Sale' for customer invoices journals. Select 'Purchase' for supplier "
+"invoices journals. Select 'Cash' or 'Bank' for journals that are used in "
+"customer or supplier payments. Select 'General' for miscellaneous operations "
+"journals. Select 'Opening/Closing Situation' for entries generated for new "
+"fiscal years."
+msgstr ""
+
+#. module: account
+#: view:account.subscription:0
+#: model:ir.model,name:account.model_account_subscription
+msgid "Account Subscription"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Maturity date"
+msgstr ""
+
+#. module: account
+#: view:account.subscription:0
+msgid "Entry Subscription"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: field:account.aged.trial.balance,date_from:0
+#: field:account.balance.report,date_from:0
+#: report:account.central.journal:0
+#: field:account.central.journal,date_from:0
+#: field:account.common.account.report,date_from:0
+#: field:account.common.journal.report,date_from:0
+#: field:account.common.partner.report,date_from:0
+#: field:account.common.report,date_from:0
+#: field:account.fiscalyear,date_start:0
+#: report:account.general.journal:0
+#: field:account.general.journal,date_from:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: field:account.installer,date_start:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,date_from:0
+#: field:account.partner.ledger,date_from:0
+#: field:account.print.journal,date_from:0
+#: field:account.report.general.ledger,date_from:0
+#: field:account.subscription,date_start:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:account.vat.declaration,date_from:0
+#: field:accounting.report,date_from:0
+#: field:accounting.report,date_from_cmp:0
+msgid "Start Date"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,reconciled:0
+msgid ""
+"It indicates that the invoice has been paid and the journal entry of the "
+"invoice has been reconciled with one or several journal entries of payment."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: view:account.invoice.report:0
+#: model:process.node,name:account.process_node_supplierdraftinvoices0
+msgid "Draft Invoices"
+msgstr ""
+
+#. module: account
+#: view:cash.box.in:0
+#: model:ir.actions.act_window,name:account.action_cash_box_in
+msgid "Put Money In"
+msgstr ""
+
+#. module: account
+#: selection:account.account.type,close_method:0
+#: view:account.entries.report:0
+#: view:account.move.line:0
+msgid "Unreconciled"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:922
+#, python-format
+msgid "Bad total !"
+msgstr ""
+
+#. module: account
+#: field:account.journal,sequence_id:0
+msgid "Entry Sequence"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_period_tree
+msgid ""
+"A period is a fiscal period of time during which accounting entries should "
+"be recorded for accounting related activities. Monthly period is the norm "
+"but depending on your countries or company needs, you could also have "
+"quarterly periods. Closing a period will make it impossible to record new "
+"accounting entries, all new entries should then be made on the following "
+"open period. Close a period when you do not want to record new entries and "
+"want to lock this period for tax related calculation."
+msgstr ""
+
+#. module: account
+#: view:account.analytic.account:0
+msgid "Pending"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_analytic_cost_ledger_journal
+#: model:ir.actions.report.xml,name:account.account_analytic_account_quantity_cost_ledger
+msgid "Cost Ledger (Only quantities)"
+msgstr ""
+
+#. module: account
+#: model:process.transition,name:account.process_transition_analyticinvoice0
+#: model:process.transition,name:account.process_transition_supplieranalyticcost0
+msgid "From analytic accounts"
+msgstr ""
+
+#. module: account
+#: view:account.installer:0
+msgid "Configure your Fiscal Year"
+msgstr ""
+
+#. module: account
+#: field:account.period,name:0
+msgid "Period Name"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_invoice_state.py:68
+#, python-format
+msgid ""
+"Selected invoice(s) cannot be cancelled as they are already in 'Cancelled' "
+"or 'Done' state."
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.quantity_cost_ledger:0
+msgid "Code/Date"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: view:account.move:0
+#: view:account.move.line:0
+#: model:ir.actions.act_window,name:account.act_account_journal_2_account_move_line
+#: model:ir.actions.act_window,name:account.act_account_move_to_account_move_line_open
+#: model:ir.actions.act_window,name:account.act_account_partner_account_move
+#: model:ir.actions.act_window,name:account.action_account_items
+#: model:ir.actions.act_window,name:account.action_account_moves_all_a
+#: model:ir.actions.act_window,name:account.action_move_line_select
+#: model:ir.actions.act_window,name:account.action_tax_code_items
+#: model:ir.actions.act_window,name:account.action_tax_code_line_open
+#: model:ir.model,name:account.model_account_move_line
+#: model:ir.ui.menu,name:account.menu_action_account_moves_all
+msgid "Journal Items"
+msgstr ""
+
+#. module: account
+#: view:accounting.report:0
+msgid "Comparison"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1119
+#, python-format
+msgid ""
+"You cannot do this modification on a confirmed entry. You can just change "
+"some non legal fields or you must unconfirm the journal entry first.\n"
+"%s."
+msgstr ""
+
+#. module: account
+#: help:account.config.settings,module_account_budget:0
+msgid ""
+"This allows accountants to manage analytic and crossovered budgets.\n"
+" Once the master budgets and the budgets are defined,\n"
+" the project managers can set the planned amount on each "
+"analytic account.\n"
+" This installs the module account_budget."
+msgstr ""
+
+#. module: account
+#: field:account.bank.statement.line,name:0
+msgid "OBI"
+msgstr ""
+
+#. module: account
+#: help:res.partner,property_account_payable:0
+msgid ""
+"This account will be used instead of the default one as the payable account "
+"for the current partner"
+msgstr ""
+
+#. module: account
+#: field:account.period,special:0
+msgid "Opening/Closing Period"
+msgstr ""
+
+#. module: account
+#: field:account.account,currency_id:0
+#: field:account.account.template,currency_id:0
+#: field:account.bank.accounts.wizard,currency_id:0
+msgid "Secondary Currency"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_validate_account_move
+msgid "Validate Account Move"
+msgstr ""
+
+#. module: account
+#: field:account.account,credit:0
+#: report:account.account.balance:0
+#: report:account.analytic.account.balance:0
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.inverted.balance:0
+#: report:account.central.journal:0
+#: field:account.entries.report,credit:0
+#: report:account.general.journal:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: field:account.model.line,credit:0
+#: field:account.move.line,credit:0
+#: report:account.partner.balance:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:account.treasury.report,credit:0
+#: report:account.vat.declaration:0
+#: field:report.account.receivable,credit:0
+msgid "Credit"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Draft Invoice "
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_account_general_journal
+msgid "General Journals"
+msgstr ""
+
+#. module: account
+#: view:account.model:0
+msgid "Journal Entry Model"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:1073
+#, python-format
+msgid "Start period should precede then end period."
+msgstr ""
+
+#. module: account
+#: field:account.invoice,number:0
+#: field:account.move,name:0
+msgid "Number"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.journal:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.bank.statement.line,type:0
+#: selection:account.journal,type:0
+msgid "General"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+#: field:account.invoice.report,price_total:0
+#: field:account.invoice.report,user_currency_price_total:0
+msgid "Total Without Tax"
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,filter:0
+#: selection:account.balance.report,filter:0
+#: selection:account.central.journal,filter:0
+#: view:account.chart:0
+#: selection:account.common.account.report,filter:0
+#: selection:account.common.journal.report,filter:0
+#: selection:account.common.partner.report,filter:0
+#: view:account.common.report:0
+#: selection:account.common.report,filter:0
+#: field:account.config.settings,period:0
+#: field:account.fiscalyear,period_ids:0
+#: selection:account.general.journal,filter:0
+#: field:account.installer,period:0
+#: selection:account.partner.balance,filter:0
+#: selection:account.partner.ledger,filter:0
+#: view:account.print.journal:0
+#: selection:account.print.journal,filter:0
+#: selection:account.report.general.ledger,filter:0
+#: report:account.vat.declaration:0
+#: view:account.vat.declaration:0
+#: selection:account.vat.declaration,filter:0
+#: view:accounting.report:0
+#: selection:accounting.report,filter:0
+#: selection:accounting.report,filter_cmp:0
+#: model:ir.actions.act_window,name:account.action_account_period
+#: model:ir.ui.menu,name:account.menu_action_account_period
+#: model:ir.ui.menu,name:account.next_id_23
+msgid "Periods"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.report,currency_rate:0
+msgid "Currency Rate"
+msgstr ""
+
+#. module: account
+#: field:account.account,tax_ids:0
+#: view:account.account.template:0
+#: field:account.account.template,tax_ids:0
+#: view:account.chart.template:0
+msgid "Default Taxes"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "April"
+msgstr ""
+
+#. module: account
+#: model:account.financial.report,name:account.account_financial_report_profitloss_toreport0
+msgid "Profit (Loss) to report"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:379
+#, python-format
+msgid "There is no Sale/Purchase Journal(s) defined."
+msgstr ""
+
+#. module: account
+#: view:account.move.line.reconcile.select:0
+msgid "Open for Reconciliation"
+msgstr ""
+
+#. module: account
+#: field:account.account,parent_left:0
+msgid "Parent Left"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,style_overwrite:0
+msgid "Title 2 (bold)"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_invoice_tree2
+#: model:ir.ui.menu,name:account.menu_action_invoice_tree2
+msgid "Supplier Invoices"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+#: field:account.analytic.line,product_id:0
+#: view:account.entries.report:0
+#: field:account.entries.report,product_id:0
+#: field:account.invoice.line,product_id:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,product_id:0
+#: field:account.move.line,product_id:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,product_id:0
+#: field:report.account.sales,product_id:0
+#: field:report.account_type.sales,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_validate_account_move
+msgid ""
+"The validation of journal entries process is also called 'ledger posting' "
+"and is the process of transferring debit and credit amounts from a journal "
+"of original entry to a ledger book."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_period
+msgid "Account period"
+msgstr ""
+
+#. module: account
+#: view:account.subscription:0
+msgid "Remove Lines"
+msgstr ""
+
+#. module: account
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
+#: selection:account.entries.report,type:0
+msgid "Regular"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+#: field:account.account,type:0
+#: view:account.account.template:0
+#: field:account.account.template,type:0
+#: field:account.entries.report,type:0
+msgid "Internal Type"
+msgstr ""
+
+#. module: account
+#: field:account.subscription.generate,date:0
+msgid "Generate Entries Before"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_subscription_form_running
+msgid "Running Subscriptions"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.balance:0
+#: view:account.analytic.cost.ledger:0
+#: view:account.analytic.inverted.balance:0
+#: view:account.analytic.journal.report:0
+msgid "Select Period"
+msgstr ""
+
+#. module: account
+#: view:account.entries.report:0
+#: selection:account.entries.report,move_state:0
+#: view:account.move:0
+#: selection:account.move,state:0
+#: view:account.move.line:0
+msgid "Posted"
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: field:account.aged.trial.balance,date_to:0
+#: field:account.balance.report,date_to:0
+#: report:account.central.journal:0
+#: field:account.central.journal,date_to:0
+#: field:account.common.account.report,date_to:0
+#: field:account.common.journal.report,date_to:0
+#: field:account.common.partner.report,date_to:0
+#: field:account.common.report,date_to:0
+#: field:account.fiscalyear,date_stop:0
+#: report:account.general.journal:0
+#: field:account.general.journal,date_to:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: field:account.installer,date_stop:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,date_to:0
+#: field:account.partner.ledger,date_to:0
+#: field:account.print.journal,date_to:0
+#: field:account.report.general.ledger,date_to:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:account.vat.declaration,date_to:0
+#: field:accounting.report,date_to:0
+#: field:accounting.report,date_to_cmp:0
+msgid "End Date"
+msgstr ""
+
+#. module: account
+#: view:account.open.closed.fiscalyear:0
+#: model:ir.actions.act_window,name:account.action_account_open_closed_fiscalyear
+#: model:ir.ui.menu,name:account.menu_wizard_account_open_closed_fiscalyear
+msgid "Cancel Opening Entries"
+msgstr ""
+
+#. module: account
+#: field:account.payment.term.line,days2:0
+msgid "Day of the Month"
+msgstr ""
+
+#. module: account
+#: field:account.fiscal.position.tax,tax_src_id:0
+#: field:account.fiscal.position.tax.template,tax_src_id:0
+msgid "Tax Source"
+msgstr ""
+
+#. module: account
+#: view:ir.sequence:0
+msgid "Fiscal Year Sequences"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,display_detail:0
+msgid "No detail"
+msgstr ""
+
+#. module: account
+#: field:account.account,unrealized_gain_loss:0
+#: model:ir.actions.act_window,name:account.action_account_gain_loss
+#: model:ir.ui.menu,name:account.menu_unrealized_gains_losses
+msgid "Unrealized Gain or Loss"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: view:account.move.line:0
+msgid "States"
+msgstr ""
+
+#. module: account
+#: help:product.category,property_account_income_categ:0
+#: help:product.template,property_account_income:0
+msgid "This account will be used to value outgoing stock using sale price."
+msgstr ""
+
+#. module: account
+#: field:account.invoice,check_total:0
+msgid "Verification Total"
+msgstr ""
+
+#. module: account
+#: report:account.analytic.account.balance:0
+#: report:account.analytic.account.inverted.balance:0
+#: report:account.analytic.account.quantity_cost_ledger:0
+#: view:account.analytic.line:0
+#: field:account.invoice,amount_total:0
+#: field:report.account.sales,amount_total:0
+#: field:report.account_type.sales,amount_total:0
+#: field:report.invoice.created,amount_total:0
+msgid "Total"
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_invoice_refund.py:109
+#, python-format
+msgid "Cannot %s draft/proforma/cancel invoice."
+msgstr ""
+
+#. module: account
+#: field:account.tax,account_analytic_paid_id:0
+msgid "Refund Tax Analytic Account"
+msgstr ""
+
+#. module: account
+#: view:account.move.bank.reconcile:0
+msgid "Open for Bank Reconciliation"
+msgstr ""
+
+#. module: account
+#: field:account.account,company_id:0
+#: report:account.account.balance:0
+#: field:account.aged.trial.balance,company_id:0
+#: field:account.analytic.journal,company_id:0
+#: field:account.balance.report,company_id:0
+#: field:account.bank.statement,company_id:0
+#: field:account.bank.statement.line,company_id:0
+#: field:account.central.journal,company_id:0
+#: field:account.common.account.report,company_id:0
+#: field:account.common.journal.report,company_id:0
+#: field:account.common.partner.report,company_id:0
+#: field:account.common.report,company_id:0
+#: field:account.config.settings,company_id:0
+#: view:account.entries.report:0
+#: field:account.entries.report,company_id:0
+#: field:account.fiscal.position,company_id:0
+#: field:account.fiscalyear,company_id:0
+#: report:account.general.journal:0
+#: field:account.general.journal,company_id:0
+#: report:account.general.ledger_landscape:0
+#: field:account.installer,company_id:0
+#: field:account.invoice,company_id:0
+#: field:account.invoice.line,company_id:0
+#: view:account.invoice.report:0
+#: field:account.invoice.report,company_id:0
+#: field:account.invoice.tax,company_id:0
+#: field:account.journal,company_id:0
+#: field:account.journal.period,company_id:0
+#: report:account.journal.period.print:0
+#: field:account.model,company_id:0
+#: field:account.move,company_id:0
+#: field:account.move.line,company_id:0
+#: field:account.partner.balance,company_id:0
+#: field:account.partner.ledger,company_id:0
+#: field:account.period,company_id:0
+#: field:account.print.journal,company_id:0
+#: field:account.report.general.ledger,company_id:0
+#: field:account.tax,company_id:0
+#: field:account.tax.code,company_id:0
+#: field:account.treasury.report,company_id:0
+#: field:account.vat.declaration,company_id:0
+#: field:accounting.report,company_id:0
+#: view:analytic.entries.report:0
+#: field:analytic.entries.report,company_id:0
+#: field:wizard.multi.charts.accounts,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_action_subscription_form
+msgid "Define Recurring Entries"
+msgstr ""
+
+#. module: account
+#: field:account.entries.report,date_maturity:0
+msgid "Date Maturity"
+msgstr ""
+
+#. module: account
+#: field:account.invoice.refund,description:0
+#: field:cash.box.in,name:0
+#: field:cash.box.out,name:0
+msgid "Reason"
+msgstr ""
+
+#. module: account
+#: selection:account.partner.ledger,filter:0
+#: code:addons/account/report/account_partner_ledger.py:56
+#: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled
+#, python-format
+msgid "Unreconciled Entries"
+msgstr ""
+
+#. module: account
+#: help:account.partner.reconcile.process,today_reconciled:0
+msgid ""
+"This figure depicts the total number of partners that have gone throught the "
+"reconciliation process today. The current partner is counted as already "
+"processed."
+msgstr ""
+
+#. module: account
+#: view:account.fiscalyear:0
+msgid "Create Monthly Periods"
+msgstr ""
+
+#. module: account
+#: field:account.tax.code.template,sign:0
+msgid "Sign For Parent"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_balance_report
+msgid "Trial Balance Report"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_bank_statement_draft_tree
+msgid "Draft statements"
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_statemententries0
+msgid ""
+"Manual or automatic creation of payment entries according to the statements"
+msgstr ""
+
+#. module: account
+#: field:account.analytic.balance,empty_acc:0
+msgid "Empty Accounts ? "
+msgstr ""
+
+#. module: account
+#: view:account.unreconcile.reconcile:0
+msgid ""
+"If you unreconcile transactions, you must also verify all the actions that "
+"are linked to those transactions because they will not be disable"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:1056
+#, python-format
+msgid "Unable to change tax!"
+msgstr ""
+
+#. module: account
+#: constraint:account.bank.statement:0
+msgid "The journal and period chosen have to belong to the same company."
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Invoice lines"
+msgstr ""
+
+#. module: account
+#: field:account.chart,period_to:0
+msgid "End period"
+msgstr ""
+
+#. module: account
+#: sql_constraint:account.journal:0
+msgid "The code of the journal must be unique per company !"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_account_invoice_report_all
+msgid ""
+"From this report, you can have an overview of the amount invoiced to your "
+"customer. The tool search can also be used to personalise your Invoices "
+"reports and so, match this analysis to your needs."
+msgstr ""
+
+#. module: account
+#: view:account.partner.reconcile.process:0
+msgid "Go to Next Partner"
+msgstr ""
+
+#. module: account
+#: view:account.automatic.reconcile:0
+#: view:account.move.line.reconcile.writeoff:0
+msgid "Write-Off Move"
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_paidinvoice0
+msgid "Invoice's state is Done"
+msgstr ""
+
+#. module: account
+#: field:account.config.settings,module_account_followup:0
+msgid "Manage customer payment follow-ups"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_report_account_sales
+msgid "Report of the Sales by Account"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_fiscal_position_account
+msgid "Accounts Fiscal Position"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: view:account.invoice:0
+#: selection:account.invoice,type:0
+#: selection:account.invoice.report,type:0
+#: code:addons/account/account_invoice.py:1158
+#: model:process.process,name:account.process_process_supplierinvoiceprocess0
+#: selection:report.invoice.created,type:0
+#, python-format
+msgid "Supplier Invoice"
+msgstr ""
+
+#. module: account
+#: field:account.account,debit:0
+#: report:account.account.balance:0
+#: report:account.analytic.account.balance:0
+#: report:account.analytic.account.cost_ledger:0
+#: report:account.analytic.account.inverted.balance:0
+#: report:account.central.journal:0
+#: field:account.entries.report,debit:0
+#: report:account.general.journal:0
+#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
+#: field:account.model.line,debit:0
+#: field:account.move.line,debit:0
+#: report:account.partner.balance:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+#: field:account.treasury.report,debit:0
+#: report:account.vat.declaration:0
+#: field:report.account.receivable,debit:0
+msgid "Debit"
+msgstr ""
+
+#. module: account
+#: selection:account.financial.report,style_overwrite:0
+msgid "Title 3 (bold, smaller)"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+#: field:account.invoice,invoice_line:0
+msgid "Invoice Lines"
+msgstr ""
+
+#. module: account
+#: help:account.model.line,quantity:0
+msgid "The optional quantity on entries."
+msgstr ""
+
+#. module: account
+#: field:account.automatic.reconcile,reconciled:0
+msgid "Reconciled transactions"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_report_account_receivable
+msgid "Receivable accounts"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_move_line.py:783
+#, python-format
+msgid "Already reconciled."
+msgstr ""
+
+#. module: account
+#: selection:account.model.line,date_maturity:0
+msgid "Partner Payment Term"
+msgstr ""
+
+#. module: account
+#: field:temp.range,name:0
+msgid "Range"
+msgstr ""
+
+#. module: account
+#: view:account.analytic.line:0
+msgid "Analytic Journal Items related to a purchase journal."
+msgstr ""
+
+#. module: account
+#: help:account.account,type:0
+msgid ""
+"The 'Internal Type' is used for features available on different types of "
+"accounts: view can not have journal items, consolidation are accounts that "
+"can have children accounts for multi-company consolidations, "
+"payable/receivable are for partners accounts (for debit/credit "
+"computations), closed for depreciated accounts."
+msgstr ""
+
+#. module: account
+#: report:account.account.balance:0
+#: selection:account.balance.report,display_account:0
+#: selection:account.common.account.report,display_account:0
+#: report:account.general.ledger_landscape:0
+#: selection:account.report.general.ledger,display_account:0
+msgid "With movements"
+msgstr ""
+
+#. module: account
+#: view:account.tax.code.template:0
+msgid "Account Tax Code Template"
+msgstr ""
+
+#. module: account
+#: model:process.node,name:account.process_node_manually0
+msgid "Manually"
+msgstr ""
+
+#. module: account
+#: help:account.move,balance:0
+msgid ""
+"This is a field only used for internal purpose and shouldn't be displayed"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "December"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.report:0
+msgid "Group by month of Invoice Date"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_analytic_line.py:99
+#, python-format
+msgid "There is no income account defined for this product: \"%s\" (id:%d)."
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_aged_receivable_graph
+#: view:report.aged.receivable:0
+msgid "Aged Receivable"
+msgstr ""
+
+#. module: account
+#: field:account.tax,applicable_type:0
+msgid "Applicability"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,currency_id:0
+msgid "The optional other currency if it is a multi-currency entry."
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_invoiceimport0
+msgid ""
+"Import of the statement in the system from a supplier or customer invoice"
+msgstr ""
+
+#. module: account
+#: model:ir.ui.menu,name:account.menu_finance_periodical_processing_billing
+msgid "Billing"
+msgstr ""
+
+#. module: account
+#: view:account.account:0
+#: view:account.analytic.account:0
+msgid "Parent Account"
+msgstr ""
+
+#. module: account
+#: view:report.account.receivable:0
+msgid "Accounts by Type"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_analytic_chart
+msgid "Account Analytic Chart"
+msgstr ""
+
+#. module: account
+#: help:account.invoice,residual:0
+msgid "Remaining amount due."
+msgstr ""
+
+#. module: account
+#: field:account.print.journal,sort_selection:0
+msgid "Entries Sorted by"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:1546
+#, python-format
+msgid ""
+"The selected unit of measure is not compatible with the unit of measure of "
+"the product."
+msgstr ""
+
+#. module: account
+#: view:account.fiscal.position:0
+#: view:account.fiscal.position.template:0
+msgid "Accounts Mapping"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,help:account.action_tax_code_list
+msgid ""
+"
\n"
+" Click to define a new tax code.\n"
+"
\n"
+" Depending on the country, a tax code is usually a cell to "
+"fill\n"
+" in your legal tax statement. OpenERP allows you to define "
+"the\n"
+" tax structure and each tax computation will be registered "
+"in\n"
+" one or several tax code.\n"
+"
\n"
+" Select the period and the journal you want to fill.\n"
+"
\n"
+" This view can be used by accountants in order to quickly "
+"record\n"
+" entries in OpenERP. If you want to record a supplier "
+"invoice,\n"
+" start by recording the line of the expense account. OpenERP\n"
+" will propose to you automatically the Tax related to this\n"
+" account and the counterpart \"Account Payable\".\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account
+#: help:account.invoice.line,account_id:0
+msgid "The income or expense account related to the selected product."
+msgstr ""
+
+#. module: account
+#: view:account.config.settings:0
+msgid "Install more chart templates"
+msgstr ""
+
+#. module: account
+#: report:account.general.journal:0
+#: model:ir.actions.report.xml,name:account.account_general_journal
+msgid "General Journal"
+msgstr ""
+
+#. module: account
+#: view:account.invoice:0
+msgid "Search Invoice"
+msgstr ""
+
+#. module: account
+#: report:account.invoice:0
+#: view:account.invoice:0
+#: view:account.invoice.report:0
+#: code:addons/account/account_invoice.py:1159
+#, python-format
+msgid "Refund"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_res_partner_bank
+msgid "Bank Accounts"
+msgstr ""
+
+#. module: account
+#: field:res.partner,credit:0
+msgid "Total Receivable"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "General Information"
+msgstr ""
+
+#. module: account
+#: view:account.move:0
+#: view:account.move.line:0
+msgid "Accounting Documents"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account.py:641
+#, python-format
+msgid ""
+"You cannot remove/deactivate an account which is set on a customer or "
+"supplier."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_validate_account_move_lines
+msgid "Validate Account Move Lines"
+msgstr ""
+
+#. module: account
+#: help:res.partner,property_account_position:0
+msgid ""
+"The fiscal position will determine taxes and accounts used for the partner."
+msgstr ""
+
+#. module: account
+#: model:process.node,note:account.process_node_supplierpaidinvoice0
+msgid "Invoice's state is Done."
+msgstr ""
+
+#. module: account
+#: model:process.transition,note:account.process_transition_reconcilepaid0
+msgid "As soon as the reconciliation is done, the invoice can be paid."
+msgstr ""
+
+#. module: account
+#: code:addons/account/wizard/account_change_currency.py:59
+#, python-format
+msgid "New currency is not configured properly."
+msgstr ""
+
+#. module: account
+#: view:account.account.template:0
+msgid "Search Account Templates"
+msgstr ""
+
+#. module: account
+#: view:account.invoice.tax:0
+msgid "Manual Invoice Taxes"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_invoice.py:573
+#, python-format
+msgid "The payment term of supplier does not have a payment term line."
+msgstr ""
+
+#. module: account
+#: field:account.account,parent_right:0
+msgid "Parent Right"
+msgstr ""
+
+#. module: account
+#. openerp-web
+#: code:addons/account/static/src/js/account_move_reconciliation.js:74
+#: code:addons/account/static/src/js/account_move_reconciliation.js:80
+#, python-format
+msgid "Never"
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_addtmpl_wizard
+msgid "account.addtmpl.wizard"
+msgstr ""
+
+#. module: account
+#: field:account.aged.trial.balance,result_selection:0
+#: field:account.common.partner.report,result_selection:0
+#: report:account.partner.balance:0
+#: field:account.partner.balance,result_selection:0
+#: field:account.partner.ledger,result_selection:0
+#: report:account.third_party_ledger:0
+#: report:account.third_party_ledger_other:0
+msgid "Partner's"
+msgstr ""
+
+#. module: account
+#: field:account.account,note:0
+msgid "Internal Notes"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_fiscalyear
+#: view:ir.sequence:0
+#: model:ir.ui.menu,name:account.menu_action_account_fiscalyear
+msgid "Fiscal Years"
+msgstr ""
+
+#. module: account
+#: help:account.analytic.journal,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the analytic "
+"journal without removing it."
+msgstr ""
+
+#. module: account
+#: field:account.analytic.line,ref:0
+msgid "Ref."
+msgstr ""
+
+#. module: account
+#: field:account.use.model,model:0
+#: model:ir.model,name:account.model_account_model
+msgid "Account Model"
+msgstr ""
+
+#. module: account
+#: code:addons/account/account_cash_statement.py:292
+#, python-format
+msgid "Loss"
+msgstr ""
+
+#. module: account
+#: selection:account.entries.report,month:0
+#: selection:account.invoice.report,month:0
+#: selection:analytic.entries.report,month:0
+#: selection:report.account.sales,month:0
+#: selection:report.account_type.sales,month:0
+msgid "February"
+msgstr ""
+
+#. module: account
+#: view:account.bank.statement:0
+#: help:account.cashbox.line,number_closing:0
+msgid "Closing Unit Numbers"
+msgstr ""
+
+#. module: account
+#: field:account.bank.accounts.wizard,bank_account_id:0
+#: view:account.chart.template:0
+#: field:account.chart.template,bank_account_view_id:0
+#: field:account.invoice,partner_bank_id:0
+#: field:account.invoice.report,partner_bank_id:0
+msgid "Bank Account"
+msgstr ""
+
+#. module: account
+#: model:ir.actions.act_window,name:account.action_account_central_journal
+#: model:ir.model,name:account.model_account_central_journal
+msgid "Account Central Journal"
+msgstr ""
+
+#. module: account
+#: report:account.overdue:0
+msgid "Maturity"
+msgstr ""
+
+#. module: account
+#: selection:account.aged.trial.balance,direction_selection:0
+msgid "Future"
+msgstr ""
+
+#. module: account
+#: view:account.move.line:0
+msgid "Search Journal Items"
+msgstr ""
+
+#. module: account
+#: help:account.tax,base_sign:0
+#: help:account.tax,ref_base_sign:0
+#: help:account.tax,ref_tax_sign:0
+#: help:account.tax,tax_sign:0
+#: help:account.tax.template,base_sign:0
+#: help:account.tax.template,ref_base_sign:0
+#: help:account.tax.template,ref_tax_sign:0
+#: help:account.tax.template,tax_sign:0
+msgid "Usually 1 or -1."
+msgstr ""
+
+#. module: account
+#: model:ir.model,name:account.model_account_fiscal_position_account_template
+msgid "Template Account Fiscal Mapping"
+msgstr ""
+
+#. module: account
+#: field:account.chart.template,property_account_expense:0
+msgid "Expense Account on Product Template"
+msgstr ""
+
+#. module: account
+#: field:res.partner,property_payment_term:0
+msgid "Customer Payment Term"
+msgstr ""
+
+#. module: account
+#: help:accounting.report,label_filter:0
+msgid ""
+"This label will be displayed on report to show the balance computed for the "
+"given comparison filter."
+msgstr ""
+
+#. module: account
+#: selection:account.config.settings,tax_calculation_rounding_method:0
+msgid "Round per line"
+msgstr ""
+
+#. module: account
+#: help:account.move.line,amount_residual_currency:0
+msgid ""
+"The residual amount on a receivable or payable of a journal entry expressed "
+"in its currency (maybe different of the company currency)."
+msgstr ""
diff --git a/addons/account/i18n/hu.po b/addons/account/i18n/hu.po
index 0e17cb39113..4b4f2f7f032 100644
--- a/addons/account/i18n/hu.po
+++ b/addons/account/i18n/hu.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2012-12-27 22:48+0000\n"
-"Last-Translator: Balint (eSolve) \n"
+"PO-Revision-Date: 2013-12-16 21:04+0000\n"
+"Last-Translator: krnkris \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 05:27+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-12-17 05:32+0000\n"
+"X-Generator: Launchpad (build 16869)\n"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@@ -26,6 +26,8 @@ msgstr "Kifizetési rendszer"
msgid ""
"An account fiscal position could be defined only once time on same accounts."
msgstr ""
+"Egy könyvelés költségvetési évfordulóját csak egyszer lehet megadni az arra "
+"hivatkozó számlákra vonatkozólag."
#. module: account
#: help:account.tax.code,sequence:0
@@ -33,6 +35,8 @@ msgid ""
"Determine the display order in the report 'Accounting \\ Reporting \\ "
"Generic Reporting \\ Taxes \\ Taxes Report'"
msgstr ""
+"Meghatározza a kijelzés sorrendjét a kimutatáson 'Könyvelés \\ "
+"Kimutatáskészítés \\ Általános kimutatás \\ Adók \\ Adó kimutatás'"
#. module: account
#: view:account.move.reconcile:0
@@ -60,7 +64,7 @@ msgstr "Rendezetlen összeg"
#: code:addons/account/account_bank_statement.py:369
#, python-format
msgid "Journal item \"%s\" is not valid."
-msgstr ""
+msgstr "A \"%s\" könyvelési napló tétel nem érvényes."
#. module: account
#: model:ir.model,name:account.model_report_aged_receivable
@@ -78,7 +82,7 @@ msgstr "Importálás számlából vagy pénzügyi rendezésből"
#: code:addons/account/account_move_line.py:1210
#, python-format
msgid "Bad Account!"
-msgstr ""
+msgstr "Eltévesztett könyvelési számla!"
#. module: account
#: view:account.move:0
@@ -92,6 +96,8 @@ msgid ""
"Error!\n"
"You cannot create recursive account templates."
msgstr ""
+"Hiba!\n"
+"Nem hozhat létre visszatérő számla sablonokat."
#. module: account
#. openerp-web
@@ -102,7 +108,7 @@ msgstr ""
#: code:addons/account/static/src/xml/account_move_reconciliation.xml:30
#, python-format
msgid "Reconcile"
-msgstr "Párosítás"
+msgstr "Egyeztetés"
#. module: account
#: field:account.bank.statement,name:0
@@ -114,7 +120,7 @@ msgstr "Párosítás"
#: xsl:account.transfer:0
#: field:cash.box.in,ref:0
msgid "Reference"
-msgstr "Hivatkozás"
+msgstr "Információforrás"
#. module: account
#: help:account.payment.term,active:0
@@ -122,7 +128,8 @@ msgid ""
"If the active field is set to False, it will allow you to hide the payment "
"term without removing it."
msgstr ""
-"Ha az aktív mező nincs bejelölve, nem használható a fizetési feltétel."
+"Ha az aktív mező hamisra van állatva, akkor a fizetési feltételt "
+"eltüntetheti anélkül, hogy törölné azt."
#. module: account
#: code:addons/account/account.py:641
@@ -151,7 +158,7 @@ msgstr "Figyelem!"
#: code:addons/account/account.py:3197
#, python-format
msgid "Miscellaneous Journal"
-msgstr "Vegyes napló"
+msgstr "Vegyes könyvelési napló"
#. module: account
#: code:addons/account/wizard/account_open_closed_fiscalyear.py:39
@@ -161,12 +168,14 @@ msgid ""
"which is set after generating opening entries from 'Generate Opening "
"Entries'."
msgstr ""
+"Be kell állítania az 'Év végi belépő könyvelési naplót' a 'Nyitási bejegyzés "
+"létrehozása' menüvel létrehozott üzleti év bejegyzéseihez."
#. module: account
#: field:account.fiscal.position.account,account_src_id:0
#: field:account.fiscal.position.account.template,account_src_id:0
msgid "Account Source"
-msgstr "Eredeti főkönyvi számla"
+msgstr "Forrás főkönyvi számla"
#. module: account
#: model:ir.actions.act_window,help:account.action_account_period
@@ -179,6 +188,14 @@ msgid ""
"
\n"
" "
msgstr ""
+"
\n"
+" Kattintson üzleti szakasz hozzáadásához.\n"
+"
\n"
+" Egy könyvelési szakasz leggyakrabban egy negyedév vagy egy "
+"hónap. \n"
+" Általában összhangban van az adóbevallás periódusával.\n"
+"
\n"
+" "
#. module: account
#: model:ir.actions.act_window,name:account.action_view_created_invoice_dashboard
@@ -188,12 +205,12 @@ msgstr "Az elmúlt 15 napban készített számlák"
#. module: account
#: field:accounting.report,label_filter:0
msgid "Column Label"
-msgstr ""
+msgstr "Oszlop elnevezés"
#. module: account
#: help:account.config.settings,code_digits:0
msgid "No. of digits to use for account code"
-msgstr ""
+msgstr "Könyvelési kódnak használt számlyegyek száma"
#. module: account
#: help:account.analytic.journal,type:0
@@ -213,6 +230,9 @@ msgid ""
"lines for invoices. Leave empty if you don't want to use an analytic account "
"on the invoice tax lines by default."
msgstr ""
+"Analitikus számla mely alapértelmezésben a számlák adó tételének számlája. "
+"Hagyja üresen, ha alap értelmezésben nem szeretne analitikus számát "
+"használni a számlák adó tételeire."
#. module: account
#: model:ir.actions.act_window,name:account.action_account_tax_template_form
@@ -223,7 +243,7 @@ msgstr "Adósablonok"
#. module: account
#: model:ir.model,name:account.model_account_move_line_reconcile_select
msgid "Move line reconcile select"
-msgstr "Tételsor párosítás kiválasztása"
+msgstr "Bizonylat tételsor párosítás kiválasztása"
#. module: account
#: model:process.transition,note:account.process_transition_supplierentriesreconcile0
@@ -252,11 +272,14 @@ msgid ""
"legal reports, and set the rules to close a fiscal year and generate opening "
"entries."
msgstr ""
+"Számla típus információs célt szolgál, országra jellemző törvényekre sajátos "
+"kimutatások létrehozásához, és az induló tételek létrehozásához valamint az "
+"üzleti év lezáró szabályainak beállításához."
#. module: account
#: field:account.config.settings,sale_refund_sequence_next:0
msgid "Next credit note number"
-msgstr ""
+msgstr "Következő jóváírási értesítés szám"
#. module: account
#: help:account.config.settings,module_account_voucher:0
@@ -265,6 +288,9 @@ msgid ""
"sales, purchase, expense, contra, etc.\n"
" This installs the module account_voucher."
msgstr ""
+"Ez magába foglalja az összes alap követelményt a banki, pénztári, vásárlói, "
+"beszerzési, kiadási, visszaküldött, stb nyugta bevitelhez.\n"
+" Ez a account_voucher (könyvelés_nyugta) modult telepíti.."
#. module: account
#: model:ir.actions.act_window,name:account.action_account_use_model_create_entry
@@ -296,6 +322,17 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Ha többféle pénznem végez műveleteket, akkor veszíthet vagy "
+"nyerhet\n"
+" bizonyos összegeket az árfolyamváltozás miatt. Ez a menü "
+"egy\n"
+" előrejelzést ad a nyereségről vagy veszteségről az aznap\n"
+" végrehajtott folyamatokról. Csak olyan számlákon, ahol van\n"
+" másodlagos pénznem.\n"
+"
\n"
+" "
#. module: account
#: field:account.bank.accounts.wizard,acc_name:0
@@ -1144,11 +1234,13 @@ msgid ""
"Check this box if you don't want any tax related to this tax code to appear "
"on invoices"
msgstr ""
+"Jelölje be ezt a négyzetet, ha nem akarja ehhez az adógyűjtőhöz kapcsolatos "
+"bármely adót feltüntetni ezen a számlán."
#. module: account
#: field:report.account.receivable,name:0
msgid "Week of Year"
-msgstr "Hét"
+msgstr "Az év hete"
#. module: account
#: field:account.report.general.ledger,landscape:0
@@ -1166,19 +1258,19 @@ msgid ""
"These types are defined according to your country. The type contains more "
"information about the account and its specificities."
msgstr ""
-"A számlatípus több információt tartalmaz a főkönyvi számláról és a "
-"sajátosságairól."
+"Ezek a típusok az országa szerint vannak meghatározva. A számlatípus több "
+"információt tartalmaz a főkönyvi számláról és a sajátosságairól."
#. module: account
#: view:account.invoice:0
msgid "Refund "
-msgstr ""
+msgstr "Visszatérítés "
#. module: account
#: code:addons/account/account_analytic_line.py:90
#, python-format
msgid "There is no expense account defined for this product: \"%s\" (id:%d)."
-msgstr ""
+msgstr "Nincs kiadási számla meghatározva ehhez a termékhez: \"%s\" (id:%d)."
#. module: account
#: view:account.tax:0
@@ -1195,12 +1287,12 @@ msgstr "Vitatott"
#: model:ir.actions.act_window,name:account.action_view_bank_statement_tree
#: model:ir.ui.menu,name:account.journal_cash_move_lines
msgid "Cash Registers"
-msgstr "Pénztár"
+msgstr "Pénztár rögzítők"
#. module: account
#: field:account.config.settings,sale_refund_journal_id:0
msgid "Sale refund journal"
-msgstr ""
+msgstr "Visszatérítési napló"
#. module: account
#: model:ir.actions.act_window,help:account.action_view_bank_statement_tree
@@ -1219,6 +1311,19 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Kattintson új készpénz napló rögzítéshez.\n"
+"
\n"
+" A pénztár rögzítők lehetővé teszik a beérkezett készpénzek "
+"készpénz naplóban\n"
+" való rögzítését.. Ez a tulajdonság elérhetővé teszi a "
+"készpénzek napi szintű\n"
+" nyomon követését. Rögzítheti a kazettában lévő "
+"aprópénzeket,\n"
+" és a kivét illetve betét után is feltöltheti a "
+"pénzmozgásokat.\n"
+"
\n"
+" "
#. module: account
#: model:account.account.type,name:account.data_account_type_bank
@@ -1236,7 +1341,7 @@ msgstr "Időszak kezdete"
#. module: account
#: view:account.tax:0
msgid "Refunds"
-msgstr ""
+msgstr "Visszatérítés"
#. module: account
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0
@@ -1246,7 +1351,7 @@ msgstr "Kivonat jóváhagyása"
#. module: account
#: view:account.tax:0
msgid "Account Tax"
-msgstr "Adó"
+msgstr "Adó számla"
#. module: account
#: help:account.account,foreign_balance:0
@@ -1254,6 +1359,8 @@ msgid ""
"Total amount (in Secondary currency) for transactions held in secondary "
"currency for this account."
msgstr ""
+"Teljes összeg (a másodlagos pénznemben) erre a számlára a másodlagos "
+"pénznemben történt tranzakciókra."
#. module: account
#: field:account.fiscal.position.tax,tax_dest_id:0
@@ -1278,6 +1385,8 @@ msgid ""
"The amount expressed in the secondary currency must be positif when journal "
"item are debit and negatif when journal item are credit."
msgstr ""
+"A másodlagos pénznemben kifejezett mennyiségnek pozitívnak kell lennie, ha a "
+"napló tétel tartozás és negatív, ha a napló tétel követelés."
#. module: account
#: view:account.invoice.cancel:0
@@ -1287,12 +1396,12 @@ msgstr "Számlák érvénytelenítése"
#. module: account
#: help:account.journal,code:0
msgid "The code will be displayed on reports."
-msgstr ""
+msgstr "A kód meg lesz jelenítve a kimutatásokon."
#. module: account
#: view:account.tax.template:0
msgid "Taxes used in Purchases"
-msgstr ""
+msgstr "A beszerzéseknél felhasznált adók"
#. module: account
#: field:account.invoice.tax,tax_code_id:0
@@ -1306,7 +1415,7 @@ msgstr "Adókód"
#. module: account
#: field:account.account,currency_mode:0
msgid "Outgoing Currencies Rate"
-msgstr "Csökkenéseknél használt árfolyam"
+msgstr "Kimenő csökkenéseknél használt árfolyam"
#. module: account
#: view:account.analytic.account:0
@@ -1327,7 +1436,7 @@ msgstr "A tételsor bizonylatszáma."
#. module: account
#: field:account.move.line.reconcile,trans_nbr:0
msgid "# of Transaction"
-msgstr "Tranzakció száma"
+msgstr "# Tranzakció száma"
#. module: account
#: report:account.general.ledger:0
@@ -1335,7 +1444,7 @@ msgstr "Tranzakció száma"
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
msgid "Entry Label"
-msgstr "Megjegyzés"
+msgstr "Belépési megnevezés"
#. module: account
#: help:account.invoice,origin:0
@@ -1347,12 +1456,12 @@ msgstr "Bizonylat, amely előállította ezt a számlát."
#: view:account.analytic.line:0
#: view:account.journal:0
msgid "Others"
-msgstr "Egyéb"
+msgstr "Egyebek"
#. module: account
#: view:account.subscription:0
msgid "Draft Subscription"
-msgstr ""
+msgstr "Feliratkozási tervezet"
#. module: account
#: view:account.account:0
@@ -1404,7 +1513,7 @@ msgstr "Szint"
#: code:addons/account/wizard/account_change_currency.py:38
#, python-format
msgid "You can only change currency for Draft Invoice."
-msgstr ""
+msgstr "Csak a tervezet számlának tudja megváltoztatni a pénznemét."
#. module: account
#: report:account.invoice:0
@@ -1430,7 +1539,7 @@ msgstr "Válassza ki a kezdő és a záró időszakot"
#: model:account.financial.report,name:account.account_financial_report_profitandloss0
#: model:ir.actions.act_window,name:account.action_account_report_pl
msgid "Profit and Loss"
-msgstr "Eredménykimutatás"
+msgstr "Eredménykimutatás (Nyereség/Veszteség)"
#. module: account
#: model:ir.model,name:account.model_account_account_template
@@ -1475,7 +1584,7 @@ msgstr "Listázási beállítások"
#. module: account
#: field:account.fiscalyear.close.state,fy_id:0
msgid "Fiscal Year to Close"
-msgstr ""
+msgstr "Bezárni kívánt üzleti év"
#. module: account
#: field:account.config.settings,sale_sequence_prefix:0
@@ -1499,6 +1608,9 @@ msgid ""
"And after getting confirmation from the bank it will be in 'Confirmed' "
"status."
msgstr ""
+"Ha új bizonylat lett létrehozva akkor annak állapota 'Tervezet' lesz.\n"
+"Miután a banktól megkaptuk a visszaigazolást, az állapot 'Visszaigazolt' "
+"lesz."
#. module: account
#: field:account.invoice.report,state:0
@@ -1512,12 +1624,12 @@ msgstr "Számla állapota"
#: model:process.node,name:account.process_node_bankstatement0
#: model:process.node,name:account.process_node_supplierbankstatement0
msgid "Bank Statement"
-msgstr "Bankkivonat"
+msgstr "Bankszámlakivonat"
#. module: account
#: field:res.partner,property_account_receivable:0
msgid "Account Receivable"
-msgstr "Vevő számla"
+msgstr "Vevői, követelés számla"
#. module: account
#: code:addons/account/account.py:612
@@ -1544,6 +1656,8 @@ msgid ""
"There is no default debit account defined \n"
"on journal \"%s\"."
msgstr ""
+"Nincs alapértelmezett tartozás számla meghatározva \n"
+"a könyvelési naplón \"%s\"."
#. module: account
#: view:account.tax:0
@@ -1553,7 +1667,7 @@ msgstr "Adók keresése"
#. module: account
#: model:ir.model,name:account.model_account_analytic_cost_ledger
msgid "Account Analytic Cost Ledger"
-msgstr "Gyűjtőkód karton"
+msgstr "Analitikus költség könyvitel számla"
#. module: account
#: view:account.model:0
@@ -1563,7 +1677,7 @@ msgstr "Tételek létrehozása"
#. module: account
#: field:account.entries.report,nbr:0
msgid "# of Items"
-msgstr "Tételek száma"
+msgstr "# tételekből"
#. module: account
#: field:account.automatic.reconcile,max_amount:0
@@ -1578,35 +1692,37 @@ msgid ""
"There is nothing to reconcile. All invoices and payments\n"
" have been reconciled, your partner balance is clean."
msgstr ""
+"Nincs mit párosítani. Minden számla és fizetés\n"
+" párosítva lett, az üzleti partner egyenlege tiszta."
#. module: account
#: field:account.chart.template,code_digits:0
#: field:account.config.settings,code_digits:0
#: field:wizard.multi.charts.accounts,code_digits:0
msgid "# of Digits"
-msgstr "Számjegyek száma"
+msgstr "# számlyegyek száma"
#. module: account
#: field:account.journal,entry_posted:0
msgid "Skip 'Draft' State for Manual Entries"
-msgstr "Azonnali könyvelés"
+msgstr "'Tervezet' átugrása azonnali könyveléshez"
#. module: account
#: code:addons/account/report/common_report_header.py:92
#: code:addons/account/wizard/account_report_common.py:164
#, python-format
msgid "Not implemented."
-msgstr ""
+msgstr "Nincs végrehajtva."
#. module: account
#: view:account.invoice.refund:0
msgid "Credit Note"
-msgstr "Jóváírás"
+msgstr "Jóváírás, visszatérítés jegyzék"
#. module: account
#: view:account.config.settings:0
msgid "eInvoicing & Payments"
-msgstr "Számlázás & Kifizetések"
+msgstr "eSzámlázás & Kifizetések"
#. module: account
#: view:account.analytic.cost.ledger.journal.report:0
@@ -1616,7 +1732,7 @@ msgstr "Gyűjtőkód karton az alábbi időszakra"
#. module: account
#: view:account.entries.report:0
msgid "# of Entries "
-msgstr "Tételek száma "
+msgstr "# Tételek számából "
#. module: account
#: help:account.fiscal.position,active:0
@@ -1624,6 +1740,8 @@ msgid ""
"By unchecking the active field, you may hide a fiscal position without "
"deleting it."
msgstr ""
+"Az aktív mező üresen hagyásával, eltüntetheti az ÁFA helyét, annak törlése "
+"nélkül."
#. module: account
#: model:ir.model,name:account.model_temp_range
@@ -1634,7 +1752,7 @@ msgstr "Vezérlőpult nézet ideiglenes táblázata"
#: model:ir.actions.act_window,name:account.action_invoice_tree4
#: model:ir.ui.menu,name:account.menu_action_invoice_tree4
msgid "Supplier Refunds"
-msgstr "Bejövő jóváíró számlák"
+msgstr "Beszállítói, bejövő jóváíró számlák"
#. module: account
#: field:account.tax.code,code:0
@@ -1645,7 +1763,7 @@ msgstr "Adógyűjtő kód"
#. module: account
#: field:account.config.settings,company_footer:0
msgid "Bank accounts footer preview"
-msgstr ""
+msgstr "Bankszámlaszámok a lápjegyzet előnézethez"
#. module: account
#: selection:account.account,type:0
@@ -1681,7 +1799,7 @@ msgstr "Csoportok"
#. module: account
#: field:report.invoice.created,amount_untaxed:0
msgid "Untaxed"
-msgstr "Nettó érték"
+msgstr "Nem adózott, nettó érték"
#. module: account
#: view:account.journal:0
@@ -1696,19 +1814,19 @@ msgstr "Bankkivonatok keresése"
#. module: account
#: view:account.move.line:0
msgid "Unposted Journal Items"
-msgstr ""
+msgstr "Feladatlan napló tételek"
#. module: account
#: view:account.chart.template:0
#: field:account.chart.template,property_account_payable:0
msgid "Payable Account"
-msgstr "Szállító főkönyvi számla"
+msgstr "Fizethető számla"
#. module: account
#: field:account.tax,account_paid_id:0
#: field:account.tax.template,account_paid_id:0
msgid "Refund Tax Account"
-msgstr "Adó főkönyvi számla (jóváíró szlák)"
+msgstr "Adó főkönyvi számla (jóváíró visszetérítések szlák)"
#. module: account
#: model:ir.model,name:account.model_ir_sequence
@@ -1719,12 +1837,12 @@ msgstr "ir.sequence"
#: view:account.bank.statement:0
#: field:account.bank.statement,line_ids:0
msgid "Statement lines"
-msgstr "Kivonatsorok"
+msgstr "Kivonat sorok"
#. module: account
#: report:account.analytic.account.cost_ledger:0
msgid "Date/Code"
-msgstr "Dátum/Kód"
+msgstr "Dátum/kód"
#. module: account
#: field:account.analytic.line,general_account_id:0
@@ -1755,6 +1873,20 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Kattintson új számla típus létrehozásához.\n"
+"
\n"
+" Egy számla típus azt határozza meg, hogy azt hogyan "
+"használják\n"
+" a naplókban. A számla típus alkalmazás módszer határozza meg "
+"az\n"
+" éves elszámolás számítási módszerét. Az egyenleg kimutatások "
+"\n"
+" és a nyereség és veszteség kimutatás használja a "
+"kategóriákat\n"
+" (nyereség/veszteség vagy egyenleg kimuttás).\n"
+"
\n"
+" "
#. module: account
#: report:account.invoice:0
@@ -1777,7 +1909,7 @@ msgstr "egyenleg"
#: model:process.node,note:account.process_node_analytic0
#: model:process.node,note:account.process_node_analyticcost0
msgid "Analytic costs to invoice"
-msgstr "Kiszámlázandó költségek"
+msgstr "Kiszámlázandó analitikus költségek"
#. module: account
#: view:ir.sequence:0
@@ -1787,7 +1919,7 @@ msgstr "Üzleti év sorszám"
#. module: account
#: field:account.config.settings,group_analytic_accounting:0
msgid "Analytic accounting"
-msgstr ""
+msgstr "Analitikus számla"
#. module: account
#: report:account.overdue:0
@@ -1806,6 +1938,16 @@ msgid ""
"should choose 'Round per line' because you certainly want the sum of your "
"tax-included line subtotals to be equal to the total amount with taxes."
msgstr ""
+"Ha kiválasztotta a 'Tétel soronkénti kerekítést' : mindegyik adóra, először "
+"számítást és kerekítést végez minden egyes Beszerzési megrendelés "
+"BM/Vásárlói megrendelés VM/számla tétel sorra és ezek a kerekített tételek "
+"lesznek összegezve, így kialakítva a teljes adó értéket. Ha kiválasztotta a "
+"'Teljes körű kerekítést': mindegyik adóra, először adó számítást végez "
+"minden egyes Beszerzési megrendelés BM/Vásárlói megrendelés VM/számla tétel "
+"sorra, melyek összegzésre kerülnek és végül ez a teljes adó összege lesz "
+"kerekítve. Ha adóval együtt történik az eladás, akkor a 'Tétel soronkénti "
+"kerekítést' válassza, mivel bizonyára azt szeretné, hogy az adóval növelt "
+"tételsor összegei egyezzenek a teljes összeg adóval növel értékével."
#. module: account
#: model:ir.actions.act_window,name:account.action_report_account_type_sales_tree_all
@@ -1837,12 +1979,14 @@ msgid ""
"The journal must have centralized counterpart without the Skipping draft "
"state option checked."
msgstr ""
+"A naplónak, a vázlat állapot átugrás lehetőség beállítása nélküli, központi "
+"ellenszámlával kell rendelkeznie."
#. module: account
#: code:addons/account/account_move_line.py:854
#, python-format
msgid "Some entries are already reconciled."
-msgstr ""
+msgstr "Egyes tételek már párosítva lettek."
#. module: account
#: field:account.tax.code,sum:0
@@ -1860,16 +2004,18 @@ msgid ""
"Select a configuration package to setup automatically your\n"
" taxes and chart of accounts."
msgstr ""
+"Beállítási csomagot válasszon az automatikus adó és számlatükör\n"
+" beállításokhoz."
#. module: account
#: view:account.analytic.account:0
msgid "Pending Accounts"
-msgstr ""
+msgstr "Függőben lévő számlák"
#. module: account
#: view:account.open.closed.fiscalyear:0
msgid "Cancel Fiscal Year Opening Entries"
-msgstr ""
+msgstr "Üzleti év nyitó tételeinek eldobása"
#. module: account
#: report:account.journal.period.print.sale.purchase:0
@@ -1883,7 +2029,8 @@ msgid ""
"If the active field is set to False, it will allow you to hide the journal "
"period without removing it."
msgstr ""
-"Ha az aktív mező nincs bejelölve, nem használható a könyvelési időszak."
+"Ha az aktív mező hamisra van állítva, lehetősége van a napló időszak "
+"eltüntetésére annak törlése nélkül."
#. module: account
#: field:account.report.general.ledger,sortby:0
@@ -1893,12 +2040,12 @@ msgstr "Rendezés"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_partner_account_move_all
msgid "Receivables & Payables"
-msgstr "Vevőkövetelések és szállítói tartozások"
+msgstr "Vevőkövetelések (Bevételek) és szállítói tartozások (kiadások)"
#. module: account
#: field:account.config.settings,module_account_payment:0
msgid "Manage payment orders"
-msgstr ""
+msgstr "Átutalási megbízások kezelése"
#. module: account
#: view:account.period:0
@@ -1919,12 +2066,12 @@ msgstr "Általános naplókimutatás"
#. module: account
#: selection:account.partner.balance,display_partner:0
msgid "All Partners"
-msgstr "Minden partner"
+msgstr "Összes partner"
#. module: account
#: view:account.analytic.chart:0
msgid "Analytic Account Charts"
-msgstr "Gyűjtőkód lista"
+msgstr "Analitikus számla gyűjtőkód lista"
#. module: account
#: report:account.overdue:0
@@ -1941,7 +2088,7 @@ msgstr "Vevő hiv.:"
#: help:account.tax.template,ref_tax_code_id:0
#: help:account.tax.template,tax_code_id:0
msgid "Use this code for the tax declaration."
-msgstr ""
+msgstr "Adóbevallásnál használja ezt a kódot."
#. module: account
#: help:account.period,special:0
@@ -1956,12 +2103,12 @@ msgstr "Tervezet állapotú kivonat"
#. module: account
#: model:mail.message.subtype,description:account.mt_invoice_validated
msgid "Invoice validated"
-msgstr ""
+msgstr "Számla jóváhagyva"
#. module: account
#: field:account.config.settings,module_account_check_writing:0
msgid "Pay your suppliers by check"
-msgstr ""
+msgstr "Fizesse a beszállítóit csekkel"
#. module: account
#: field:account.move.line.reconcile,credit:0
@@ -1984,6 +2131,12 @@ msgid ""
"useful because it enables you to preview at any time the tax that you owe at "
"the start and end of the month or quarter."
msgstr ""
+"Ez a menü az adó bevallást nyomtatja a számlák és kifizetések alapján. Egy "
+"vagy több időintervallumot válasszon egy üzleti évből. Az adó bevalláshoz az "
+"információkat az OpenERP automatikusan létrehozza a számlákból (vagy "
+"kifizetésekből, egyes országokban). Ezek az adatok valós időben frissülnek. "
+"Ez nagyon hasznos, mivel lehetővé teszi az adók lekérdezését egy havi vagy "
+"negyedéves időszak elejénél és végénél."
#. module: account
#: code:addons/account/account.py:409
@@ -2039,7 +2192,7 @@ msgstr ""
#: code:addons/account/wizard/pos_box.py:35
#, python-format
msgid "Error!"
-msgstr ""
+msgstr "Hiba!"
#. module: account
#: model:ir.actions.act_window,help:account.action_invoice_tree2
@@ -2054,6 +2207,15 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Kattintson egy új beszállítói számla felviteléhez.\n"
+"
\n"
+" Figyelemmel kísérheti a beszállítótól érkezett számlákat\n"
+" attól függően, hogy mit vásárolt vagy mi érkezett be. \n"
+" A rendszer létre tud hozni számla tervezetet automatikusan\n"
+" a beszerzési megrendelésből vagy vásárlási nyugtákból.\n"
+"
\n"
+" "
#. module: account
#: sql_constraint:account.move.line:0
@@ -2070,7 +2232,7 @@ msgstr "Számlák elemzése"
#. module: account
#: model:ir.model,name:account.model_mail_compose_message
msgid "Email composition wizard"
-msgstr ""
+msgstr "Email összeállító varázsló"
#. module: account
#: model:ir.model,name:account.model_account_period_close
@@ -2084,6 +2246,8 @@ msgid ""
"This journal already contains items for this period, therefore you cannot "
"modify its company field."
msgstr ""
+"Ez a napló már tartalmaz tételt erre a időszakaszra, ezért nem tudja "
+"módosítani a vállalat mezőt."
#. module: account
#: model:ir.actions.act_window,name:account.action_project_account_analytic_line_form
@@ -2093,7 +2257,7 @@ msgstr "Soronkénti tételek"
#. module: account
#: field:account.vat.declaration,based_on:0
msgid "Based on"
-msgstr ""
+msgstr "Alapján"
#. module: account
#: model:ir.actions.act_window,help:account.action_bank_statement_tree
@@ -2112,11 +2276,23 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Kattintson egy banki kivonat iktatásához.\n"
+"
\n"
+" Egy banki kivonat a pénzügyi tranzakciók összegzése\n"
+" egy a banki számlán megadott időintervallumra. Ezt\n"
+" időszakosan küldi a bank.\n"
+"
\n"
+" OpenERP allows you to reconcile a statement line directly "
+"with\n"
+" the related sale or puchase invoices.\n"
+"
\n"
+" "
#. module: account
#: field:account.config.settings,currency_id:0
msgid "Default company currency"
-msgstr ""
+msgstr "A Vállalkozás alapértelmezett pénzneme"
#. module: account
#: field:account.invoice,move_id:0
@@ -2141,13 +2317,13 @@ msgstr "Pénzeszközök elemzése"
#. module: account
#: model:ir.actions.report.xml,name:account.account_journal_sale_purchase
msgid "Sale/Purchase Journal"
-msgstr ""
+msgstr "Értékesítés/Beszerzés napló"
#. module: account
#: view:account.analytic.account:0
#: field:account.invoice.tax,account_analytic_id:0
msgid "Analytic account"
-msgstr "Gyűjtőkód"
+msgstr "Analitikus könyvelési számla"
#. module: account
#: code:addons/account/account_bank_statement.py:406
@@ -2165,18 +2341,18 @@ msgstr "Érvényes"
#: field:account.bank.statement,message_follower_ids:0
#: field:account.invoice,message_follower_ids:0
msgid "Followers"
-msgstr ""
+msgstr "Követők"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_print_journal
#: model:ir.model,name:account.model_account_print_journal
msgid "Account Print Journal"
-msgstr "Naplók nyomtatása"
+msgstr "Főkönyvi naplók nyomtatása"
#. module: account
#: model:ir.model,name:account.model_product_category
msgid "Product Category"
-msgstr "Termék kategória"
+msgstr "Termékkategória"
#. module: account
#: code:addons/account/account.py:656
@@ -2185,6 +2361,8 @@ msgid ""
"You cannot change the type of account to '%s' type as it contains journal "
"items!"
msgstr ""
+"Nem változtathatja meg a főkönyvi számla típusát erre '%s' típusra, mivel "
+"napló tételeket tartalmaz!"
#. module: account
#: model:ir.model,name:account.model_account_aged_trial_balance
@@ -2194,19 +2372,20 @@ msgstr "Korosított folyószámla kivonat"
#. module: account
#: view:account.fiscalyear.close.state:0
msgid "Close Fiscal Year"
-msgstr ""
+msgstr "Üzleti év lezárása"
#. module: account
#. openerp-web
#: code:addons/account/static/src/xml/account_move_line_quickadd.xml:14
#, python-format
msgid "Journal :"
-msgstr ""
+msgstr "Napló :"
#. module: account
#: sql_constraint:account.fiscal.position.tax:0
msgid "A tax fiscal position could be defined only once time on same taxes."
msgstr ""
+"Az adó adóügyi pozíciója csak egyszer határozható meg ugyanarra az adóra."
#. module: account
#: view:account.tax:0
@@ -2218,12 +2397,12 @@ msgstr "Adó meghatározása"
#: view:account.config.settings:0
#: model:ir.actions.act_window,name:account.action_account_config
msgid "Configure Accounting"
-msgstr ""
+msgstr "Könyvelés kialakítása"
#. module: account
#: field:account.invoice.report,uom_name:0
msgid "Reference Unit of Measure"
-msgstr ""
+msgstr "Referencia mértékegység"
#. module: account
#: help:account.journal,allow_date:0
@@ -2239,12 +2418,12 @@ msgstr ""
#: code:addons/account/static/src/xml/account_move_reconciliation.xml:8
#, python-format
msgid "Good job!"
-msgstr ""
+msgstr "Szép munka!"
#. module: account
#: field:account.config.settings,module_account_asset:0
msgid "Assets management"
-msgstr ""
+msgstr "Eszközök adatkezelése"
#. module: account
#: view:account.account:0
@@ -2258,7 +2437,7 @@ msgstr ""
#: code:addons/account/report/account_partner_ledger.py:274
#, python-format
msgid "Payable Accounts"
-msgstr "Szállító számlák"
+msgstr "Kötelezettség számlák"
#. module: account
#: constraint:account.move.line:0
@@ -2267,6 +2446,9 @@ msgid ""
"currency. You should remove the secondary currency on the account or select "
"a multi-currency view on the journal."
msgstr ""
+"A napló tétel kiválasztott könyvelési tételei másik pénznem használatát "
+"kényszerítik. El kell távolítania a másodlagos pénznemet a tétel számláról "
+"vagy válasszon több-pénznemes nézetet a naplón."
#. module: account
#: view:account.invoice:0
@@ -2279,17 +2461,19 @@ msgstr "Nettó érték"
msgid ""
"If the active field is set to False, it will allow you to hide the tax "
"without removing it."
-msgstr "Ha az aktív mező nincs bejelölve, nem használható az adó."
+msgstr ""
+"Ha az aktív mező nincs bejelölve, eltüntetheti az adó értéket annak törlése "
+"nélkül."
#. module: account
#: view:account.analytic.line:0
msgid "Analytic Journal Items related to a sale journal."
-msgstr ""
+msgstr "Értékesítési naplóval kapcsolatban álló analitikai napló tételek."
#. module: account
#: selection:account.financial.report,style_overwrite:0
msgid "Italic Text (smaller)"
-msgstr ""
+msgstr "Italic szövegméret (kisebb)"
#. module: account
#: help:account.journal,cash_control:0
@@ -2297,6 +2481,7 @@ msgid ""
"If you want the journal should be control at opening/closing, check this "
"option"
msgstr ""
+"Ha a napló vezérlést a nyitásnál/zárásnál szeretné, jelölje ezt a lehetőséget"
#. module: account
#: view:account.bank.statement:0
@@ -2347,7 +2532,7 @@ msgstr "Párosítandó számlák"
#. module: account
#: model:process.transition,note:account.process_transition_filestatement0
msgid "Import of the statement in the system from an electronic file"
-msgstr "File-ból kivonat importálása a rendszerbe"
+msgstr "Fájlból banki kivonat importálása a rendszerbe"
#. module: account
#: model:process.node,name:account.process_node_importinvoice0
@@ -2366,7 +2551,7 @@ msgstr "Január"
#. module: account
#: view:account.entries.report:0
msgid "This F.Year"
-msgstr "Tárgyév"
+msgstr "Ez az Üzleti év"
#. module: account
#: view:account.tax.chart:0
@@ -2377,18 +2562,18 @@ msgstr "Adókivonatok"
#: model:account.payment.term,name:account.account_payment_term_net
#: model:account.payment.term,note:account.account_payment_term_net
msgid "30 Net Days"
-msgstr "30 nap"
+msgstr "30 nap nettó"
#. module: account
#: code:addons/account/account_cash_statement.py:256
#, python-format
msgid "You do not have rights to open this %s journal !"
-msgstr ""
+msgstr "Nincs hozááférési joge ehez a %s naplóhoz !"
#. module: account
#: model:res.groups,name:account.group_supplier_inv_check_total
msgid "Check Total on supplier invoices"
-msgstr ""
+msgstr "Ellenőrizze a végösszeget ezeken a beszállítói számlákon"
#. module: account
#: selection:account.invoice,state:0
@@ -2396,7 +2581,7 @@ msgstr ""
#: selection:account.invoice.report,state:0
#: selection:report.invoice.created,state:0
msgid "Pro-forma"
-msgstr "Pro forma"
+msgstr "Pro-forma"
#. module: account
#: help:account.account.template,type:0
@@ -2422,7 +2607,7 @@ msgstr "Számlatükör sablon keresése"
#. module: account
#: report:account.invoice:0
msgid "Customer Code"
-msgstr ""
+msgstr "Vevő kód"
#. module: account
#: view:account.account.type:0
@@ -2451,7 +2636,7 @@ msgstr "Ár tartalmazza az adót"
#: view:account.subscription:0
#: selection:account.subscription,state:0
msgid "Running"
-msgstr "Futó"
+msgstr "Folyamatban lévő"
#. module: account
#: view:account.chart.template:0
@@ -2464,6 +2649,8 @@ msgstr "Árbevétel főkönyvi számla"
#: help:account.config.settings,default_sale_tax:0
msgid "This sale tax will be assigned by default on new products."
msgstr ""
+"Ez az értékesítési adó lesz alapértelmezetten hozzárendelve az új "
+"termékekhez."
#. module: account
#: report:account.general.ledger_landscape:0
@@ -2475,12 +2662,12 @@ msgstr "Tételek sorbarendezésének alapja"
#. module: account
#: field:account.change.currency,currency_id:0
msgid "Change to"
-msgstr "Új pénznem"
+msgstr "Változtatás erre"
#. module: account
#: view:account.entries.report:0
msgid "# of Products Qty "
-msgstr "Termékmennyiség "
+msgstr "# Termékmennyiség "
#. module: account
#: model:ir.model,name:account.model_product_template
@@ -2544,7 +2731,7 @@ msgstr "Üzleti év"
#: help:accounting.report,fiscalyear_id:0
#: help:accounting.report,fiscalyear_id_cmp:0
msgid "Keep empty for all open fiscal year"
-msgstr "Hagyja üresen, ha minden nyitott évre akarja listázni"
+msgstr "Hagyja üresen, ha minden nyitott üzleti évre akarja listázni"
#. module: account
#: code:addons/account/account.py:653
@@ -2553,11 +2740,13 @@ msgid ""
"You cannot change the type of account from 'Closed' to any other type as it "
"contains journal items!"
msgstr ""
+"Nem változtathatja meg a 'Lezárt' állapotú főkönyvi számlát más típusra, "
+"mivel napló tételeket tartalmaz!"
#. module: account
#: field:account.invoice.report,account_line_id:0
msgid "Account Line"
-msgstr ""
+msgstr "Főkönyvi számla tétel"
#. module: account
#: view:account.addtmpl.wizard:0
@@ -2573,6 +2762,11 @@ msgid ""
"amount greater than the total invoiced amount. In order to avoid rounding "
"issues, the latest line of your payment term must be of type 'balance'."
msgstr ""
+"Nem hozható létre számla.\n"
+"Az ide vonatkozó fizetési feltétel lehetséges hogy félrekonfigurált, mivel a "
+"számított mennyiség nagyobb mint a számlázott végösszeg. Kerekítésből "
+"származó hibák elkerülésére, a fizetési feltétel utolsó tételének 'egyenleg' "
+"típusnak kell lennie."
#. module: account
#: view:account.move:0
@@ -2592,6 +2786,8 @@ msgid ""
"In order to delete a bank statement, you must first cancel it to delete "
"related journal items."
msgstr ""
+"Banki kivonat törléséhez, először vonja vissza, hogy törölni tudja az ide "
+"vonatkozó napló tételeket."
#. module: account
#: field:account.invoice.report,payment_term:0
@@ -2614,6 +2810,7 @@ msgstr "ÁFA pozíciók"
#, python-format
msgid "You cannot create journal items on a closed account %s %s."
msgstr ""
+"Nem tud napló tételeket létrehozni egy lezárt könyvelési számlán %s %s."
#. module: account
#: field:account.period.close,sure:0
@@ -2629,17 +2826,17 @@ msgstr "Szűrők"
#: model:process.node,note:account.process_node_draftinvoices0
#: model:process.node,note:account.process_node_supplierdraftinvoices0
msgid "Draft state of an invoice"
-msgstr "A számla tervezet állapota"
+msgstr "Egy számla tervezet állapota"
#. module: account
#: view:product.category:0
msgid "Account Properties"
-msgstr ""
+msgstr "Főkönyvi számla tulajdonságai"
#. module: account
#: selection:account.invoice.refund,filter_refund:0
msgid "Create a draft refund"
-msgstr ""
+msgstr "Visszatérítés tervezet számla készítése"
#. module: account
#: view:account.partner.reconcile.process:0
@@ -2649,7 +2846,7 @@ msgstr "Partner párosítás"
#. module: account
#: view:account.analytic.line:0
msgid "Fin. Account"
-msgstr ""
+msgstr "Pénzügyi számla"
#. module: account
#: field:account.tax,tax_code_id:0
@@ -2661,7 +2858,7 @@ msgstr "Adógyűjtő kód"
#: model:account.payment.term,name:account.account_payment_term_advance
#: model:account.payment.term,note:account.account_payment_term_advance
msgid "30% Advance End 30 Days"
-msgstr ""
+msgstr "30% előrefizetés 30 napon belül"
#. module: account
#: view:account.entries.report:0
@@ -2715,7 +2912,7 @@ msgstr "Megújítandó számlák"
#. module: account
#: model:ir.model,name:account.model_account_model_line
msgid "Account Model Entries"
-msgstr "Modelltételek"
+msgstr "Főkönyvi számla modelltételek"
#. module: account
#: code:addons/account/account.py:3202
@@ -2726,12 +2923,12 @@ msgstr "EXJ"
#. module: account
#: field:product.template,supplier_taxes_id:0
msgid "Supplier Taxes"
-msgstr "Beszerzési adók"
+msgstr "Beszerzések adói"
#. module: account
#: view:res.partner:0
msgid "Bank Details"
-msgstr "Bankadatok"
+msgstr "Bank adatok"
#. module: account
#: model:ir.actions.act_window,help:account.action_move_journal_line
@@ -2752,6 +2949,21 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Kattintson új adóügyi év létrehozásához.\n"
+"
\n"
+" Határozza meg a vállalkozása üzleti évét a kívánságainak "
+"megfelelően.\n"
+" Egy üzleti év egy idő periódus, aminek a végén a vállalkozás "
+"könyvelése\n"
+" elszámolásra kerül (általában 12 hónap). Az üzleti év arra a "
+"dátumra\n"
+" hivatkozik általában ahol az véget ér. Például,\n"
+" ha a vállalkozás pénzügyi üzleti éve 2011 november 30-ára "
+"esik, akkor\n"
+" minden ami 2010 december 1 és 2011 november 30 közé esik\n"
+" azt hívjuk 2011 évi üzleti/pénzügyi/adóügyi évnek.\n"
+"
\n"
+" "
#. module: account
#: view:account.common.report:0
@@ -2975,7 +3205,7 @@ msgstr "Dátumok"
#. module: account
#: field:account.chart.template,parent_id:0
msgid "Parent Chart Template"
-msgstr ""
+msgstr "Fölérendelt számlatükör sablon"
#. module: account
#: field:account.tax,parent_id:0
@@ -2988,7 +3218,7 @@ msgstr "Fölérendelt adószámla"
#: model:ir.actions.act_window,name:account.action_account_aged_balance_view
#: model:ir.ui.menu,name:account.menu_aged_trial_balance
msgid "Aged Partner Balance"
-msgstr "Korosított folyószámla kivonat"
+msgstr "Korosított partner folyószámla számlaegyenleg"
#. module: account
#: model:process.transition,name:account.process_transition_entriesreconcile0
@@ -2999,12 +3229,12 @@ msgstr "Könyvelési tételek"
#. module: account
#: constraint:account.move.line:0
msgid "Account and Period must belong to the same company."
-msgstr ""
+msgstr "Főkönyvi számla és időszak ugyanahhoz a vállalathoz tartozzon."
#. module: account
#: field:account.invoice.line,discount:0
msgid "Discount (%)"
-msgstr "Engedmény (%)"
+msgstr "Árengedmény (%)"
#. module: account
#: help:account.journal,entry_posted:0
@@ -3030,7 +3260,7 @@ msgstr "Leírandó összeg"
#: field:account.bank.statement,message_unread:0
#: field:account.invoice,message_unread:0
msgid "Unread Messages"
-msgstr ""
+msgstr "Olvasatlan üzenetek"
#. module: account
#: code:addons/account/wizard/account_invoice_state.py:44
@@ -3039,12 +3269,15 @@ msgid ""
"Selected invoice(s) cannot be confirmed as they are not in 'Draft' or 'Pro-"
"Forma' state."
msgstr ""
+"A kiválasztott számla(k) nem erősíthetők meg mivel nem 'Tervezet' vagy 'Pro-"
+"Forma' állapotúak."
#. module: account
#: code:addons/account/account.py:1071
#, python-format
msgid "You should choose the periods that belong to the same company."
msgstr ""
+"Olyan időszakot kell választania ami ugyanahhoz a vállalathoz tartozik."
#. module: account
#: model:ir.actions.act_window,name:account.action_report_account_sales_tree_all
@@ -3057,7 +3290,7 @@ msgstr "Főkönyvi számlánkénti értékesítés"
#: code:addons/account/account.py:1449
#, python-format
msgid "You cannot delete a posted journal entry \"%s\"."
-msgstr ""
+msgstr "Nem törölhet egy feladott napló bejegyzést \"%s\"."
#. module: account
#: view:account.invoice:0
@@ -3067,7 +3300,7 @@ msgstr "Könyvelési időszak"
#. module: account
#: field:account.config.settings,sale_journal_id:0
msgid "Sale journal"
-msgstr ""
+msgstr "Értékesítési napló"
#. module: account
#: code:addons/account/account.py:2346
@@ -3075,7 +3308,7 @@ msgstr ""
#: code:addons/account/account_move_line.py:195
#, python-format
msgid "You have to define an analytic journal on the '%s' journal!"
-msgstr "A(z) '%s' naplóhoz meg kell határoznia egy gyűjtőnaplót!"
+msgstr "A(z) '%s' naplóhoz meg kell határoznia egy analitikai gyűjtő naplót!"
#. module: account
#: code:addons/account/account.py:781
@@ -3084,6 +3317,8 @@ msgid ""
"This journal already contains items, therefore you cannot modify its company "
"field."
msgstr ""
+"Ez a napló már tartalmaz tételeket, ezért nem változtathatja meg a vállalati "
+"mezőt."
#. module: account
#: code:addons/account/account.py:409
@@ -3092,6 +3327,8 @@ msgid ""
"You need an Opening journal with centralisation checked to set the initial "
"balance."
msgstr ""
+"Egy központosítással leellenőrzött nyitó napló szükséges a kezdő egyenleg "
+"beállításához."
#. module: account
#: model:ir.actions.act_window,name:account.action_tax_code_list
@@ -3102,13 +3339,13 @@ msgstr "Adógyűjtők"
#. module: account
#: view:account.account:0
msgid "Unrealized Gains and losses"
-msgstr ""
+msgstr "Nem megvalósított nyereségek és veszteségek"
#. module: account
#: model:ir.ui.menu,name:account.menu_account_customer
#: model:ir.ui.menu,name:account.menu_finance_receivables
msgid "Customers"
-msgstr "Vevők"
+msgstr "Vásárlók"
#. module: account
#: report:account.analytic.account.cost_ledger:0
@@ -3129,7 +3366,7 @@ msgstr "Augusztus"
#. module: account
#: field:accounting.report,debit_credit:0
msgid "Display Debit/Credit Columns"
-msgstr ""
+msgstr "Tartozás/követelés oszlop kijelzése"
#. module: account
#: selection:account.entries.report,month:0
@@ -3154,12 +3391,12 @@ msgstr ""
#: view:account.unreconcile:0
#: view:account.unreconcile.reconcile:0
msgid "Unreconcile Transactions"
-msgstr ""
+msgstr "Nem párosított tranzakciók"
#. module: account
#: field:wizard.multi.charts.accounts,only_one_chart_template:0
msgid "Only One Chart Template Available"
-msgstr ""
+msgstr "Csak egy sablon lista elérhető"
#. module: account
#: view:account.chart.template:0
@@ -3172,7 +3409,7 @@ msgstr "Beszerzés főkönyvi számla"
#: field:account.bank.statement,message_summary:0
#: field:account.invoice,message_summary:0
msgid "Summary"
-msgstr ""
+msgstr "Összegzés"
#. module: account
#: help:account.invoice,period_id:0
@@ -3188,7 +3425,7 @@ msgstr "A kivonat egyeztetésnél használja a rendszer, máshol ne alkalmazza."
#. module: account
#: field:account.config.settings,date_stop:0
msgid "End date"
-msgstr ""
+msgstr "Befejezés dátuma"
#. module: account
#: field:account.invoice.tax,base_amount:0
@@ -3219,7 +3456,7 @@ msgstr "Pénzügyi számvitel"
#. module: account
#: model:ir.ui.menu,name:account.menu_account_report_pl
msgid "Profit And Loss"
-msgstr "Eredménykimutatás"
+msgstr "Eredménykimutatás (Nyereség és Veszteség)"
#. module: account
#: view:account.fiscal.position:0
@@ -3233,7 +3470,7 @@ msgstr "Eredménykimutatás"
#: model:ir.model,name:account.model_account_fiscal_position
#: field:res.partner,property_account_position:0
msgid "Fiscal Position"
-msgstr "ÁFA pozíció"
+msgstr "Költségvetési pozíció"
#. module: account
#: code:addons/account/account_invoice.py:823
@@ -3262,13 +3499,13 @@ msgstr "Alárendelt számlák"
#: model:ir.actions.report.xml,name:account.account_account_balance
#: model:ir.ui.menu,name:account.menu_general_Balance_report
msgid "Trial Balance"
-msgstr "Főkönyvi kivonat"
+msgstr "Próbamérleg"
#. module: account
#: code:addons/account/account.py:431
#, python-format
msgid "Unable to adapt the initial balance (negative value)."
-msgstr ""
+msgstr "Nem tudja a kezdő egyenleget alkalmazni (negatív érték)."
#. module: account
#: selection:account.invoice,type:0
@@ -3276,7 +3513,7 @@ msgstr ""
#: model:process.process,name:account.process_process_invoiceprocess0
#: selection:report.invoice.created,type:0
msgid "Customer Invoice"
-msgstr "Kimenő számla"
+msgstr "Kimenő, vevői számla"
#. module: account
#: model:ir.model,name:account.model_account_open_closed_fiscalyear
@@ -3287,7 +3524,7 @@ msgstr "Üzleti év kiválasztása"
#: view:account.config.settings:0
#: view:account.installer:0
msgid "Date Range"
-msgstr ""
+msgstr "Dátum tartomány"
#. module: account
#: view:account.period:0
@@ -3303,7 +3540,7 @@ msgstr "Számla pénzneme"
#: field:accounting.report,account_report_id:0
#: model:ir.ui.menu,name:account.menu_account_financial_reports_tree
msgid "Account Reports"
-msgstr ""
+msgstr "Főkönyvi számlák kimutatásai"
#. module: account
#: field:account.payment.term,line_ids:0
@@ -3318,7 +3555,7 @@ msgstr "Adósablon lista"
#. module: account
#: model:ir.ui.menu,name:account.menu_account_print_sale_purchase_journal
msgid "Sale/Purchase Journals"
-msgstr ""
+msgstr "Értékesítési/Beszerzési naplók"
#. module: account
#: help:account.account,currency_mode:0
@@ -3329,14 +3566,18 @@ msgid ""
"software system you may have to use the rate at date. Incoming transactions "
"always use the rate at date."
msgstr ""
-"Kiválasztja, hogy a rendszer milyen árfolyamon számolja a devizás tételek "
-"csökkenéseit. A növekedéseknél mindig a napi árfolyamot használja a rendszer."
+"Kiválasztja, hogy a kimenő tranzakciókhoz milyen árfolyamon számolja a "
+"devizás tételek csökkenéseit. A legtöbb országban a törvényes mód az "
+"'Átlagolás', de ezt nagyon kevés program rendszer tudja kezelni. Ha másik "
+"program rendszerből importálja akkor inkább a dátummal megadott árfolyamot "
+"használja. A bejövő tranzakcióknál, növekedéseknél mindig a napi árfolyamot "
+"használja a rendszer."
#. module: account
#: code:addons/account/account.py:2678
#, python-format
msgid "There is no parent code for the template account."
-msgstr ""
+msgstr "Nincs fölérendelt kódja a főkönyvi számla sablonhoz."
#. module: account
#: help:account.chart.template,code_digits:0
@@ -3347,7 +3588,7 @@ msgstr "Számjegyek száma a főkönyvi számla számában"
#. module: account
#: field:res.partner,property_supplier_payment_term:0
msgid "Supplier Payment Term"
-msgstr "Szállítói fizetási feltétel"
+msgstr "Beszállítói fizetési feltétel"
#. module: account
#: view:account.fiscalyear:0
@@ -3364,6 +3605,8 @@ msgstr "Mindig"
msgid ""
"Full accounting features: journals, legal statements, chart of accounts, etc."
msgstr ""
+"Összes könyvelési tulajdonság: naplók, törvényes kivonatok, számlatükrök, "
+"stb."
#. module: account
#: view:account.analytic.line:0
@@ -3380,7 +3623,7 @@ msgstr "Leírás főkönyvi számlája"
#: view:account.subscription:0
#: field:account.subscription,model_id:0
msgid "Model"
-msgstr "Modell"
+msgstr "Model, minta"
#. module: account
#: help:account.invoice.tax,base_code_id:0
@@ -3393,7 +3636,7 @@ msgstr "Az adóbevallásban szereplő adóalap."
#: selection:account.entries.report,type:0
#: selection:account.financial.report,type:0
msgid "View"
-msgstr "Gyűjtő"
+msgstr "Nézet"
#. module: account
#: code:addons/account/account.py:3460
@@ -3405,37 +3648,37 @@ msgstr "BNK"
#. module: account
#: field:account.move.line,analytic_lines:0
msgid "Analytic lines"
-msgstr "Gyűjtőkód tételek"
+msgstr "Analitikai gyűjtőkód tételek"
#. module: account
#: view:account.invoice:0
msgid "Proforma Invoices"
-msgstr ""
+msgstr "Proforma számlák"
#. module: account
#: model:process.node,name:account.process_node_electronicfile0
msgid "Electronic File"
-msgstr "Elektronikus file"
+msgstr "Elektronikus fájl"
#. module: account
#: field:account.move.line,reconcile:0
msgid "Reconcile Ref"
-msgstr ""
+msgstr "Párosítás hivatkozása"
#. module: account
#: field:account.config.settings,has_chart_of_accounts:0
msgid "Company has a chart of accounts"
-msgstr ""
+msgstr "A vállalkozásnak van egy számlatükre"
#. module: account
#: model:ir.model,name:account.model_account_tax_code_template
msgid "Tax Code Template"
-msgstr "Adógyűjtő sablon"
+msgstr "Adó kód sablon"
#. module: account
#: model:ir.model,name:account.model_account_partner_ledger
msgid "Account Partner Ledger"
-msgstr "Folyószámla karton"
+msgstr "Partner folyószámla karton"
#. module: account
#: model:email.template,body_html:account.email_template_edi_invoice
@@ -3521,11 +3764,93 @@ msgid ""
"\n"
" "
msgstr ""
+"\n"
+"
\n"
+" "
#. module: account
#: view:account.period:0
msgid "Account Period"
-msgstr ""
+msgstr "Főkönyvi számla időszak"
#. module: account
#: help:account.account,currency_id:0
@@ -3533,7 +3858,7 @@ msgstr ""
#: help:account.bank.accounts.wizard,currency_id:0
msgid "Forces all moves for this account to have this secondary currency."
msgstr ""
-"A számla minden mozgásának ebben a másodlagos pénznemben kell végbemennie."
+"A számla minden bizonylatának ebben a másodlagos pénznemben kell végbemennie."
#. module: account
#: model:ir.actions.act_window,help:account.action_validate_account_move_line
@@ -3553,12 +3878,12 @@ msgstr "Számlatükör sablonok"
#. module: account
#: view:account.bank.statement:0
msgid "Transactions"
-msgstr ""
+msgstr "Tranzakciók"
#. module: account
#: model:ir.model,name:account.model_account_unreconcile_reconcile
msgid "Account Unreconcile Reconcile"
-msgstr "Párosítás visszavonása"
+msgstr "Visszavont párosítású számlák Párosítása"
#. module: account
#: help:account.account.type,close_method:0
@@ -3573,18 +3898,20 @@ msgid ""
" 'Unreconciled' will copy only the journal items that were unreconciled on "
"the first day of the new fiscal year."
msgstr ""
-"Állítsa be a módszert, amellyel az ezen típusú főkönyvi számlák nyitó "
-"tételei létrehozásra kerülnek.\n"
+"Állítsa be a módszert, amellyel az ezen típusú főkönyvi számlák év végi "
+"napló tételei létrehozásra kerülnek.\n"
"\n"
-" Semmi esetében nem lesznek nyitó tételek.\n"
-" Egyenlegnél az előző évi záró egyenleg lesz a nyitó tétel.\n"
-" Tételes esetében az előző év minden tétele átkerül tárgyévre.\n"
-" Rendezetlennél csak a párosítatlan tételek kerülnek át."
+" 'Semmi' esetében nem lesznek nyitó tételek.\n"
+" 'Egyenleg'-nél az előző évi záró egyenleg lesz a nyitó tétel általában a "
+"készpénznél, házipénztárnál.\n"
+" 'Tételes' esetében az előző év minden tétele átkerül tárgyévre, még a "
+"rendezettek is.\n"
+" 'Rendezetlen' csak a párosítatlan tételek kerülnek át."
#. module: account
#: view:account.tax.template:0
msgid "Keep empty to use the expense account"
-msgstr "-"
+msgstr "Hadja üressen a költség számla használatához"
#. module: account
#: field:account.aged.trial.balance,journal_ids:0
@@ -3652,7 +3979,7 @@ msgstr "Pénzügy-Számvitel modul beállítása"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_vat_declaration
msgid "Account Tax Declaration"
-msgstr ""
+msgstr "Adó bevalási főkönyvi számla"
#. module: account
#: help:account.bank.statement,name:0
@@ -3672,6 +3999,8 @@ msgid ""
"centralized counterpart box in the related journal from the configuration "
"menu."
msgstr ""
+"Központosított naplón nem tud számlát létrehozni. Hagyja üresen a beállítás "
+"menüben az ide vonatkozó naplóhoz tartozó központi ellenszámla négyzetet."
#. module: account
#: field:account.bank.statement,balance_start:0
@@ -3690,7 +4019,7 @@ msgstr "Nem adott meg partnert!"
#: model:ir.actions.act_window,name:account.action_account_period_tree
#: model:ir.ui.menu,name:account.menu_action_account_period_close_tree
msgid "Close a Period"
-msgstr "Időszak zárása"
+msgstr "Egy időszak lezárása"
#. module: account
#: view:account.bank.statement:0
@@ -3704,11 +4033,13 @@ msgid ""
"You cannot create journal items with a secondary currency without recording "
"both 'currency' and 'amount currency' field."
msgstr ""
+"Nem tud másodlagos pénznemmel ellátott napló tételt létrehozni a 'pénznem' "
+"és 'pénznem mennyiség' mező bevitele nélkül."
#. module: account
#: field:account.financial.report,display_detail:0
msgid "Display details"
-msgstr ""
+msgstr "Részletek kijelzése"
#. module: account
#: report:account.overdue:0
@@ -3720,7 +4051,8 @@ msgstr "ÁFA:"
msgid ""
"The amount expressed in the related account currency if not equal to the "
"company one."
-msgstr "Másodlagos pénznemben kifejezett összeg."
+msgstr ""
+"A vállalat pénznemétől eltérő másodlagos pénznemben kifejezett összeg."
#. module: account
#: help:account.config.settings,paypal_account:0
@@ -3730,6 +4062,11 @@ msgid ""
"quotations with a button \"Pay with Paypal\" in automated emails or through "
"the OpenERP portal."
msgstr ""
+"Paypal számla (email) online fizetések befogadásához (hitel kártya, stb.) Ha "
+"beállított egy paypal számlát, akkor az ügyfélnek lehetősége lesz "
+"kiegyenlítenie a számlákat vagy árajánlatban szerepló tételeket az e-"
+"maileken lévő \"Paypal-al történő fizetés\" gombbal vagy a portálon "
+"keresztül."
#. module: account
#: code:addons/account/account_move_line.py:536
@@ -3740,6 +4077,10 @@ msgid ""
"You can create one in the menu: \n"
"Configuration/Journals/Journals."
msgstr ""
+"Nem található egyetlen %s típusú könyvelési napló ehhez a vállalathoz.\n"
+"\n"
+"Létrehozhat egyet a menüből: \n"
+"Beállítások/Naplók/Naplók."
#. module: account
#: model:ir.actions.act_window,name:account.action_account_unreconcile
@@ -3763,7 +4104,7 @@ msgstr "Adókivonat"
#. module: account
#: view:account.journal:0
msgid "Search Account Journal"
-msgstr "Napló keresése"
+msgstr "Főkönyvi napló keresése"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree_pending_invoice
@@ -3774,7 +4115,7 @@ msgstr "Függő számlák"
#: view:account.invoice.report:0
#: selection:account.subscription,period_type:0
msgid "year"
-msgstr "Év"
+msgstr "év"
#. module: account
#: field:account.config.settings,date_start:0
@@ -3790,6 +4131,12 @@ msgid ""
"by\n"
" your supplier/customer."
msgstr ""
+"Lehetősége lesz szerkeszteni és érvényesíteni ezt a\n"
+" jóváírási értesítést közvetlenül vagy "
+"hagyja tervezetként,\n"
+" amíg a dokumentumot a "
+"vásárlónak/beszállítótól\n"
+" nem bocsájtja ki."
#. module: account
#: view:validate.account.move.lines:0
@@ -3797,8 +4144,8 @@ msgid ""
"All selected journal entries will be validated and posted. It means you "
"won't be able to modify their accounting fields anymore."
msgstr ""
-"Minden kiválasztott könyvelési tétel jóváhagyásra és könyvelésre kerül. "
-"Ezután nem lesz módosítható a kontírozásuk."
+"Minden kiválasztott könyvelési tétel jóváhagyásra és könyvelési feladásra "
+"kerül. Ezután nem lesz módosítható a kontírozásuk."
#. module: account
#: code:addons/account/account_move_line.py:98
@@ -3807,6 +4154,8 @@ msgid ""
"You have not supplied enough arguments to compute the initial balance, "
"please select a period and a journal in the context."
msgstr ""
+"Nem adott meg elég bizonyítékot a kezdő egyenleg kiszámításához, kérem "
+"válasszon időszakot és egy naplót a környezetből."
#. module: account
#: model:ir.actions.report.xml,name:account.account_transfers
@@ -3816,7 +4165,7 @@ msgstr "Átutalások"
#. module: account
#: field:account.config.settings,expects_chart_of_accounts:0
msgid "This company has its own chart of accounts"
-msgstr ""
+msgstr "Ennek a vállalkozásnak saját számlatükre van."
#. module: account
#: view:account.chart:0
@@ -3832,7 +4181,7 @@ msgstr "Készpénz kifizetése"
#. module: account
#: report:account.vat.declaration:0
msgid "Tax Amount"
-msgstr "ÁFA összege"
+msgstr "Adó összege"
#. module: account
#: view:account.move:0
@@ -3857,6 +4206,19 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Kattintson egy vásárlói számla készítéséhez.\n"
+"
\n"
+" elektronikus számlázás lehetővé teszi a vásárlók "
+"fizetéseinek \n"
+" gyors és könnyű beszedését. A vásárlói e-mailen kapják \n"
+" számláikat, amiket online és/vagy a rendszerükbe importálva\n"
+" egyenlíthetik ki.\n"
+"
\n"
+" A vásárlókkal folytatott kommunikáció automatikusan\n"
+" láthatóvá válik a számla alján.\n"
+"
\n"
+" "
#. module: account
#: field:account.tax.code,name:0
@@ -3879,7 +4241,7 @@ msgstr "Beállítások"
#. module: account
#: field:account.aged.trial.balance,period_length:0
msgid "Period Length (days)"
-msgstr ""
+msgstr "Időszak hossz (napok)"
#. module: account
#: code:addons/account/account.py:1363
@@ -3888,22 +4250,24 @@ msgid ""
"You cannot modify a posted entry of this journal.\n"
"First you should set the journal to allow cancelling entries."
msgstr ""
+"Nem módosíthatja ennek a naplónak a már könyvelésre feladott bejegyzését.\n"
+"Először be kell állítania a naplót bejegyzések visszavonására."
#. module: account
#: model:ir.actions.act_window,name:account.action_account_print_sale_purchase_journal
msgid "Print Sale/Purchase Journal"
-msgstr ""
+msgstr "Értékesítés/Beszerzés napló nyomtatás"
#. module: account
#: view:account.installer:0
msgid "Continue"
-msgstr ""
+msgstr "Folytatás"
#. module: account
#: view:account.invoice.report:0
#: field:account.invoice.report,categ_id:0
msgid "Category of Product"
-msgstr "Termék katerógia"
+msgstr "Termék katerógiája"
#. module: account
#: code:addons/account/account.py:930
@@ -3912,6 +4276,8 @@ msgid ""
"There is no fiscal year defined for this date.\n"
"Please create one from the configuration of the accounting menu."
msgstr ""
+"Erre a dátumra nem lett üzleti adóügyi év meghatározva.\n"
+"Kérem hozzon létre egyet a könyvelési menü beállítása menüpont alatt."
#. module: account
#: view:account.addtmpl.wizard:0
@@ -3924,6 +4290,8 @@ msgstr "Főkönyvi számla létrehozása"
#, python-format
msgid "The entries to reconcile should belong to the same company."
msgstr ""
+"A párosításhoz szóló tételek ugyanahhoz a vállalkozáshoz kell hogy "
+"tartozzanak."
#. module: account
#: field:account.invoice.tax,tax_amount:0
@@ -3933,7 +4301,7 @@ msgstr "Adógyűjtő összege"
#. module: account
#: view:account.move.line:0
msgid "Unreconciled Journal Items"
-msgstr ""
+msgstr "Megszüntetett párosítású napló tételek"
#. module: account
#: selection:account.account.type,close_method:0
@@ -3944,6 +4312,7 @@ msgstr "Tételes"
#: help:account.config.settings,default_purchase_tax:0
msgid "This purchase tax will be assigned by default on new products."
msgstr ""
+"Ez a beszerzési adó lesz alapértelmezetten hozzárendelve az új termékekhez."
#. module: account
#: report:account.invoice:0
@@ -3975,7 +4344,7 @@ msgstr "(Ha nem választ időszakot, minden nyitott időszakot figyelembe vesz)"
#. module: account
#: model:ir.model,name:account.model_account_journal_cashbox_line
msgid "account.journal.cashbox.line"
-msgstr ""
+msgstr "account.journal.cashbox.line"
#. module: account
#: model:ir.model,name:account.model_account_partner_reconcile_process
@@ -4033,7 +4402,7 @@ msgstr "Dátum"
#. module: account
#: view:account.move:0
msgid "Post"
-msgstr ""
+msgstr "Könyvelésre küld"
#. module: account
#: view:account.unreconcile:0
@@ -4072,7 +4441,7 @@ msgstr "Összes"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_reporting_budgets
msgid "Budgets"
-msgstr "Üzleti tervek"
+msgstr "Költségvetési pénzügyi tervek"
#. module: account
#: selection:account.aged.trial.balance,filter:0
@@ -4091,13 +4460,13 @@ msgstr "Üzleti tervek"
#: selection:accounting.report,filter:0
#: selection:accounting.report,filter_cmp:0
msgid "No Filters"
-msgstr "Nincs szűrő"
+msgstr "Nincsenek szűrők"
#. module: account
#: view:account.invoice.report:0
#: model:res.groups,name:account.group_proforma_invoices
msgid "Pro-forma Invoices"
-msgstr ""
+msgstr "Pro-forma számlák"
#. module: account
#: view:res.partner:0
@@ -4117,7 +4486,7 @@ msgstr ""
#. module: account
#: field:account.config.settings,group_check_supplier_invoice_total:0
msgid "Check the total of supplier invoices"
-msgstr ""
+msgstr "Az össes beszállítói számlák ellenőrzése"
#. module: account
#: view:account.tax:0
@@ -4131,6 +4500,8 @@ msgid ""
"When monthly periods are created. The status is 'Draft'. At the end of "
"monthly period it is in 'Done' status."
msgstr ""
+"Ha havi időszakok létrehozva. Az állapot 'Tervezet'. A hónap végi állapot "
+"'Elkészítve' lesz."
#. module: account
#: view:account.invoice.report:0
@@ -4152,18 +4523,18 @@ msgstr ""
#. module: account
#: view:account.analytic.line:0
msgid "Search Analytic Lines"
-msgstr "Gyűjtőkód tételek keresése"
+msgstr "Analitikai gyűjtőkód tételek keresése"
#. module: account
#: field:res.partner,property_account_payable:0
msgid "Account Payable"
-msgstr "Szállító számla"
+msgstr "Fizetendő, beszállító számla"
#. module: account
#: code:addons/account/wizard/account_fiscalyear_close.py:88
#, python-format
msgid "The periods to generate opening entries cannot be found."
-msgstr ""
+msgstr "A nyitó tételek létrehozásához tartozó időszakok nem találhatóak."
#. module: account
#: model:process.node,name:account.process_node_supplierpaymentorder0
@@ -4174,7 +4545,9 @@ msgstr "Átutalási megbízás"
#: help:account.account.template,reconcile:0
msgid ""
"Check this option if you want the user to reconcile entries in this account."
-msgstr "Jelölje be, ha a számla tételei párosíthatóak."
+msgstr ""
+"Jelölje be, ha azt szeretné, hogy a felhasználó ennek a számlának a tételeit "
+"párosítsa."
#. module: account
#: report:account.invoice:0
@@ -4185,7 +4558,7 @@ msgstr "Egységár"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_tree1
msgid "Analytic Items"
-msgstr "Gyűjtőkód tételek"
+msgstr "Analitikai gyűjtőkód tételek"
#. module: account
#: field:analytic.entries.report,nbr:0
@@ -4205,7 +4578,7 @@ msgstr "Adógyűjtő szorzótényezője"
#. module: account
#: field:account.config.settings,complete_tax_set:0
msgid "Complete set of taxes"
-msgstr ""
+msgstr "Adók teljes csomagja"
#. module: account
#: field:account.account,name:0
@@ -4223,12 +4596,12 @@ msgstr "Megnevezés"
#: code:addons/account/installer.py:115
#, python-format
msgid "No unconfigured company !"
-msgstr ""
+msgstr "Nincs kiépítetlen vállalkozás !"
#. module: account
#: field:res.company,expects_chart_of_accounts:0
msgid "Expects a Chart of Accounts"
-msgstr ""
+msgstr "Várható számlatükör"
#. module: account
#: field:account.move.line,date:0
@@ -4240,28 +4613,30 @@ msgstr "Teljesítés kelte"
#, python-format
msgid "The journal must have default credit and debit account."
msgstr ""
+"A naplónak rendelkeznie kell alapértelmezett követelés és tartozás "
+"számlákkal."
#. module: account
#: model:ir.actions.act_window,name:account.action_bank_tree
#: model:ir.ui.menu,name:account.menu_action_bank_tree
msgid "Setup your Bank Accounts"
-msgstr ""
+msgstr "Állítsa be a banki számlaszámait"
#. module: account
#: xsl:account.transfer:0
msgid "Partner ID"
-msgstr ""
+msgstr "Parner azonosító"
#. module: account
#: help:account.bank.statement,message_ids:0
#: help:account.invoice,message_ids:0
msgid "Messages and communication history"
-msgstr ""
+msgstr "Üzenetek és kommunikáció történet"
#. module: account
#: help:account.journal,analytic_journal_id:0
msgid "Journal for analytic entries"
-msgstr "Gyűjtőkód tételek naplója"
+msgstr "Analitikai gyűjtőkód tételek naplója"
#. module: account
#: constraint:account.aged.trial.balance:0
@@ -4282,6 +4657,8 @@ msgid ""
"The fiscalyear, periods or chart of account chosen have to belong to the "
"same company."
msgstr ""
+"Az üzelti adóügyi év, periódus vagy számlatükör kiválasztása ugyanarra a "
+"vállalkozásra kell, hogy vonatkozzon."
#. module: account
#: help:account.tax.code.template,notprintable:0
@@ -4289,13 +4666,15 @@ msgid ""
"Check this box if you don't want any tax related to this tax Code to appear "
"on invoices."
msgstr ""
+"Jelölje be ezt a négyzetet, ha nem akarja ehhez az adógyűjtőkódhoz tartozó "
+"bármely adó megjelenítését."
#. module: account
#: code:addons/account/account_move_line.py:1058
#: code:addons/account/account_move_line.py:1143
#, python-format
msgid "You cannot use an inactive account."
-msgstr ""
+msgstr "Nem használhat egyetlan inaktív számlát sem."
#. module: account
#: model:ir.actions.act_window,name:account.open_board_account
@@ -4314,19 +4693,19 @@ msgstr "Könyvelés"
#. module: account
#: view:account.entries.report:0
msgid "Journal Entries with period in current year"
-msgstr ""
+msgstr "A jelenlegi évre vonatkozó időszakok napló bejegyzései"
#. module: account
#: field:account.account,child_consol_ids:0
msgid "Consolidated Children"
-msgstr "Konszolidált számlák"
+msgstr "Konszolidált alszámlák"
#. module: account
#: code:addons/account/account_invoice.py:573
#: code:addons/account/wizard/account_invoice_refund.py:146
#, python-format
msgid "Insufficient Data!"
-msgstr ""
+msgstr "Nincs elegendő adat!"
#. module: account
#: help:account.account,unrealized_gain_loss:0
@@ -4334,6 +4713,8 @@ msgid ""
"Value of Loss or Gain due to changes in exchange rate when doing multi-"
"currency transactions."
msgstr ""
+"A veszteség vagy nyereség értékének változása az árfolyam változás miatt, ha "
+"több pénznemben történik a tranzakció."
#. module: account
#: view:account.analytic.line:0
@@ -4371,7 +4752,7 @@ msgstr "Ismétlődő tételek"
#. module: account
#: field:account.partner.balance,display_partner:0
msgid "Display Partners"
-msgstr "Megjelenítendő partnerek"
+msgstr "Parnerek megjelenítése"
#. module: account
#: view:account.invoice:0
@@ -4386,7 +4767,7 @@ msgstr "Eszközök"
#. module: account
#: view:account.config.settings:0
msgid "Accounting & Finance"
-msgstr ""
+msgstr "Könyvelés és pénzügy"
#. module: account
#: view:account.invoice.confirm:0
@@ -4403,7 +4784,7 @@ msgstr "Átlagárfolyam"
#: field:account.common.account.report,display_account:0
#: field:account.report.general.ledger,display_account:0
msgid "Display Accounts"
-msgstr ""
+msgstr "Főkönyvi számlák kijelzése"
#. module: account
#: view:account.state.open:0
@@ -4414,7 +4795,7 @@ msgstr ""
#. module: account
#: field:account.tax,account_analytic_collected_id:0
msgid "Invoice Tax Analytic Account"
-msgstr ""
+msgstr "Számla adó tartalmának analitikus könyvelése"
#. module: account
#: field:account.chart,period_from:0
@@ -4444,7 +4825,7 @@ msgstr "30 nap, hó vége"
#: model:ir.actions.act_window,name:account.action_account_analytic_balance
#: model:ir.actions.report.xml,name:account.account_analytic_account_balance
msgid "Analytic Balance"
-msgstr "Gyűjtőkód kivonat"
+msgstr "Analitikus gyűjtőkód számlaegyenleg"
#. module: account
#: help:res.partner,property_payment_term:0
@@ -4452,6 +4833,8 @@ msgid ""
"This payment term will be used instead of the default one for sale orders "
"and customer invoices"
msgstr ""
+"Ezt a fizetési feltételt használja az alapértelmezett helyett a vásárlói "
+"megrendeléseken és az értékesítési számlákon."
#. module: account
#: view:account.config.settings:0
@@ -4459,23 +4842,26 @@ msgid ""
"If you put \"%(year)s\" in the prefix, it will be replaced by the current "
"year."
msgstr ""
+"Ha \"%(év)ek\" használ előtagként, akkor azt kiváltja az aktuális év."
#. module: account
#: help:account.account,active:0
msgid ""
"If the active field is set to False, it will allow you to hide the account "
"without removing it."
-msgstr "Ha az aktív mező nincs bejelölve, nem használható a főkönyvi számla."
+msgstr ""
+"Ha az aktív mező hamisra állított, akkor eltüntetheti a főkönyvi számlát "
+"annak törlése nélkül."
#. module: account
#: view:account.move.line:0
msgid "Posted Journal Items"
-msgstr ""
+msgstr "Könyvelésre feladott napló tételek"
#. module: account
#: field:account.move.line,blocked:0
msgid "No Follow-up"
-msgstr ""
+msgstr "Nincs nyomon követés"
#. module: account
#: view:account.tax.template:0
@@ -4485,7 +4871,7 @@ msgstr "Adósablonok keresése"
#. module: account
#: model:ir.ui.menu,name:account.periodical_processing_journal_entries_validation
msgid "Draft Entries"
-msgstr "Könyveletlen tételek"
+msgstr "Könyveletlen (Tervezet) tételek"
#. module: account
#: help:account.config.settings,decimal_precision:0
@@ -4494,12 +4880,15 @@ msgid ""
"9.99 EUR, whereas a decimal precision of 4 will allow journal entries like: "
"0.0231 EUR."
msgstr ""
+"Példaként, a kétjegyű (2) decimális pontosság lehetővé teszi az ilyen napló "
+"tételeket: 9.99 EUR, ugyanakkor a négyjegyű (4) decimális pontosság lehetővé "
+"teszi az ilyen napló tételeket: 0.0231 EUR."
#. module: account
#: field:account.account,shortcut:0
#: field:account.account.template,shortcut:0
msgid "Shortcut"
-msgstr "Gyorsmenü"
+msgstr "Gyorsbillentyű parancs"
#. module: account
#: view:account.account:0
@@ -4532,6 +4921,7 @@ msgstr "A kiválasztott számlák érvénytelenítése"
#, python-format
msgid "You have to assign an analytic journal on the '%s' journal!"
msgstr ""
+"Egy analitikai gyűjtőkód naplót kell hozzárendelni ezen a '%s' naplón!"
#. module: account
#: model:process.transition,note:account.process_transition_supplieranalyticcost0
@@ -4539,8 +4929,9 @@ msgid ""
"Analytic costs (timesheets, some purchased products, ...) come from analytic "
"accounts. These generate draft supplier invoices."
msgstr ""
-"A költségek a gyűjtőkódokból származnak. Ezek állítják elő a tervezet "
-"állapotú bejövő számlákat."
+"Analitikus költségek (időkimutatásokból, egyes beszerzett termékből, ..) "
+"származnak. Ezek állítják elő a tervezet állapotú bejövő beszállítói "
+"számlákat."
#. module: account
#: model:ir.actions.act_window,help:account.action_bank_tree
@@ -4557,6 +4948,17 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Kattintson új bankszámlaszám beállításához. \n"
+"
\n"
+" Állítsa be a vállalkozása bank számláit és válassza ki azokat\n"
+" melyeknek meg kell jelennie a lábjegyzetben.\n"
+"
\n"
+" Ha használja a könyvelési modult részt, naplók és főkönyvi\n"
+" számlák automatikusan lesznek létrehozva az itt megadott \n"
+" adatok alapján.\n"
+"
\n"
+" "
#. module: account
#: constraint:account.tax.code.template:0
@@ -4564,6 +4966,8 @@ msgid ""
"Error!\n"
"You cannot create recursive Tax Codes."
msgstr ""
+"Hiba!\n"
+"Nem hozhat létre visszatérő adógyűjtőkódokat."
#. module: account
#: constraint:account.period:0
@@ -4571,6 +4975,8 @@ msgid ""
"Error!\n"
"The duration of the Period(s) is/are invalid."
msgstr ""
+"Hiba!\n"
+"Az időszak(ok) időtartama nem értelmezhető."
#. module: account
#: field:account.entries.report,month:0
@@ -4588,11 +4994,12 @@ msgstr "Hónap"
#, python-format
msgid "You cannot change the code of account which contains journal items!"
msgstr ""
+"Napló tételt tartalmazó főkönyvi számla kódját nem tudja megváltoztatni."
#. module: account
#: field:account.config.settings,purchase_sequence_prefix:0
msgid "Supplier invoice sequence"
-msgstr ""
+msgstr "Beszállítói számlák sorrendje"
#. module: account
#: code:addons/account/account_invoice.py:610
@@ -4602,18 +5009,20 @@ msgid ""
"Cannot find a chart of account, you should create one from Settings\\"
"Configuration\\Accounting menu."
msgstr ""
+"Nem talál egy számlatükröt, létre kell hoznia egyet a Beállítások\\"
+"Beállítás\\Könyvelés menüből."
#. module: account
#: field:account.entries.report,product_uom_id:0
#: view:analytic.entries.report:0
#: field:analytic.entries.report,product_uom_id:0
msgid "Product Unit of Measure"
-msgstr ""
+msgstr "Termék mértékegysége"
#. module: account
#: field:res.company,paypal_account:0
msgid "Paypal Account"
-msgstr ""
+msgstr "Paypal számla"
#. module: account
#: view:account.entries.report:0
@@ -4623,7 +5032,7 @@ msgstr "Számlatípus"
#. module: account
#: selection:account.journal,type:0
msgid "Bank and Checks"
-msgstr ""
+msgstr "Bank és csekkek"
#. module: account
#: field:account.account.template,note:0
@@ -4633,14 +5042,14 @@ msgstr "Megjegyzés"
#. module: account
#: selection:account.financial.report,sign:0
msgid "Reverse balance sign"
-msgstr ""
+msgstr "Elentétes oldalú számla egyenleg előjele"
#. module: account
#: selection:account.account.type,report_type:0
#: code:addons/account/account.py:191
#, python-format
msgid "Balance Sheet (Liability account)"
-msgstr ""
+msgstr "Számlaegyenleg lap (Felelősség számla)"
#. module: account
#: help:account.invoice,date_invoice:0
@@ -4663,12 +5072,13 @@ msgstr "Adóalapgyűjtő kód"
#, python-format
msgid ""
"You have to provide an account for the write off/exchange difference entry."
-msgstr ""
+msgstr "Meg kell határozni egy leírás/átváltási árfolyam különbség számlát."
#. module: account
#: help:res.company,paypal_account:0
msgid "Paypal username (usually email) for receiving online payments."
msgstr ""
+"Paypal felhasználónév (általában email) az online összegek fogadásához."
#. module: account
#: selection:account.aged.trial.balance,target_move:0
@@ -4690,7 +5100,7 @@ msgstr ""
#: code:addons/account/report/common_report_header.py:68
#, python-format
msgid "All Posted Entries"
-msgstr "Minden könyvelt tétel"
+msgstr "Minden könyvelésre feladott tétel"
#. module: account
#: field:report.aged.receivable,name:0
@@ -4705,19 +5115,19 @@ msgstr "Jelölje be, ha a 0 egyenlegű számlákat is meg akarja jeleníteni!"
#. module: account
#: field:account.move.reconcile,opening_reconciliation:0
msgid "Opening Entries Reconciliation"
-msgstr ""
+msgstr "Nyitó egyenlegek párosítása"
#. module: account
#. openerp-web
#: code:addons/account/static/src/xml/account_move_reconciliation.xml:24
#, python-format
msgid "Last Reconciliation:"
-msgstr ""
+msgstr "Utolsó párosítás:"
#. module: account
#: selection:account.move.line,state:0
msgid "Balanced"
-msgstr ""
+msgstr "Számlaegyenlegesítve"
#. module: account
#: model:process.node,note:account.process_node_importinvoice0
@@ -4731,11 +5141,13 @@ msgid ""
"There is currently no company without chart of account. The wizard will "
"therefore not be executed."
msgstr ""
+"Nincs számlatükörrel nem rendelkező vállalat.. Ezért a varázsló nem fog "
+"elindulni."
#. module: account
#: model:ir.actions.act_window,name:account.action_wizard_multi_chart
msgid "Set Your Accounting Options"
-msgstr ""
+msgstr "Főkönyvi szála lehetőségeinek beállítása"
#. module: account
#: model:ir.model,name:account.model_account_chart
@@ -4750,7 +5162,7 @@ msgstr "Átutalási hivatkozás"
#. module: account
#: selection:account.financial.report,style_overwrite:0
msgid "Main Title 1 (bold, underlined)"
-msgstr ""
+msgstr "Fó cím 1 (kövér, aláhúzott)"
#. module: account
#: report:account.analytic.account.balance:0
@@ -4771,7 +5183,7 @@ msgstr "Számlastatisztika"
#. module: account
#: field:account.account,exchange_rate:0
msgid "Exchange Rate"
-msgstr ""
+msgstr "Árfolyam"
#. module: account
#: model:process.transition,note:account.process_transition_paymentorderreconcilation0
@@ -4798,7 +5210,7 @@ msgstr "Záró egyenleg"
#. module: account
#: field:account.chart.template,visible:0
msgid "Can be Visible?"
-msgstr ""
+msgstr "Lehet látható?"
#. module: account
#: model:ir.model,name:account.model_account_journal_select
@@ -4814,27 +5226,27 @@ msgstr "Jóváíró számlák"
#: view:account.move.line:0
#: model:ir.actions.act_window,name:account.action_account_manual_reconcile
msgid "Journal Items to Reconcile"
-msgstr ""
+msgstr "Párosítani kívánt napló tételek"
#. module: account
#: model:ir.model,name:account.model_account_tax_template
msgid "Templates for Taxes"
-msgstr ""
+msgstr "Sablonok adókhoz"
#. module: account
#: sql_constraint:account.period:0
msgid "The name of the period must be unique per company!"
-msgstr ""
+msgstr "Az időszakok neveinek vállalkozásonként egyéninek kell lenniük!"
#. module: account
#: help:wizard.multi.charts.accounts,currency_id:0
msgid "Currency as per company's country."
-msgstr ""
+msgstr "Pénznem a vállalat országának megfelelően."
#. module: account
#: view:account.tax:0
msgid "Tax Computation"
-msgstr ""
+msgstr "Adó kiszámítás"
#. module: account
#: view:wizard.multi.charts.accounts:0
@@ -4849,6 +5261,9 @@ msgid ""
"you want to generate accounts of this template only when loading its child "
"template."
msgstr ""
+"Állítsa az értékét hamisra, ha nem akarja a sablont aktívan a számlatükör "
+"varázsló sablonjai között használni, akkor hasznos, ha az al-sablonok "
+"betöltése után szeretne ebből a sablonból számlatükröt létrehozni."
#. module: account
#: view:account.use.model:0
@@ -4867,6 +5282,9 @@ msgid ""
"Error!\n"
"You cannot create an account which has parent account of different company."
msgstr ""
+"Hiba!\n"
+"Nem hozhat létre más vállalkozásnál fölérendelt számlával rendelkező "
+"főkönyvi számlát."
#. module: account
#: code:addons/account/account_invoice.py:658
@@ -4877,6 +5295,10 @@ msgid ""
"You can create one in the menu: \n"
"Configuration\\Journals\\Journals."
msgstr ""
+"Nem talál ilyen %s típusú főkönyvi számlát ehhez a vállalkozáshoz.\n"
+"\n"
+"Létre tud hozni egyet a menüből: \n"
+"Beállítások\\Naplók\\Naplók."
#. module: account
#: report:account.vat.declaration:0
@@ -4892,7 +5314,7 @@ msgstr "ECNJ"
#. module: account
#: model:ir.model,name:account.model_account_analytic_cost_ledger_journal_report
msgid "Account Analytic Cost Ledger For Journal Report"
-msgstr "Gyűjtőkód karton"
+msgstr "Gyűjtőszámla karton az analitikus költség naplóhoz"
#. module: account
#: model:ir.actions.act_window,name:account.action_model_form
@@ -4902,7 +5324,7 @@ msgstr "Ismétlődő modellek"
#. module: account
#: view:account.tax:0
msgid "Children/Sub Taxes"
-msgstr ""
+msgstr "Alsóbbrendű/Alárendelt adók"
#. module: account
#: xsl:account.transfer:0
@@ -4922,7 +5344,7 @@ msgstr "Követel összegek alapértelmezett főkönyvi számlája"
#. module: account
#: view:cash.box.out:0
msgid "Describe why you take money from the cash register:"
-msgstr ""
+msgstr "Írja le miért vesz ki pénzt a pénz rögzítőből:"
#. module: account
#: selection:account.invoice,state:0
@@ -4934,12 +5356,12 @@ msgstr "Érvénytelenített"
#. module: account
#: help:account.config.settings,group_proforma_invoices:0
msgid "Allows you to put invoices in pro-forma state."
-msgstr ""
+msgstr "Lehetővé teszi a számlák pro-forma, díjbekérő állapotba tételét."
#. module: account
#: view:account.journal:0
msgid "Unit Of Currency Definition"
-msgstr ""
+msgstr "A pénznem egységének meghatározása"
#. module: account
#: help:account.partner.ledger,amount_currency:0
@@ -4948,12 +5370,14 @@ msgid ""
"It adds the currency column on report if the currency differs from the "
"company currency."
msgstr ""
+"Ez hozzáadja a pénznem oszlopot a beszámolóban, ha a vállalkozás pénznemétől "
+"eltérő a pénznem."
#. module: account
#: code:addons/account/account.py:3394
#, python-format
msgid "Purchase Tax %.2f%%"
-msgstr ""
+msgstr "Beszerzési adó %.2f%%"
#. module: account
#: view:account.subscription.generate:0
@@ -4987,7 +5411,7 @@ msgstr "Érvénytelenített számla"
#. module: account
#: view:account.invoice:0
msgid "My Invoices"
-msgstr ""
+msgstr "Számláim"
#. module: account
#: selection:account.bank.statement,state:0
@@ -4997,7 +5421,7 @@ msgstr "Új"
#. module: account
#: view:wizard.multi.charts.accounts:0
msgid "Sale Tax"
-msgstr ""
+msgstr "Értékesítési adó"
#. module: account
#: field:account.tax,ref_tax_code_id:0
@@ -5022,12 +5446,15 @@ msgid ""
"printed it comes to 'Printed' status. When all transactions are done, it "
"comes in 'Done' status."
msgstr ""
+"Ha létre lett hozva a napló időtartam. Az állapota 'Tervezet' lesz. Ha a "
+"kimutatás ki lett nyomtatva akkor annak állapota 'Kinyomtatva' lesz. Ha "
+"minden tranzakció el lett végezve akkor 'Elkészített' állapotú lesz."
#. module: account
#: code:addons/account/account.py:3205
#, python-format
msgid "MISC"
-msgstr ""
+msgstr "Különb."
#. module: account
#: field:account.fiscalyear.close,fy2_id:0
@@ -5050,7 +5477,7 @@ msgstr "Számlák"
#. module: account
#: help:account.config.settings,expects_chart_of_accounts:0
msgid "Check this box if this company is a legal entity."
-msgstr ""
+msgstr "Jelölje be a négyzetet, ha a vállalat egy jogi személy."
#. module: account
#: model:account.account.type,name:account.conf_account_type_chk
@@ -5096,7 +5523,7 @@ msgstr "Csekk"
#: view:validate.account.move:0
#: view:validate.account.move.lines:0
msgid "or"
-msgstr ""
+msgstr "vagy"
#. module: account
#: view:account.invoice.report:0
@@ -5106,7 +5533,7 @@ msgstr "Számlázott"
#. module: account
#: view:account.move:0
msgid "Posted Journal Entries"
-msgstr ""
+msgstr "Könyvelésre feladott napló tételek"
#. module: account
#: view:account.use.model:0
@@ -5120,6 +5547,9 @@ msgid ""
"account if this is a Customer Invoice or Supplier Refund, otherwise a "
"Partner bank account number."
msgstr ""
+"Bank számla szám melyre a számla ki lesz egyenlítve. Kimenő vásárlói számla "
+"vagy beszerzési jóváírás esetén a vállalkozás bankszámlája, egyéb esetben az "
+"üzleti partner bank számla száma."
#. module: account
#: field:account.partner.reconcile.process,today_reconciled:0
@@ -5146,12 +5576,12 @@ msgstr "Rendezett"
#. module: account
#: field:account.invoice,tax_line:0
msgid "Tax Lines"
-msgstr "ÁFA összesítő"
+msgstr "Adó összesítő"
#. module: account
#: help:account.move.line,statement_id:0
msgid "The bank statement used for bank reconciliation"
-msgstr "A bank egyeztetéshez használt bankkivonat."
+msgstr "A bank egyeztetéshez használt bankkivonat"
#. module: account
#: model:process.transition,note:account.process_transition_suppliercustomerinvoice0
@@ -5164,22 +5594,24 @@ msgid ""
"Set the account that will be set by default on invoice tax lines for "
"invoices. Leave empty to use the expense account."
msgstr ""
+"Főkönyvi számla beállítása a számlák adó tételeinek alapértelmezett "
+"használatához. Hagyja üresen a költség kiadási számla használatához."
#. module: account
#: code:addons/account/account.py:890
#, python-format
msgid "Opening Period"
-msgstr ""
+msgstr "Nyitó időszak"
#. module: account
#: view:account.move:0
msgid "Journal Entries to Review"
-msgstr ""
+msgstr "Fellülvizsgálandó napló tételek"
#. module: account
#: selection:res.company,tax_calculation_rounding_method:0
msgid "Round Globally"
-msgstr ""
+msgstr "Globális kerekítés"
#. module: account
#: view:account.bank.statement:0
@@ -5199,6 +5631,8 @@ msgid ""
"Please verify the price of the invoice !\n"
"The encoded total does not match the computed total."
msgstr ""
+"Kérem a számlában lévő árak ellenőrzését !\n"
+"A beírt teljes összeg nem egyezik a kiszámított összeggel."
#. module: account
#: field:account.account,active:0
@@ -5228,12 +5662,12 @@ msgstr "Időszak vége"
#. module: account
#: model:process.node,note:account.process_node_supplierpaymentorder0
msgid "Payment of invoices"
-msgstr "Számlák átutalása"
+msgstr "Számlák kiegyenlítése"
#. module: account
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
-msgstr ""
+msgstr "Egyéni számlaszámnak kell lennie mindegyik válallathoz!"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_receivable_graph
@@ -5244,12 +5678,12 @@ msgstr "Számlatípusonkénti egyenleg"
#: code:addons/account/account_cash_statement.py:301
#, python-format
msgid "There is no %s Account on the journal %s."
-msgstr ""
+msgstr "Nincs %s főkönyvi számla ehhez a naplóhoz %s."
#. module: account
#: model:res.groups,name:account.group_account_user
msgid "Accountant"
-msgstr ""
+msgstr "Könyvelő"
#. module: account
#: model:ir.actions.act_window,help:account.action_account_treasury_report_all
@@ -5257,16 +5691,19 @@ msgid ""
"From this view, have an analysis of your treasury. It sums the balance of "
"every accounting entries made on liquidity accounts per period."
msgstr ""
+"Erről a nézetről, van egy kimutatás a pénzeszközeire vonatkozólag. Ez "
+"összegzi időszakonként a likviditási számlán bejegyzett tételek "
+"számlaegyenlegét."
#. module: account
#: model:res.groups,name:account.group_account_manager
msgid "Financial Manager"
-msgstr ""
+msgstr "Pénzügyi irányító"
#. module: account
#: field:account.journal,group_invoice_lines:0
msgid "Group Invoice Lines"
-msgstr "Számlasorok összevonása"
+msgstr "Számlatételek összevonása"
#. module: account
#: view:account.automatic.reconcile:0
@@ -5276,13 +5713,13 @@ msgstr "Zárás"
#. module: account
#: field:account.bank.statement.line,move_ids:0
msgid "Moves"
-msgstr "Tételek"
+msgstr "Bizonylatok"
#. module: account
#: field:account.bank.statement,details_ids:0
#: view:account.journal:0
msgid "CashBox Lines"
-msgstr ""
+msgstr "Pénzkazetta tételek"
#. module: account
#: model:ir.model,name:account.model_account_vat_declaration
@@ -5295,6 +5732,8 @@ msgid ""
"If you do not check this box, you will be able to do invoicing & payments, "
"but not accounting (Journal Items, Chart of Accounts, ...)"
msgstr ""
+"Ha nem jelöli be ezt a négyzetet, akkor lehetősége lesz számlázni & "
+"kifizetni, de nem tud könyvelni (Napló bejegyzéseket, számlatükröt, ...)"
#. module: account
#: view:account.period:0
@@ -5304,7 +5743,7 @@ msgstr "Lezárandó"
#. module: account
#: field:account.treasury.report,date:0
msgid "Beginning of Period Date"
-msgstr ""
+msgstr "Az időszak kezdeti dátuma"
#. module: account
#: model:ir.ui.menu,name:account.account_template_folder
@@ -5314,7 +5753,7 @@ msgstr "Sablonok"
#. module: account
#: field:account.invoice.tax,name:0
msgid "Tax Description"
-msgstr "Adótípus"
+msgstr "Adó leírása"
#. module: account
#: field:account.tax,child_ids:0
@@ -5327,12 +5766,13 @@ msgstr "Alárendelt adószámlák"
msgid ""
"Check this if the price you use on the product and invoices includes this "
"tax."
-msgstr "Jelölje be, ha az ár tartalmazza az ÁFÁ-t."
+msgstr ""
+"Jelölje be, ha a termékeken és a számlákon az ár tartalmazza az adót."
#. module: account
#: report:account.analytic.account.balance:0
msgid "Analytic Balance -"
-msgstr "Gyűjtőkód kivonat -"
+msgstr "Analitikus gyűjtőkód számlaegyenleg -"
#. module: account
#: report:account.account.balance:0
@@ -5362,7 +5802,7 @@ msgstr "Gyűjtőkód kivonat -"
#: field:account.vat.declaration,target_move:0
#: field:accounting.report,target_move:0
msgid "Target Moves"
-msgstr "Figyelembe vett tételek"
+msgstr "Figyelembe vett bizonylat tételek"
#. module: account
#: code:addons/account/account.py:1454
@@ -5370,12 +5810,14 @@ msgstr "Figyelembe vett tételek"
msgid ""
"Move cannot be deleted if linked to an invoice. (Invoice: %s - Move ID:%s)"
msgstr ""
+"Ha a bizonylet van rendelve egy számlához, akkor az nem törölhető. (Számla: "
+"%s - Bizonylat azonosító ID:%s)"
#. module: account
#: view:account.bank.statement:0
#: help:account.cashbox.line,number_opening:0
msgid "Opening Unit Numbers"
-msgstr "Nyitó darabszám"
+msgstr "Nyitó egységnyi darabszám"
#. module: account
#: field:account.subscription,period_type:0
@@ -5414,13 +5856,17 @@ msgid ""
"encode the sale and purchase rates or choose from list of taxes. This last "
"choice assumes that the set of tax defined on this template is complete"
msgstr ""
+"Ez a boolean művelet segítséget nyújt annak kiválasztásában, hogy javasol "
+"az értékesítési és beszerzési értékek kódolásában vagy az adó listából "
+"válassza ki azokat. Ez utóbbit választása feltételezi, hogy a sablonban "
+"teljes körűen meghatározott az adó."
#. module: account
#: view:account.financial.report:0
#: field:account.financial.report,children_ids:0
#: model:ir.model,name:account.model_account_financial_report
msgid "Account Report"
-msgstr ""
+msgstr "Folyószámlajelentés"
#. module: account
#: field:account.entries.report,year:0
@@ -5438,7 +5884,7 @@ msgstr "Év"
#. module: account
#: help:account.invoice,sent:0
msgid "It indicates that the invoice has been sent."
-msgstr ""
+msgstr "Ez jelzi, hogy a számlát már elküldték."
#. module: account
#: field:account.tax.template,description:0
@@ -5453,16 +5899,19 @@ msgid ""
"Put a sequence in the journal definition for automatic numbering or create a "
"sequence manually for this piece."
msgstr ""
+"Nem hozható létre automatikus sorrend ehhez a darabhoz.\n"
+"Rakjon sorrendet a napló meghatározásánál az automatikus számozáshoz vagy "
+"hozzon létre kézi sorrendet ehhez a darabhoz."
#. module: account
#: view:account.invoice:0
msgid "Pro Forma Invoice "
-msgstr ""
+msgstr "Pro Forma számla "
#. module: account
#: selection:account.subscription,period_type:0
msgid "month"
-msgstr "Hónap"
+msgstr "hónap"
#. module: account
#: view:account.move.line:0
@@ -5481,19 +5930,19 @@ msgstr "Adószámla"
#: model:ir.actions.act_window,name:account.action_account_report_bs
#: model:ir.ui.menu,name:account.menu_account_report_bs
msgid "Balance Sheet"
-msgstr "Mérleg"
+msgstr "Egyenleg kimutatatás"
#. module: account
#: selection:account.account.type,report_type:0
#: code:addons/account/account.py:188
#, python-format
msgid "Profit & Loss (Income account)"
-msgstr ""
+msgstr "Nyereség & Veszteség (Jövedelem bevételi számla)"
#. module: account
#: field:account.journal,allow_date:0
msgid "Check Date in Period"
-msgstr ""
+msgstr "Ellenőrizze a dátumot az időszakban"
#. module: account
#: model:ir.ui.menu,name:account.final_accounting_reports
@@ -5523,6 +5972,7 @@ msgstr "Számítási kód (ha a típus = Python kód)"
msgid ""
"Cannot find a chart of accounts for this company, you should create one."
msgstr ""
+"Nem található a vállalatra vonatkozó számlatükör, Létre kell hoznia egyet."
#. module: account
#: selection:account.analytic.journal,type:0
@@ -5564,7 +6014,7 @@ msgstr "Összeg"
#: code:addons/account/wizard/account_fiscalyear_close.py:41
#, python-format
msgid "End of Fiscal Year Entry"
-msgstr "Záró/nyitó tétel"
+msgstr "Üzleti év záró tétel"
#. module: account
#: model:process.transition,name:account.process_transition_customerinvoice0
@@ -5583,6 +6033,8 @@ msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr ""
+"A chettelés összegzést megállítja (üzenetek száma,...). Ez az összegzés "
+"direkt HTML formátumú ahhoz hogy beilleszthető legyen a kanban nézetekbe."
#. module: account
#: field:account.tax,child_depend:0
@@ -5600,6 +6052,12 @@ msgid ""
"entry was reconciled, either the user pressed the button \"Fully "
"Reconciled\" in the manual reconciliation process"
msgstr ""
+"A partner főkönyvi számla tételeinek legutóbbi összesítő párosításának "
+"dátuma. Ha eltér ennek a partnernek a legutóbbi párosítási dátumától, azzal "
+"itt leírjuk azt a tényt, hogy most nincs mit párosítani. Ez kétféleképpen "
+"teljesülhet: vagy az utolsó tartozás/követelés lett párosítva, vagy a "
+"felhasználó megnyomta a \"Összesítő párosítás\" gombot a kézi párosítás "
+"műveletek elindításához"
#. module: account
#: field:account.journal,update_posted:0
@@ -5614,14 +6072,14 @@ msgid ""
"payment term!\n"
"Please define partner on it!"
msgstr ""
-"\"A(z) '%s' modellsor által előállított tételsor esedékességének dátuma a "
+"A(z) '%s' modellsor által előállított tételsor esedékességének dátuma a "
"partner fizetési feltételétől függ!\n"
"Kérem, adja meg a partnert!\""
#. module: account
#: field:account.tax.code,sign:0
msgid "Coefficent for parent"
-msgstr "Összegzésnél használt előjel"
+msgstr "Fölérendeltekhez használt előjel"
#. module: account
#: report:account.partner.balance:0
@@ -5631,12 +6089,12 @@ msgstr "(Számla/partner) név"
#. module: account
#: field:account.partner.reconcile.process,progress:0
msgid "Progress"
-msgstr "Haladás"
+msgstr "Fejlődés"
#. module: account
#: field:wizard.multi.charts.accounts,bank_accounts_id:0
msgid "Cash and Banks"
-msgstr ""
+msgstr "Készpénz pénztár és bankok"
#. module: account
#: model:ir.model,name:account.model_account_installer
@@ -5646,13 +6104,13 @@ msgstr "account.installer"
#. module: account
#: view:account.invoice:0
msgid "Recompute taxes and total"
-msgstr ""
+msgstr "Számítsa újra az adókat és összegzéseket"
#. module: account
#: code:addons/account/account.py:1116
#, python-format
msgid "You cannot modify/delete a journal with entries for this period."
-msgstr ""
+msgstr "Nem módosíthatja/törölheti ennek az időszaknak a napló bejegyzéseit."
#. module: account
#: field:account.tax.template,include_base_amount:0
@@ -5662,7 +6120,7 @@ msgstr "Adóalap tartalmazza az adót"
#. module: account
#: field:account.invoice,supplier_invoice_number:0
msgid "Supplier Invoice Number"
-msgstr "Szállítói számlaszám"
+msgstr "Beszállítói számlaszám"
#. module: account
#: help:account.payment.term.line,days:0
@@ -5670,9 +6128,9 @@ msgid ""
"Number of days to add before computation of the day of month.If Date=15/01, "
"Number of Days=22, Day of Month=-1, then the due date is 28/02."
msgstr ""
-"Napok száma, amely hozzáadódik a mai dátumhoz. Ezután számolja a rendszer a "
-"hónap napját. Pl. ha a dátum 01.15., a napok száma 22 és a hónap napja -1, "
-"akkor a fizetési határidő 02.28. lesz."
+"Napok száma, amely hozzáadódik a mai dátumhoz. Ez alapján számolja a "
+"rendszer a hónap napját. Pl. ha a dátum 01.15., a napok száma 22 és a hónap "
+"napja -1, akkor a fizetési határidő 02.28. lesz."
#. module: account
#: view:account.payment.term.line:0
@@ -5683,7 +6141,7 @@ msgstr "Összeg kiszámítása"
#: code:addons/account/account_move_line.py:1105
#, python-format
msgid "You can not add/modify entries in a closed period %s of journal %s."
-msgstr ""
+msgstr "A %s napló, %s lezárt időszak tételeit nem tudja növelni/módosítani."
#. module: account
#: view:account.journal:0
@@ -5694,7 +6152,7 @@ msgstr "Tétel ellenőrzések"
#: view:account.analytic.chart:0
#: view:project.account.analytic.line:0
msgid "(Keep empty to open the current situation)"
-msgstr "(Hagyja üresen, hogy az aktuális állapotot nyissa meg)"
+msgstr "(Hagyja üresen, az aktuális állapotot megynyitásához)"
#. module: account
#: field:account.analytic.balance,date1:0
@@ -5708,7 +6166,7 @@ msgstr "Időszak kezdete"
#. module: account
#: model:account.account.type,name:account.account_type_asset_view1
msgid "Asset View"
-msgstr ""
+msgstr "Eszközök nézete"
#. module: account
#: model:ir.model,name:account.model_account_common_account_report
@@ -5741,24 +6199,27 @@ msgid ""
"that you should have your last line with the type 'Balance' to ensure that "
"the whole amount will be treated."
msgstr ""
+"Válassza ki itt ehhez a fizetési tételhez vonatkozó értékelés típust. "
+"Figyeljen oda, hogy az utolsó tételnek 'Egyenleg' típusnak kell lennie "
+"ahhoz, hogy a teljes összegen el legyen végezve."
#. module: account
#: field:account.partner.ledger,initial_balance:0
#: field:account.report.general.ledger,initial_balance:0
msgid "Include Initial Balances"
-msgstr ""
+msgstr "Kezdeti számlaegyenlegeket beleértve"
#. module: account
#: view:account.invoice.tax:0
msgid "Tax Codes"
-msgstr "Adógyűjtők"
+msgstr "Adógyűjtőkódok"
#. module: account
#: selection:account.invoice,type:0
#: selection:account.invoice.report,type:0
#: selection:report.invoice.created,type:0
msgid "Customer Refund"
-msgstr "Kimenő jóváíró számla"
+msgstr "Kimenő, vásárlói jóváíró számla"
#. module: account
#: field:account.tax,ref_tax_sign:0
@@ -5776,23 +6237,23 @@ msgstr "Kimutatás az elmúlt 15 napban készített számlákról"
#. module: account
#: field:account.fiscalyear,end_journal_period_id:0
msgid "End of Year Entries Journal"
-msgstr "Záró/nyitó napló"
+msgstr "Üzeit évet záró napló tételek"
#. module: account
#: view:account.invoice:0
msgid "Draft Refund "
-msgstr ""
+msgstr "Visszetérítés tervezet "
#. module: account
#: view:cash.box.in:0
msgid "Fill in this form if you put money in the cash register:"
-msgstr ""
+msgstr "Töltse ki ezt az űrlapot, ha pénzt tett a pénztár rögzítőbe:"
#. module: account
#: view:account.payment.term.line:0
#: field:account.payment.term.line,value_amount:0
msgid "Amount To Pay"
-msgstr ""
+msgstr "Fizetendő összeg"
#. module: account
#: help:account.partner.reconcile.process,to_reconcile:0
@@ -5802,7 +6263,7 @@ msgid ""
"as reconciled."
msgstr ""
"A hátralévő partnerek száma, akiket ellenőrizni kell, hogy van-e párosítandó "
-"tételük."
+"tételük. Ez az aktuális partnert már párosítottként tekinti."
#. module: account
#: view:account.subscription.line:0
@@ -5845,19 +6306,19 @@ msgstr "Kifizetés dátuma"
#: view:account.bank.statement:0
#: field:account.bank.statement,opening_details_ids:0
msgid "Opening Cashbox Lines"
-msgstr ""
+msgstr "Pénzkazetta nyitó tételek"
#. module: account
#: view:account.analytic.account:0
#: model:ir.actions.act_window,name:account.action_account_analytic_account_form
#: model:ir.ui.menu,name:account.account_analytic_def_account
msgid "Analytic Accounts"
-msgstr "Gyűjtőkódok"
+msgstr "Analitikus gyűjtőkódok"
#. module: account
#: view:account.invoice.report:0
msgid "Customer Invoices And Refunds"
-msgstr ""
+msgstr "Ügyfél számlák és visszatérítések"
#. module: account
#: field:account.analytic.line,amount_currency:0
@@ -5870,7 +6331,7 @@ msgstr "Devizaösszeg"
#. module: account
#: selection:res.company,tax_calculation_rounding_method:0
msgid "Round per Line"
-msgstr ""
+msgstr "Tételenkénti kerekítés"
#. module: account
#: report:account.analytic.account.balance:0
@@ -5890,12 +6351,12 @@ msgstr "Mennyiség"
#. module: account
#: view:account.move.line:0
msgid "Number (Move)"
-msgstr "Bizonylat száma"
+msgstr "Bizonylat száma (Mozgás)"
#. module: account
#: selection:account.financial.report,style_overwrite:0
msgid "Normal Text"
-msgstr ""
+msgstr "Normál szöveg"
#. module: account
#: model:process.transition,note:account.process_transition_paymentreconcile0
@@ -5908,30 +6369,34 @@ msgid ""
"This payment term will be used instead of the default one for purchase "
"orders and supplier invoices"
msgstr ""
+"Ezt a fizetési feltétel használja az alapértelmezett helyett a beszerzési "
+"megrendelésekhez és vásárlói számlákhoz"
#. module: account
#: help:account.automatic.reconcile,power:0
msgid ""
"Number of partial amounts that can be combined to find a balance point can "
"be chosen as the power of the automatic reconciliation"
-msgstr "Maximálisan párosítható tételek száma"
+msgstr ""
+"Részenkénti kombinációs párosítások száma egy mint az automatikus párosítás "
+"max. tételszámhoz használt számlaegyenleg pont megtalálásához."
#. module: account
#: code:addons/account/wizard/account_report_aged_partner_balance.py:56
#, python-format
msgid "You must set a period length greater than 0."
-msgstr ""
+msgstr "Nullánál hoszabb időszakot kell használnia."
#. module: account
#: view:account.fiscal.position.template:0
#: field:account.fiscal.position.template,name:0
msgid "Fiscal Position Template"
-msgstr "ÁFA pozíció sablon"
+msgstr "Költségvetési ÁFA pozíció sablon"
#. module: account
#: view:account.invoice:0
msgid "Draft Refund"
-msgstr ""
+msgstr "Visszetérítés tervezet"
#. module: account
#: view:account.analytic.chart:0
@@ -5958,7 +6423,7 @@ msgstr "Pénzkazetta nyitása"
#. module: account
#: selection:account.financial.report,style_overwrite:0
msgid "Automatic formatting"
-msgstr ""
+msgstr "Automatikus formázás"
#. module: account
#: view:account.move.line.reconcile:0
@@ -5969,6 +6434,7 @@ msgstr "Párosítás különbözet leírásával"
#: constraint:account.move.line:0
msgid "You cannot create journal items on an account of type view."
msgstr ""
+"Típus nézetben nem tud nepló tételeket létrehozni. Váltson másik nézetbe."
#. module: account
#: selection:account.payment.term.line,value:0
@@ -5981,17 +6447,19 @@ msgstr "Fix összeg"
#, python-format
msgid "You cannot change the tax, you should remove and recreate lines."
msgstr ""
+"Nem tudja megváltoztatni az adót, el kell távolítania és létre kell hoznia "
+"tételeket."
#. module: account
#: model:ir.actions.act_window,name:account.action_account_automatic_reconcile
msgid "Account Automatic Reconcile"
-msgstr "Automatikus párosítás"
+msgstr "Számla automatikus párosítása"
#. module: account
#: view:account.move:0
#: view:account.move.line:0
msgid "Journal Item"
-msgstr "Könyvelési tételsor"
+msgstr "Könyvelési napló tételsor"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_fiscalyear_close
@@ -6007,7 +6475,7 @@ msgstr "Az adóösszeg kiszámítási módszere."
#. module: account
#: view:account.payment.term.line:0
msgid "Due Date Computation"
-msgstr ""
+msgstr "Esedékesség dátumának kiszámítása"
#. module: account
#: field:report.invoice.created,create_date:0
@@ -6020,18 +6488,18 @@ msgstr "Létrehozás dátuma"
#: model:ir.actions.act_window,name:account.action_account_analytic_journal_form
#: model:ir.ui.menu,name:account.account_def_analytic_journal
msgid "Analytic Journals"
-msgstr "Gyűjtőnaplók"
+msgstr "Analitikus gyűjtőnaplók"
#. module: account
#: field:account.account,child_id:0
msgid "Child Accounts"
-msgstr "Alárendelt számlák"
+msgstr "Alárendelt főkönyvi számlák"
#. module: account
#: code:addons/account/account_move_line.py:1117
#, python-format
msgid "Move name (id): %s (%s)"
-msgstr ""
+msgstr "Bizonlyat neve (Azonosító id): %s (%s)"
#. module: account
#: view:account.move.line.reconcile:0
@@ -6043,18 +6511,18 @@ msgstr "Különbözet leírása"
#. module: account
#: view:account.entries.report:0
msgid "entries"
-msgstr ""
+msgstr "bevitt tételek"
#. module: account
#: field:res.partner,debit:0
msgid "Total Payable"
-msgstr "Összes szállítói tartozás"
+msgstr "Fizetendő tartozás összesen"
#. module: account
#: model:account.account.type,name:account.data_account_type_income
#: model:account.financial.report,name:account.account_financial_report_income0
msgid "Income"
-msgstr ""
+msgstr "Bevétel"
#. module: account
#: selection:account.bank.statement.line,type:0
@@ -6096,7 +6564,7 @@ msgstr "Szabad hivatkozás"
#: code:addons/account/report/account_partner_ledger.py:276
#, python-format
msgid "Receivable and Payable Accounts"
-msgstr "Vevő és szállító számlák"
+msgstr "Vásárlói és beszállítói számlák"
#. module: account
#: field:account.fiscal.position.account.template,position_id:0
@@ -6106,24 +6574,24 @@ msgstr "ÁFA pozíció leképezés"
#. module: account
#: view:account.config.settings:0
msgid "Select Company"
-msgstr ""
+msgstr "Vállalat kiválasztás"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_state_open
#: model:ir.model,name:account.model_account_state_open
msgid "Account State Open"
-msgstr "Nyitott állapot"
+msgstr "Nyitott állapotú számla"
#. module: account
#: report:account.analytic.account.quantity_cost_ledger:0
msgid "Max Qty:"
-msgstr "Max menny:"
+msgstr "Max menny.:"
#. module: account
#: view:account.invoice:0
#: model:ir.actions.act_window,name:account.action_account_invoice_refund
msgid "Refund Invoice"
-msgstr "Jóváíró számla"
+msgstr "Jóváíró visszatérítés számla"
#. module: account
#: model:ir.actions.act_window,help:account.action_account_entries_report_all
@@ -6132,9 +6600,9 @@ msgid ""
"document shows your debit and credit taking in consideration some criteria "
"you can choose by using the search tool."
msgstr ""
-"Ez a menüpont elemzést nyújt a főkönyvi számlákon könyvelt tételekről. A "
-"kereső eszköz használatával különböző kritériumokat határozhat meg a "
-"lekérdezéshez."
+"Ez a menüpont elemzést nyújt a különböző főkönyvi számlákon könyvelt "
+"tételekről. A kereső eszköz használatával különböző kritériumokat határozhat "
+"meg a lekérdezéshez, melyek tájékoztatják a tartozásairól és követeléseiről."
#. module: account
#: help:account.partner.reconcile.process,progress:0
@@ -6152,7 +6620,7 @@ msgstr ""
#: field:report.account.sales,period_id:0
#: field:report.account_type.sales,period_id:0
msgid "Force Period"
-msgstr "Időszak"
+msgstr "Időszak kényszerítése"
#. module: account
#: model:ir.actions.act_window,help:account.action_account_form
@@ -6171,12 +6639,27 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Kattintson egy főkönyvi számla hozzáadásához.\n"
+"
\n"
+" Egy számla a főkönyvi karton része amire a vállalkozása\n"
+" be tud jegyezni bármilyen tartozás és követelés "
+"tranzakciót.\n"
+" Vállalatok két fő részletben mutatják be az éves "
+"könyvelésüket: \n"
+" a számla egyenlegen és a bevételi kimutatáson (nyereség és "
+"veszteség\n"
+" számla). A vállalkozás éves elszámolásához a törvény szerint "
+"be kell\n"
+" mutatni számos informácót.\n"
+"
\n"
+" "
#. module: account
#: view:account.invoice.report:0
#: field:account.invoice.report,nbr:0
msgid "# of Lines"
-msgstr "Sorok száma"
+msgstr "# sorok száma"
#. module: account
#: view:account.invoice:0
@@ -6206,7 +6689,7 @@ msgstr "Szűrés"
#: code:addons/account/account.py:2334
#, python-format
msgid "You have a wrong expression \"%(...)s\" in your model !"
-msgstr ""
+msgstr "Rossz kifejezés \"%(...)s\" van a modelljében !"
#. module: account
#: view:account.tax.template:0
@@ -6217,11 +6700,12 @@ msgstr "Számítási kód (ha az ár tartalmazza az adót)"
#: help:account.bank.statement,balance_end:0
msgid "Balance as calculated based on Starting Balance and transaction lines"
msgstr ""
+"Számlaegyenleg a kezdeti egyenleg és a tranzakciós tételek alapján számítva"
#. module: account
#: field:account.journal,loss_account_id:0
msgid "Loss Account"
-msgstr ""
+msgstr "Veszteség számla"
#. module: account
#: field:account.tax,account_collected_id:0
@@ -6244,6 +6728,11 @@ msgid ""
"created by the system on document validation (invoices, bank statements...) "
"and will be created in 'Posted' status."
msgstr ""
+"Összes kézzel létrehozott napló tétel 'Könyveletlen' állapotú, de "
+"választhatja lehetőségként ennek az állapotnak az átugrását az ide vonatkozó "
+"naplón. Ebben az esetben, úgy viselkedik mint a rendszer által automatikusan "
+"létrehozott napló tétel a dokumentum érvényesítésekor (számlák, bank "
+"kivonatok...) mint 'Könyvelt' állapotú tétel."
#. module: account
#: field:account.payment.term.line,days:0
@@ -6257,11 +6746,13 @@ msgid ""
"You cannot validate this journal entry because account \"%s\" does not "
"belong to chart of accounts \"%s\"."
msgstr ""
+"Nem érvényesítheti ezt a napló tételt mert a \"%s\" számlája nem tartozik a "
+"\"%s\" szálatükörhöz."
#. module: account
#: view:account.financial.report:0
msgid "Report"
-msgstr ""
+msgstr "Kimutatás"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_tax_template
@@ -6290,12 +6781,12 @@ msgstr "Semmi"
#: model:ir.actions.act_window,name:account.action_invoice_tree3
#: model:ir.ui.menu,name:account.menu_action_invoice_tree3
msgid "Customer Refunds"
-msgstr "Kimenő jóváíró számlák"
+msgstr "Kimenő, vásárlói jóváíró számlák"
#. module: account
#: field:account.account,foreign_balance:0
msgid "Foreign Balance"
-msgstr ""
+msgstr "Idegen számlaegyenleg"
#. module: account
#: field:account.journal.period,name:0
@@ -6315,12 +6806,12 @@ msgstr "A naplóhoz kapcsolt vállalat"
#. module: account
#: help:account.config.settings,group_multi_currency:0
msgid "Allows you multi currency environment"
-msgstr ""
+msgstr "Több pénznemes környezetet tesz elérhetővé"
#. module: account
#: view:account.subscription:0
msgid "Running Subscription"
-msgstr ""
+msgstr "Jegyzés futtatás"
#. module: account
#: report:account.invoice:0
@@ -6332,7 +6823,7 @@ msgstr "ÁFA pozíció megjegyzés :"
#: model:ir.actions.act_window,name:account.action_analytic_entries_report
#: model:ir.ui.menu,name:account.menu_action_analytic_entries_report
msgid "Analytic Entries Analysis"
-msgstr "Gyűjtőkód tételek elemzése"
+msgstr "Analitikus gyűjtőkód tételek elemzése"
#. module: account
#: selection:account.aged.trial.balance,direction_selection:0
@@ -6345,11 +6836,13 @@ msgid ""
"This journal will be created automatically for this bank account when you "
"save the record"
msgstr ""
+"Ez a napló automatikusa létre lesz hozva ehhez a bankszámlához, egy tétel "
+"rögzítésekor"
#. module: account
#: view:account.analytic.line:0
msgid "Analytic Entry"
-msgstr "Gyűjtőkód tétel"
+msgstr "Analitikus gyűjtőkód bevitel"
#. module: account
#: view:res.company:0
@@ -6373,8 +6866,8 @@ msgid ""
"As soon as the reconciliation is done, the invoice's state turns to “done” "
"(i.e. paid) in the system."
msgstr ""
-"Amint a párosítás elkészül, a számla állapota rendezettre változik a "
-"rendszerben."
+"Amint a párosítás elkészül, a számla állapota 'Rendezettre' (u.m. fizetve) "
+"változik a rendszerben."
#. module: account
#: view:account.chart.template:0
@@ -6391,12 +6884,12 @@ msgstr "Legutolsó párosítás dátuma"
#: view:account.analytic.line:0
#: model:ir.model,name:account.model_account_analytic_line
msgid "Analytic Line"
-msgstr "Gyűjtőkód tétel"
+msgstr "Analitikus gyűjtőkód tételsor"
#. module: account
#: model:ir.ui.menu,name:account.menu_action_model_form
msgid "Models"
-msgstr ""
+msgstr "Modellek"
#. module: account
#: code:addons/account/account_invoice.py:1124
@@ -6405,11 +6898,13 @@ msgid ""
"You cannot cancel an invoice which is partially paid. You need to "
"unreconcile related payment entries first."
msgstr ""
+"Nem vonhat vissza részben kiegyenlített számlát. Először párosítatlanná kell "
+"tennie az ide vonatkozó fizetéseket."
#. module: account
#: field:product.template,taxes_id:0
msgid "Customer Taxes"
-msgstr "Értékesítést terhelő adók"
+msgstr "Vásárlói értékesítést terhelő adók"
#. module: account
#: help:account.model,name:0
@@ -6419,7 +6914,7 @@ msgstr "Ismétlődő könyvelési tételek kezelésére szolgáló modell"
#. module: account
#: field:wizard.multi.charts.accounts,sale_tax_rate:0
msgid "Sales Tax(%)"
-msgstr ""
+msgstr "Értékesítési adó(%)"
#. module: account
#: view:account.tax.code:0
@@ -6439,6 +6934,17 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Beszállítói visszatérítés kézi bevitele helyett, "
+"létrehozhatja a \n"
+" visszatérítéseket és közvetlenül párosíthatja az ide "
+"vonatkozó beszerzési\n"
+" beszállítói számlálkkal.\n"
+"
\n"
+" "
#. module: account
#: field:account.tax,type:0
@@ -6461,6 +6967,10 @@ msgid ""
"choice assumes that the set of tax defined for the chosen template is "
"complete"
msgstr ""
+"Ez a boolean művelet segítséget nyújt annak kiválasztásában, hogy javasol "
+"az értékesítési és beszerzési értékek kódolásában vagy az általános m2o "
+"mezőt választja. Ez utóbbit választása feltételezi, hogy a sablonban teljes "
+"körűen meghatározott az adó."
#. module: account
#: report:account.vat.declaration:0
@@ -6475,17 +6985,17 @@ msgstr "Vállalatok"
#. module: account
#: view:account.invoice.report:0
msgid "Open and Paid Invoices"
-msgstr ""
+msgstr "Kiegyenlítetlen és kiegyenlített stzámlák"
#. module: account
#: selection:account.financial.report,display_detail:0
msgid "Display children flat"
-msgstr ""
+msgstr "Alszintek mutatása"
#. module: account
#: view:account.config.settings:0
msgid "Bank & Cash"
-msgstr ""
+msgstr "Bank & Készpénz pénztár"
#. module: account
#: help:account.fiscalyear.close.state,fy_id:0
@@ -6555,7 +7065,7 @@ msgstr "Tételek részleges párosítása"
#: view:validate.account.move:0
#: view:validate.account.move.lines:0
msgid "Cancel"
-msgstr "Mégse"
+msgstr "Mégsem"
#. module: account
#: selection:account.account,type:0
@@ -6563,18 +7073,19 @@ msgstr "Mégse"
#: model:account.account.type,name:account.data_account_type_receivable
#: selection:account.entries.report,type:0
msgid "Receivable"
-msgstr "Vevő"
+msgstr "Kintlévőség"
#. module: account
#: constraint:account.move.line:0
msgid "You cannot create journal items on closed account."
-msgstr ""
+msgstr "Lezárt számlákon nem hozhat létre napló tételeket."
#. module: account
#: code:addons/account/account_invoice.py:633
#, python-format
msgid "Invoice line account's company and invoice's compnay does not match."
msgstr ""
+"A számlatulajdonos vállalkozása és a számla tétel vállalkozása nem egyezik."
#. module: account
#: view:account.invoice:0
@@ -6595,7 +7106,7 @@ msgstr "Pénznem, ha nem egyezik a vállalat pénznemével."
#: code:addons/account/installer.py:69
#, python-format
msgid "Custom"
-msgstr ""
+msgstr "Egyéni"
#. module: account
#: view:account.analytic.account:0
@@ -6611,18 +7122,18 @@ msgstr "Pénzkazetta"
#: model:account.account.type,name:account.account_type_cash_equity
#: model:account.account.type,name:account.conf_account_type_equity
msgid "Equity"
-msgstr ""
+msgstr "Saját tőke"
#. module: account
#: field:account.journal,internal_account_id:0
msgid "Internal Transfers Account"
-msgstr ""
+msgstr "Belső mozgások számlája"
#. module: account
#: code:addons/account/wizard/pos_box.py:32
#, python-format
msgid "Please check that the field 'Journal' is set on the Bank Statement"
-msgstr ""
+msgstr "Kérem ellenőrizze, a 'Napló' beállítását a banki kivonaton"
#. module: account
#: selection:account.tax,type:0
@@ -6632,7 +7143,7 @@ msgstr "Százalék"
#. module: account
#: selection:account.config.settings,tax_calculation_rounding_method:0
msgid "Round globally"
-msgstr ""
+msgstr "Kerekítés globálisan"
#. module: account
#: selection:account.report.general.ledger,sortby:0
@@ -6648,12 +7159,12 @@ msgstr "Max. tételszám"
#: code:addons/account/account.py:3465
#, python-format
msgid "Cannot generate an unused journal code."
-msgstr ""
+msgstr "Nem tud létrehozni egy nem használt napló kódót."
#. module: account
#: view:project.account.analytic.line:0
msgid "View Account Analytic Lines"
-msgstr "Gyűjtő számla gyűjtőkód tételei"
+msgstr "Analitikus gyűjtő számla gyűjtőkód tételei"
#. module: account
#: field:account.invoice,internal_number:0
@@ -6664,7 +7175,7 @@ msgstr "Számla belső sorszáma"
#. module: account
#: field:account.bank.statement,difference:0
msgid "Difference"
-msgstr ""
+msgstr "Különbség"
#. module: account
#: help:account.tax,include_base_amount:0
@@ -6684,7 +7195,7 @@ msgstr "Párosítás: A következő partnerre lép"
#: model:ir.actions.act_window,name:account.action_account_analytic_invert_balance
#: model:ir.actions.report.xml,name:account.account_analytic_account_inverted_balance
msgid "Inverted Analytic Balance"
-msgstr "Fordított gyűjtőkód kivonat"
+msgstr "Fordított analitikus gyűjtőkód számlaegyenleg"
#. module: account
#: field:account.tax.template,applicable_type:0
@@ -6700,6 +7211,13 @@ msgid ""
"due date, make sure that the payment term is not set on the invoice. If you "
"keep the payment term and the due date empty, it means direct payment."
msgstr ""
+"Ha fizetési feltételeket használ, a fizetési határidő számítása "
+"automatikusan lesz kiszámítva a könyvelési tételek létrehozásakor. A "
+"fizetési feltételhez több határidő számítás is lehet, például 50% azonnal és "
+"50% egy hónapra, de ha kényszeríteni szeretne egy lejárati dátumot, akkor "
+"győződjön meg róla, hogy nincs beállítva fizetési határidő a számlára. Ha a "
+"fizetési határidő és a lejárati dátumot üresen hagyja az azonnali fizetést "
+"jelent."
#. module: account
#: code:addons/account/account.py:414
@@ -6708,6 +7226,8 @@ msgid ""
"There is no opening/closing period defined, please create one to set the "
"initial balance."
msgstr ""
+"Nincs nyitó/záró időszakasz meghatározva, kérem hozzon létre egyet a kezdeti "
+"számlaegyenleg beállításához."
#. module: account
#: help:account.tax.template,sequence:0
@@ -6716,7 +7236,7 @@ msgid ""
"higher ones. The order is important if you have a tax that has several tax "
"children. In this case, the evaluation order is important."
msgstr ""
-"A sorszám mező szolgál az adósorok sorba rendezésére az alacsonyabb "
+"A sorrend mező szolgál az adósorok sorba rendezésére az alacsonyabb "
"sorszámútól a magasabbig. A sorrend fontos a több alárendelt adóval "
"rendelkező adók esetében. Ebben az esetben az értékelési sorrend lényeges."
@@ -6735,12 +7255,12 @@ msgstr ""
#: code:addons/account/wizard/account_report_aged_partner_balance.py:58
#, python-format
msgid "User Error!"
-msgstr ""
+msgstr "Felhasználói hiba!"
#. module: account
#: view:account.open.closed.fiscalyear:0
msgid "Discard"
-msgstr ""
+msgstr "Eldobás"
#. module: account
#: selection:account.account,type:0
@@ -6753,12 +7273,12 @@ msgstr "Likviditási"
#: model:ir.actions.act_window,name:account.action_account_analytic_journal_open_form
#: model:ir.ui.menu,name:account.account_analytic_journal_entries
msgid "Analytic Journal Items"
-msgstr "Gyűjtőkód tételek"
+msgstr "Analitikus gyűjtőkód tételek"
#. module: account
#: field:account.config.settings,has_default_company:0
msgid "Has default company"
-msgstr ""
+msgstr "Van alapértelmezett vállakozás"
#. module: account
#: view:account.fiscalyear.close:0
@@ -6767,14 +7287,14 @@ msgid ""
"year. Note that you can run this wizard many times for the same fiscal year: "
"it will simply replace the old opening entries with the new ones."
msgstr ""
-"Ez a varázsló előállítja az üzleti év nyitó tételeit. Többször is lehet "
-"futtatni ugyanarra az évre: a régi egyenlegeket egyszerűen felülírja az "
-"újakkal."
+"Ez a varázsló előállítja az üzleti évet záró napló tételeket a kiválasztott "
+"üzleti évre vonatkozólag. Többször is lehet futtatni ugyanarra az üzleti "
+"évre: a régi nyitó egyenlegeket egyszerűen felülírja az újakkal."
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_bank_and_cash
msgid "Bank and Cash"
-msgstr "Bank és pénztár"
+msgstr "Bank és készpénz pénztár"
#. module: account
#: model:ir.actions.act_window,help:account.action_analytic_entries_report
@@ -6785,12 +7305,13 @@ msgid ""
"the system."
msgstr ""
"Ez a kimutatás elemzést nyújt az üzleti szempontok alapján létrehozott "
-"gyűjtőkódokon könyvelt tételekről. Használja a kereső eszközt az elemzéshez."
+"analitikai könyvelt tételekről. Használja a kereső eszközt a rendszer által "
+"létrehozott analitikus tételek elemzéséhez."
#. module: account
#: sql_constraint:account.journal:0
msgid "The name of the journal must be unique per company !"
-msgstr "A napló nevének egyedinek kell lennie!"
+msgstr "A napló nevének egyedinek kell lennie mindegyik vállalatra!"
#. module: account
#: field:account.account.template,nocreate:0
@@ -6804,6 +7325,8 @@ msgid ""
"You cannot change the owner company of an account that already contains "
"journal items."
msgstr ""
+"Nem változtathatja meg a már naplót tartalmazó főkönyvi számla tulajdonos "
+"vállalkozását."
#. module: account
#: report:account.invoice:0
@@ -6813,7 +7336,7 @@ msgstr ""
#: selection:report.invoice.created,type:0
#, python-format
msgid "Supplier Refund"
-msgstr "Bejövő jóváíró számla"
+msgstr "Bejövő beszállítói jóváíró számla"
#. module: account
#: field:account.bank.statement,move_line_ids:0
@@ -6846,7 +7369,7 @@ msgstr "Központosítás"
#: view:account.tax.code.template:0
#: view:analytic.entries.report:0
msgid "Group By..."
-msgstr "Csoportosítás"
+msgstr "Csoportosítás ezzel..."
#. module: account
#: code:addons/account/account.py:1024
@@ -6855,6 +7378,8 @@ msgid ""
"There is no period defined for this date: %s.\n"
"Please create one."
msgstr ""
+"Nincs meghatározva időszak erre a dátumra: %s.\n"
+"Kérem hozzon létre egyet."
#. module: account
#: field:account.analytic.line,product_uom_id:0
@@ -6869,13 +7394,13 @@ msgid ""
"If this box is checked, the system will try to group the accounting lines "
"when generating them from invoices."
msgstr ""
-"Ha bejelölt, akkor a rendszer megpróbálja összevonni a kontírozási sorokat a "
-"számla könyvelésének generálásakor."
+"Ha bejelölt, akkor a rendszer megpróbálja összevonni a kontírozási számla "
+"tételeket a számla könyvelésének generálásakor."
#. module: account
#: field:account.installer,has_default_company:0
msgid "Has Default Company"
-msgstr ""
+msgstr "Van alapértelmezett vállalat"
#. module: account
#: model:ir.model,name:account.model_account_sequence_fiscalyear
@@ -6892,7 +7417,7 @@ msgstr "account.sequence.fiscalyear"
#: model:ir.model,name:account.model_account_analytic_journal
#: model:ir.ui.menu,name:account.account_analytic_journal_print
msgid "Analytic Journal"
-msgstr "Gyűjtőnapló"
+msgstr "Analitikus gyűjtőnapló"
#. module: account
#: view:account.entries.report:0
@@ -6905,6 +7430,8 @@ msgid ""
"Percentages for Payment Term Line must be between 0 and 1, Example: 0.02 for "
"2%."
msgstr ""
+"A fizetési feltétel sorának a százalékos értéke 0 és 1 közötti legyen, "
+"Példa: 0.02 érték jelentése: 2%."
#. module: account
#: report:account.invoice:0
@@ -6925,7 +7452,7 @@ msgstr "Beszerzés főkönyvi számla"
#. module: account
#: sql_constraint:account.tax:0
msgid "Tax Name must be unique per company!"
-msgstr ""
+msgstr "Adó nemének egyedinek kell lennie vállalkozásonként!"
#. module: account
#: view:account.bank.statement:0
@@ -6938,6 +7465,9 @@ msgid ""
"If you unreconcile transactions, you must also verify all the actions that "
"are linked to those transactions because they will not be disabled"
msgstr ""
+"Ha kiveszi a tranzakciókat a párosításból, akkor azokat a műveleteket is "
+"ellenőriznie kell, melyek ezekkel össze voltak kötve, mivel azok nem lesznek "
+"kiiktatva"
#. module: account
#: view:account.account.template:0
@@ -6952,7 +7482,7 @@ msgstr "Megjegyzések"
#. module: account
#: model:ir.model,name:account.model_analytic_entries_report
msgid "Analytic Entries Statistics"
-msgstr "Gyűjtőkód tétel statisztika"
+msgstr "Analitikus gyűjtőkód tétel statisztika"
#. module: account
#: code:addons/account/account_analytic_line.py:142
@@ -6964,7 +7494,7 @@ msgstr "Tételek: "
#. module: account
#: help:res.partner.bank,currency_id:0
msgid "Currency of the related account journal."
-msgstr ""
+msgstr "Az ide vonatkozó napló pénzneme."
#. module: account
#: constraint:account.move.line:0
@@ -6972,6 +7502,8 @@ msgid ""
"You cannot provide a secondary currency if it is the same than the company "
"one."
msgstr ""
+"Nem adhatja meg a már vállalkozásként használt pénznemet mint másodlagos "
+"pénznem."
#. module: account
#: selection:account.tax.template,applicable_type:0
@@ -6983,7 +7515,7 @@ msgstr "Igaz"
#: code:addons/account/account.py:190
#, python-format
msgid "Balance Sheet (Asset account)"
-msgstr ""
+msgstr "Számlaegyenleg kivonat (Eszköz számla)"
#. module: account
#: model:process.node,note:account.process_node_draftstatement0
@@ -6998,7 +7530,7 @@ msgstr "Tartozik összesen"
#. module: account
#: view:account.move.line:0
msgid "Next Partner Entries to reconcile"
-msgstr ""
+msgstr "Következő párosítandó partner tételek"
#. module: account
#: report:account.invoice:0
@@ -7028,7 +7560,7 @@ msgstr "Python kód"
#. module: account
#: view:account.entries.report:0
msgid "Journal Entries with period in current period"
-msgstr ""
+msgstr "A jelenlegi időszakban lévő időszakokkal rendelkező napló tételek"
#. module: account
#: help:account.journal,update_posted:0
@@ -7054,7 +7586,7 @@ msgstr "Tétel létrehozása"
#: code:addons/account/account.py:189
#, python-format
msgid "Profit & Loss (Expense account)"
-msgstr ""
+msgstr "Nyereség & Veszteség (Költség, kiadási számla)"
#. module: account
#: field:account.bank.statement,total_entry_encoding:0
@@ -7065,7 +7597,7 @@ msgstr "Összesített forgalom"
#: code:addons/account/account.py:636
#, python-format
msgid "You cannot remove an account that contains journal items."
-msgstr ""
+msgstr "Napló bejegyzéssel rendelkező számlát nem tud eltávolítani."
#. module: account
#: code:addons/account/account.py:1024
@@ -7077,12 +7609,12 @@ msgstr "Hiba!"
#. module: account
#: field:account.financial.report,style_overwrite:0
msgid "Financial Report Style"
-msgstr ""
+msgstr "Pénzügyi beszámoló stílus"
#. module: account
#: selection:account.financial.report,sign:0
msgid "Preserve balance sign"
-msgstr ""
+msgstr "Számla egyenleg jelölést megtartani"
#. module: account
#: view:account.vat.declaration:0
@@ -7109,13 +7641,13 @@ msgstr "Kézi"
#. module: account
#: selection:account.invoice.refund,filter_refund:0
msgid "Cancel: create refund and reconcile"
-msgstr ""
+msgstr "Elvetés: visszatérítés létrehozás és párosítás"
#. module: account
#: code:addons/account/wizard/account_report_aged_partner_balance.py:58
#, python-format
msgid "You must set a start date."
-msgstr ""
+msgstr "Induló dátumot kell beállítania."
#. module: account
#: view:account.automatic.reconcile:0
@@ -7145,6 +7677,9 @@ msgid ""
"row to display the amount of debit/credit/balance that precedes the filter "
"you've set."
msgstr ""
+"Ha kiválasztott a dátum vagy időszak szerinti szűrést, akkor ez a mező "
+"lehetővé teszi egy oszlop hozzáadását a tartozás/követelés/egyenleg "
+"összegeinek kijelzéséhez a szűrő feltételeinek megfelelően."
#. module: account
#: view:account.bank.statement:0
@@ -7159,12 +7694,12 @@ msgstr "Könyvelési tételek"
#: code:addons/account/wizard/account_invoice_refund.py:147
#, python-format
msgid "No period found on the invoice."
-msgstr ""
+msgstr "A számlán nem található időszak."
#. module: account
#: help:account.partner.ledger,page_split:0
msgid "Display Ledger Report with One partner per page"
-msgstr "Egy oldalon csak egy partner jelenik meg a kimutatásban"
+msgstr "Egy oldalon csak egy partner jelejen meg a kimutatásban"
#. module: account
#: report:account.general.ledger:0
@@ -7199,12 +7734,13 @@ msgstr "Igen"
#: code:addons/account/report/common_report_header.py:67
#, python-format
msgid "All Entries"
-msgstr "Minden tétel"
+msgstr "Minden bejegyzés"
#. module: account
#: constraint:account.move.reconcile:0
msgid "You can only reconcile journal items with the same partner."
msgstr ""
+"Csak ugyanahoz a partnerhez tartozó napló tételeket tudja párosítani."
#. module: account
#: view:account.journal.select:0
@@ -7222,7 +7758,7 @@ msgstr "Nyitó egyenleg"
#. module: account
#: model:ir.model,name:account.model_account_move_reconcile
msgid "Account Reconciliation"
-msgstr "Párosítás"
+msgstr "Számla párosítás"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_tax
@@ -7250,14 +7786,14 @@ msgid ""
"Check this box if you are unsure of that journal entry and if you want to "
"note it as 'to be reviewed' by an accounting expert."
msgstr ""
-"Jelölje be, ha bizonytalan a tétel kontírozásában. Ennek hatására "
-"ellenőrizendőként jelölődik meg."
+"Jelölje be, ha bizonytalan a napló tétel kontírozásában. Ennek hatására "
+"könyvelő szekértő által 'ellenőrizendő'-ként jelölődik meg."
#. module: account
#: field:account.chart.template,complete_tax_set:0
#: field:wizard.multi.charts.accounts,complete_tax_set:0
msgid "Complete Set of Taxes"
-msgstr ""
+msgstr "Adók teljes csomagja"
#. module: account
#: code:addons/account/wizard/account_validate_account_move.py:61
@@ -7265,11 +7801,13 @@ msgstr ""
msgid ""
"Selected Entry Lines does not have any account move enties in draft state."
msgstr ""
+"Válassza ki azokat a bejegyzés tételeket, melyeknek nincs tervezet állapotú "
+"számla bizonlyat bejegyzése."
#. module: account
#: view:account.chart.template:0
msgid "Properties"
-msgstr "Beállítások"
+msgstr "Tulajdonságok"
#. module: account
#: model:ir.model,name:account.model_account_tax_chart
@@ -7294,6 +7832,8 @@ msgid ""
"Configuration error!\n"
"The currency chosen should be shared by the default accounts too."
msgstr ""
+"Beállítási hiba!\n"
+"A kiválasztott pénznemet meg kell osztani az alapértelmezett számlával is."
#. module: account
#: code:addons/account/account.py:2304
@@ -7315,22 +7855,22 @@ msgstr ""
"%(month)s: hónap meghatározása \n"
"%(date)s: aktuális dátum\n"
"\n"
-"pl. %(date)s-i modell"
+"pl. %(date)s-i modellem"
#. module: account
#: field:account.invoice,paypal_url:0
msgid "Paypal Url"
-msgstr ""
+msgstr "Paypal Url - elérési út"
#. module: account
#: field:account.config.settings,module_account_voucher:0
msgid "Manage customer payments"
-msgstr ""
+msgstr "Ügyfelek fizetéseinek beállítása"
#. module: account
#: help:report.invoice.created,origin:0
msgid "Reference of the document that generated this invoice report."
-msgstr "Bizonylat, amely előállította ezt a számlát."
+msgstr "Bizonylat, amely előállította ezt a számla kimutatást."
#. module: account
#: field:account.tax.code,child_ids:0
@@ -7344,22 +7884,24 @@ msgid ""
"Error!\n"
"The start date of a fiscal year must precede its end date."
msgstr ""
+"Hiba!\n"
+"Az üzleti adóügyi év elejének előbb kell lennie mint a végének."
#. module: account
#: view:account.tax.template:0
msgid "Taxes used in Sales"
-msgstr ""
+msgstr "Értékesítésekkor használt adók"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree1
#: model:ir.ui.menu,name:account.menu_action_invoice_tree1
msgid "Customer Invoices"
-msgstr "Kimenő számlák"
+msgstr "Vásárlói, kimenő számlák"
#. module: account
#: view:account.tax:0
msgid "Misc"
-msgstr ""
+msgstr "Egyéb"
#. module: account
#: view:account.analytic.line:0
@@ -7372,7 +7914,7 @@ msgstr "Értékesítés"
#: selection:account.subscription,state:0
#: selection:report.invoice.created,state:0
msgid "Done"
-msgstr "Kész"
+msgstr "Elvégezve"
#. module: account
#: code:addons/account/account.py:1319
@@ -7382,13 +7924,15 @@ msgid ""
"Make sure you have configured payment terms properly.\n"
"The latest payment term line should be of the \"Balance\" type."
msgstr ""
+"Nem hagyhat jóvá egy számlaegyenleg nélküli bejegyzést.\n"
+"Győződjön meg a fizetési feltétel pontos megadásáról.\n"
+"Az utolsó fizetés feltételének \"Egyenleg\" típusúnak kell lennie."
#. module: account
#: model:process.transition,note:account.process_transition_invoicemanually0
msgid "A statement with manual entries becomes a draft statement."
msgstr ""
-"A kézzel berögzített tételekből álló kivonat lesz a tervezet állapotú "
-"kivonat."
+"A kézzel berögzített tételekből álló kivonat, tervezet állapotú kivonat lesz."
#. module: account
#: view:account.aged.trial.balance:0
@@ -7412,12 +7956,14 @@ msgstr ""
#: field:account.invoice.line,origin:0
#: field:report.invoice.created,origin:0
msgid "Source Document"
-msgstr "Forrásbizonylat"
+msgstr "Forrás dokumentum"
#. module: account
#: help:account.config.settings,company_footer:0
msgid "Bank accounts as printed in the footer of each printed document"
msgstr ""
+"Bank számlák, melyek mindegyik nyomtatott dokumentum lábjegyzetében "
+"szerepelni fognak"
#. module: account
#: constraint:account.account:0
@@ -7426,16 +7972,19 @@ msgid ""
"You cannot define children to an account with internal type different of "
"\"View\"."
msgstr ""
+"Beállítási hiba!\n"
+"Nem határozhat meg al-számákat egy \"Nézet\"-től eltérő belső típusú "
+"számlához."
#. module: account
#: model:ir.model,name:account.model_accounting_report
msgid "Accounting Report"
-msgstr ""
+msgstr "Könyvelési kimutatás"
#. module: account
#: field:account.analytic.line,currency_id:0
msgid "Account Currency"
-msgstr ""
+msgstr "Főkönyvi számla pénzneme"
#. module: account
#: report:account.invoice:0
@@ -7449,6 +7998,7 @@ msgid ""
"You can not delete an invoice which is not cancelled. You should refund it "
"instead."
msgstr ""
+"Nem tud olyan számlát törölni ami nincs visszavonva. Inkább térítse vissza."
#. module: account
#: help:account.tax,amount:0
@@ -7458,7 +8008,7 @@ msgstr "Százalék típusú adókra a %-ot 0-1 közötti számként adja meg."
#. module: account
#: model:ir.actions.act_window,name:account.action_account_report_tree_hierarchy
msgid "Financial Reports Hierarchy"
-msgstr ""
+msgstr "Pénzügyi kimutatások sorrendje"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_invoice_partner_relation
@@ -7469,13 +8019,13 @@ msgstr "Havi forgalom"
#: view:account.move:0
#: view:account.move.line:0
msgid "Analytic Lines"
-msgstr "Gyűjtőkód tételek"
+msgstr "Analitikus gyűjtőkód tételek"
#. module: account
#: field:account.analytic.journal,line_ids:0
#: field:account.tax.code,line_ids:0
msgid "Lines"
-msgstr "Sorok"
+msgstr "Tételsorok"
#. module: account
#: view:account.tax.template:0
@@ -7495,17 +8045,17 @@ msgstr "Biztos benne, hogy meg akarja nyitni ezt a számlát?"
#. module: account
#: field:account.chart.template,property_account_expense_opening:0
msgid "Opening Entries Expense Account"
-msgstr ""
+msgstr "Kiadási költség számla nyitó tételei"
#. module: account
#: view:account.invoice:0
msgid "Customer Reference"
-msgstr "Vevői hivatkozás"
+msgstr "Vásárlói hivatkozás"
#. module: account
#: field:account.account.template,parent_id:0
msgid "Parent Account Template"
-msgstr "Gyűjtő főkönyvi számla sablon"
+msgstr "Felérendelt gyűjtő főkönyvi számla sablon"
#. module: account
#: report:account.invoice:0
@@ -7516,7 +8066,7 @@ msgstr "Ár"
#: view:account.bank.statement:0
#: field:account.bank.statement,closing_details_ids:0
msgid "Closing Cashbox Lines"
-msgstr ""
+msgstr "Pénzkazetta tételeinek lezárása"
#. module: account
#: view:account.bank.statement:0
@@ -7534,12 +8084,12 @@ msgstr "Tartozik összegek alapértelmezett főkönyvi számlája"
#. module: account
#: view:account.entries.report:0
msgid "Posted entries"
-msgstr ""
+msgstr "Könyvelésre feladott bejegyzések"
#. module: account
#: help:account.payment.term.line,value_amount:0
msgid "For percent enter a ratio between 0-1."
-msgstr ""
+msgstr "A százalékhoz adjon meg egy 0-1 közti arányszám értéket."
#. module: account
#: report:account.invoice:0
@@ -7552,12 +8102,12 @@ msgstr "Számla kelte"
#. module: account
#: view:account.invoice.report:0
msgid "Group by year of Invoice Date"
-msgstr ""
+msgstr "Számla kibocsátási éve szerinti csoportosítás"
#. module: account
#: field:account.config.settings,purchase_tax_rate:0
msgid "Purchase tax (%)"
-msgstr ""
+msgstr "Beszerzési adó (%)"
#. module: account
#: help:res.partner,credit:0
@@ -7567,12 +8117,12 @@ msgstr "A vevő összes tartozása a vállalat felé."
#. module: account
#: view:account.move.line:0
msgid "Unbalanced Journal Items"
-msgstr ""
+msgstr "Kiegyenlítetlen napló tételek"
#. module: account
#: model:ir.actions.act_window,name:account.open_account_charts_modules
msgid "Chart Templates"
-msgstr ""
+msgstr "Számlatükör sabonok"
#. module: account
#: field:account.journal.period,icon:0
@@ -7608,22 +8158,22 @@ msgstr "Zárás dátuma"
#. module: account
#: model:ir.model,name:account.model_account_bank_statement_line
msgid "Bank Statement Line"
-msgstr "Bankkivonat sor"
+msgstr "Bankkivonat tételsor"
#. module: account
#: field:wizard.multi.charts.accounts,purchase_tax:0
msgid "Default Purchase Tax"
-msgstr "Alapértelmezett előzetesen felszámított ÁFA"
+msgstr "Alapértelmezett előzetesen felszámított beszerzési adó"
#. module: account
#: field:account.chart.template,property_account_income_opening:0
msgid "Opening Entries Income Account"
-msgstr ""
+msgstr "Bevételi számla nyitó tételei"
#. module: account
#: field:account.config.settings,group_proforma_invoices:0
msgid "Allow pro-forma invoices"
-msgstr ""
+msgstr "Pro-forma számlák engedélyezése"
#. module: account
#: view:account.bank.statement:0
@@ -7659,12 +8209,12 @@ msgstr "Tételek létrehozása"
#. module: account
#: model:ir.model,name:account.model_cash_box_out
msgid "cash.box.out"
-msgstr ""
+msgstr "cash.box.out"
#. module: account
#: help:account.config.settings,currency_id:0
msgid "Main currency of the company."
-msgstr ""
+msgstr "A vállalkozás fő pénzneme."
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_reports
@@ -7682,18 +8232,18 @@ msgstr "Figyelem"
#. module: account
#: model:ir.actions.act_window,name:account.action_analytic_open
msgid "Contracts/Analytic Accounts"
-msgstr ""
+msgstr "Kapcsolatok/Analitikus könyvelések"
#. module: account
#: view:account.journal:0
#: field:res.partner.bank,journal_id:0
msgid "Account Journal"
-msgstr "Napló"
+msgstr "Számla napló"
#. module: account
#: field:account.config.settings,tax_calculation_rounding_method:0
msgid "Tax calculation rounding method"
-msgstr ""
+msgstr "Adó számítás kerekítési mód"
#. module: account
#: model:process.node,name:account.process_node_paidinvoice0
@@ -7710,6 +8260,11 @@ msgid ""
" with the invoice. You will not be able "
"to modify the credit note."
msgstr ""
+"Ezt a lehetőséget használja olyan számla visszavonásához, melyet még nem \n"
+" kellett volna kiadnia. Egy jóváírás lesz "
+"létrehozva, érvényesítve és párosítva\n"
+" a számlával. Nem lesz lehetősége a "
+"jóváíró módosítására."
#. module: account
#: help:account.partner.reconcile.process,next_partner_id:0
@@ -7744,18 +8299,20 @@ msgid ""
"There is no default credit account defined \n"
"on journal \"%s\"."
msgstr ""
+"Nincs alapértelmezett követelés számla meghatározva a \n"
+"következő naplón \"%s\"."
#. module: account
#: view:account.invoice.line:0
#: field:account.invoice.tax,invoice_id:0
#: model:ir.model,name:account.model_account_invoice_line
msgid "Invoice Line"
-msgstr "Számlasor"
+msgstr "Számla tételsor"
#. module: account
#: view:account.invoice.report:0
msgid "Customer And Supplier Refunds"
-msgstr ""
+msgstr "Vásárlói és Beszállítói visszatérítések"
#. module: account
#: field:account.financial.report,sign:0
@@ -7782,30 +8339,47 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Kattintson új analitikus könyvelés létrehozásához.\n"
+"
\n"
+" A rendes számlatükör felépítése meghatározott az ország\n"
+" törvényi követelményeinek megfelelően. Az analitikus\n"
+" számlatükör felépítése az üzletmenetének igényeit kell\n"
+" tükröznie a költség/hozam kimutatásokban kifejezve.\n"
+"
\n"
+" Ezek általában szerkezetileg a szerződésekből, projektekből, "
+"\n"
+" termékekből, vagy szakaszaiból álltak. A legtöbb OpenERP "
+"művelet\n"
+" (számlák, időkimutatások, költségek, stb.) hoznak létre "
+"analitikus tartalmakat,\n"
+" tételeket az ide vonatkozó számlán.\n"
+"
\n"
+" "
#. module: account
#: model:account.account.type,name:account.data_account_type_view
msgid "Root/View"
-msgstr ""
+msgstr "Gyökér/Nézet"
#. module: account
#: code:addons/account/account.py:3206
#, python-format
msgid "OPEJ"
-msgstr ""
+msgstr "OPEJ"
#. module: account
#: report:account.invoice:0
#: view:account.invoice:0
msgid "PRO-FORMA"
-msgstr "Pro forma"
+msgstr "PRO-FORMA"
#. module: account
#: selection:account.entries.report,move_line_state:0
#: view:account.move.line:0
#: selection:account.move.line,state:0
msgid "Unbalanced"
-msgstr "Nem egyező"
+msgstr "Kiegyenlítetlen"
#. module: account
#: selection:account.move.line,centralisation:0
@@ -7816,7 +8390,7 @@ msgstr "Normál"
#: model:ir.actions.act_window,name:account.action_email_templates
#: model:ir.ui.menu,name:account.menu_email_templates
msgid "Email Templates"
-msgstr ""
+msgstr "E-mail sablonok"
#. module: account
#: view:account.move.line:0
@@ -7844,29 +8418,29 @@ msgid ""
"This field is used for payable and receivable journal entries. You can put "
"the limit date for the payment of this line."
msgstr ""
-"Vevő és szállító tételeknél használt mező. Meg lehet adni a tételsor "
+"Vásárló és beszállító tételeknél használt mező. Meg lehet adni a tételsor "
"fizetési határidejét."
#. module: account
#: model:ir.ui.menu,name:account.menu_multi_currency
msgid "Multi-Currencies"
-msgstr ""
+msgstr "Több pénznem"
#. module: account
#: field:account.model.line,date_maturity:0
msgid "Maturity Date"
-msgstr ""
+msgstr "Esedékesség kelte"
#. module: account
#: code:addons/account/account.py:3193
#, python-format
msgid "Sales Journal"
-msgstr "Kimenő számla napló"
+msgstr "Kimenő, vásárlói számla napló"
#. module: account
#: model:ir.model,name:account.model_account_invoice_tax
msgid "Invoice Tax"
-msgstr "Adó"
+msgstr "Számla adó"
#. module: account
#: code:addons/account/account_move_line.py:1185
@@ -7878,7 +8452,7 @@ msgstr "Nem adott meg darabszámot!"
#: view:account.financial.report:0
#: model:ir.ui.menu,name:account.menu_account_report_tree_hierarchy
msgid "Account Reports Hierarchy"
-msgstr ""
+msgstr "Számla kimutatások rangsor"
#. module: account
#: help:account.account.template,chart_template_id:0
@@ -7889,11 +8463,16 @@ msgid ""
"few new accounts (You don't need to define the whole structure that is "
"common to both several times)."
msgstr ""
+"Ez a lehetőség mező lehetővé teszi egy számla sablon hozzáillesztését egy "
+"jellegzetes számlatükör sablonhoz, mely különbözhet az eredeti gyökér "
+"fölérendeltektől, amihez tartozik. Ez lehetővé teszi olyan számlatükör "
+"meghatározását mely másikat kibővít és kiegészíti egy pár új számlával (Nem "
+"kell többször a mindegyikre jellemző teljes felépítést újra meghatároznia)."
#. module: account
#: view:account.move:0
msgid "Unposted Journal Entries"
-msgstr ""
+msgstr "Nem párosított napló bejegyzések"
#. module: account
#: help:account.invoice.refund,date:0
@@ -7901,6 +8480,8 @@ msgid ""
"This date will be used as the invoice date for credit note and period will "
"be chosen accordingly!"
msgstr ""
+"Ez a dátum lesz használva mint számla dátum a jóváíráshoz és az időszak is "
+"eszerint lesz választva!"
#. module: account
#: view:product.template:0
@@ -7914,6 +8495,8 @@ msgid ""
"You have to set a code for the bank account defined on the selected chart of "
"accounts."
msgstr ""
+"Be kell állítana egy kódot a kiválasztott számlatükrökön meghatározott "
+"bankszámlához."
#. module: account
#: model:ir.ui.menu,name:account.menu_manual_reconcile
@@ -7936,7 +8519,7 @@ msgstr "Záró dátum"
#: code:addons/account/account.py:1541
#, python-format
msgid "Currency Adjustment"
-msgstr ""
+msgstr "Pénznem igazítás"
#. module: account
#: field:account.fiscalyear.close,fy_id:0
@@ -7954,6 +8537,8 @@ msgstr "Kiválasztott számlák érvénytelenítése"
msgid ""
"This field is used to generate legal reports: profit and loss, balance sheet."
msgstr ""
+"Ez a mező törvényes jelentések készítésére való: nyereség és veszteség, "
+"egyenleg közlő."
#. module: account
#: selection:account.entries.report,month:0
@@ -7981,17 +8566,17 @@ msgstr "Számlatükör sablonok"
msgid ""
"The sequence field is used to order the resources from lower sequences to "
"higher ones."
-msgstr ""
+msgstr "A sorrend mezőt használja az alsóbb rendűtől a felsőbb rendűig."
#. module: account
#: field:account.move.line,amount_residual_currency:0
msgid "Residual Amount in Currency"
-msgstr ""
+msgstr "A pénznemben visszamaradt összeg"
#. module: account
#: field:account.config.settings,sale_refund_sequence_prefix:0
msgid "Credit note sequence"
-msgstr ""
+msgstr "Jóváírás jegyzet sorrend"
#. module: account
#: model:ir.actions.act_window,name:account.action_validate_account_move
@@ -8000,7 +8585,7 @@ msgstr ""
#: view:validate.account.move:0
#: view:validate.account.move.lines:0
msgid "Post Journal Entries"
-msgstr "Tételek könyvelése"
+msgstr "Napló tételek könyvelése"
#. module: account
#: selection:account.bank.statement.line,type:0
@@ -8010,12 +8595,12 @@ msgstr "Tételek könyvelése"
#: code:addons/account/account_invoice.py:388
#, python-format
msgid "Customer"
-msgstr "Vevő"
+msgstr "Vásárló"
#. module: account
#: field:account.financial.report,name:0
msgid "Report Name"
-msgstr ""
+msgstr "Jelentés neve"
#. module: account
#: model:account.account.type,name:account.data_account_type_cash
@@ -8026,7 +8611,7 @@ msgstr ""
#: code:addons/account/account.py:3092
#, python-format
msgid "Cash"
-msgstr "Pénztár"
+msgstr "Készpénz pénztár"
#. module: account
#: field:account.fiscal.position.account,account_dest_id:0
@@ -8040,6 +8625,8 @@ msgid ""
"Refund base on this type. You can not Modify and Cancel if the invoice is "
"already reconciled"
msgstr ""
+"Visszatérítés ennek a típusnak az alapján. Nem tudja megváltoztatni és "
+"visszavonni a már párosított számlát"
#. module: account
#: field:account.bank.statement.line,sequence:0
@@ -8052,22 +8639,22 @@ msgstr ""
#: field:account.tax.code,sequence:0
#: field:account.tax.template,sequence:0
msgid "Sequence"
-msgstr "Sorszám"
+msgstr "Sorrend"
#. module: account
#: field:account.config.settings,paypal_account:0
msgid "Paypal account"
-msgstr ""
+msgstr "Paypal számla"
#. module: account
#: selection:account.print.journal,sort_selection:0
msgid "Journal Entry Number"
-msgstr ""
+msgstr "Napló tétel száma"
#. module: account
#: view:account.financial.report:0
msgid "Parent Report"
-msgstr ""
+msgstr "Fölérendelt gyűjtő kimutatás"
#. module: account
#: constraint:account.account:0
@@ -8076,11 +8663,13 @@ msgid ""
"Error!\n"
"You cannot create recursive accounts."
msgstr ""
+"Hiba!\n"
+"Nem hozhat létre visszatérő számlákat."
#. module: account
#: model:ir.model,name:account.model_cash_box_in
msgid "cash.box.in"
-msgstr ""
+msgstr "cash.box.in"
#. module: account
#: help:account.invoice,move_id:0
@@ -8090,7 +8679,7 @@ msgstr "Kapcsolódás az automatikusan létrehozott könyvelési tételekhez"
#. module: account
#: model:ir.model,name:account.model_account_config_settings
msgid "account.config.settings"
-msgstr ""
+msgstr "account.config.settings"
#. module: account
#: selection:account.config.settings,period:0
@@ -8113,19 +8702,19 @@ msgstr "Számított egyenleg"
#: code:addons/account/static/src/js/account_move_reconciliation.js:89
#, python-format
msgid "You must choose at least one record."
-msgstr ""
+msgstr "Választani kell legalább egy rekordot!"
#. module: account
#: field:account.account,parent_id:0
#: field:account.financial.report,parent_id:0
msgid "Parent"
-msgstr "Gyűjtő fk.szla"
+msgstr "Fölérendelt"
#. module: account
#: code:addons/account/account_cash_statement.py:292
#, python-format
msgid "Profit"
-msgstr ""
+msgstr "Nyereség"
#. module: account
#: help:account.payment.term.line,days2:0
@@ -8160,19 +8749,19 @@ msgid ""
"to the higher ones. The order is important if you have a tax with several "
"tax children. In this case, the evaluation order is important."
msgstr ""
-"A sorszám mező szolgál az adósorok sorba rendezésére a legalacsonyabb "
+"A sorrend mező szolgál az adósorok sorba rendezésére a legalacsonyabb "
"sorszámútól a legmagasabbig. A sorrend fontos a több alárendelt adóval "
"rendelkező adók esetében. Ebben az esetben az értékelési sorrend lényeges."
#. module: account
#: model:ir.model,name:account.model_account_cashbox_line
msgid "CashBox Line"
-msgstr "Pénzkazetta sor"
+msgstr "Pénzkazetta tétel sor"
#. module: account
#: field:account.installer,charts:0
msgid "Accounting Package"
-msgstr ""
+msgstr "Könyvelési csomag"
#. module: account
#: report:account.third_party_ledger:0
@@ -8182,7 +8771,7 @@ msgstr ""
#: model:ir.actions.report.xml,name:account.account_3rdparty_ledger_other
#: model:ir.ui.menu,name:account.menu_account_partner_ledger
msgid "Partner Ledger"
-msgstr "Folyószámla karton"
+msgstr "Partner folyószámla karton"
#. module: account
#: selection:account.tax.template,type:0
@@ -8202,22 +8791,22 @@ msgstr "Figyelem!"
#: help:account.bank.statement,message_unread:0
#: help:account.invoice,message_unread:0
msgid "If checked new messages require your attention."
-msgstr ""
+msgstr "Ha be van jelölve, akkor figyelje az új üzeneteket."
#. module: account
#: field:res.company,tax_calculation_rounding_method:0
msgid "Tax Calculation Rounding Method"
-msgstr ""
+msgstr "Adó számításhoz a kerekítés módja"
#. module: account
#: field:account.entries.report,move_line_state:0
msgid "State of Move Line"
-msgstr "Tételsor állapota"
+msgstr "Bizonylat tételsor állapota"
#. module: account
#: model:ir.model,name:account.model_account_move_line_reconcile
msgid "Account move line reconcile"
-msgstr "Tételpárosítás"
+msgstr "Főkönyvi számla bizonylat tételpárosítás"
#. module: account
#: view:account.subscription.generate:0
@@ -8258,7 +8847,7 @@ msgstr "Partner"
#. module: account
#: help:account.change.currency,currency_id:0
msgid "Select a currency to apply on the invoice"
-msgstr "Válassza ki az alkalmazandó új pénznemet"
+msgstr "Válassza ki a számlázásnál alkalmazandó új pénznemet"
#. module: account
#: code:addons/account/account_invoice.py:901
@@ -8269,19 +8858,20 @@ msgstr "Nincsenek számlasorok!"
#. module: account
#: view:account.financial.report:0
msgid "Report Type"
-msgstr ""
+msgstr "Kimutatás típus"
#. module: account
#: help:account.open.closed.fiscalyear,fyear_id:0
msgid ""
"Select Fiscal Year which you want to remove entries for its End of year "
"entries journal"
-msgstr "Válassza ki az üzleti évet, amelynek a nyitó tételeit törölni akarja"
+msgstr ""
+"Válassza ki az üzleti évet, amelynek a záró tételei közül törölni szeretne"
#. module: account
#: field:account.tax.template,type_tax_use:0
msgid "Tax Use In"
-msgstr "Alkalmazási terület"
+msgstr "Adó alkalmazási terület"
#. module: account
#: code:addons/account/account_bank_statement.py:382
@@ -8314,28 +8904,30 @@ msgstr "Automatikus tétel"
msgid ""
"Check this box if this account allows reconciliation of journal items."
msgstr ""
+"Jelölje be a négyzetet, ha ez a főkönyvi számla lehetővé tesz ia napló "
+"bejegyzéseken a párosításokat."
#. module: account
#: report:account.analytic.account.inverted.balance:0
msgid "Inverted Analytic Balance -"
-msgstr "Fordított gyűjtőkód kivonat -"
+msgstr "Fordított analitikus gyűjtőkód kivonat -"
#. module: account
#: help:account.move.reconcile,opening_reconciliation:0
msgid ""
"Is this reconciliation produced by the opening of a new fiscal year ?."
-msgstr ""
+msgstr "Ezt a párosítást egy új üzleti év nyitása hajtotta végre ?."
#. module: account
#: view:account.analytic.line:0
#: model:ir.actions.act_window,name:account.action_account_analytic_line_form
msgid "Analytic Entries"
-msgstr "Gyűjtőkód tételek"
+msgstr "Analitikus gyűjtőkód tételek"
#. module: account
#: view:account.analytic.account:0
msgid "Associated Partner"
-msgstr "Társult partner"
+msgstr "Társított partner"
#. module: account
#: code:addons/account/account_invoice.py:1465
@@ -8346,7 +8938,7 @@ msgstr "Először partnert kell választani!"
#. module: account
#: field:account.invoice,comment:0
msgid "Additional Information"
-msgstr "Egyéb megjegyzés"
+msgstr "További információ"
#. module: account
#: field:account.invoice.report,residual:0
@@ -8384,7 +8976,7 @@ msgstr "A számla állapota nyitott."
#: field:account.subscription,state:0
#: field:report.invoice.created,state:0
msgid "Status"
-msgstr "Státusz"
+msgstr "Állapot"
#. module: account
#: report:account.analytic.account.cost_ledger:0
@@ -8397,7 +8989,7 @@ msgstr "Gyűjtőkód karton"
#. module: account
#: view:account.config.settings:0
msgid "No Fiscal Year Defined for This Company"
-msgstr ""
+msgstr "Ehhez a vállalkozáshoz nincs üzleti adóügyi év meghatározva"
#. module: account
#: view:account.invoice:0
@@ -8407,7 +8999,7 @@ msgstr "Pro forma"
#. module: account
#: report:account.analytic.account.cost_ledger:0
msgid "J.C. /Move name"
-msgstr "Naplókód/Megnevezés"
+msgstr "Naplókód/Bizonylat megnevezés"
#. module: account
#: help:account.tax.template,include_base_amount:0
@@ -8422,13 +9014,13 @@ msgstr ""
#: code:addons/account/account.py:3196
#, python-format
msgid "Purchase Refund Journal"
-msgstr "Bejövő jóváíró számla napló"
+msgstr "Bejövő, beszállítói jóváíró számla napló"
#. module: account
#: code:addons/account/account.py:1333
#, python-format
msgid "Please define a sequence on the journal."
-msgstr ""
+msgstr "Kérem egy sorozat meghatározását a naplón."
#. module: account
#: help:account.tax.template,amount:0
@@ -8438,12 +9030,12 @@ msgstr "Százalék típusú adókra a %-ot 0-1 közötti számként adja meg."
#. module: account
#: view:account.analytic.account:0
msgid "Current Accounts"
-msgstr ""
+msgstr "Jelenlegi számlák"
#. module: account
#: view:account.invoice.report:0
msgid "Group by Invoice Date"
-msgstr ""
+msgstr "Számla dátuma szerinti csoportosítása"
#. module: account
#: help:account.journal,user_id:0
@@ -8457,6 +9049,10 @@ msgid ""
"recalls.\n"
" This installs the module account_followup."
msgstr ""
+"Ez engedélyezi az automatikus leveleket a kiegyenlítetlen számlákra, több-"
+"szintű visszahívással.\n"
+" Ez a account_followup (számla_nyomon követés) modult "
+"telepíti.."
#. module: account
#: field:account.automatic.reconcile,period_id:0
@@ -8489,22 +9085,24 @@ msgid ""
"Total amount (in Company currency) for transactions held in secondary "
"currency for this account."
msgstr ""
+"Teljes mennyiség (a vállalkozás pénznemében) a számlán második pénznemben "
+"tartott tranzakciókra."
#. module: account
#: report:account.invoice:0
msgid "Net Total:"
-msgstr "Nettó érték:"
+msgstr "Teljes nettó érték:"
#. module: account
#: code:addons/account/wizard/account_report_common.py:158
#, python-format
msgid "Select a starting and an ending period."
-msgstr ""
+msgstr "Válasszon egy induló és egy befejező időszakot."
#. module: account
#: field:account.config.settings,sale_sequence_next:0
msgid "Next invoice number"
-msgstr ""
+msgstr "Következő számla szám"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_generic_reporting
@@ -8524,7 +9122,7 @@ msgstr "Árbevétel főkönyvi számla"
#. module: account
#: field:account.account,adjusted_balance:0
msgid "Adjusted Balance"
-msgstr ""
+msgstr "Módosított egyenleg"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_fiscal_position_template_form
@@ -8548,6 +9146,9 @@ msgid ""
"This wizard will remove the end of year journal entries of selected fiscal "
"year. Note that you can run this wizard many times for the same fiscal year."
msgstr ""
+"Ez a varázsló a kiválasztott üzleti adóügyi évet lezáró könyvelési napló "
+"tételeit fogja eltávolítani. Megjegyezzük, hogy ezt a varázslót többször is "
+"elindíthatja ugyanarra az üzleti évre."
#. module: account
#: report:account.invoice:0
@@ -8598,14 +9199,16 @@ msgstr "Záró egyenleg"
#. module: account
#: field:account.journal,centralisation:0
msgid "Centralized Counterpart"
-msgstr ""
+msgstr "Központi ellenszámla"
#. module: account
#: help:account.move.line,blocked:0
msgid ""
"You can check this box to mark this journal item as a litigation with the "
"associated partner"
-msgstr "Bejelölheti ezt a négyzetet, hogy jelezze, hogy a tétel peresített."
+msgstr ""
+"Bejelölheti ezt a négyzetet, hogy jelezze a napló tételen, hogy a tétel "
+"peresített a hozzá tartozó ügyféllel."
#. module: account
#: field:account.move.line,reconcile_partial_id:0
@@ -8616,12 +9219,12 @@ msgstr "Részleges párosítás"
#. module: account
#: model:ir.model,name:account.model_account_analytic_inverted_balance
msgid "Account Analytic Inverted Balance"
-msgstr "Fordított gyűjtőkód kivonat"
+msgstr "Analitikus számla fordított gyűjtőkód kivonat"
#. module: account
#: model:ir.model,name:account.model_account_common_report
msgid "Account Common Report"
-msgstr "Általános kimutatás"
+msgstr "Főkönyvi számla általános kimutatás"
#. module: account
#: view:account.invoice.refund:0
@@ -8633,6 +9236,12 @@ msgid ""
"invoice will be created \n"
" so that you can edit it."
msgstr ""
+"Használja ezt a lehetőséget ha törölni szeretné ezt és másikat létrehozni \n"
+" helyette. Jóváíró számla lesz "
+"létrehozva, érvényesítve és párosítva\n"
+" a jelenlegi számlával. Egy szerkeszthető "
+"új, tervezet, számla lesz\n"
+" létrehozva."
#. module: account
#: model:process.transition,name:account.process_transition_filestatement0
@@ -8643,17 +9252,17 @@ msgstr "Bankkivonat automatikus importálása"
#: code:addons/account/account_invoice.py:381
#, python-format
msgid "Unknown Error!"
-msgstr ""
+msgstr "Ismeretlen hiba!"
#. module: account
#: model:ir.model,name:account.model_account_move_bank_reconcile
msgid "Move bank reconcile"
-msgstr "Bank egyeztetés"
+msgstr "Banki bizonylat egyeztetés"
#. module: account
#: view:account.config.settings:0
msgid "Apply"
-msgstr ""
+msgstr "Alkalmaz"
#. module: account
#: field:account.financial.report,account_type_ids:0
@@ -8665,7 +9274,7 @@ msgstr "Főkönyvi számlatípusok"
#. module: account
#: model:email.template,subject:account.email_template_edi_invoice
msgid "${object.company_id.name} Invoice (Ref ${object.number or 'n/a'})"
-msgstr ""
+msgstr "${object.company_id.name} Számla (Ref ${object.number or 'n/a'})"
#. module: account
#: code:addons/account/account_move_line.py:1210
@@ -8674,6 +9283,8 @@ msgid ""
"You cannot use this general account in this journal, check the tab 'Entry "
"Controls' on the related journal."
msgstr ""
+"Nem használhatja ezt az általános főkönyvi számlát ebben a naplóban, "
+"ellenőrizze az ide vonatkozó naplón a 'Beviteli felügyelet' fület."
#. module: account
#: field:account.account.type,report_type:0
@@ -8697,7 +9308,7 @@ msgstr "Párosítás"
#. module: account
#: view:account.tax.template:0
msgid "Keep empty to use the income account"
-msgstr "-"
+msgstr "Hagyja üressen a bevételi számla használatához"
#. module: account
#: view:account.invoice:0
@@ -8709,6 +9320,12 @@ msgid ""
"You should press this button to re-open it and let it continue its normal "
"process after having resolved the eventual exceptions it may have created."
msgstr ""
+"Ez a gomb csak akkor látszik, ha a Számla állapota 'fizetve' (a teljes "
+"párosítást, kiegyenlítést mutatva) és automatán számolt 'párosítás' boolean "
+"művelet Hamis (feltételezve, hogy ez már nem feltétel). Más szavakkal, a "
+"számlát ismét párosítatlanná tette és ez már nem érthető úgy mint 'fizetve' "
+"állapotú. Ezt a gombot kell megnyomnia ahhoz, hogy ismét megnyithassa és "
+"megoldja a lehetséges felmerült körülményeket a folyamat normál elvégzéséhez."
#. module: account
#: model:ir.actions.act_window,help:account.action_account_journal_form
@@ -8728,11 +9345,25 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Kattintson egy napló létrehozásához.\n"
+"
\n"
+" Egy napló az összes főkönyvi számlákkal kapcsolatos \n"
+" pénzmozgások rögzítésére szolgál a\n"
+" mindennapos üzletben.\n"
+"
\n"
+" Egy tipikus vállalkozásban mindegyik fizetési típushoz "
+"hozzárendel\n"
+" egy naplót (készpénzes, banki számlák, csekkek), egy "
+"beszállítói napló, egy vásárlói napló\n"
+" és egy a különféle információkra.\n"
+"
\n"
+" "
#. module: account
#: model:ir.model,name:account.model_account_fiscalyear_close_state
msgid "Fiscalyear Close state"
-msgstr "Üzleti év zárása"
+msgstr "Zárt állípotú üzleti év"
#. module: account
#: field:account.invoice.refund,journal_id:0
@@ -8747,7 +9378,7 @@ msgstr "Jóváíró számla napló"
#: report:account.general.ledger_landscape:0
#: report:account.partner.balance:0
msgid "Filter By"
-msgstr "Szűrés"
+msgstr "Szűrés ezzel"
#. module: account
#: code:addons/account/wizard/account_period_close.py:51
@@ -8755,6 +9386,8 @@ msgstr "Szűrés"
msgid ""
"In order to close a period, you must first post related journal entries."
msgstr ""
+"Egy időszak lezárásához, először le kell könyvelnie az ide vonatkozó napló "
+"bejegyzéseket."
#. module: account
#: view:account.entries.report:0
@@ -8766,13 +9399,13 @@ msgstr "Vállalatszintű elemzés"
#. module: account
#: help:account.invoice,account_id:0
msgid "The partner account used for this invoice."
-msgstr "Vevő/szállító főkönyvi számla"
+msgstr "A számlához használt vevő/szállító főkönyvi számla"
#. module: account
#: code:addons/account/account.py:3391
#, python-format
msgid "Tax %.2f%%"
-msgstr ""
+msgstr "Adó %.2f%%"
#. module: account
#: field:account.tax.code,parent_id:0
@@ -8790,7 +9423,7 @@ msgstr "Fizetési feltétel sor"
#: code:addons/account/account.py:3194
#, python-format
msgid "Purchase Journal"
-msgstr "Bejövő számla napló"
+msgstr "Bejövő, beszállítói számla napló"
#. module: account
#: field:account.invoice,amount_untaxed:0
@@ -8820,7 +9453,7 @@ msgstr "Fizetési határidő"
#: model:ir.ui.menu,name:account.menu_account_supplier
#: model:ir.ui.menu,name:account.menu_finance_payables
msgid "Suppliers"
-msgstr "Szállítók"
+msgstr "Beszállítók"
#. module: account
#: view:account.journal:0
@@ -8839,7 +9472,7 @@ msgstr ""
#. module: account
#: view:account.tax.code:0
msgid "Statistics"
-msgstr "Statisztika"
+msgstr "Statisztikák"
#. module: account
#: field:account.analytic.chart,from_date:0
@@ -8854,6 +9487,9 @@ msgid ""
"computed. Because it is space consuming, we do not allow to use it while "
"doing a comparison."
msgstr ""
+"Ez a lehetőség több számlaegyenleg számítási részlethez enged betekintést. "
+"Mivel ez sok helyet emészt fel, nem engedélyezzük hasonlítás használata "
+"esetén."
#. module: account
#: model:ir.model,name:account.model_account_fiscalyear_close
@@ -8863,13 +9499,16 @@ msgstr "Üzleti év zárása"
#. module: account
#: sql_constraint:account.account:0
msgid "The code of the account must be unique per company !"
-msgstr "A főkönyvi számla számának egyedinek kell lennie!"
+msgstr ""
+"A főkönyvi számla számának egyedinek kell lennie mindegyik vállalkozáshoz!"
#. module: account
#: help:product.category,property_account_expense_categ:0
#: help:product.template,property_account_expense:0
msgid "This account will be used to value outgoing stock using cost price."
msgstr ""
+"Ezt a számlát használja a kimenő raktárkészlet megbecsüléséhez a költség "
+"értékek használatával."
#. module: account
#: view:account.invoice:0
@@ -8907,14 +9546,14 @@ msgstr "Engedélyezett számlák (üres, ha mindegyik)"
#. module: account
#: field:account.config.settings,sale_tax_rate:0
msgid "Sales tax (%)"
-msgstr ""
+msgstr "Értékesítési adó (%)"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_analytic_account_tree2
#: model:ir.actions.act_window,name:account.action_account_analytic_chart
#: model:ir.ui.menu,name:account.menu_action_analytic_account_tree2
msgid "Chart of Analytic Accounts"
-msgstr "Gyűjtőkód lista"
+msgstr "Analitikus könyvelések számlatükre"
#. module: account
#: model:ir.actions.act_window,help:account.action_subscription_form
@@ -8932,12 +9571,24 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Kattintson új ismétlődő tétel létrehozásához.\n"
+"
\n"
+" Egy ismétlődő tétel keletkezik, ismétlődési alapon egy "
+"megadott \n"
+" dátumtól, pl. egy szerződés aláírására hivatkozva a vásárló "
+"ügyféllel\n"
+" vagy egy beszállítóval. Ilyen tételeket tud létrehozni a "
+"rendszer\n"
+" automatikus könyvelési feladásához.\n"
+"
\n"
+" "
#. module: account
#: view:account.journal:0
#: model:ir.ui.menu,name:account.menu_configuration_misc
msgid "Miscellaneous"
-msgstr "Egyéb"
+msgstr "Egyebek"
#. module: account
#: help:res.partner,debit:0
@@ -8948,7 +9599,7 @@ msgstr "A vállalat összes tartozása a szállítóval szemben."
#: model:process.node,name:account.process_node_analytic0
#: model:process.node,name:account.process_node_analyticcost0
msgid "Analytic Costs"
-msgstr "Költségek"
+msgstr "Analitikus költségek"
#. module: account
#: field:account.analytic.journal,name:0
@@ -8966,7 +9617,7 @@ msgstr "A(z) \"%s\" tétel nem érvényes!"
#. module: account
#: selection:account.financial.report,style_overwrite:0
msgid "Smallest Text"
-msgstr ""
+msgstr "Legkisebb szöveg"
#. module: account
#: help:account.config.settings,module_account_check_writing:0
@@ -8974,11 +9625,14 @@ msgid ""
"This allows you to check writing and printing.\n"
" This installs the module account_check_writing."
msgstr ""
+"Ez lehetővé teszi az írás és nyomtatás ellenőrzését.\n"
+" Ez account_check_writing (számla_ellenőrzés_írás) modult "
+"telepíti."
#. module: account
#: model:res.groups,name:account.group_account_invoice
msgid "Invoicing & Payments"
-msgstr ""
+msgstr "Számlázás & Kifizetések"
#. module: account
#: help:account.invoice,internal_number:0
@@ -8993,7 +9647,7 @@ msgstr ""
#: model:account.account.type,name:account.data_account_type_expense
#: model:account.financial.report,name:account.account_financial_report_expense0
msgid "Expense"
-msgstr "Költség"
+msgstr "Kiadások, költségek"
#. module: account
#: help:account.chart,fiscalyear:0
@@ -9006,13 +9660,15 @@ msgid ""
"The amount expressed in an optional other currency if it is a multi-currency "
"entry."
msgstr ""
-"Szabadon választott más pénznemben kifejezett összeg, ha a tétel devizás."
+"Szabadon választott más pénznemben kifejezett összeg, ha a tétel több "
+"pénznembeli devizás."
#. module: account
#: code:addons/account/account_move_line.py:1006
#, python-format
msgid "The account move (%s) for centralisation has been confirmed."
msgstr ""
+"A főkönyvi számla bizonylat (%s) ehhez a központosításhoz visszaigazolt."
#. module: account
#: report:account.analytic.account.journal:0
@@ -9051,6 +9707,8 @@ msgid ""
"created. If you leave that field empty, it will use the same journal as the "
"current invoice."
msgstr ""
+"Itt választhatja ki a létrehozni kívánt jóváírás naplóját. Ha üresen hagyja "
+"ezt a mezőt, akkor a jelenlegi számla naplóját fogja használni."
#. module: account
#: help:account.bank.statement.line,sequence:0
@@ -9073,23 +9731,23 @@ msgstr "Párosított tételek"
#: code:addons/account/account.py:2334
#, python-format
msgid "Wrong model !"
-msgstr ""
+msgstr "Rossz modell !"
#. module: account
#: view:account.tax.code.template:0
#: view:account.tax.template:0
msgid "Tax Template"
-msgstr ""
+msgstr "Adó sablon"
#. module: account
#: field:account.invoice.refund,period:0
msgid "Force period"
-msgstr "Időszak"
+msgstr "Időszak kényszerítése"
#. module: account
#: model:ir.model,name:account.model_account_partner_balance
msgid "Print Account Partner Balance"
-msgstr "Folyószámla kivonat nyomtatása"
+msgstr "Partner folyószámla kivonat nyomtatása"
#. module: account
#: code:addons/account/account_move_line.py:1121
@@ -9099,6 +9757,9 @@ msgid ""
"some non legal fields or you must unreconcile first.\n"
"%s."
msgstr ""
+"Nem hajtja végre ezt a módosítást egy párosított tételen. Egyes nem érvényes "
+"tételt tud, vagy párosítatlanná kell tennie az egészet először.\n"
+"%s."
#. module: account
#: help:account.financial.report,sign:0
@@ -9109,6 +9770,12 @@ msgid ""
"accounts that are typically more credited than debited and that you would "
"like to print as positive amounts in your reports; e.g.: Income account."
msgstr ""
+"Egy főkönyvi számlához, melyen több a tartozás mint a követelés és ezt "
+"szeretné nyomtatni mint negatív összegeget a kimutatásain, akkor az előjelet "
+"át kell változtatnia az egyenlegen; pl.: Kiadási, költség számla. Ez szintén "
+"vonatkozik olyan számlákra, melyen több a követelés mint a tartozás és azt "
+"mint pozitív összeget szeretné nyomtatni a kimutatásain; pl.: Bevételi, "
+"vásárlói számla."
#. module: account
#: field:res.partner,contract_ids:0
@@ -9122,7 +9789,7 @@ msgstr "Szerződések"
#: field:account.financial.report,credit:0
#: field:account.financial.report,debit:0
msgid "unknown"
-msgstr "Ismeretlen"
+msgstr "ismeretlen"
#. module: account
#: field:account.fiscalyear.close,journal_id:0
@@ -9141,14 +9808,14 @@ msgstr ""
#: field:account.bank.statement,message_is_follower:0
#: field:account.invoice,message_is_follower:0
msgid "Is a Follower"
-msgstr ""
+msgstr "Ez egy követő"
#. module: account
#: view:account.move:0
#: field:account.move,narration:0
#: field:account.move.line,narration:0
msgid "Internal Note"
-msgstr ""
+msgstr "Belső jegyzet"
#. module: account
#: constraint:account.account:0
@@ -9157,11 +9824,14 @@ msgid ""
"You cannot select an account type with a deferral method different of "
"\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"."
msgstr ""
+"Beállítási hiba!\n"
+"Nem választhat \"Párosítatlan\" eltolási módtól eltérő főkönyvi számla "
+"típust a \"Kiadási/Bevételi\" belső típusú számlákhoz."
#. module: account
#: field:account.config.settings,has_fiscal_year:0
msgid "Company has a fiscal year"
-msgstr ""
+msgstr "Vállalkozásnak van üzleti, adóügyi éve"
#. module: account
#: help:account.tax,child_depend:0
@@ -9177,6 +9847,7 @@ msgstr ""
#, python-format
msgid "You cannot deactivate an account that contains journal items."
msgstr ""
+"Nem hatástalaníthat olyan főkönyvi számlát, mely napló tételeket tartalmaz."
#. module: account
#: selection:account.tax,applicable_type:0
@@ -9203,7 +9874,7 @@ msgstr "Tételsorok"
#. module: account
#: model:ir.actions.act_window,name:account.action_open_journal_button
msgid "Open Journal"
-msgstr "Nem könyvelt tételek könyvelése"
+msgstr "Napló megnyitása"
#. module: account
#: report:account.analytic.account.journal:0
@@ -9226,7 +9897,7 @@ msgstr "Címlet"
#: code:addons/account/account.py:3195
#, python-format
msgid "Sales Refund Journal"
-msgstr "Kimenő jóváíró számla napló"
+msgstr "Kimenő, értékesítési jóváíró számla napló"
#. module: account
#: view:account.move:0
@@ -9243,6 +9914,11 @@ msgid ""
"chart\n"
" of accounts."
msgstr ""
+"Ha már egyszer a számla tervezetek le lettek igazolva, többé nem tudja\n"
+" azokat módosítani. A számlák egyedi azonosítóval "
+"lesznek \n"
+" ellátva és napló bejegyzések készülnek a "
+"számlatükrökben."
#. module: account
#: model:process.node,note:account.process_node_bankstatement0
@@ -9257,7 +9933,7 @@ msgstr "Üzleti év és időszakok zárása"
#. module: account
#: field:account.config.settings,purchase_refund_journal_id:0
msgid "Purchase refund journal"
-msgstr ""
+msgstr "Bejövő, beszerzési jóváíró számla napló"
#. module: account
#: view:account.analytic.line:0
@@ -9270,23 +9946,23 @@ msgstr "Termék információ"
#: view:account.move.line:0
#: model:ir.ui.menu,name:account.next_id_40
msgid "Analytic"
-msgstr "Gyűjtőnaplók"
+msgstr "Anaitikus gyűjtőnaplók"
#. module: account
#: model:process.node,name:account.process_node_invoiceinvoice0
#: model:process.node,name:account.process_node_supplierinvoiceinvoice0
msgid "Create Invoice"
-msgstr "Számla készítése"
+msgstr "Számla létrehozás"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_configuration_installer
msgid "Configure Accounting Data"
-msgstr ""
+msgstr "Könyvelési adatok beállítása"
#. module: account
#: field:wizard.multi.charts.accounts,purchase_tax_rate:0
msgid "Purchase Tax(%)"
-msgstr "Előzetesen felszámított ÁFA(%)"
+msgstr "Előzetesen felszámított beszerzési ÁFA(%)"
#. module: account
#: code:addons/account/account_invoice.py:901
@@ -9301,11 +9977,13 @@ msgid ""
"Please check that the field 'Internal Transfers Account' is set on the "
"payment method '%s'."
msgstr ""
+"Kérem ellenőrizze, hogy a 'Belső mozgások könyvelési számla' mező be legyen "
+"állítva a '%s' fizetési feltételnél ."
#. module: account
#: field:account.vat.declaration,display_detail:0
msgid "Display Detail"
-msgstr ""
+msgstr "Részletek mutatása"
#. module: account
#: code:addons/account/account.py:3203
@@ -9319,14 +9997,14 @@ msgid ""
"Analytic costs (timesheets, some purchased products, ...) come from analytic "
"accounts. These generate draft invoices."
msgstr ""
-"A költségek a gyűjtőkódokból származnak. Ezek állítják elő a "
-"számlatervezeteket."
+"Analitikus költségek (időkimutatások, egyes megvásárolt termékek, ...) az "
+"analitikus könyvelésből származnak. Ezek számla tervezeteket hoznak létre."
#. module: account
#: view:account.analytic.line:0
#: view:analytic.entries.report:0
msgid "My Entries"
-msgstr "Tételeim"
+msgstr "Bejegyzéseim"
#. module: account
#: help:account.invoice,state:0
@@ -9341,6 +10019,18 @@ msgid ""
"related journal entries may or may not be reconciled. \n"
"* The 'Cancelled' status is used when user cancel invoice."
msgstr ""
+" * A 'Tervezet' állapotot használja, miután egy felhasználó bevitt egy új, "
+"még nem jóváhagyott Számlát. \n"
+"* A 'Pro-forma' állapotú amikor a számla díjbekérő, Pro-forma; a számlának "
+"még nincs száma. \n"
+"* A 'Nyitott' állapotot akkor használja, ha a felhasználó számlát készít,és "
+"egy számlaszámot hoz létre. Addig marad nyitott állapotú, amíg a számla nem "
+"kerül kifizetésre. \n"
+"* A 'Fizetve' állapot lesz beállítva automatikusan amint a számla "
+"kifizetésre került. A hozzá kapcsolódó napló bejegyzések párosítása vagy "
+"megtörténik vagy nem. \n"
+"* A 'Visszavont' állapotot használja, ha a felhasználó érvényteleníti a "
+"számlát."
#. module: account
#: field:account.period,date_stop:0
@@ -9360,7 +10050,7 @@ msgstr "Pénzügyi kimutatások"
#. module: account
#: model:account.account.type,name:account.account_type_liability_view1
msgid "Liability View"
-msgstr ""
+msgstr "Felelősség nézet"
#. module: account
#: report:account.account.balance:0
@@ -9408,12 +10098,12 @@ msgstr "A partnerre hivatkozó vállalatok"
#. module: account
#: view:account.invoice:0
msgid "Ask Refund"
-msgstr "Jóváírás igénylése"
+msgstr "Jóváírás, visszatérítés igénylése"
#. module: account
#: view:account.move.line:0
msgid "Total credit"
-msgstr "Követel összesen"
+msgstr "Követelés összesen"
#. module: account
#: model:process.transition,note:account.process_transition_suppliervalidentries0
@@ -9433,18 +10123,18 @@ msgstr "Bizonylat: vevő folyószámla kivonat"
#. module: account
#: view:account.account.template:0
msgid "Receivale Accounts"
-msgstr "Vevő számlák"
+msgstr "Követelés (vevő) számlák"
#. module: account
#: field:account.config.settings,purchase_refund_sequence_prefix:0
msgid "Supplier credit note sequence"
-msgstr ""
+msgstr "Beszállítők jóváírási sorrend"
#. module: account
#: code:addons/account/wizard/account_state_open.py:37
#, python-format
msgid "Invoice is already reconciled."
-msgstr ""
+msgstr "Számla már párosítva volt."
#. module: account
#: help:account.config.settings,module_account_payment:0
@@ -9456,6 +10146,12 @@ msgid ""
"payments.\n"
" This installs the module account_payment."
msgstr ""
+"Ez lehetővé teszi hogy létrehozza és kezelje az átutalási megbízásait, egy "
+"könnyű\n"
+" * csatoló alapjaként a különböző automatikus fizetési "
+"szerkezetekhez, és\n"
+" * hatékonyabb kezelését a számla fizetéseknek.\n"
+" Ez a account_payment (számla_kifizetés) modult telepíti.."
#. module: account
#: xsl:account.transfer:0
@@ -9466,7 +10162,7 @@ msgstr "Dokumentum"
#: view:account.chart.template:0
#: field:account.chart.template,property_account_receivable:0
msgid "Receivable Account"
-msgstr "Vevő főkönyvi számla"
+msgstr "Bevételi (Vevő) főkönyvi számla"
#. module: account
#: code:addons/account/account_move_line.py:771
@@ -9474,6 +10170,8 @@ msgstr "Vevő főkönyvi számla"
#, python-format
msgid "To reconcile the entries company should be the same for all entries."
msgstr ""
+"A bejegyzések párosításához az összes bejegyzéshez ugyanaz a vállalkozás "
+"szükséges."
#. module: account
#: field:account.account,balance:0
@@ -9518,12 +10216,12 @@ msgstr "Számla megjelenítése"
#: model:account.account.type,name:account.data_account_type_payable
#: selection:account.entries.report,type:0
msgid "Payable"
-msgstr "Szállító"
+msgstr "Szállítónak fizetendő"
#. module: account
#: view:board.board:0
msgid "Account Board"
-msgstr "Tábla"
+msgstr "Főkonyvi számla tábla"
#. module: account
#: view:account.model:0
@@ -9551,7 +10249,7 @@ msgstr "Szűrés"
#: field:account.cashbox.line,number_closing:0
#: field:account.cashbox.line,number_opening:0
msgid "Number of Units"
-msgstr ""
+msgstr "Egységek száma"
#. module: account
#: model:process.node,note:account.process_node_manually0
@@ -9568,14 +10266,14 @@ msgstr "Kézi tétel"
#: view:account.move.line:0
#: field:analytic.entries.report,move_id:0
msgid "Move"
-msgstr "Bizonylat száma"
+msgstr "Bizonylat"
#. module: account
#: code:addons/account/account_bank_statement.py:478
#: code:addons/account/wizard/account_period_close.py:51
#, python-format
msgid "Invalid Action!"
-msgstr ""
+msgstr "Érvénytelen lépés!"
#. module: account
#: view:account.bank.statement:0
@@ -9599,11 +10297,14 @@ msgid ""
"The period is invalid. Either some periods are overlapping or the period's "
"dates are not matching the scope of the fiscal year."
msgstr ""
+"Hiba!\n"
+"Az időszak nem érvényes. Vagy az egyes időszakok átfedik egymást vagy az "
+"időszakok nem egyeznek az üzleti év határidőivel."
#. module: account
#: report:account.overdue:0
msgid "There is nothing due with this customer."
-msgstr ""
+msgstr "Ezzel a partnerrel nincs semmilyen lejárat."
#. module: account
#: help:account.tax,account_paid_id:0
@@ -9611,19 +10312,22 @@ msgid ""
"Set the account that will be set by default on invoice tax lines for "
"refunds. Leave empty to use the expense account."
msgstr ""
+"Számla beállítása ami alapértelmezetten a számlák adó tételeinek "
+"visszatérítésére szolgál. Hagyja üresen, ha a költség számlát szeretné "
+"használni."
#. module: account
#: help:account.addtmpl.wizard,cparent_id:0
msgid ""
"Creates an account with the selected template under this existing parent."
msgstr ""
-"A kiválasztott sablonnal létrehoz egy főkönyvi számlát a már létező gyűjtő "
-"főkönyvi számla alá."
+"A kiválasztott sablonnal létrehoz egy főkönyvi számlát a már létező "
+"fölérendelt gyűjtő főkönyvi számla alá."
#. module: account
#: report:account.invoice:0
msgid "Source"
-msgstr ""
+msgstr "Forrás"
#. module: account
#: selection:account.model.line,date_maturity:0
@@ -9637,8 +10341,8 @@ msgid ""
"You have to define the bank account\n"
"in the journal definition for reconciliation."
msgstr ""
-"A naplóban meg kell adnia a bankszámlát\n"
-"az egyeztetéshez."
+"A napló leírásban meg kell adnia a bankszámlát\n"
+"az egyeztetéshez, párosításhoz."
#. module: account
#: help:account.journal,sequence_id:0
@@ -9646,11 +10350,13 @@ msgid ""
"This field contains the information related to the numbering of the journal "
"entries of this journal."
msgstr ""
+"Ez a mező tartalmazza ennek a naplónak a bejegyzéseihez tartozó számok "
+"infoormációit."
#. module: account
#: field:account.invoice,sent:0
msgid "Sent"
-msgstr ""
+msgstr "Elküldött"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_common_menu
@@ -9661,7 +10367,7 @@ msgstr "Általános kimutatás"
#: field:account.config.settings,default_sale_tax:0
#: field:account.config.settings,sale_tax:0
msgid "Default sale tax"
-msgstr ""
+msgstr "Alapértelmezett értékesítési adó"
#. module: account
#: report:account.overdue:0
@@ -9672,7 +10378,7 @@ msgstr "Egyenleg :"
#: code:addons/account/account.py:1587
#, python-format
msgid "Cannot create moves for different companies."
-msgstr ""
+msgstr "Nem tud létrehozni bizonylatot különboző vállalkozásokra."
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_periodical_processing
@@ -9682,14 +10388,14 @@ msgstr "Időszakos feldolgozás"
#. module: account
#: view:account.invoice.report:0
msgid "Customer And Supplier Invoices"
-msgstr ""
+msgstr "Vásárlói és Beszállítói számlák"
#. module: account
#: model:process.node,note:account.process_node_paymententries0
#: model:process.transition,name:account.process_transition_paymentorderbank0
#: model:process.transition,name:account.process_transition_paymentreconcile0
msgid "Payment entries"
-msgstr "Pénzügyi rendezés tételek"
+msgstr "Pénzügyi rendezés tételei"
#. module: account
#: selection:account.entries.report,month:0
@@ -9713,7 +10419,7 @@ msgstr "Előjegyzés"
#. module: account
#: model:ir.model,name:account.model_account_analytic_balance
msgid "Account Analytic Balance"
-msgstr "Gyűjtőkód kivonat"
+msgstr "Analitikus gyűjtőkód számlaegyenleg"
#. module: account
#: report:account.account.balance:0
@@ -9746,7 +10452,7 @@ msgstr "Záró időszak"
#. module: account
#: model:account.account.type,name:account.account_type_expense_view1
msgid "Expense View"
-msgstr ""
+msgstr "Költség nézet"
#. module: account
#: field:account.move.line,date_maturity:0
@@ -9757,13 +10463,13 @@ msgstr "Fizetési határidő"
#: model:account.payment.term,name:account.account_payment_term_immediate
#: model:account.payment.term,note:account.account_payment_term_immediate
msgid "Immediate Payment"
-msgstr ""
+msgstr "Azonnali, készpénzes fizetés"
#. module: account
#: code:addons/account/account.py:1502
#, python-format
msgid " Centralisation"
-msgstr ""
+msgstr " Központosítás"
#. module: account
#: help:account.journal,type:0
@@ -9774,12 +10480,18 @@ msgid ""
"journals. Select 'Opening/Closing Situation' for entries generated for new "
"fiscal years."
msgstr ""
+"Válassza az 'Értékesítés'-t a a vásárlói számlák naplóihoz. Válassza a "
+"'Beszerzés'-t a beszállítói számlák naplóihoz. Válassza a 'Készpénz'-t vagy "
+"a 'Bank'-ot olyan naplókhoz melyek a vásárlói vagy beszerzési fizetéseket "
+"rögzítik. Válassza az 'Általános'-t az egyéb műveletek naplózásához. "
+"Válassza 'Nyitó/Záró' helyzetet olyan tételekhez amit új üzleti év "
+"generálásához használ."
#. module: account
#: view:account.subscription:0
#: model:ir.model,name:account.model_account_subscription
msgid "Account Subscription"
-msgstr "Előjegyzés"
+msgstr "Főkönyvi számla előjegyzés"
#. module: account
#: report:account.overdue:0
@@ -9827,6 +10539,8 @@ msgid ""
"It indicates that the invoice has been paid and the journal entry of the "
"invoice has been reconciled with one or several journal entries of payment."
msgstr ""
+"Ez jelzi, hogy a számla ki lett fizetve és a számla napló bejegyzése "
+"párosítva lett a fizetés egy vagy több napló bejegyzésével."
#. module: account
#: view:account.invoice:0
@@ -9846,7 +10560,7 @@ msgstr "Készpénz befizetése"
#: view:account.entries.report:0
#: view:account.move.line:0
msgid "Unreconciled"
-msgstr "Rendezetlen"
+msgstr "Rendezetlen, párosítatlan"
#. module: account
#: code:addons/account/account_invoice.py:922
@@ -9857,7 +10571,7 @@ msgstr "Hibás összesen!"
#. module: account
#: field:account.journal,sequence_id:0
msgid "Entry Sequence"
-msgstr "Sorszámozás"
+msgstr "Bevitel sorszámozás"
#. module: account
#: model:ir.actions.act_window,help:account.action_account_period_tree
@@ -9892,12 +10606,12 @@ msgstr "Gyűjtőkód karton (csak mennyiségi)"
#: model:process.transition,name:account.process_transition_analyticinvoice0
#: model:process.transition,name:account.process_transition_supplieranalyticcost0
msgid "From analytic accounts"
-msgstr "Gyűjtőkódokból"
+msgstr "Analitikus gyűjtőkódokból"
#. module: account
#: view:account.installer:0
msgid "Configure your Fiscal Year"
-msgstr ""
+msgstr "Állítsa be az üzleti, adóügyi évét"
#. module: account
#: field:account.period,name:0
@@ -9911,6 +10625,8 @@ msgid ""
"Selected invoice(s) cannot be cancelled as they are already in 'Cancelled' "
"or 'Done' state."
msgstr ""
+"A kiválasztott számlá(ka)t nem lehet visszavonni mivel már 'Visszavont' vagy "
+"'Elkészített' állapotú."
#. module: account
#: report:account.analytic.account.quantity_cost_ledger:0
@@ -9937,7 +10653,7 @@ msgstr "Könyvelési tételsorok"
#. module: account
#: view:accounting.report:0
msgid "Comparison"
-msgstr ""
+msgstr "Összehasonlítás"
#. module: account
#: code:addons/account/account_move_line.py:1119
@@ -9947,6 +10663,9 @@ msgid ""
"some non legal fields or you must unconfirm the journal entry first.\n"
"%s."
msgstr ""
+"Nem hagyhatja végre ezt a módosítást egy jóváhagyott bejegyzésen. Csak nem "
+"törvényes mezőket változtathat meg vagy a naplót vissza kell vonni először.\n"
+"%s."
#. module: account
#: help:account.config.settings,module_account_budget:0
@@ -9957,11 +10676,18 @@ msgid ""
"analytic account.\n"
" This installs the module account_budget."
msgstr ""
+"Ez lehetővé teszi a könyvelő számára az analitikus és átlátható "
+"költségvetést.\n"
+" Ha már a mester költségvetés és a költségvetés meg lett "
+"határozva,\n"
+" a projekt irányító beállíthatja a tervezett költségeket "
+"mindegyik analitikus könyvelési számlára.\n"
+" Ez a account_budget (számla_költség) modult telepíti.."
#. module: account
#: field:account.bank.statement.line,name:0
msgid "OBI"
-msgstr ""
+msgstr "OBI"
#. module: account
#: help:res.partner,property_account_payable:0
@@ -9987,7 +10713,7 @@ msgstr "Másodlagos pénznem"
#. module: account
#: model:ir.model,name:account.model_validate_account_move
msgid "Validate Account Move"
-msgstr "Könyvelési tételek jóváhagyása"
+msgstr "Könyvelési tételek bizonylatának jóváhagyása"
#. module: account
#: field:account.account,credit:0
@@ -10011,7 +10737,7 @@ msgstr "Könyvelési tételek jóváhagyása"
#: report:account.vat.declaration:0
#: field:report.account.receivable,credit:0
msgid "Credit"
-msgstr "Követel"
+msgstr "Követelés"
#. module: account
#: view:account.invoice:0
@@ -10032,7 +10758,7 @@ msgstr "Kontírozási modell"
#: code:addons/account/account.py:1073
#, python-format
msgid "Start period should precede then end period."
-msgstr ""
+msgstr "Előbb van az induó időszak és utána a záró időszak."
#. module: account
#: field:account.invoice,number:0
@@ -10053,7 +10779,7 @@ msgstr "Általános"
#: field:account.invoice.report,price_total:0
#: field:account.invoice.report,user_currency_price_total:0
msgid "Total Without Tax"
-msgstr "Nettó érték"
+msgstr "Nettó, adó nélküli érték"
#. module: account
#: selection:account.aged.trial.balance,filter:0
@@ -10111,13 +10837,13 @@ msgstr "Április"
#. module: account
#: model:account.financial.report,name:account.account_financial_report_profitloss_toreport0
msgid "Profit (Loss) to report"
-msgstr ""
+msgstr "Nyereség (Veszteség) a kimutatásba"
#. module: account
#: code:addons/account/account_invoice.py:379
#, python-format
msgid "There is no Sale/Purchase Journal(s) defined."
-msgstr ""
+msgstr "Nincs Értékesítés/Beszerzés napló(k) meghatározva."
#. module: account
#: view:account.move.line.reconcile.select:0
@@ -10127,18 +10853,18 @@ msgstr "Megnyitás a párosításhoz"
#. module: account
#: field:account.account,parent_left:0
msgid "Parent Left"
-msgstr "Bal szülő"
+msgstr "Bal fölérendelt szülő alkalmazás szabályok"
#. module: account
#: selection:account.financial.report,style_overwrite:0
msgid "Title 2 (bold)"
-msgstr ""
+msgstr "Címmező 2 (kövér)"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree2
#: model:ir.ui.menu,name:account.menu_action_invoice_tree2
msgid "Supplier Invoices"
-msgstr "Bejövő számlák"
+msgstr "Bejövő, beszállítói számlák"
#. module: account
#: view:account.analytic.line:0
@@ -10174,7 +10900,7 @@ msgstr "Könyvelési időszak"
#. module: account
#: view:account.subscription:0
msgid "Remove Lines"
-msgstr "Sorok eltávolítása"
+msgstr "Tételsorok eltávolítása"
#. module: account
#: selection:account.account,type:0
@@ -10195,7 +10921,7 @@ msgstr "Belső típus"
#. module: account
#: field:account.subscription.generate,date:0
msgid "Generate Entries Before"
-msgstr ""
+msgstr "Előzőleg létrehozott bejegyzések"
#. module: account
#: model:ir.actions.act_window,name:account.action_subscription_form_running
@@ -10269,19 +10995,19 @@ msgstr "Eredeti adó"
#. module: account
#: view:ir.sequence:0
msgid "Fiscal Year Sequences"
-msgstr "Üzleti év sorszámok"
+msgstr "Üzleti év sorrendek"
#. module: account
#: selection:account.financial.report,display_detail:0
msgid "No detail"
-msgstr ""
+msgstr "Nincsenek részletek"
#. module: account
#: field:account.account,unrealized_gain_loss:0
#: model:ir.actions.act_window,name:account.action_account_gain_loss
#: model:ir.ui.menu,name:account.menu_unrealized_gains_losses
msgid "Unrealized Gain or Loss"
-msgstr ""
+msgstr "Nem realizált Nyereség vagy veszteség"
#. module: account
#: view:account.move:0
@@ -10293,12 +11019,12 @@ msgstr "Állapotok"
#: help:product.category,property_account_income_categ:0
#: help:product.template,property_account_income:0
msgid "This account will be used to value outgoing stock using sale price."
-msgstr ""
+msgstr "Ez a főkönyvi számla értékeli a kimenő árukat az eladási ár alapján."
#. module: account
#: field:account.invoice,check_total:0
msgid "Verification Total"
-msgstr "Számla végösszeg"
+msgstr "Számla végösszeg ellenőrzés"
#. module: account
#: report:account.analytic.account.balance:0
@@ -10310,23 +11036,23 @@ msgstr "Számla végösszeg"
#: field:report.account_type.sales,amount_total:0
#: field:report.invoice.created,amount_total:0
msgid "Total"
-msgstr "Összesen"
+msgstr "Bruttó érték összesen"
#. module: account
#: code:addons/account/wizard/account_invoice_refund.py:109
#, python-format
msgid "Cannot %s draft/proforma/cancel invoice."
-msgstr ""
+msgstr "Nem lehet %s tervezet/proforma/érvénytelenített számla."
#. module: account
#: field:account.tax,account_analytic_paid_id:0
msgid "Refund Tax Analytic Account"
-msgstr ""
+msgstr "Visszatérítés analitikai adógyűjtő számla"
#. module: account
#: view:account.move.bank.reconcile:0
msgid "Open for Bank Reconciliation"
-msgstr "Megnyitás a bank egyeztetéshez"
+msgstr "Megnyitás a bank egyeztetéshez, párosításhoz"
#. module: account
#: field:account.account,company_id:0
@@ -10392,7 +11118,7 @@ msgstr "Esedékesség kelte"
#: field:cash.box.in,name:0
#: field:cash.box.out,name:0
msgid "Reason"
-msgstr ""
+msgstr "Indoklás"
#. module: account
#: selection:account.partner.ledger,filter:0
@@ -10420,12 +11146,12 @@ msgstr "Havi időszakok létrehozása"
#. module: account
#: field:account.tax.code.template,sign:0
msgid "Sign For Parent"
-msgstr "Összegzésnél használt előjel"
+msgstr "Fölérendeltekhez használt előjel"
#. module: account
#: model:ir.model,name:account.model_account_balance_report
msgid "Trial Balance Report"
-msgstr "Főkönyvi kivonat"
+msgstr "Próbamérleg kimutatás"
#. module: account
#: model:ir.actions.act_window,name:account.action_bank_statement_draft_tree
@@ -10450,22 +11176,26 @@ msgid ""
"If you unreconcile transactions, you must also verify all the actions that "
"are linked to those transactions because they will not be disable"
msgstr ""
+"Ha párosítatlanná teszi a tranzakciókat, akkor a tranzakciókhoz kapcsolt "
+"tranzakciókat is ellenőriznie kell, mert azok nem lesznek kiiktatva"
#. module: account
#: code:addons/account/account_move_line.py:1056
#, python-format
msgid "Unable to change tax!"
-msgstr ""
+msgstr "Lehetetlen megváltoztatni az adót!"
#. module: account
#: constraint:account.bank.statement:0
msgid "The journal and period chosen have to belong to the same company."
msgstr ""
+"A kiválasztott naplónak és időszaknak ugyanahhoz a vállalkozáshoz kell "
+"tartoznia."
#. module: account
#: view:account.invoice:0
msgid "Invoice lines"
-msgstr "Számlasorok"
+msgstr "Számla tételsorok"
#. module: account
#: field:account.chart,period_to:0
@@ -10475,7 +11205,7 @@ msgstr "Záró időszak"
#. module: account
#: sql_constraint:account.journal:0
msgid "The code of the journal must be unique per company !"
-msgstr "A napló kódjának egyedinek kell lennie!"
+msgstr "A napló kódjának egyedinek kell lennie mindegyik vállalathoz!"
#. module: account
#: model:ir.actions.act_window,help:account.action_account_invoice_report_all
@@ -10484,6 +11214,9 @@ msgid ""
"customer. The tool search can also be used to personalise your Invoices "
"reports and so, match this analysis to your needs."
msgstr ""
+"Ebből a kimutatásból, áttekintheti az ehhez a partnerhez tartozó számlázott "
+"összegeket. A kereső eszközzel egyénivé teheti a Számla kimutatásait és így, "
+"az a kívánsága szerinti lesz."
#. module: account
#: view:account.partner.reconcile.process:0
@@ -10494,7 +11227,7 @@ msgstr "A következő partnerre lép"
#: view:account.automatic.reconcile:0
#: view:account.move.line.reconcile.writeoff:0
msgid "Write-Off Move"
-msgstr "Különbözet leírása"
+msgstr "Különbözet bizonylat leírása"
#. module: account
#: model:process.node,note:account.process_node_paidinvoice0
@@ -10504,7 +11237,7 @@ msgstr "A számla állapota kész."
#. module: account
#: field:account.config.settings,module_account_followup:0
msgid "Manage customer payment follow-ups"
-msgstr ""
+msgstr "Vásárlói fizetési nyomon követések kezelése"
#. module: account
#: model:ir.model,name:account.model_report_account_sales
@@ -10514,7 +11247,7 @@ msgstr "Főkönyvi számlánkénti értékesítési kimutatás"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_account
msgid "Accounts Fiscal Position"
-msgstr "ÁFA pozíció"
+msgstr "Főkönyvi számla költségvetési ÁFA pozíció"
#. module: account
#: report:account.invoice:0
@@ -10526,7 +11259,7 @@ msgstr "ÁFA pozíció"
#: selection:report.invoice.created,type:0
#, python-format
msgid "Supplier Invoice"
-msgstr "Bejövő számla"
+msgstr "Beszállítók bejövő számlái"
#. module: account
#: field:account.account,debit:0
@@ -10555,18 +11288,18 @@ msgstr "Tartozik"
#. module: account
#: selection:account.financial.report,style_overwrite:0
msgid "Title 3 (bold, smaller)"
-msgstr ""
+msgstr "Címmező 3 (kövér, kisebb)"
#. module: account
#: view:account.invoice:0
#: field:account.invoice,invoice_line:0
msgid "Invoice Lines"
-msgstr "Számlasorok"
+msgstr "Számla téetelsorok"
#. module: account
#: help:account.model.line,quantity:0
msgid "The optional quantity on entries."
-msgstr ""
+msgstr "A tételek mennyiségi lehetőségei."
#. module: account
#: field:account.automatic.reconcile,reconciled:0
@@ -10576,13 +11309,13 @@ msgstr "Párosított tranzakciók"
#. module: account
#: model:ir.model,name:account.model_report_account_receivable
msgid "Receivable accounts"
-msgstr "Vevő számlák"
+msgstr "Vásárlóktól követelés számlák"
#. module: account
#: code:addons/account/account_move_line.py:783
#, python-format
msgid "Already reconciled."
-msgstr ""
+msgstr "Már párosítottak."
#. module: account
#: selection:account.model.line,date_maturity:0
@@ -10597,7 +11330,7 @@ msgstr "Tartomány"
#. module: account
#: view:account.analytic.line:0
msgid "Analytic Journal Items related to a purchase journal."
-msgstr ""
+msgstr "Beszerzési naplóval összefüggő analitikai napló tételei"
#. module: account
#: help:account.account,type:0
@@ -10608,6 +11341,11 @@ msgid ""
"payable/receivable are for partners accounts (for debit/credit "
"computations), closed for depreciated accounts."
msgstr ""
+"A 'Belső típus' a különböző elérhető számla tulajdonságokat tartalmazza: "
+"nézetnek nem lehet napló bejegyzései, egyeztetett számlák melyek "
+"tartalmazhatnak al-számlákat a több szintes vállalati felépítésnél, "
+"fizetendők/követelések a fölérendelt főkönyvi számlákhoz (tartozik/követel "
+"számításokhoz), lezárt a leértékelt számlákhoz."
#. module: account
#: report:account.account.balance:0
@@ -10616,23 +11354,23 @@ msgstr ""
#: report:account.general.ledger_landscape:0
#: selection:account.report.general.ledger,display_account:0
msgid "With movements"
-msgstr "Amelyeken van mozgás"
+msgstr "Amelyeken van bizonylata"
#. module: account
#: view:account.tax.code.template:0
msgid "Account Tax Code Template"
-msgstr "Adógyűjtő sablon"
+msgstr "Főkönyvi számla adógyűjtő sablon"
#. module: account
#: model:process.node,name:account.process_node_manually0
msgid "Manually"
-msgstr "Manuálisan"
+msgstr "Kézzel"
#. module: account
#: help:account.move,balance:0
msgid ""
"This is a field only used for internal purpose and shouldn't be displayed"
-msgstr ""
+msgstr "Ez a mező belső használatra és nem szabad megjeleníteni"
#. module: account
#: selection:account.entries.report,month:0
@@ -10646,13 +11384,14 @@ msgstr "December"
#. module: account
#: view:account.invoice.report:0
msgid "Group by month of Invoice Date"
-msgstr ""
+msgstr "Csoportosítás számla dátuma alapján"
#. module: account
#: code:addons/account/account_analytic_line.py:99
#, python-format
msgid "There is no income account defined for this product: \"%s\" (id:%d)."
msgstr ""
+"Nincs bevételi számla meghatározva ehhez a termékhez: \"%s\" (id:%d)."
#. module: account
#: model:ir.actions.act_window,name:account.action_aged_receivable_graph
@@ -10668,13 +11407,15 @@ msgstr "Alkalmazhatóság"
#. module: account
#: help:account.move.line,currency_id:0
msgid "The optional other currency if it is a multi-currency entry."
-msgstr "Szabadon választott más pénznem, ha a tétel devizás."
+msgstr "Szabadon választott más pénznem, ha a tétel több-devizás."
#. module: account
#: model:process.transition,note:account.process_transition_invoiceimport0
msgid ""
"Import of the statement in the system from a supplier or customer invoice"
-msgstr "Bejövő vagy kimenő számlából kivonat importálása a rendszerbe"
+msgstr ""
+"Beszállítói bejövő vagy vásárlói kimenő számlából kivonat importálása a "
+"rendszerbe"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_periodical_processing_billing
@@ -10685,7 +11426,7 @@ msgstr "Számlázás"
#: view:account.account:0
#: view:account.analytic.account:0
msgid "Parent Account"
-msgstr "Gyűjtő főkönyvi számla"
+msgstr "Fölérendelt gyűjtő főkönyvi számla"
#. module: account
#: view:report.account.receivable:0
@@ -10695,7 +11436,7 @@ msgstr "Típusonkénti főkönyvi számlák"
#. module: account
#: model:ir.model,name:account.model_account_analytic_chart
msgid "Account Analytic Chart"
-msgstr "Gyűjtőkód lista"
+msgstr "Analitikai gyűjtőkód lista"
#. module: account
#: help:account.invoice,residual:0
@@ -10705,7 +11446,7 @@ msgstr "A számla végösszegéből még nem rendezett rész."
#. module: account
#: field:account.print.journal,sort_selection:0
msgid "Entries Sorted by"
-msgstr ""
+msgstr "Bejegyzések rendezése ezzel"
#. module: account
#: code:addons/account/account_invoice.py:1546
@@ -10714,6 +11455,7 @@ msgid ""
"The selected unit of measure is not compatible with the unit of measure of "
"the product."
msgstr ""
+"A kiválasztott mértékegység nem kompatibilis a termék mértékegységével."
#. module: account
#: view:account.fiscal.position:0
@@ -10737,6 +11479,16 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Kattintson egy új adó kód létrehozásához.\n"
+"
\n"
+" Országtól függően, az adó kód egy kitöltendő cella a \n"
+" törvényes adóbevallásában. A rendszer lehetővé teszi az adó\n"
+" felépítésének és az adók kiszámításának meghatározását ami "
+"\n"
+" rögzítésre kerül egy vagy több adó kódhoz.\n"
+"
\n"
+" Válassza ki a kitölteni kívánt időszakot és naplót.\n"
+"
\n"
+" Ezt a nézetet használja a könyvelő a gyors rendszer beviteli "
+"\n"
+" rögzítéshez. Ha egy beszállítói számlát szeretne rögzíteni,\n"
+" akkor a kiadások főkönyvi számlánál kezdje a tétel "
+"rögzítését.\n"
+" A rendszer fel fogja automatikusan ajánlani az erre a "
+"számlára,\n"
+" és az ellenszámlára \"Fizetendő főkönyvi számla\", adót.\n"
+"
\n"
+" "
#. module: account
#: help:account.invoice.line,account_id:0
@@ -10773,7 +11538,7 @@ msgstr ""
#. module: account
#: view:account.config.settings:0
msgid "Install more chart templates"
-msgstr ""
+msgstr "Több számlatükör telepítése"
#. module: account
#: report:account.general.journal:0
@@ -10793,7 +11558,7 @@ msgstr "Számla keresése"
#: code:addons/account/account_invoice.py:1159
#, python-format
msgid "Refund"
-msgstr "Jóváíró számla"
+msgstr "Visszatérítés"
#. module: account
#: model:ir.model,name:account.model_res_partner_bank
@@ -10823,22 +11588,26 @@ msgid ""
"You cannot remove/deactivate an account which is set on a customer or "
"supplier."
msgstr ""
+"Nem tudja eltávolítani/inaktiválni azt a számlát, mely már be lett állítva "
+"egy vásárlóhoz vagy beszállítóhoz."
#. module: account
#: model:ir.model,name:account.model_validate_account_move_lines
msgid "Validate Account Move Lines"
-msgstr "Könyvelési tételsorok jóváhagyása"
+msgstr "Könyvelési bizonylat tételsorok jóváhagyása"
#. module: account
#: help:res.partner,property_account_position:0
msgid ""
"The fiscal position will determine taxes and accounts used for the partner."
msgstr ""
+"Az ÁFA pozíció meghatározza a partnerre vonatkozó adókat és főkönyvi "
+"számlákat."
#. module: account
#: model:process.node,note:account.process_node_supplierpaidinvoice0
msgid "Invoice's state is Done."
-msgstr "A számla állapota kész."
+msgstr "A számla állapota, kész."
#. module: account
#: model:process.transition,note:account.process_transition_reconcilepaid0
@@ -10849,7 +11618,7 @@ msgstr "Amint a párosítás elkészül, a számla rendezettnek minősül."
#: code:addons/account/wizard/account_change_currency.py:59
#, python-format
msgid "New currency is not configured properly."
-msgstr ""
+msgstr "Az új pénznem nem megfelelően beállított."
#. module: account
#: view:account.account.template:0
@@ -10859,18 +11628,18 @@ msgstr "Főkönyvi számla sablonok keresése"
#. module: account
#: view:account.invoice.tax:0
msgid "Manual Invoice Taxes"
-msgstr "Adók"
+msgstr "Kézzel megadott adók a számlán"
#. module: account
#: code:addons/account/account_invoice.py:573
#, python-format
msgid "The payment term of supplier does not have a payment term line."
-msgstr ""
+msgstr "A beszállító fizetési feltételének nincs fizetési feltétel tétele."
#. module: account
#: field:account.account,parent_right:0
msgid "Parent Right"
-msgstr "Jobb szülő"
+msgstr "Jobb fölérendelt szülő alkalmazás szabályok"
#. module: account
#. openerp-web
@@ -10878,7 +11647,7 @@ msgstr "Jobb szülő"
#: code:addons/account/static/src/js/account_move_reconciliation.js:80
#, python-format
msgid "Never"
-msgstr ""
+msgstr "Soha"
#. module: account
#: model:ir.model,name:account.model_account_addtmpl_wizard
@@ -10894,26 +11663,28 @@ msgstr "account.addtmpl.wizard"
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
msgid "Partner's"
-msgstr "Vevő/szállító számlák"
+msgstr "Partnerek"
#. module: account
#: field:account.account,note:0
msgid "Internal Notes"
-msgstr ""
+msgstr "Belső jegyzetek"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_fiscalyear
#: view:ir.sequence:0
#: model:ir.ui.menu,name:account.menu_action_account_fiscalyear
msgid "Fiscal Years"
-msgstr "Üzleti év"
+msgstr "Üzleti évek"
#. module: account
#: help:account.analytic.journal,active:0
msgid ""
"If the active field is set to False, it will allow you to hide the analytic "
"journal without removing it."
-msgstr "Ha az aktív mező nincs bejelölve, nem használható a gyűjtőnapló."
+msgstr ""
+"Ha az aktív mező hamis, akkor eltüntetheti az analitikus naplót annak "
+"törlése nélkül."
#. module: account
#: field:account.analytic.line,ref:0
@@ -10924,13 +11695,13 @@ msgstr "Hiv."
#: field:account.use.model,model:0
#: model:ir.model,name:account.model_account_model
msgid "Account Model"
-msgstr "Modell"
+msgstr "Főkönyvi számla modell"
#. module: account
#: code:addons/account/account_cash_statement.py:292
#, python-format
msgid "Loss"
-msgstr ""
+msgstr "Veszteség"
#. module: account
#: selection:account.entries.report,month:0
@@ -10945,7 +11716,7 @@ msgstr "Február"
#: view:account.bank.statement:0
#: help:account.cashbox.line,number_closing:0
msgid "Closing Unit Numbers"
-msgstr "Záró darabszám"
+msgstr "Záró egység számok"
#. module: account
#: field:account.bank.accounts.wizard,bank_account_id:0
@@ -10960,7 +11731,7 @@ msgstr "Bankszámla"
#: model:ir.actions.act_window,name:account.action_account_central_journal
#: model:ir.model,name:account.model_account_central_journal
msgid "Account Central Journal"
-msgstr "Központi napló"
+msgstr "Főkönyvi számla központi napló"
#. module: account
#: report:account.overdue:0
@@ -11002,7 +11773,7 @@ msgstr "Beszerzés főkönyvi számla a terméksablonban"
#. module: account
#: field:res.partner,property_payment_term:0
msgid "Customer Payment Term"
-msgstr ""
+msgstr "Vásárló fizetési feltétele"
#. module: account
#: help:accounting.report,label_filter:0
@@ -11010,11 +11781,13 @@ msgid ""
"This label will be displayed on report to show the balance computed for the "
"given comparison filter."
msgstr ""
+"Ez a címke lesz feltüntetve a kimutatásokon a megadott összehasonlító szűrő "
+"szerint kiszámított egyenleg megmutatásához."
#. module: account
#: selection:account.config.settings,tax_calculation_rounding_method:0
msgid "Round per line"
-msgstr ""
+msgstr "Tételenkénti kerekítés"
#. module: account
#: help:account.move.line,amount_residual_currency:0
diff --git a/addons/account/i18n/ru.po b/addons/account/i18n/ru.po
index 28d04731c8e..3fd95d491f4 100644
--- a/addons/account/i18n/ru.po
+++ b/addons/account/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2013-07-02 06:32+0000\n"
+"PO-Revision-Date: 2013-12-19 08:06+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 05:32+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-12-20 05:11+0000\n"
+"X-Generator: Launchpad (build 16872)\n"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@@ -184,6 +184,13 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Щелкните, чтобы добавить отчетный период.\n"
+"
\n"
+" Отчетный период как правило - месяц или квартал .\n"
+" Обычно он соответствует периодам налоговой декларации.\n"
+"
\n"
+" "
#. module: account
#: model:ir.actions.act_window,name:account.action_view_created_invoice_dashboard
diff --git a/addons/account/i18n/zh_TW.po b/addons/account/i18n/zh_TW.po
index 55362cf55a0..f6ab25cbc72 100644
--- a/addons/account/i18n/zh_TW.po
+++ b/addons/account/i18n/zh_TW.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2012-08-21 06:06+0000\n"
-"Last-Translator: Boyce Huang \n"
+"PO-Revision-Date: 2013-12-01 17:16+0000\n"
+"Last-Translator: Andy Cheng \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 05:37+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-12-02 05:23+0000\n"
+"X-Generator: Launchpad (build 16856)\n"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@@ -32,12 +32,12 @@ msgstr "在相同會計科目中,只能設定一次科目財務狀況。"
msgid ""
"Determine the display order in the report 'Accounting \\ Reporting \\ "
"Generic Reporting \\ Taxes \\ Taxes Report'"
-msgstr "確定以下報表的顯示順序:」會計-報表-通用報表-稅-稅報表「"
+msgstr "確定以下報表的顯示順序:「會計 \\ 報表 \\ 通用報表 \\ 稅 \\ 稅報表」"
#. module: account
#: view:account.move.reconcile:0
msgid "Journal Entry Reconcile"
-msgstr "日記帳分錄調節"
+msgstr "帳簿分錄調節"
#. module: account
#: view:account.account:0
diff --git a/addons/account/partner.py b/addons/account/partner.py
index d0db2ed4f6c..f24ffcf55b4 100644
--- a/addons/account/partner.py
+++ b/addons/account/partner.py
@@ -107,14 +107,15 @@ class res_partner(osv.osv):
_description = 'Partner'
def _credit_debit_get(self, cr, uid, ids, field_names, arg, context=None):
- query = self.pool.get('account.move.line')._query_get(cr, uid, context=context)
+ ctx = context.copy()
+ ctx['all_fiscalyear'] = True
+ query = self.pool.get('account.move.line')._query_get(cr, uid, context=ctx)
cr.execute("""SELECT l.partner_id, a.type, SUM(l.debit-l.credit)
FROM account_move_line l
LEFT JOIN account_account a ON (l.account_id=a.id)
WHERE a.type IN ('receivable','payable')
AND l.partner_id IN %s
- AND (l.reconcile_id IS NULL OR
- reconcile_id in (SELECT id FROM account_move_reconcile WHERE opening_reconciliation is TRUE))
+ AND l.reconcile_id IS NULL
AND """ + query + """
GROUP BY l.partner_id, a.type
""",
diff --git a/addons/account/project/project_demo.xml b/addons/account/project/project_demo.xml
index dcb894bc940..5ce34521b45 100644
--- a/addons/account/project/project_demo.xml
+++ b/addons/account/project/project_demo.xml
@@ -6,11 +6,6 @@
Salessale
-
- PUR
- Purchases
- purchase
- STARTMiscellaneous Operation
diff --git a/addons/account/report/account_balance.rml b/addons/account/report/account_balance.rml
index 6ddfc238bff..08c05c65fa8 100644
--- a/addons/account/report/account_balance.rml
+++ b/addons/account/report/account_balance.rml
@@ -170,6 +170,7 @@
+
diff --git a/addons/account/report/account_print_invoice.rml b/addons/account/report/account_print_invoice.rml
index 3582221df44..6914adfaf20 100644
--- a/addons/account/report/account_print_invoice.rml
+++ b/addons/account/report/account_print_invoice.rml
@@ -295,7 +295,7 @@
- Total:
+ Total:
[[ formatLang(o.amount_total, digits=get_digits(dp='Account'), currency_obj=o.currency_id) ]]
diff --git a/addons/account/res_config.py b/addons/account/res_config.py
index 09df82e38fd..bf28e900378 100644
--- a/addons/account/res_config.py
+++ b/addons/account/res_config.py
@@ -22,13 +22,12 @@
import time
import datetime
from dateutil.relativedelta import relativedelta
-from operator import itemgetter
-from os.path import join as opj
+import openerp
+from openerp import SUPERUSER_ID
from openerp.tools import DEFAULT_SERVER_DATE_FORMAT as DF
from openerp.tools.translate import _
from openerp.osv import fields, osv
-from openerp import tools
class account_config_settings(osv.osv_memory):
_name = 'account.config.settings'
@@ -276,11 +275,13 @@ class account_config_settings(osv.osv_memory):
def set_default_taxes(self, cr, uid, ids, context=None):
""" set default sale and purchase taxes for products """
+ if uid != SUPERUSER_ID and not self.pool['res.users'].has_group(cr, uid, 'base.group_erp_manager'):
+ raise openerp.exceptions.AccessError(_("Only administrators can change the settings"))
ir_values = self.pool.get('ir.values')
config = self.browse(cr, uid, ids[0], context)
- ir_values.set_default(cr, uid, 'product.product', 'taxes_id',
+ ir_values.set_default(cr, SUPERUSER_ID, 'product.product', 'taxes_id',
config.default_sale_tax and [config.default_sale_tax.id] or False, company_id=config.company_id.id)
- ir_values.set_default(cr, uid, 'product.product', 'supplier_taxes_id',
+ ir_values.set_default(cr, SUPERUSER_ID, 'product.product', 'supplier_taxes_id',
config.default_purchase_tax and [config.default_purchase_tax.id] or False, company_id=config.company_id.id)
def set_chart_of_accounts(self, cr, uid, ids, context=None):
diff --git a/addons/account/static/src/css/account_bank_and_cash.css b/addons/account/static/src/css/account_bank_and_cash.css
new file mode 100644
index 00000000000..5b5643d0d8e
--- /dev/null
+++ b/addons/account/static/src/css/account_bank_and_cash.css
@@ -0,0 +1,27 @@
+.openerp .oe_force_bold {
+ font-weight: bold !important;
+}
+.openerp label.oe_open_balance{
+ margin-right: -18px;
+}
+.openerp label.oe_subtotal_footer_separator{
+ float:right;
+ width: 184px !important;
+}
+.openerp label.oe_mini_subtotal_footer_separator{
+ margin-right: -14px;
+}
+.openerp .oe_account_total, .openerp .oe_pos_total {
+ margin-left: -2px;
+}
+.openerp label.oe_real_closing_balance{
+ min-width: 184px !important;
+}
+.openerp label.oe_difference, .openerp label.oe_pos_difference {
+ margin-right: -10px;
+ padding-left: 10px !important;
+ min-width: 195px !important;
+}
+.openerp .oe_opening_total{
+ margin-right: 4px;
+}
diff --git a/addons/account/test/account_validate_account_move.yml b/addons/account/test/account_validate_account_move.yml
index a99ae3b4d43..a1a119ea59a 100644
--- a/addons/account/test/account_validate_account_move.yml
+++ b/addons/account/test/account_validate_account_move.yml
@@ -80,8 +80,13 @@
I validate this account move by using the 'Post Journal Entries' wizard
-
!record {model: validate.account.move, id: validate_account_move_0}:
- journal_id: account.bank_journal
- period_id: account.period_6
+ journal_ids:
+ - bank_journal
+ - check_journal
+ period_ids:
+ - period_6
+ - period_7
+ - period_8
-
I click on validate Button
-
diff --git a/addons/account/tests/__init__.py b/addons/account/tests/__init__.py
index 11fe4186db6..02e9677ae03 100644
--- a/addons/account/tests/__init__.py
+++ b/addons/account/tests/__init__.py
@@ -1,4 +1,7 @@
from . import test_tax
+from . import test_search
-fast_suite = [test_tax,
- ]
+fast_suite = [
+ test_tax,
+ test_search,
+]
diff --git a/addons/account/tests/test_search.py b/addons/account/tests/test_search.py
new file mode 100644
index 00000000000..0e93da0c0bc
--- /dev/null
+++ b/addons/account/tests/test_search.py
@@ -0,0 +1,60 @@
+from openerp.tests.common import TransactionCase
+
+class TestSearch(TransactionCase):
+ """Tests for search on name_search (account.account)
+
+ The name search on account.account is quite complexe, make sure
+ we have all the correct results
+ """
+
+ def setUp(self):
+ super(TestSearch, self).setUp()
+ cr, uid = self.cr, self.uid
+ self.account_model = self.registry('account.account')
+ self.account_type_model = self.registry('account.account.type')
+ ac_ids = self.account_type_model.search(cr, uid, [], limit=1)
+ self.atax = (int(self.account_model.create(cr, uid, dict(
+ name="Tax Received",
+ code="121",
+ user_type=ac_ids[0],
+ ))), "121 Tax Received")
+
+ self.apurchase = (int(self.account_model.create(cr, uid, dict(
+ name="Purchased Stocks",
+ code="1101",
+ user_type=ac_ids[0],
+ ))), "1101 Purchased Stocks")
+
+ self.asale = (int(self.account_model.create(cr, uid, dict(
+ name="Product Sales",
+ code="200",
+ user_type=ac_ids[0],
+ ))), "200 Product Sales")
+
+ self.all_ids = [self.atax[0], self.apurchase[0], self.asale[0]]
+
+ def test_name_search(self):
+ cr, uid = self.cr, self.uid
+ atax_ids = self.account_model.name_search(cr, uid, name="Tax", operator='ilike', args=[('id', 'in', self.all_ids)])
+ self.assertEqual(set([self.atax[0]]), set([a[0] for a in atax_ids]), "name_search 'ilike Tax' should have returned Tax Received account only")
+
+ atax_ids = self.account_model.name_search(cr, uid, name="Tax", operator='not ilike', args=[('id', 'in', self.all_ids)])
+ self.assertEqual(set([self.apurchase[0], self.asale[0]]), set([a[0] for a in atax_ids]), "name_search 'not ilike Tax' should have returned all but Tax Received account")
+
+ apur_ids = self.account_model.name_search(cr, uid, name='1101', operator='ilike', args=[('id', 'in', self.all_ids)])
+ self.assertEqual(set([self.apurchase[0]]), set([a[0] for a in apur_ids]), "name_search 'ilike 1101' should have returned Purchased Stocks account only")
+
+ apur_ids = self.account_model.name_search(cr, uid, name='1101', operator='not ilike', args=[('id', 'in', self.all_ids)])
+ self.assertEqual(set([self.atax[0], self.asale[0]]), set([a[0] for a in apur_ids]), "name_search 'not ilike 1101' should have returned all but Purchased Stocks account")
+
+ asale_ids = self.account_model.name_search(cr, uid, name='200 Sales', operator='ilike', args=[('id', 'in', self.all_ids)])
+ self.assertEqual(set([self.asale[0]]), set([a[0] for a in asale_ids]), "name_search 'ilike 200 Sales' should have returned Product Sales account only")
+
+ asale_ids = self.account_model.name_search(cr, uid, name='200 Sales', operator='not ilike', args=[('id', 'in', self.all_ids)])
+ self.assertEqual(set([self.atax[0], self.apurchase[0]]), set([a[0] for a in asale_ids]), "name_search 'not ilike 200 Sales' should have returned all but Product Sales account")
+
+ asale_ids = self.account_model.name_search(cr, uid, name='Product Sales', operator='ilike', args=[('id', 'in', self.all_ids)])
+ self.assertEqual(set([self.asale[0]]), set([a[0] for a in asale_ids]), "name_search 'ilike Product Sales' should have returned Product Sales account only")
+
+ asale_ids = self.account_model.name_search(cr, uid, name='Product Sales', operator='not ilike', args=[('id', 'in', self.all_ids)])
+ self.assertEqual(set([self.atax[0], self.apurchase[0]]), set([a[0] for a in asale_ids]), "name_search 'not ilike Product Sales' should have returned all but Product Sales account")
diff --git a/addons/account/wizard/account_invoice_refund.py b/addons/account/wizard/account_invoice_refund.py
index 4b7a7fd5314..8a583b79383 100644
--- a/addons/account/wizard/account_invoice_refund.py
+++ b/addons/account/wizard/account_invoice_refund.py
@@ -52,10 +52,19 @@ class account_invoice_refund(osv.osv_memory):
journal = obj_journal.search(cr, uid, [('type', '=', type), ('company_id','=',company_id)], limit=1, context=context)
return journal and journal[0] or False
+ def _get_reason(self, cr, uid, context=None):
+ active_id = context and context.get('active_id', False)
+ if active_id:
+ inv = self.pool.get('account.invoice').browse(cr, uid, active_id, context=context)
+ return inv.name
+ else:
+ return ''
+
_defaults = {
'date': lambda *a: time.strftime('%Y-%m-%d'),
'journal_id': _get_journal,
'filter_refund': 'refund',
+ 'description': _get_reason,
}
def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False):
diff --git a/addons/account/wizard/account_validate_account_move.py b/addons/account/wizard/account_validate_account_move.py
index 050191db187..297f3445606 100644
--- a/addons/account/wizard/account_validate_account_move.py
+++ b/addons/account/wizard/account_validate_account_move.py
@@ -25,18 +25,18 @@ class validate_account_move(osv.osv_memory):
_name = "validate.account.move"
_description = "Validate Account Move"
_columns = {
- 'journal_id': fields.many2one('account.journal', 'Journal', required=True),
- 'period_id': fields.many2one('account.period', 'Period', required=True, domain=[('state','<>','done')]),
+ 'journal_ids': fields.many2many('account.journal', 'wizard_validate_account_move_journal', 'wizard_id', 'journal_id', 'Journal', required=True),
+ 'period_ids': fields.many2many('account.period', 'wizard_validate_account_move_period', 'wizard_id', 'period_id', 'Period', required=True, domain=[('state','<>','done')]),
}
def validate_move(self, cr, uid, ids, context=None):
obj_move = self.pool.get('account.move')
if context is None:
context = {}
- data = self.browse(cr, uid, ids, context=context)[0]
- ids_move = obj_move.search(cr, uid, [('state','=','draft'),('journal_id','=',data.journal_id.id),('period_id','=',data.period_id.id)])
+ data = self.read(cr, uid, ids[0], context=context)
+ ids_move = obj_move.search(cr, uid, [('state','=','draft'),('journal_id','in',tuple(data['journal_ids'])),('period_id','in',tuple(data['period_ids']))])
if not ids_move:
- raise osv.except_osv(_('Warning!'), _('Specified journal does not have any account move entries in draft state for this period.'))
+ raise osv.except_osv(_('Warning!'), _('Specified journals do not have any account move entries in draft state for the specified periods.'))
obj_move.button_validate(cr, uid, ids_move, context=context)
return {'type': 'ir.actions.act_window_close'}
diff --git a/addons/account/wizard/account_validate_move_view.xml b/addons/account/wizard/account_validate_move_view.xml
index 6a9b1e159f0..5f22ccbc97f 100644
--- a/addons/account/wizard/account_validate_move_view.xml
+++ b/addons/account/wizard/account_validate_move_view.xml
@@ -9,8 +9,8 @@
+
+
+ account.bank.statement.form.inherit
+ account.bank.statement
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/account_anglo_saxon/invoice.py b/addons/account_anglo_saxon/invoice.py
index 8b31a48b92b..81394bc926e 100644
--- a/addons/account_anglo_saxon/invoice.py
+++ b/addons/account_anglo_saxon/invoice.py
@@ -21,21 +21,25 @@
#
##############################################################################
-from openerp.osv import osv
+from openerp.osv import osv, fields
class account_invoice_line(osv.osv):
_inherit = "account.invoice.line"
+ _columns = {
+ 'move_id': fields.many2one('stock.move', string="Move line", help="If the invoice was generated from a stock.picking, reference to the related move line."),
+ }
+
def move_line_get(self, cr, uid, invoice_id, context=None):
res = super(account_invoice_line,self).move_line_get(cr, uid, invoice_id, context=context)
inv = self.pool.get('account.invoice').browse(cr, uid, invoice_id, context=context)
company_currency = inv.company_id.currency_id.id
- def get_price(cr, uid, inv, company_currency,i_line):
+ def get_price(cr, uid, inv, company_currency, i_line, price_unit):
cur_obj = self.pool.get('res.currency')
if inv.currency_id.id != company_currency:
- price = cur_obj.compute(cr, uid, company_currency, inv.currency_id.id, i_line.product_id.standard_price * i_line.quantity, context={'date': inv.date_invoice})
+ price = cur_obj.compute(cr, uid, company_currency, inv.currency_id.id, price_unit * i_line.quantity, context={'date': inv.date_invoice})
else:
- price = i_line.product_id.standard_price * i_line.quantity
+ price = price_unit * i_line.quantity
return price
if inv.type in ('out_invoice','out_refund'):
@@ -60,12 +64,13 @@ class account_invoice_line(osv.osv):
if not cacc:
cacc = i_line.product_id.categ_id.property_account_expense_categ and i_line.product_id.categ_id.property_account_expense_categ.id
if dacc and cacc:
+ price_unit = i_line.move_id and i_line.move_id.price_unit or i_line.product_id.standard_price
res.append({
'type':'src',
'name': i_line.name[:64],
- 'price_unit':i_line.product_id.standard_price,
+ 'price_unit':price_unit,
'quantity':i_line.quantity,
- 'price':get_price(cr, uid, inv, company_currency, i_line),
+ 'price':get_price(cr, uid, inv, company_currency, i_line, price_unit),
'account_id':dacc,
'product_id':i_line.product_id.id,
'uos_id':i_line.uos_id.id,
@@ -76,9 +81,9 @@ class account_invoice_line(osv.osv):
res.append({
'type':'src',
'name': i_line.name[:64],
- 'price_unit':i_line.product_id.standard_price,
+ 'price_unit':price_unit,
'quantity':i_line.quantity,
- 'price': -1 * get_price(cr, uid, inv, company_currency, i_line),
+ 'price': -1 * get_price(cr, uid, inv, company_currency, i_line, price_unit),
'account_id':cacc,
'product_id':i_line.product_id.id,
'uos_id':i_line.uos_id.id,
diff --git a/addons/account_anglo_saxon/stock.py b/addons/account_anglo_saxon/stock.py
index 1cf3ecf21ef..278deb9a2a8 100644
--- a/addons/account_anglo_saxon/stock.py
+++ b/addons/account_anglo_saxon/stock.py
@@ -28,6 +28,15 @@ class stock_picking(osv.osv):
_inherit = "stock.picking"
_description = "Picking List"
+ def _prepare_invoice_line(self, cr, uid, group, picking, move_line, invoice_id,
+ invoice_vals, context=None):
+ """Overwrite to add move_id reference"""
+ res = super(stock_picking, self)._prepare_invoice_line(cr, uid, group, picking, move_line, invoice_id, invoice_vals, context=context)
+ res.update({
+ 'move_id': move_line.id,
+ })
+ return res
+
def action_invoice_create(self, cr, uid, ids, journal_id=False,
group=False, type='out_invoice', context=None):
'''Return ids of created invoices for the pickings'''
diff --git a/addons/account_anglo_saxon/test/anglo_saxon.yml b/addons/account_anglo_saxon/test/anglo_saxon.yml
index 6e9ebc0068e..7c3983223b0 100644
--- a/addons/account_anglo_saxon/test/anglo_saxon.yml
+++ b/addons/account_anglo_saxon/test/anglo_saxon.yml
@@ -115,7 +115,7 @@
- product_id: product.product_product_3
product_qty: 1
price_unit: 10
- date_planned: '2013-08-31'
+ date_planned: !eval "'%s' % (time.strftime('%Y-%m-%d'))"
-
I confirm the purchase order.
-
@@ -235,7 +235,7 @@
As the Invoice state of the picking order is To be invoiced. I create invoice for my outgoing picking order.
-
!python {model: stock.invoice.onshipping}: |
- wiz_id = self.create(cr, uid, {'invoice_date': '2013-03-04', 'journal_id': ref('account.sales_journal')},
+ wiz_id = self.create(cr, uid, {'journal_id': ref('account.sales_journal')},
{'active_ids': [ref("stock_picking_out001")], "active_model": "stock.picking"})
self.create_invoice(cr, uid, [wiz_id], {"lang": "en_US",
"search_default_available": 1, "tz": False, "active_model": "stock.picking",
diff --git a/addons/account_anglo_saxon/test/anglo_saxon_avg_fifo.yml b/addons/account_anglo_saxon/test/anglo_saxon_avg_fifo.yml
index f7d52f4f5a8..93afc48eb11 100644
--- a/addons/account_anglo_saxon/test/anglo_saxon_avg_fifo.yml
+++ b/addons/account_anglo_saxon/test/anglo_saxon_avg_fifo.yml
@@ -122,7 +122,7 @@
- product_id: product_fifo_anglo_saxon
product_qty: 1
price_unit: 9
- date_planned: '2013-08-31'
+ date_planned: !eval "'%s' % (time.strftime('%Y-%m-%d'))"
taxes_id: []
-
I confirm the purchase order.
@@ -237,7 +237,7 @@
As the Invoice state of the picking order is To be invoiced. I create invoice for my outgoing picking order.
-
!python {model: stock.invoice.onshipping}: |
- wiz_id = self.create(cr, uid, {'invoice_date': '2013-03-04', 'journal_id': ref('account.sales_journal')},
+ wiz_id = self.create(cr, uid, {'journal_id': ref('account.sales_journal')},
{'active_ids': [ref("stock_picking_out001_fifo")], "active_model": "stock.picking"})
self.create_invoice(cr, uid, [wiz_id], {"lang": "en_US",
"search_default_available": 1, "tz": False, "active_model": "stock.picking",
diff --git a/addons/account_asset/i18n/hu.po b/addons/account_asset/i18n/hu.po
index d46afe92868..a8a13bc1258 100644
--- a/addons/account_asset/i18n/hu.po
+++ b/addons/account_asset/i18n/hu.po
@@ -8,36 +8,36 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2013-08-22 11:04+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2013-11-18 19:52+0000\n"
+"Last-Translator: krnkris \n"
"Language-Team: Hungarian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:33+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-11-19 05:27+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Assets in draft and open states"
-msgstr ""
+msgstr "Tervezet vagy nyitott állapotú eszközök"
#. module: account_asset
#: field:account.asset.category,method_end:0
#: field:account.asset.history,method_end:0
#: field:asset.modify,method_end:0
msgid "Ending date"
-msgstr ""
+msgstr "Lejárati dátum"
#. module: account_asset
#: field:account.asset.asset,value_residual:0
msgid "Residual Value"
-msgstr ""
+msgstr "Maradvány érték"
#. module: account_asset
#: field:account.asset.category,account_expense_depreciation_id:0
msgid "Depr. Expense Account"
-msgstr ""
+msgstr "Értékcsökk. költség számla"
#. module: account_asset
#: view:asset.asset.report:0
@@ -67,6 +67,8 @@ msgid ""
"Indicates that the first depreciation entry for this asset have to be done "
"from the purchase date instead of the first January"
msgstr ""
+"Azt mutatja, hogy az eszköz értékcsökkenés első bevitelét a vásárlás "
+"dátumától számítja az első Január helyett"
#. module: account_asset
#: selection:account.asset.asset,method:0
@@ -116,7 +118,7 @@ msgstr "Indoklás"
#: field:account.asset.asset,method_progress_factor:0
#: field:account.asset.category,method_progress_factor:0
msgid "Degressive Factor"
-msgstr ""
+msgstr "Fokozási együttható"
#. module: account_asset
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_list_normal
@@ -141,12 +143,12 @@ msgstr "Értékcsökkénés sorai"
#. module: account_asset
#: help:account.asset.asset,salvage_value:0
msgid "It is the amount you plan to have that you cannot depreciate."
-msgstr ""
+msgstr "Az az érték, melynek értékét terv szerint már nem tudja csökkenteni."
#. module: account_asset
#: help:account.asset.asset,method_period:0
msgid "The amount of time between two depreciations, in months"
-msgstr ""
+msgstr "Két értékcsökkenés közt eltelt idő, hónapokban"
#. module: account_asset
#: field:account.asset.depreciation.line,depreciation_date:0
@@ -158,12 +160,12 @@ msgstr "Értékcsökkenés dátuma"
#. module: account_asset
#: constraint:account.asset.asset:0
msgid "Error ! You cannot create recursive assets."
-msgstr ""
+msgstr "Hiba! Nem hozhat létre visszatérő eszközöket."
#. module: account_asset
#: field:asset.asset.report,posted_value:0
msgid "Posted Amount"
-msgstr ""
+msgstr "Lekönyvelt összeg"
#. module: account_asset
#: view:account.asset.asset:0
@@ -178,7 +180,7 @@ msgstr "Eszközök"
#. module: account_asset
#: field:account.asset.category,account_depreciation_id:0
msgid "Depreciation Account"
-msgstr ""
+msgstr "Értékcsökkenés összege"
#. module: account_asset
#: view:account.asset.asset:0
@@ -192,7 +194,7 @@ msgstr "Megjegyzések"
#. module: account_asset
#: field:account.asset.depreciation.line,move_id:0
msgid "Depreciation Entry"
-msgstr ""
+msgstr "Értékcsökkentés bevitel"
#. module: account_asset
#: view:asset.asset.report:0
@@ -208,7 +210,7 @@ msgstr "Hónapok száma az időszakban"
#. module: account_asset
#: view:asset.asset.report:0
msgid "Assets in draft state"
-msgstr ""
+msgstr "Tervezet állapotú eszközök"
#. module: account_asset
#: field:account.asset.asset,method_end:0
@@ -216,7 +218,7 @@ msgstr ""
#: selection:account.asset.category,method_time:0
#: selection:account.asset.history,method_time:0
msgid "Ending Date"
-msgstr ""
+msgstr "Befejező dátum"
#. module: account_asset
#: field:account.asset.asset,code:0
@@ -226,13 +228,13 @@ msgstr "Hivatkozás"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Account Asset"
-msgstr ""
+msgstr "Eszköz számla"
#. module: account_asset
#: model:ir.actions.act_window,name:account_asset.action_asset_depreciation_confirmation_wizard
#: model:ir.ui.menu,name:account_asset.menu_asset_depreciation_confirmation_wizard
msgid "Compute Assets"
-msgstr ""
+msgstr "Eszközök számítása"
#. module: account_asset
#: field:account.asset.category,method_period:0
@@ -251,24 +253,24 @@ msgstr "Tervezet"
#. module: account_asset
#: view:asset.asset.report:0
msgid "Date of asset purchase"
-msgstr ""
+msgstr "Eszköz vásárlás dátuma"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Change Duration"
-msgstr ""
+msgstr "Időtartam változtatás"
#. module: account_asset
#: help:account.asset.asset,method_number:0
#: help:account.asset.category,method_number:0
#: help:account.asset.history,method_number:0
msgid "The number of depreciations needed to depreciate your asset"
-msgstr ""
+msgstr "Értékcsökkentések száma az eszköz teljes értékcsökkentéséhez"
#. module: account_asset
#: view:account.asset.category:0
msgid "Analytic Information"
-msgstr ""
+msgstr "Elemző információk"
#. module: account_asset
#: field:account.asset.category,account_analytic_id:0
@@ -291,24 +293,24 @@ msgstr ""
#. module: account_asset
#: field:account.asset.depreciation.line,remaining_value:0
msgid "Next Period Depreciation"
-msgstr ""
+msgstr "Következő időszak értékcsökkenése"
#. module: account_asset
#: help:account.asset.history,method_period:0
msgid "Time in month between two depreciations"
-msgstr ""
+msgstr "Két értékcsökkentés közt eltelt idő hónapokban"
#. module: account_asset
#: view:asset.modify:0
#: model:ir.actions.act_window,name:account_asset.action_asset_modify
#: model:ir.model,name:account_asset.model_asset_modify
msgid "Modify Asset"
-msgstr ""
+msgstr "Eszköz módosítás"
#. module: account_asset
#: field:account.asset.asset,salvage_value:0
msgid "Salvage Value"
-msgstr ""
+msgstr "Maradvány érték"
#. module: account_asset
#: field:account.asset.asset,category_id:0
@@ -321,12 +323,12 @@ msgstr "Eszköz kategória"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Assets in closed state"
-msgstr ""
+msgstr "Lezárt állapotú eszközök"
#. module: account_asset
#: field:account.asset.asset,parent_id:0
msgid "Parent Asset"
-msgstr ""
+msgstr "Szülő eszköz"
#. module: account_asset
#: view:account.asset.history:0
@@ -337,7 +339,7 @@ msgstr "Esuközök előzménye"
#. module: account_asset
#: view:account.asset.category:0
msgid "Search Asset Category"
-msgstr ""
+msgstr "Eszköz ketegória keresés"
#. module: account_asset
#: view:asset.modify:0
@@ -352,19 +354,19 @@ msgstr "Számlasor"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Depreciation Board"
-msgstr ""
+msgstr "Értékcsökkenési tábla"
#. module: account_asset
#: field:asset.asset.report,unposted_value:0
msgid "Unposted Amount"
-msgstr ""
+msgstr "Nem könyvelt összeg"
#. module: account_asset
#: field:account.asset.asset,method_time:0
#: field:account.asset.category,method_time:0
#: field:account.asset.history,method_time:0
msgid "Time Method"
-msgstr ""
+msgstr "Idő módszer"
#. module: account_asset
#: view:asset.depreciation.confirmation.wizard:0
@@ -388,6 +390,11 @@ msgid ""
"Ending Date: Choose the time between 2 depreciations and the date the "
"depreciations won't go beyond."
msgstr ""
+"Az értékcsökkentés sorai dátumának és számainak számítási módszere.\n"
+"Értékcsökkentések száma: Rögzíti az értékcsökkentés sorai számát és kér "
+"értékcsökkentés közt eltelt időt.\n"
+"Befejezés dátuma: Válasszon 2 értékcsökkentés közti időt és azt a dátumot "
+"amit az értékcsökkentés már nem fog meghaladni."
#. module: account_asset
#: help:account.asset.asset,method_time:0
@@ -400,11 +407,17 @@ msgid ""
" * Ending Date: Choose the time between 2 depreciations and the date the "
"depreciations won't go beyond."
msgstr ""
+"Válassza az értékcsökkentés sorai dátumának és számainak számítási "
+"módszerét.\n"
+" * Értékcsökkentések száma: Rögzíti az értékcsökkentés sorai számát és kér "
+"értékcsökkentés közt eltelt időt.\n"
+" * Befejezés dátuma: Válasszon 2 értékcsökkentés közti időt és azt a "
+"dátumot amit az értékcsökkentés már nem fog meghaladni."
#. module: account_asset
#: view:asset.asset.report:0
msgid "Assets in running state"
-msgstr ""
+msgstr "Futó állapotú eszköz"
#. module: account_asset
#: view:account.asset.asset:0
@@ -420,12 +433,18 @@ msgid ""
"You can manually close an asset when the depreciation is over. If the last "
"line of depreciation is posted, the asset automatically goes in that status."
msgstr ""
+"Ha egy eszközt létrehozott, annak állapota 'Tervezet'.\n"
+"Miután az eszköz megerősített, annak állapota 'Futó' és a költségcsökkentés "
+"sorait el lehet küldeni a könyvelésre.\n"
+"Ha a költségcsökkentés végre lett hajtva akkor kézzel bezárhatja azt. Ha az "
+"értékcsökkentés utolsó sora is fel lett adva, akkor automatikusan ebbe az "
+"állapotba vált."
#. module: account_asset
#: field:account.asset.asset,state:0
#: field:asset.asset.report,state:0
msgid "Status"
-msgstr "Státusz"
+msgstr "Állapot"
#. module: account_asset
#: field:account.asset.asset,partner_id:0
@@ -436,17 +455,17 @@ msgstr "Partner"
#. module: account_asset
#: view:asset.asset.report:0
msgid "Posted depreciation lines"
-msgstr ""
+msgstr "Lekönyvelt értékcsökkentési sorok"
#. module: account_asset
#: field:account.asset.asset,child_ids:0
msgid "Children Assets"
-msgstr ""
+msgstr "Alsóbbrendő eszközök"
#. module: account_asset
#: view:asset.asset.report:0
msgid "Date of depreciation"
-msgstr ""
+msgstr "Értékcsökkentés dátuma"
#. module: account_asset
#: field:account.asset.history,user_id:0
@@ -456,7 +475,7 @@ msgstr "Felhasználó"
#. module: account_asset
#: field:account.asset.category,account_asset_id:0
msgid "Asset Account"
-msgstr ""
+msgstr "Eszköz számla"
#. module: account_asset
#: view:asset.asset.report:0
@@ -472,12 +491,12 @@ msgstr "Kiszámítás"
#. module: account_asset
#: view:account.asset.history:0
msgid "Asset History"
-msgstr "Esuközök előzménye"
+msgstr "Eszközök előzménye"
#. module: account_asset
#: model:ir.model,name:account_asset.model_asset_depreciation_confirmation_wizard
msgid "asset.depreciation.confirmation.wizard"
-msgstr ""
+msgstr "Eszköz.költségcsökkentés.nyugtázás.varázsló"
#. module: account_asset
#: field:account.asset.asset,active:0
@@ -487,12 +506,12 @@ msgstr "Aktív"
#. module: account_asset
#: field:account.asset.depreciation.line,parent_state:0
msgid "State of Asset"
-msgstr "Eszköz státusza"
+msgstr "Eszköz állapota"
#. module: account_asset
#: field:account.asset.depreciation.line,name:0
msgid "Depreciation Name"
-msgstr ""
+msgstr "Költségcsökkentés neve"
#. module: account_asset
#: view:account.asset.asset:0
@@ -503,7 +522,7 @@ msgstr "Előzmény"
#. module: account_asset
#: view:asset.depreciation.confirmation.wizard:0
msgid "Compute Asset"
-msgstr ""
+msgstr "Eszköz számítása"
#. module: account_asset
#: field:asset.depreciation.confirmation.wizard,period_id:0
@@ -519,7 +538,7 @@ msgstr "Általános"
#: field:account.asset.asset,prorata:0
#: field:account.asset.category,prorata:0
msgid "Prorata Temporis"
-msgstr ""
+msgstr "Arányos rész késleltetés"
#. module: account_asset
#: model:ir.model,name:account_asset.model_account_invoice
@@ -529,7 +548,7 @@ msgstr "Számla"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Set to Close"
-msgstr ""
+msgstr "Lezártá nyilvánítás"
#. module: account_asset
#: view:asset.depreciation.confirmation.wizard:0
@@ -551,7 +570,7 @@ msgstr "Könyvelési tételsorok"
#. module: account_asset
#: view:asset.modify:0
msgid "Asset Durations to Modify"
-msgstr ""
+msgstr "Eszköz időtartamainak módosítása"
#. module: account_asset
#: field:account.asset.asset,purchase_date:0
@@ -564,7 +583,7 @@ msgstr "Vásárlás dátuma"
#: selection:account.asset.asset,method:0
#: selection:account.asset.category,method:0
msgid "Degressive"
-msgstr "Degresszív"
+msgstr "Fokozatosság"
#. module: account_asset
#: help:asset.depreciation.confirmation.wizard,period_id:0
@@ -572,6 +591,8 @@ msgid ""
"Choose the period for which you want to automatically post the depreciation "
"lines of running assets"
msgstr ""
+"Válassza ki azt az időszakot amelyben a futó eszközre vonatkozóan "
+"automatikusan feladja a költségcsökkentés sorait"
#. module: account_asset
#: view:account.asset.asset:0
@@ -581,27 +602,27 @@ msgstr "Jelenlegi"
#. module: account_asset
#: view:account.asset.category:0
msgid "Depreciation Method"
-msgstr ""
+msgstr "Költségcsökkentés módszere"
#. module: account_asset
#: field:account.asset.depreciation.line,amount:0
msgid "Current Depreciation"
-msgstr ""
+msgstr "Jelenlegi költségcsökkentés"
#. module: account_asset
#: field:account.asset.asset,name:0
msgid "Asset Name"
-msgstr ""
+msgstr "Eszköz neve"
#. module: account_asset
#: field:account.asset.category,open_asset:0
msgid "Skip Draft State"
-msgstr ""
+msgstr "Tervezet állapot átugrása"
#. module: account_asset
#: view:account.asset.category:0
msgid "Depreciation Dates"
-msgstr ""
+msgstr "Költségcsökkentési dátumok"
#. module: account_asset
#: field:account.asset.asset,currency_id:0
@@ -621,7 +642,7 @@ msgstr "Előzmény neve"
#. module: account_asset
#: field:account.asset.depreciation.line,depreciated_value:0
msgid "Amount Already Depreciated"
-msgstr ""
+msgstr "A már költségcsökkentett összeg"
#. module: account_asset
#: help:account.asset.asset,method:0
@@ -631,6 +652,11 @@ msgid ""
" * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n"
" * Degressive: Calculated on basis of: Residual Value * Degressive Factor"
msgstr ""
+"Válassza ki a módszert a költségcsökkentési sorok számításához.\n"
+" * Lineáris: Ennek alapján számolt: Teljes érték / Költségcsökkentések "
+"száma\n"
+" * Fokozatos: Ennek alapján számolt: Maradvány érték * Költségcsökkentési "
+"tényező"
#. module: account_asset
#: field:account.asset.depreciation.line,move_check:0
@@ -651,6 +677,13 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Ebből a jelentésből, ráláthat az összes költségcsökkentésre. A\n"
+" keresés eszközt használhatja az eszköz jelentések egyénre "
+"szabásához és\n"
+" így a jelentést igénye szerint alakíthatja ki;\n"
+"
\n"
+" "
#. module: account_asset
#: field:account.asset.asset,purchase_value:0
@@ -668,6 +701,8 @@ msgid ""
"Check this if you want to automatically confirm the assets of this category "
"when created by invoices."
msgstr ""
+"Jelölje be, ha ennek a kategóriának az eszközeit automatikusan szeretné "
+"nyugtázni, ha azokat a számla hozta létre."
#. module: account_asset
#: field:asset.asset.report,name:0
@@ -677,7 +712,7 @@ msgstr "Év"
#. module: account_asset
#: model:ir.model,name:account_asset.model_account_asset_depreciation_line
msgid "Asset depreciation line"
-msgstr ""
+msgstr "Eszköz költségcsökkentési sor"
#. module: account_asset
#: view:account.asset.category:0
@@ -690,13 +725,13 @@ msgstr "Eszköz kategória"
#: view:asset.asset.report:0
#: field:asset.asset.report,depreciation_value:0
msgid "Amount of Depreciation Lines"
-msgstr ""
+msgstr "Költségcsökkentési sorok száma"
#. module: account_asset
#: code:addons/account_asset/wizard/wizard_asset_compute.py:50
#, python-format
msgid "Created Asset Moves"
-msgstr ""
+msgstr "Létrehozott eszköz mozgások"
#. module: account_asset
#: field:account.asset.depreciation.line,sequence:0
@@ -706,7 +741,7 @@ msgstr "Sorszám"
#. module: account_asset
#: help:account.asset.category,method_period:0
msgid "State here the time between 2 depreciations, in months"
-msgstr ""
+msgstr "Határozza meg itt a 2 költségcsökkentés közt eltelt időt, hónapokban"
#. module: account_asset
#: field:account.asset.history,date:0
@@ -722,20 +757,20 @@ msgstr "Dátum"
#: selection:account.asset.history,method_time:0
#: field:asset.modify,method_number:0
msgid "Number of Depreciations"
-msgstr ""
+msgstr "Költségcsökkentések száma"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Create Move"
-msgstr ""
+msgstr "Mozgás létrehozása"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Confirm Asset"
-msgstr ""
+msgstr "Eszköz megerősítése"
#. module: account_asset
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_tree
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_tree
msgid "Asset Hierarchy"
-msgstr ""
+msgstr "Eszköz rangsor"
diff --git a/addons/account_asset/i18n/zh_CN.po b/addons/account_asset/i18n/zh_CN.po
index db73c0d1c96..bd40216efa5 100644
--- a/addons/account_asset/i18n/zh_CN.po
+++ b/addons/account_asset/i18n/zh_CN.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2013-01-30 03:54+0000\n"
-"Last-Translator: Wei \"oldrev\" Li \n"
+"PO-Revision-Date: 2013-11-19 05:49+0000\n"
+"Last-Translator: Guipo Hao \n"
"Language-Team: Chinese (Simplified) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:34+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-11-20 05:25+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
#. module: account_asset
#: view:account.asset.asset:0
@@ -146,7 +146,7 @@ msgstr "折旧后资产的剩余价值金额"
#. module: account_asset
#: help:account.asset.asset,method_period:0
msgid "The amount of time between two depreciations, in months"
-msgstr ""
+msgstr "折旧期间,以月计算"
#. module: account_asset
#: field:account.asset.depreciation.line,depreciation_date:0
@@ -426,6 +426,9 @@ msgid ""
"You can manually close an asset when the depreciation is over. If the last "
"line of depreciation is posted, the asset automatically goes in that status."
msgstr ""
+"资产创建后,其状态为“草稿”。\n"
+"若资产被确认,其状态变为“运行”,并且其折旧账目可以计入会计科目。\n"
+"当资产折旧期结束后,可以手工关闭。若最后折旧账目已经发生,该资产自动转至关闭状态。"
#. module: account_asset
#: field:account.asset.asset,state:0
@@ -637,6 +640,9 @@ msgid ""
" * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n"
" * Degressive: Calculated on basis of: Residual Value * Degressive Factor"
msgstr ""
+"选择计算折旧账目数量的方法。\n"
+" * 线形:按照资产总值/折旧账目数量计算\n"
+" * 递减:按照资产残值 X 递减率计算"
#. module: account_asset
#: field:account.asset.depreciation.line,move_check:0
@@ -657,6 +663,10 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Click to create a new supplier payment.\n"
+"
\n"
+" OpenERP helps you easily track payments you make and the "
+"remaining balances you need to pay your suppliers.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Open Supplier Journal Entries"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list
+msgid "Vouchers Entries"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,name:0
+msgid "Memo"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Are you sure to unreconcile and cancel this record ?"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,is_multi_currency:0
+msgid "Multi Currency Voucher"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Bill Information"
+msgstr ""
+
+#. module: account_voucher
+#: selection:sale.receipt.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: account_voucher
+#: help:account.voucher,state:0
+msgid ""
+" * The 'Draft' status is used when a user is encoding a new and unconfirmed "
+"Voucher. \n"
+"* The 'Pro-forma' when voucher is in Pro-forma status,voucher does not have "
+"an voucher number. \n"
+"* The 'Posted' status is used when user create voucher,a voucher number is "
+"generated and voucher entries are created in account "
+"\n"
+"* The 'Cancelled' status is used when user cancel voucher."
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,writeoff_amount:0
+msgid "Difference Amount"
+msgstr ""
+
+#. module: account_voucher
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,due_delay:0
+msgid "Avg. Due Delay"
+msgstr ""
+
+#. module: account_voucher
+#: code:addons/account_voucher/invoice.py:34
+#, python-format
+msgid "Pay Invoice"
+msgstr ""
+
+#. module: account_voucher
+#: code:addons/account_voucher/account_voucher.py:1249
+#, python-format
+msgid "No Account Base Code and Account Tax Code!"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,tax_amount:0
+msgid "Tax Amount"
+msgstr ""
+
+#. module: account_voucher
+#: view:sale.receipt.report:0
+msgid "Validated Vouchers"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.actions.act_window,help:account_voucher.action_vendor_receipt
+msgid ""
+"
\n"
+" Click to register a new payment. \n"
+"
\n"
+" Enter the customer and the payment method and then, either\n"
+" create manually a payment record or OpenERP will propose to "
+"you\n"
+" automatically the reconciliation of this payment with the "
+"open\n"
+" invoices or sales receipts.\n"
+"
\n"
+" From this report, you can have an overview of the amount "
+"invoiced\n"
+" to your customer as well as payment delays. The tool search can\n"
+" also be used to personalise your Invoices reports and so, match\n"
+" this analysis to your needs.\n"
+"
\n"
+" Click to create a new supplier payment.\n"
+"
\n"
+" OpenERP helps you easily track payments you make and the "
+"remaining balances you need to pay your suppliers.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Open Supplier Journal Entries"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list
+msgid "Vouchers Entries"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,name:0
+msgid "Memo"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Are you sure to unreconcile and cancel this record ?"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,is_multi_currency:0
+msgid "Multi Currency Voucher"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Bill Information"
+msgstr ""
+
+#. module: account_voucher
+#: selection:sale.receipt.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: account_voucher
+#: help:account.voucher,state:0
+msgid ""
+" * The 'Draft' status is used when a user is encoding a new and unconfirmed "
+"Voucher. \n"
+"* The 'Pro-forma' when voucher is in Pro-forma status,voucher does not have "
+"an voucher number. \n"
+"* The 'Posted' status is used when user create voucher,a voucher number is "
+"generated and voucher entries are created in account "
+"\n"
+"* The 'Cancelled' status is used when user cancel voucher."
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,writeoff_amount:0
+msgid "Difference Amount"
+msgstr ""
+
+#. module: account_voucher
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,due_delay:0
+msgid "Avg. Due Delay"
+msgstr ""
+
+#. module: account_voucher
+#: code:addons/account_voucher/invoice.py:34
+#, python-format
+msgid "Pay Invoice"
+msgstr ""
+
+#. module: account_voucher
+#: code:addons/account_voucher/account_voucher.py:1249
+#, python-format
+msgid "No Account Base Code and Account Tax Code!"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,tax_amount:0
+msgid "Tax Amount"
+msgstr ""
+
+#. module: account_voucher
+#: view:sale.receipt.report:0
+msgid "Validated Vouchers"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.actions.act_window,help:account_voucher.action_vendor_receipt
+msgid ""
+"
\n"
+" Click to register a new payment. \n"
+"
\n"
+" Enter the customer and the payment method and then, either\n"
+" create manually a payment record or OpenERP will propose to "
+"you\n"
+" automatically the reconciliation of this payment with the "
+"open\n"
+" invoices or sales receipts.\n"
+"
\n"
+" "
+msgstr ""
+"
\n"
+" Klikkaa rekisteröidäksesi uuden maksusuorituksen.\n"
+"
\n"
+" Anna asikas ja maksumenetelmä ja sen jälkeen, joko luo \n"
+" manauaalisesti maksutietue tai OpenERP ehdottaa sinulle \n"
+" automaattisesti tämän maksun täsmäytystä avoimien laskujen \n"
+" tai myyntikuittien kanssa.\n"
+"
\n"
+" From this report, you can have an overview of the amount "
+"invoiced\n"
+" to your customer as well as payment delays. The tool search can\n"
+" also be used to personalise your Invoices reports and so, match\n"
+" this analysis to your needs.\n"
+"
\n"
+" Click to setup a new automated action rule. \n"
+"
\n"
+" Use automated actions to automatically trigger actions for\n"
+" various screens. Example: a lead created by a specific user "
+"may\n"
+" be automatically set to a specific sales team, or an\n"
+" opportunity which still has status pending after 14 days "
+"might\n"
+" trigger an automatic reminder email.\n"
+"
\n"
+" The calendar is shared between employees and fully integrated "
+"with\n"
+" other applications such as the employee holidays or the "
+"business\n"
+" opportunities.\n"
+"
\n"
+" You can define a customized type of calendar alarm that may "
+"be\n"
+" assigned to calendar events or meetings.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: base_calendar
+#: selection:crm.meeting,state:0
+msgid "Unconfirmed"
+msgstr "לא מאושר"
+
+#. module: base_calendar
+#: help:calendar.attendee,sent_by:0
+msgid "Specify the user that is acting on behalf of the calendar user"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event,date_deadline:0
+#: field:calendar.todo,date_deadline:0
+#: field:crm.meeting,date_deadline:0
+msgid "End Date"
+msgstr "תאריך סיום"
+
+#. module: base_calendar
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+#: selection:crm.meeting,month_list:0
+msgid "February"
+msgstr "פברואר"
+
+#. module: base_calendar
+#: selection:calendar.attendee,cutype:0
+msgid "Resource"
+msgstr "משאב"
+
+#. module: base_calendar
+#: field:crm.meeting.type,name:0
+#: field:res.alarm,name:0
+msgid "Name"
+msgstr "שם"
+
+#. module: base_calendar
+#: field:calendar.event,exdate:0
+#: field:calendar.todo,exdate:0
+#: field:crm.meeting,exdate:0
+msgid "Exception Date/Times"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.alarm,name:0
+msgid ""
+"Contains the text to be used as the message subject for "
+"email or contains the text to be used for display"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_mail_message
+msgid "Message"
+msgstr "הודעה"
+
+#. module: base_calendar
+#: field:calendar.event,base_calendar_alarm_id:0
+#: field:calendar.todo,base_calendar_alarm_id:0
+#: field:crm.meeting,base_calendar_alarm_id:0
+msgid "Alarm"
+msgstr "התראה"
+
+#. module: base_calendar
+#: field:calendar.attendee,sent_by_uid:0
+msgid "Sent By User"
+msgstr "נשלח על ידי משתמש"
+
+#. module: base_calendar
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+#: selection:crm.meeting,month_list:0
+msgid "April"
+msgstr "אפריל"
+
+#. module: base_calendar
+#: code:addons/base_calendar/crm_meeting.py:106
+#, python-format
+msgid "Email addresses not found"
+msgstr "לא נמצאה כתבות דוא\"ל"
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Recurrency period"
+msgstr "תקופת החזרה"
+
+#. module: base_calendar
+#: field:calendar.event,week_list:0
+#: field:calendar.todo,week_list:0
+#: field:crm.meeting,week_list:0
+msgid "Weekday"
+msgstr "יום בשבוע"
+
+#. module: base_calendar
+#: code:addons/base_calendar/base_calendar.py:1015
+#, python-format
+msgid "Interval cannot be negative."
+msgstr "המרווח אינו יכול להיות שלילי."
+
+#. module: base_calendar
+#: field:calendar.event,byday:0
+#: field:calendar.todo,byday:0
+#: field:crm.meeting,byday:0
+msgid "By day"
+msgstr "לפי יום"
+
+#. module: base_calendar
+#: code:addons/base_calendar/base_calendar.py:441
+#, python-format
+msgid "First you have to specify the date of the invitation."
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,model_id:0
+msgid "Model"
+msgstr "מודל"
+
+#. module: base_calendar
+#: selection:calendar.alarm,action:0
+msgid "Audio"
+msgstr "שמע"
+
+#. module: base_calendar
+#: field:calendar.event,id:0
+#: field:calendar.todo,id:0
+#: field:crm.meeting,id:0
+msgid "ID"
+msgstr "מזהה"
+
+#. module: base_calendar
+#: selection:calendar.attendee,role:0
+msgid "For information Purpose"
+msgstr "למטרות מידע"
+
+#. module: base_calendar
+#: field:calendar.event,select1:0
+#: field:calendar.todo,select1:0
+#: field:crm.meeting,select1:0
+msgid "Option"
+msgstr "אפשרות"
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_attendee
+msgid "Attendee information"
+msgstr "מידע משתתפים"
+
+#. module: base_calendar
+#: field:calendar.alarm,res_id:0
+msgid "Resource ID"
+msgstr "מזהה משאב"
+
+#. module: base_calendar
+#: selection:calendar.attendee,state:0
+msgid "Needs Action"
+msgstr "נדרשת פעולה"
+
+#. module: base_calendar
+#: field:calendar.attendee,sent_by:0
+msgid "Sent By"
+msgstr "נשלח על ידי"
+
+#. module: base_calendar
+#: field:calendar.event,sequence:0
+#: field:calendar.todo,sequence:0
+#: field:crm.meeting,sequence:0
+msgid "Sequence"
+msgstr "רצף"
+
+#. module: base_calendar
+#: help:calendar.event,alarm_id:0
+#: help:calendar.todo,alarm_id:0
+#: help:crm.meeting,alarm_id:0
+msgid "Set an alarm at this time, before the event occurs"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: view:crm.meeting:0
+msgid "Accept"
+msgstr "אשר"
+
+#. module: base_calendar
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+#: selection:crm.meeting,week_list:0
+msgid "Saturday"
+msgstr "שבת"
+
+#. module: base_calendar
+#: field:calendar.event,interval:0
+#: field:calendar.todo,interval:0
+#: field:crm.meeting,interval:0
+msgid "Repeat Every"
+msgstr "חזור כל"
+
+#. module: base_calendar
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+#: selection:crm.meeting,byday:0
+msgid "Second"
+msgstr "שנייה"
+
+#. module: base_calendar
+#: field:calendar.attendee,availability:0
+msgid "Free/Busy"
+msgstr "פנוי/עסוק"
+
+#. module: base_calendar
+#: field:calendar.alarm,duration:0
+#: field:calendar.alarm,trigger_duration:0
+#: field:calendar.event,duration:0
+#: field:calendar.todo,date:0
+#: field:calendar.todo,duration:0
+#: field:crm.meeting,duration:0
+#: field:res.alarm,duration:0
+#: field:res.alarm,trigger_duration:0
+msgid "Duration"
+msgstr "משך"
+
+#. module: base_calendar
+#: field:calendar.alarm,trigger_date:0
+msgid "Trigger Date"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.alarm,attach:0
+msgid ""
+"* Points to a sound resource, which is rendered when the "
+"alarm is triggered for audio,\n"
+" * File which is intended to be sent as message "
+"attachments for email,\n"
+" * Points to a procedure resource, which is invoked when "
+" the alarm is triggered for procedure."
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+#: selection:crm.meeting,byday:0
+msgid "Fifth"
+msgstr "החמישי"
diff --git a/addons/base_gengo/i18n/pl.po b/addons/base_gengo/i18n/pl.po
new file mode 100644
index 00000000000..0cd30c0a4a6
--- /dev/null
+++ b/addons/base_gengo/i18n/pl.po
@@ -0,0 +1,264 @@
+# Polish translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-11-16 19:53+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Polish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-17 05:21+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Comments for Translator"
+msgstr "Komentarze dla tłumacza"
+
+#. module: base_gengo
+#: field:ir.translation,job_id:0
+msgid "Gengo Job ID"
+msgstr "Identyfikator Gengo Job"
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:114
+#, python-format
+msgid "This language is not supported by the Gengo translation services."
+msgstr "Ten język nie jest wspierany przez usługi tłumaczeń Gengo."
+
+#. module: base_gengo
+#: field:res.company,gengo_comment:0
+msgid "Comments"
+msgstr "Komentarze"
+
+#. module: base_gengo
+#: field:res.company,gengo_private_key:0
+msgid "Gengo Private Key"
+msgstr "Prywatny klucz Gengo"
+
+#. module: base_gengo
+#: model:ir.model,name:base_gengo.model_base_gengo_translations
+msgid "base.gengo.translations"
+msgstr ""
+
+#. module: base_gengo
+#: help:res.company,gengo_auto_approve:0
+msgid "Jobs are Automatically Approved by Gengo."
+msgstr "Prace są automatycznie zatwierdzane przez Gengo."
+
+#. module: base_gengo
+#: field:base.gengo.translations,lang_id:0
+msgid "Language"
+msgstr "Język"
+
+#. module: base_gengo
+#: field:ir.translation,gengo_comment:0
+msgid "Comments & Activity Linked to Gengo"
+msgstr "Komentarze i Aktywność powiązana z Gengo"
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:124
+#, python-format
+msgid "Gengo Sync Translation (Response)"
+msgstr "Gengo Sync Tłumaczenie (Odpowiedź)"
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:72
+#, python-format
+msgid ""
+"Gengo `Public Key` or `Private Key` are missing. Enter your Gengo "
+"authentication parameters under `Settings > Companies > Gengo Parameters`."
+msgstr ""
+"Brakuje Gengo 'Klucz publiczny' i 'Klucz prywatny'. Wprowadź twoje parametry "
+"uwierzytelnienia Gengo pod 'Ustawienia > Firmy > Parametry Gengo'."
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Translation By Machine"
+msgstr "Tłumaczenie przez maszynę"
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:155
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"--\n"
+" Commented on %s by %s."
+msgstr ""
+"%s\n"
+"\n"
+"--\n"
+" Komentowane %s przez %s."
+
+#. module: base_gengo
+#: field:ir.translation,gengo_translation:0
+msgid "Gengo Translation Service Level"
+msgstr "Poziom usług tłumaczeń Gengo"
+
+#. module: base_gengo
+#: constraint:ir.translation:0
+msgid ""
+"The Gengo translation service selected is not supported for this language."
+msgstr "Usługi tłumaczenia Gengo nie są obsługiwane dla tego języka."
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Standard"
+msgstr "Standardowe"
+
+#. module: base_gengo
+#: help:ir.translation,gengo_translation:0
+msgid ""
+"You can select here the service level you want for an automatic translation "
+"using Gengo."
+msgstr ""
+"Możesz tu wybrać poziom usług, który chcesz dla automatycznych tłumaczeń "
+"Gengo."
+
+#. module: base_gengo
+#: field:base.gengo.translations,restart_send_job:0
+msgid "Restart Sending Job"
+msgstr "Restartuj wysyłanie zadań"
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid "To Approve In Gengo"
+msgstr "Do zatwierdzenia w Gengo"
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Private Key"
+msgstr "Prywatny klucz"
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Public Key"
+msgstr "Publiczny Klucz"
+
+#. module: base_gengo
+#: field:res.company,gengo_public_key:0
+msgid "Gengo Public Key"
+msgstr "Publiczny klucz Gengo"
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:123
+#, python-format
+msgid "Gengo Sync Translation (Request)"
+msgstr "Gengo Sync Tlumaczenie (zapotrzebowanie)"
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid "Translations"
+msgstr "Tłumaczenia"
+
+#. module: base_gengo
+#: field:res.company,gengo_auto_approve:0
+msgid "Auto Approve Translation ?"
+msgstr "Automatycznie zatwierdźić tłumaczenie?"
+
+#. module: base_gengo
+#: model:ir.actions.act_window,name:base_gengo.action_wizard_base_gengo_translations
+#: model:ir.ui.menu,name:base_gengo.menu_action_wizard_base_gengo_translations
+msgid "Gengo: Manual Request of Translation"
+msgstr "Gengo: Manualne zapotrzebowanie tłumaczenia"
+
+#. module: base_gengo
+#: code:addons/base_gengo/ir_translation.py:62
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:109
+#, python-format
+msgid "Gengo Authentication Error"
+msgstr "Błąd uwierzytelnienia Gengo"
+
+#. module: base_gengo
+#: model:ir.model,name:base_gengo.model_res_company
+msgid "Companies"
+msgstr "Firmy"
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid ""
+"Note: If the translation state is 'In Progress', it means that the "
+"translation has to be approved to be uploaded in this system. You are "
+"supposed to do that directly by using your Gengo Account"
+msgstr ""
+"Informacja: Jeśli status tłumaczenia jest 'W toku', to oznacza, że "
+"tlumaczenie musi zostać zatwierdzone do załadowania w tym systemie. "
+"Przewidywane jest, że to zrobisz bezpośrednio poprzez twoje konto Gento."
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:82
+#, python-format
+msgid ""
+"Gengo connection failed with this message:\n"
+"``%s``"
+msgstr ""
+"Połączenie Gengo zawiodło z następującą wiadomością:\n"
+"``%s``"
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Gengo Parameters"
+msgstr "Parametry Gengo"
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "Send"
+msgstr "Wyślij"
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Ultra"
+msgstr "Ultra"
+
+#. module: base_gengo
+#: model:ir.model,name:base_gengo.model_ir_translation
+msgid "ir.translation"
+msgstr ""
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid "Gengo Translation Service"
+msgstr "Usługi tłumaczeń Gengo"
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Pro"
+msgstr "Pro"
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "Gengo Request Form"
+msgstr "Formularz zapotrzebowania Gengo"
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:114
+#, python-format
+msgid "Warning"
+msgstr "Ostrzeżenie"
+
+#. module: base_gengo
+#: help:res.company,gengo_comment:0
+msgid ""
+"This comment will be automatically be enclosed in each an every request sent "
+"to Gengo"
+msgstr ""
+"Ten komentarz zostanie automatycznie zawarty w każdym zapotrzebowaniu "
+"wysłanym do Gengo"
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "Cancel"
+msgstr "Anuluj"
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "or"
+msgstr "lub"
diff --git a/addons/base_import/static/src/css/import.css b/addons/base_import/static/src/css/import.css
index 3913619b6c9..579b6e26999 100644
--- a/addons/base_import/static/src/css/import.css
+++ b/addons/base_import/static/src/css/import.css
@@ -1,12 +1,14 @@
.oe_import > p {
margin-left: 8px;
margin-right: 8px;
+ margin-top: 13px; /* Customize space according bootstrap3 */
text-align: justify
}
.oe_import h2 {
margin-top: 0;
margin-bottom: 5px;
+ font-size: 1.5em; /* Customize according bootstrap3 */
}
.oe_padding {
@@ -22,6 +24,14 @@
border: solid 1px #dddddd;
width: 600px;
}
+/* Customize according bootstrap3 */
+.oe_import .oe_import_box label{
+ font-weight: normal;
+}
+.oe_import .oe_import_box .oe_import_file {
+ display: inline-block;
+}
+/* End of Customize */
.oe_import .oe_import_toggle{
margin-top: 8px;
}
@@ -40,7 +50,7 @@
}
.oe_import .oe_import_options p {
- margin: 0;
+ margin: 0 0 -7px 0; /* Customize margin-bottom of
according bootstrap3 */
padding: 0;
}
.oe_import .oe_import_options label {
@@ -69,6 +79,14 @@
.oe_import .oe_import_report_more {
display: none;
}
+/* Customize dd and label according bootstrap3 */
+.oe_import dd {
+ -webkit-margin-start: 40px;
+}
+.oe_import .oe_import_with_file label {
+ font-weight: normal;
+}
+/* End of customize */
.oe_import.oe_import_preview .oe_import_grid {
display: table;
diff --git a/addons/base_import/static/src/js/import.js b/addons/base_import/static/src/js/import.js
index 3c029335fb1..1238bc9570f 100644
--- a/addons/base_import/static/src/js/import.js
+++ b/addons/base_import/static/src/js/import.js
@@ -51,7 +51,12 @@ openerp.base_import = function (instance) {
type: 'ir.actions.client',
tag: 'import',
params: {
- model: self.dataset.model
+ model: self.dataset.model,
+ // self.dataset.get_context() could be a compound?
+ // not sure. action's context should be evaluated
+ // so safer bet. Odd that timezone & al in it
+ // though
+ context: self.getParent().action.context,
}
}, {
on_reverse_breadcrumb: function () {
@@ -127,6 +132,7 @@ openerp.base_import = function (instance) {
var self = this;
this._super.apply(this, arguments);
this.res_model = action.params.model;
+ this.parent_context = action.params.context || {};
// import object id
this.id = null;
this.Import = new instance.web.Model('base_import.import');
@@ -353,11 +359,12 @@ openerp.base_import = function (instance) {
},
//- import itself
- call_import: function (options) {
+ call_import: function (kwargs) {
var fields = this.$('.oe_import_fields input.oe_import_match_field').map(function (index, el) {
return $(el).select2('val') || false;
}).get();
- return this.Import.call('do', [this.id, fields, this.import_options()], options)
+ kwargs.context = this.parent_context;
+ return this.Import.call('do', [this.id, fields, this.import_options()], kwargs)
.then(undefined, function (error, event) {
// In case of unexpected exception, convert
// "JSON-RPC error" to an import failure, and
@@ -366,7 +373,7 @@ openerp.base_import = function (instance) {
return $.when([{
type: 'error',
record: false,
- message: error.data.fault_code,
+ message: error.data.arguments[1],
}]);
}) ;
},
diff --git a/addons/base_setup/i18n/he.po b/addons/base_setup/i18n/he.po
new file mode 100644
index 00000000000..4c4b3037c71
--- /dev/null
+++ b/addons/base_setup/i18n/he.po
@@ -0,0 +1,370 @@
+# Hebrew translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-12-30 18:38+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Hebrew \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-31 04:47+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: base_setup
+#: view:sale.config.settings:0
+msgid "Emails Integration"
+msgstr ""
+
+#. module: base_setup
+#: selection:base.setup.terminology,partner:0
+msgid "Guest"
+msgstr ""
+
+#. module: base_setup
+#: view:sale.config.settings:0
+msgid "Contacts"
+msgstr ""
+
+#. module: base_setup
+#: model:ir.model,name:base_setup.model_base_config_settings
+msgid "base.config.settings"
+msgstr ""
+
+#. module: base_setup
+#: field:base.config.settings,module_auth_oauth:0
+msgid ""
+"Use external authentication providers, sign in with google, facebook, ..."
+msgstr ""
+
+#. module: base_setup
+#: view:sale.config.settings:0
+msgid ""
+"OpenERP allows to automatically create leads (or others documents)\n"
+" from incoming emails. You can automatically "
+"synchronize emails with OpenERP\n"
+" using regular POP/IMAP accounts, using a direct "
+"email integration script for your\n"
+" email server, or by manually pushing emails to "
+"OpenERP using specific\n"
+" plugins for your preferred email application."
+msgstr ""
+
+#. module: base_setup
+#: field:sale.config.settings,module_sale:0
+msgid "SALE"
+msgstr ""
+
+#. module: base_setup
+#: selection:base.setup.terminology,partner:0
+msgid "Member"
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+msgid "Portal access"
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+msgid "Authentication"
+msgstr ""
+
+#. module: base_setup
+#: view:sale.config.settings:0
+msgid "Quotations and Sales Orders"
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+#: model:ir.actions.act_window,name:base_setup.action_general_configuration
+#: model:ir.ui.menu,name:base_setup.menu_general_configuration
+msgid "General Settings"
+msgstr ""
+
+#. module: base_setup
+#: selection:base.setup.terminology,partner:0
+msgid "Donor"
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+msgid "Email"
+msgstr ""
+
+#. module: base_setup
+#: field:sale.config.settings,module_crm:0
+msgid "CRM"
+msgstr ""
+
+#. module: base_setup
+#: selection:base.setup.terminology,partner:0
+msgid "Patient"
+msgstr ""
+
+#. module: base_setup
+#: field:base.config.settings,module_base_import:0
+msgid "Allow users to import data from CSV files"
+msgstr ""
+
+#. module: base_setup
+#: field:base.config.settings,module_multi_company:0
+msgid "Manage multiple companies"
+msgstr ""
+
+#. module: base_setup
+#: view:sale.config.settings:0
+msgid "On Mail Client"
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+msgid "--db-filter=YOUR_DATABAE"
+msgstr ""
+
+#. module: base_setup
+#: field:sale.config.settings,module_web_linkedin:0
+msgid "Get contacts automatically from linkedIn"
+msgstr ""
+
+#. module: base_setup
+#: field:sale.config.settings,module_plugin_thunderbird:0
+msgid "Enable Thunderbird plug-in"
+msgstr ""
+
+#. module: base_setup
+#: view:base.setup.terminology:0
+msgid "res_config_contents"
+msgstr ""
+
+#. module: base_setup
+#: view:sale.config.settings:0
+msgid "Customer Features"
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+msgid "Import / Export"
+msgstr ""
+
+#. module: base_setup
+#: view:sale.config.settings:0
+msgid "Sale Features"
+msgstr ""
+
+#. module: base_setup
+#: field:sale.config.settings,module_plugin_outlook:0
+msgid "Enable Outlook plug-in"
+msgstr ""
+
+#. module: base_setup
+#: view:base.setup.terminology:0
+msgid ""
+"You can use this wizard to change the terminologies for customers in the "
+"whole application."
+msgstr ""
+
+#. module: base_setup
+#: selection:base.setup.terminology,partner:0
+msgid "Tenant"
+msgstr ""
+
+#. module: base_setup
+#: help:base.config.settings,module_share:0
+msgid "Share or embbed any screen of openerp."
+msgstr ""
+
+#. module: base_setup
+#: selection:base.setup.terminology,partner:0
+msgid "Customer"
+msgstr ""
+
+#. module: base_setup
+#: help:sale.config.settings,module_web_linkedin:0
+msgid ""
+"When you create a new contact (person or company), you will be able to load "
+"all the data from LinkedIn (photos, address, etc)."
+msgstr ""
+
+#. module: base_setup
+#: help:base.config.settings,module_multi_company:0
+msgid ""
+"Work in multi-company environments, with appropriate security access between "
+"companies.\n"
+" This installs the module multi_company."
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+msgid ""
+"The public portal is accessible only if you are in a single database mode. "
+"You can\n"
+" launch the OpenERP Server with the option"
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+msgid ""
+"You will find more options in your company details: address for the header "
+"and footer, overdue payments texts, etc."
+msgstr ""
+
+#. module: base_setup
+#: model:ir.model,name:base_setup.model_sale_config_settings
+msgid "sale.config.settings"
+msgstr ""
+
+#. module: base_setup
+#: field:base.setup.terminology,partner:0
+msgid "How do you call a Customer"
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+msgid ""
+"When you send a document to a customer\n"
+" (quotation, invoice), your customer will "
+"be\n"
+" able to signup to get all his "
+"documents,\n"
+" read your company news, check his "
+"projects,\n"
+" etc."
+msgstr ""
+
+#. module: base_setup
+#: model:ir.model,name:base_setup.model_base_setup_terminology
+msgid "base.setup.terminology"
+msgstr ""
+
+#. module: base_setup
+#: selection:base.setup.terminology,partner:0
+msgid "Client"
+msgstr ""
+
+#. module: base_setup
+#: help:base.config.settings,module_portal_anonymous:0
+msgid "Enable the public part of openerp, openerp becomes a public website."
+msgstr ""
+
+#. module: base_setup
+#: help:sale.config.settings,module_plugin_thunderbird:0
+msgid ""
+"The plugin allows you archive email and its attachments to the selected\n"
+" OpenERP objects. You can select a partner, or a lead and\n"
+" attach the selected mail as a .eml file in\n"
+" the attachment of a selected record. You can create "
+"documents for CRM Lead,\n"
+" Partner from the selected emails.\n"
+" This installs the module plugin_thunderbird."
+msgstr ""
+
+#. module: base_setup
+#: selection:base.setup.terminology,partner:0
+msgid "Partner"
+msgstr ""
+
+#. module: base_setup
+#: model:ir.actions.act_window,name:base_setup.action_partner_terminology_config_form
+msgid "Use another word to say \"Customer\""
+msgstr ""
+
+#. module: base_setup
+#: model:ir.actions.act_window,name:base_setup.action_sale_config
+#: view:sale.config.settings:0
+msgid "Configure Sales"
+msgstr ""
+
+#. module: base_setup
+#: help:sale.config.settings,module_plugin_outlook:0
+msgid ""
+"The Outlook plugin allows you to select an object that you would like to "
+"add\n"
+" to your email and its attachments from MS Outlook. You can "
+"select a partner,\n"
+" or a lead object and archive a selected\n"
+" email into an OpenERP mail message with attachments.\n"
+" This installs the module plugin_outlook."
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+msgid "Options"
+msgstr ""
+
+#. module: base_setup
+#: field:base.config.settings,module_portal:0
+msgid "Activate the customer portal"
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+msgid ""
+"to do so.\n"
+" Once activated, the login page will be "
+"replaced by the public website."
+msgstr ""
+
+#. module: base_setup
+#: field:base.config.settings,module_share:0
+msgid "Allow documents sharing"
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+msgid "(company news, jobs, contact form, etc.)"
+msgstr ""
+
+#. module: base_setup
+#: field:base.config.settings,module_portal_anonymous:0
+msgid "Activate the public portal"
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+msgid "Configure outgoing email servers"
+msgstr ""
+
+#. module: base_setup
+#: view:sale.config.settings:0
+msgid "Social Network Integration"
+msgstr ""
+
+#. module: base_setup
+#: help:base.config.settings,module_portal:0
+msgid "Give your customers access to their documents."
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+#: view:sale.config.settings:0
+msgid "Cancel"
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+#: view:sale.config.settings:0
+msgid "Apply"
+msgstr ""
+
+#. module: base_setup
+#: view:base.setup.terminology:0
+msgid "Specify Your Terminology"
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+#: view:sale.config.settings:0
+msgid "or"
+msgstr ""
+
+#. module: base_setup
+#: view:base.config.settings:0
+msgid "Configure your company data"
+msgstr ""
diff --git a/addons/base_setup/i18n/zh_TW.po b/addons/base_setup/i18n/zh_TW.po
index 929f62ca24d..634a16c7697 100644
--- a/addons/base_setup/i18n/zh_TW.po
+++ b/addons/base_setup/i18n/zh_TW.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-11-07 12:53+0000\n"
-"Last-Translator: Walter Cheuk \n"
+"PO-Revision-Date: 2013-12-29 15:39+0000\n"
+"Last-Translator: Andy Cheng \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 05:22+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-12-30 04:39+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
#. module: base_setup
#: view:sale.config.settings:0
@@ -189,7 +189,7 @@ msgstr "客戶"
msgid ""
"When you create a new contact (person or company), you will be able to load "
"all the data from LinkedIn (photos, address, etc)."
-msgstr ""
+msgstr "當建立新的聯絡人時(個人或公司),你就可以從 LinkedIn 載入所有資料(照片、地址等)。"
#. module: base_setup
#: help:base.config.settings,module_multi_company:0
@@ -212,7 +212,7 @@ msgstr ""
msgid ""
"You will find more options in your company details: address for the header "
"and footer, overdue payments texts, etc."
-msgstr ""
+msgstr "您可在貴公司的詳細資訊中找到更多選項,如表頭和頁尾的地址、付款過期通知等等。"
#. module: base_setup
#: model:ir.model,name:base_setup.model_sale_config_settings
diff --git a/addons/base_setup/res_config.py b/addons/base_setup/res_config.py
index 06c57f2df5a..8ddec7df111 100644
--- a/addons/base_setup/res_config.py
+++ b/addons/base_setup/res_config.py
@@ -68,7 +68,7 @@ class base_config_settings(osv.osv_memory):
def set_base_defaults(self, cr, uid, ids, context=None):
ir_model_data = self.pool.get('ir.model.data')
- wizard = self.browse(cr, uid, ids)[0]
+ wizard = self.browse(cr, uid, ids, context)[0]
if wizard.font:
user = self.pool.get('res.users').browse(cr, uid, uid, context)
font_name = wizard.font.name
@@ -76,7 +76,7 @@ class base_config_settings(osv.osv_memory):
return {}
def act_discover_fonts(self, cr, uid, ids, context=None):
- return self.pool.get("res.font").discover_fonts(cr, uid, ids, context)
+ return self.pool.get("res.font").font_scan(cr, uid, context=context)
# Preferences wizard for Sales & CRM.
# It is defined here because it is inherited independently in modules sale, crm,
diff --git a/addons/base_setup/res_config_view.xml b/addons/base_setup/res_config_view.xml
index fab2f48e8ab..f8f3efd8171 100644
--- a/addons/base_setup/res_config_view.xml
+++ b/addons/base_setup/res_config_view.xml
@@ -94,7 +94,7 @@
-
+
diff --git a/addons/base_vat/i18n/es_PE.po b/addons/base_vat/i18n/es_PE.po
new file mode 100644
index 00000000000..ef5f9992570
--- /dev/null
+++ b/addons/base_vat/i18n/es_PE.po
@@ -0,0 +1,75 @@
+# Spanish (Peru) translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-12-09 17:26+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Spanish (Peru) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
+"X-Generator: Launchpad (build 16869)\n"
+
+#. module: base_vat
+#: view:res.partner:0
+msgid "Check Validity"
+msgstr ""
+
+#. module: base_vat
+#: code:addons/base_vat/base_vat.py:152
+#, python-format
+msgid ""
+"This VAT number does not seem to be valid.\n"
+"Note: the expected format is %s"
+msgstr "El RUC no es válido. El formato esperado es %s"
+
+#. module: base_vat
+#: field:res.company,vat_check_vies:0
+msgid "VIES VAT Check"
+msgstr ""
+
+#. module: base_vat
+#: model:ir.model,name:base_vat.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: base_vat
+#: code:addons/base_vat/base_vat.py:113
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: base_vat
+#: help:res.partner,vat_subjected:0
+msgid ""
+"Check this box if the partner is subjected to the VAT. It will be used for "
+"the VAT legal statement."
+msgstr ""
+"Marque esta opción si la empresa está sujeta a Impuestos. Será utilizado "
+"para la declaración legal de Impuestos."
+
+#. module: base_vat
+#: model:ir.model,name:base_vat.model_res_partner
+msgid "Partner"
+msgstr ""
+
+#. module: base_vat
+#: help:res.company,vat_check_vies:0
+msgid ""
+"If checked, Partners VAT numbers will be fully validated against EU's VIES "
+"service rather than via a simple format validation (checksum)."
+msgstr ""
+"Si se marca, el RUC de la empresa se validará contra el servicio europeo "
+"VIES VAT en lugar de sólo validar el formato."
+
+#. module: base_vat
+#: field:res.partner,vat_subjected:0
+msgid "VAT Legal Statement"
+msgstr "Sujeto a Impuestos"
diff --git a/addons/base_vat/i18n/zh_TW.po b/addons/base_vat/i18n/zh_TW.po
index 070658c056d..545b8be9e90 100644
--- a/addons/base_vat/i18n/zh_TW.po
+++ b/addons/base_vat/i18n/zh_TW.po
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2009-01-30 12:44+0000\n"
-"Last-Translator: <>\n"
+"PO-Revision-Date: 2013-12-27 04:38+0000\n"
+"Last-Translator: Andy Cheng \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 05:19+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-12-28 05:19+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
#. module: base_vat
#: view:res.partner:0
msgid "Check Validity"
-msgstr ""
+msgstr "檢查有效性"
#. module: base_vat
#: code:addons/base_vat/base_vat.py:152
@@ -28,11 +28,13 @@ msgid ""
"This VAT number does not seem to be valid.\n"
"Note: the expected format is %s"
msgstr ""
+"這個統編似乎是無效的。\n"
+"提醒:格式應為 %s"
#. module: base_vat
#: field:res.company,vat_check_vies:0
msgid "VIES VAT Check"
-msgstr ""
+msgstr "VIES 統編(VAT)檢查"
#. module: base_vat
#: model:ir.model,name:base_vat.model_res_company
@@ -43,7 +45,7 @@ msgstr "公司"
#: code:addons/base_vat/base_vat.py:113
#, python-format
msgid "Error!"
-msgstr "錯誤!"
+msgstr "錯誤!"
#. module: base_vat
#: help:res.partner,vat_subjected:0
@@ -51,20 +53,23 @@ msgid ""
"Check this box if the partner is subjected to the VAT. It will be used for "
"the VAT legal statement."
msgstr ""
+"Check this box if the partner is subjected to the VAT. It will be used for "
+"the VAT legal statement.\r\n"
+"如果該業務夥伴需申報(加值型)營業稅,則勾選此框。這會用在營業稅相關的稅務報告。"
#. module: base_vat
#: model:ir.model,name:base_vat.model_res_partner
msgid "Partner"
-msgstr "夥伴"
+msgstr "業務夥伴"
#. module: base_vat
#: help:res.company,vat_check_vies:0
msgid ""
"If checked, Partners VAT numbers will be fully validated against EU's VIES "
"service rather than via a simple format validation (checksum)."
-msgstr ""
+msgstr "如果勾選此框,則業務夥伴的統編會以歐盟的 VIES 做完整檢查,否則僅會作基本格式檢查(checksum檢查)。"
#. module: base_vat
#: field:res.partner,vat_subjected:0
msgid "VAT Legal Statement"
-msgstr ""
+msgstr "營業稅報告"
diff --git a/addons/board/board.py b/addons/board/board.py
index ba5da0db6e1..fafb0eae290 100644
--- a/addons/board/board.py
+++ b/addons/board/board.py
@@ -3,7 +3,7 @@
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
-# Copyright (C) 2010-2012 OpenERP s.a. ().
+# Copyright (C) 2010-2013 OpenERP s.a. ().
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -49,6 +49,7 @@ class board_board(osv.osv):
('value', 'in', refs),
], context=context)
menu_ids = map(itemgetter('res_id'), IrValues.read(cr, uid, irv_ids, ['res_id'], context=context))
+ menu_ids = Menus._filter_visible_menus(cr, uid, menu_ids, context=context)
menu_names = Menus.name_get(cr, uid, menu_ids, context=context)
return [dict(id=m[0], name=m[1]) for m in menu_names]
diff --git a/addons/board/controllers.py b/addons/board/controllers.py
index 50148977216..93634627352 100644
--- a/addons/board/controllers.py
+++ b/addons/board/controllers.py
@@ -1,22 +1,22 @@
# -*- coding: utf-8 -*-
from xml.etree import ElementTree
-import openerp
from openerp.addons.web.controllers.main import load_actions_from_ir_values
+from openerp.addons.web.http import Controller, route, request
-class Board(openerp.http.Controller):
- @openerp.http.route('/board/add_to_dashboard', type='json', auth='user')
+class Board(Controller):
+ @route('/board/add_to_dashboard', type='json', auth='user')
def add_to_dashboard(self, menu_id, action_id, context_to_save, domain, view_mode, name=''):
- req = openerp.http.request
# FIXME move this method to board.board model
- dashboard_action = load_actions_from_ir_values('action', 'tree_but_open', [('ir.ui.menu', menu_id)], False)
+ dashboard_action = load_actions_from_ir_values('action', 'tree_but_open',
+ [('ir.ui.menu', menu_id)], False)
if dashboard_action:
action = dashboard_action[0][2]
if action['res_model'] == 'board.board' and action['views'][0][1] == 'form':
# Maybe should check the content instead of model board.board ?
view_id = action['views'][0][0]
- board = req.session.model(action['res_model']).fields_view_get(view_id, 'form')
+ board = request.session.model(action['res_model']).fields_view_get(view_id, 'form')
if board and 'arch' in board:
xml = ElementTree.fromstring(board['arch'])
column = xml.find('./board/column')
@@ -30,10 +30,10 @@ class Board(openerp.http.Controller):
})
column.insert(0, new_action)
arch = ElementTree.tostring(xml, 'utf-8')
- return req.session.model('ir.ui.view.custom').create({
- 'user_id': req.session._uid,
+ return request.session.model('ir.ui.view.custom').create({
+ 'user_id': request.session.uid,
'ref_id': view_id,
'arch': arch
- }, req.context)
+ }, request.context)
return False
diff --git a/addons/board/i18n/he.po b/addons/board/i18n/he.po
new file mode 100644
index 00000000000..d6a4466de8d
--- /dev/null
+++ b/addons/board/i18n/he.po
@@ -0,0 +1,167 @@
+# Hebrew translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-12-30 18:41+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Hebrew \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-31 04:47+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: board
+#: model:ir.actions.act_window,name:board.action_board_create
+#: model:ir.ui.menu,name:board.menu_board_create
+msgid "Create Board"
+msgstr ""
+
+#. module: board
+#: view:board.create:0
+msgid "Create"
+msgstr ""
+
+#. module: board
+#. openerp-web
+#: code:addons/board/static/src/xml/board.xml:4
+#, python-format
+msgid "Reset Layout.."
+msgstr ""
+
+#. module: board
+#: view:board.create:0
+msgid "Create New Dashboard"
+msgstr ""
+
+#. module: board
+#. openerp-web
+#: code:addons/board/static/src/xml/board.xml:40
+#, python-format
+msgid "Choose dashboard layout"
+msgstr ""
+
+#. module: board
+#. openerp-web
+#: code:addons/board/static/src/xml/board.xml:70
+#, python-format
+msgid "Add"
+msgstr ""
+
+#. module: board
+#. openerp-web
+#: code:addons/board/static/src/js/dashboard.js:139
+#, python-format
+msgid "Are you sure you want to remove this item ?"
+msgstr ""
+
+#. module: board
+#: model:ir.model,name:board.model_board_board
+msgid "Board"
+msgstr ""
+
+#. module: board
+#: view:board.board:0
+#: model:ir.actions.act_window,name:board.open_board_my_dash_action
+#: model:ir.ui.menu,name:board.menu_board_my_dash
+msgid "My Dashboard"
+msgstr ""
+
+#. module: board
+#: field:board.create,name:0
+msgid "Board Name"
+msgstr ""
+
+#. module: board
+#: model:ir.model,name:board.model_board_create
+msgid "Board Creation"
+msgstr ""
+
+#. module: board
+#. openerp-web
+#: code:addons/board/static/src/xml/board.xml:67
+#, python-format
+msgid "Add to Dashboard"
+msgstr ""
+
+#. module: board
+#. openerp-web
+#: code:addons/board/static/src/xml/board.xml:28
+#, python-format
+msgid " "
+msgstr ""
+
+#. module: board
+#: model:ir.actions.act_window,help:board.open_board_my_dash_action
+msgid ""
+"
\n"
+"
\n"
+" Your personal dashboard is empty.\n"
+"
\n"
+" To add your first report into this dashboard, go to any\n"
+" menu, switch to list or graph view, and click 'Add "
+"to\n"
+" Dashboard' in the extended search options.\n"
+"
\n"
+" You can filter and group data before inserting into the\n"
+" dashboard using the search options.\n"
+"
\n"
+" Click to add a contact in your address book.\n"
+"
\n"
+" OpenERP helps you easily track all activities related to\n"
+" a customer; discussions, history of business opportunities,\n"
+" documents, etc.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: contacts
+#: model:ir.actions.act_window,name:contacts.action_contacts
+#: model:ir.ui.menu,name:contacts.menu_contacts
+msgid "Contacts"
+msgstr ""
diff --git a/addons/contacts/i18n/sk.po b/addons/contacts/i18n/sk.po
new file mode 100644
index 00000000000..96ec90214cf
--- /dev/null
+++ b/addons/contacts/i18n/sk.po
@@ -0,0 +1,37 @@
+# Slovak translation for openobject-addons
+# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2014.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2014-01-04 10:36+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Slovak \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-01-05 05:26+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: contacts
+#: model:ir.actions.act_window,help:contacts.action_contacts
+msgid ""
+"
\n"
+" Click to add a contact in your address book.\n"
+"
\n"
+" OpenERP helps you easily track all activities related to\n"
+" a customer; discussions, history of business opportunities,\n"
+" documents, etc.\n"
+"
@@ -48,7 +45,7 @@
graph,tree,form
- ['!', '&', ('probability', '=', 0), ('stage_id.sequence', '!=', 1)]
+ ['|', ('stage_id.fold', '=', False), ('stage_id.probability', '=', 100)]{'search_default_user': 1, 'search_default_Stage': 1}
diff --git a/addons/crm/crm.py b/addons/crm/crm.py
index 98581b91666..a98fcadb959 100644
--- a/addons/crm/crm.py
+++ b/addons/crm/crm.py
@@ -68,8 +68,9 @@ class crm_case_stage(osv.osv):
help="Link between stages and sales teams. When set, this limitate the current stage to the selected sales teams."),
'case_default': fields.boolean('Default to New Sales Team',
help="If you check this field, this stage will be proposed by default on each sales team. It will not assign this stage to existing teams."),
- 'fold': fields.boolean('Fold by Default',
- help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."),
+ 'fold': fields.boolean('Folded in Kanban View',
+ help='This stage is folded in the kanban view when'
+ 'there are no records in that stage to display.'),
'type': fields.selection([('lead', 'Lead'),
('opportunity', 'Opportunity'),
('both', 'Both')],
@@ -78,8 +79,8 @@ class crm_case_stage(osv.osv):
}
_defaults = {
- 'sequence': lambda *args: 1,
- 'probability': lambda *args: 0.0,
+ 'sequence': 1,
+ 'probability': 0.0,
'on_change': True,
'fold': False,
'type': 'both',
diff --git a/addons/crm/crm_case_section_view.xml b/addons/crm/crm_case_section_view.xml
index 99b3296c3c1..bc066db0a7a 100644
--- a/addons/crm/crm_case_section_view.xml
+++ b/addons/crm/crm_case_section_view.xml
@@ -13,7 +13,6 @@
{
'search_default_section_id': [active_id],
- 'search_default_open': 1,
'default_section_id': active_id,
'default_type': 'lead',
'stage_type': 'lead',
@@ -43,7 +42,6 @@
{
'search_default_section_id': [active_id],
- 'search_default_assigned_to_me': 1,
'default_section_id': active_id,
'stage_type': 'opportunity',
'default_type': 'opportunity',
@@ -64,6 +62,26 @@
+
+ Leads Analysis
+ crm.lead.report
+ form
+ {"search_default_month":1}
+ tree,graph
+ [('type','=', 'lead'),('section_id', '=', active_id)]
+ Leads Analysis allows you to check different CRM related information like the treatment delays or number of leads per state. You can sort out your leads analysis by different groups to get accurate grained analysis.
+
+
+
+ Opportunities Analysis
+ crm.lead.report
+ form
+ {"search_default_month":1}
+ tree,graph
+ [('type','=', 'opportunity'), ('section_id', '=', active_id)]
+ Opportunities Analysis gives you an instant access to your opportunities with information such as the expected revenue, planned cost, missed deadlines or the number of interactions per opportunity. This report is mainly used by the sales manager in order to do the periodic review with the teams of the sales pipeline.
+
+
@@ -99,13 +117,25 @@
diff --git a/addons/event/report/report_event_registration.py b/addons/event/report/report_event_registration.py
index 0e33e892432..b529d6ef029 100644
--- a/addons/event/report/report_event_registration.py
+++ b/addons/event/report/report_event_registration.py
@@ -44,7 +44,6 @@ class report_event_registration(osv.osv):
'user_id': fields.many2one('res.users', 'Event Responsible', readonly=True),
'user_id_registration': fields.many2one('res.users', 'Register', readonly=True),
'name_registration': fields.char('Participant / Contact Name',size=45, readonly=True),
- 'speaker_id': fields.many2one('res.partner', 'Speaker', readonly=True),
'company_id': fields.many2one('res.company', 'Company', readonly=True),
}
_order = 'event_date desc'
@@ -64,7 +63,6 @@ class report_event_registration(osv.osv):
r.user_id AS user_id_registration,
r.name AS name_registration,
e.company_id AS company_id,
- e.main_speaker_id AS speaker_id,
to_char(e.date_begin, 'YYYY-MM-DD') AS event_date,
to_char(e.date_begin, 'YYYY') AS year,
to_char(e.date_begin, 'MM') AS month,
@@ -91,7 +89,6 @@ class report_event_registration(osv.osv):
e.user_id,
event_state,
e.company_id,
- e.main_speaker_id,
year,
month,
e.register_max,
diff --git a/addons/event_moodle/__openerp__.py b/addons/event_moodle/__openerp__.py
deleted file mode 100644
index fdfb793b494..00000000000
--- a/addons/event_moodle/__openerp__.py
+++ /dev/null
@@ -1,77 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# 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 .
-#
-##############################################################################
-
-
-{
- 'name': 'Event Moodle',
- 'version': '0.1',
- 'category': 'Tools',
- 'description': """
-Configure your moodle server.
-=============================
-
-With this module you are able to connect your OpenERP with a moodle platform.
-This module will create courses and students automatically in your moodle platform
-to avoid wasting time.
-Now you have a simple way to create training or courses with OpenERP and moodle.
-
-STEPS TO CONFIGURE:
--------------------
-
-1. Activate web service in moodle.
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
->site administration >plugins >web services >manage protocols activate the xmlrpc web service
-
-
->site administration >plugins >web services >manage tokens create a token
-
-
->site administration >plugins >web services >overview activate webservice
-
-
-2. Create confirmation email with login and password.
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-We strongly suggest you to add those following lines at the bottom of your event
-confirmation email to communicate the login/password of moodle to your subscribers.
-
-
-........your configuration text.......
-
-**URL:** your moodle link for exemple: http://openerp.moodle.com
-
-**LOGIN:** ${object.moodle_username}
-
-**PASSWORD:** ${object.moodle_user_password}
-""",
- 'author': 'OpenERP SA',
- 'depends': ['event'],
- 'data': [
- 'wizard_moodle.xml',
- 'event_view.xml',
- 'security/ir.model.access.csv'
- ],
- 'demo': [],
- 'test': [],
- 'installable': True,
- 'auto_install': False,
- 'images': ['images/token.png','images/enable_webservice.png','images/active_xmlrpc.png'],
-}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/event_moodle/event_moodle.py b/addons/event_moodle/event_moodle.py
deleted file mode 100644
index 44d2de4bdd5..00000000000
--- a/addons/event_moodle/event_moodle.py
+++ /dev/null
@@ -1,286 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2012 Tiny SPRL ().
-#
-# 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 .
-#
-##############################################################################
-
-from openerp.osv import fields, osv
-import xmlrpclib
-import string
-import time
-import random
-from random import sample
-from openerp.tools.translate import _
-
-class event_moodle(osv.osv):
- _name = 'event.moodle.config.wiz'
- _columns = {
- 'moodle_username' : fields.char('Moodle Username', 128, help="You can also connect with your username that you define when you create a token"),
- 'moodle_password' : fields.char('Moodle Password', 128),
- 'moodle_token' : fields.char('Moodle Token', 128, help="Put your token that you created in your moodle server"),
- 'server_moodle': fields.char('Moodle Server', 128, required=True,help="URL where you have your moodle server. For exemple: 'http://127.0.0.1' or 'http://localhost'"),
- 'url': fields.char('URL to Moodle Server', size=256, help="The url that will be used for the connection with moodle in xml-rpc"),
- }
-
- _order = 'create_date desc'
-
- _defaults = {
- 'server_moodle': 'http://127.0.0.1',
- }
-
- def configure_moodle(self, cr, uid, ids, context=None):
- url = self.make_url(cr, uid, ids, context=context)
- self.write(cr, uid, ids, {'url': url})
- return {'type': 'ir.actions.act_window_close'}
-
- def find(self, cr, uid, context=None):
- """
- Find the config wizard containing the configuration and raise and error if none is available.
- """
- moodle_config_wiz_ids = self.search(cr, uid, [], context=context)
- if not moodle_config_wiz_ids:
- raise osv.except_osv(_('Error!'),_("First configure your moodle connection."))
- return moodle_config_wiz_ids[0]
-
- def make_url(self, cr, uid, ids, context=None):
- """
- create the good url with the information of the configuration
- @return url for moodle connexion
- """
- def _encode_password(password):
- for i in range(len(password)):
- x = password[i]
- if x not in string.ascii_letters + string.digits:
- unicode_car = (hex(ord(x)))
- hex_car = '%'+str(unicode_car[2:])
- password = password.replace(x,hex_car)
- return password
- url=""
- config_moodle = self.browse(cr, uid, ids[0], context=context)
- if config_moodle.moodle_username and config_moodle.moodle_password:
- #connexion with password and username
- password = _encode_password(config_moodle.moodle_password)
- url = config_moodle.server_moodle + '/moodle/webservice/xmlrpc/simpleserver.php?wsusername=' + config_moodle.moodle_username + '&wspassword=' + password
- if config_moodle.moodle_token:
- #connexion with token
- url = config_moodle.server_moodle + '/moodle/webservice/xmlrpc/server.php?wstoken=' + config_moodle.moodle_token
- return url
-
- def create_moodle_user(self, cr, uid, id, dic_user, context=None):
- """
- create a moodle user
- @param dic_user : is a list of dictonnaries with the moodle information
- @return a liste of dictonaries with the create user id
- """
- #connect to moodle
- url = self.browse(cr, uid, id, context=context).url
- sock = xmlrpclib.ServerProxy(url)
- #add user in moodle and return list of id and username
- return sock.core_user_create_users(dic_user)
-
- def create_moodle_courses(self, cr, uid, id, courses, context=None):
- """
- create a mmodle course
- @param courses : is a list of dictionaries with the moodle course information
- @return a list of dictionaries with the create course id
- """
- #connect to moodle
- url = self.browse(cr, uid, id, context=context).url
- if not url:
- raise osv.except_osv(_('Error!'),_("You must configure your moodle connection."))
- sock = xmlrpclib.ServerProxy(url)
- return sock.core_course_create_courses(courses)
-
- def moodle_enrolled(self, cr, uid, id, enrolled, context=None):
- """
- this method is used to match a course with users
- @param enrolled : list of dictonaries with the course id and the user id
- """
- #connect to moodle
- url = self.browse(cr, uid, id, context=context).url
- sock = xmlrpclib.ServerProxy(url)
- #add enrolled in moodle
- sock.enrol_manual_enrol_users(enrolled)
-
- def create_password(self):
- """
- create a random password
- """
- rand = string.ascii_letters + string.digits
- length = 8
- passwd = ''.join(sample(rand, length))
- passwd = passwd + '+'
- return passwd
-
- def check_email(self, email):
-
- """
- check if email is correct
- """
- if email:
- if (email.count('@') != 1 and email.count('.') < 1):
- raise osv.except_osv(_('Error!'),_("Your email '%s' is wrong.") % (email))
-
- def make_username(self, username, response_courses):
- """
- create a moodle username with a random number for the uniqueness
- @return the moodle username
- """
- if username:
- #remove space in the name
- username = username.replace(" ","_")
- #give an user name
- name_user = username + "%d" % (response_courses,) + "%d" % (random.randint(1,999999),)
- else:
- name_user = "moodle_" + "%d" % (response_courses,) + "%d" % (random.randint(1,999999),)
- return name_user
-
-
-class event_event(osv.osv):
- _inherit = "event.event"
-
- _columns={
- 'moodle_id': fields.integer('Moodle ID', help='The identifier of this event in Moodle'),
- }
-
- def check_registration_limits(self, cr, uid, ids, context=None):
- """
- create moodle courses ,users and match them when an event is confirmed
- if the event_registration is not confirmed then it doesn t nothing
- """
- res = super(event_event, self).check_registration_limits(cr, uid, ids, context=context)
- moodle_pool = self.pool.get('event.moodle.config.wiz')
- moodle_config_wiz_id = moodle_pool.find(cr, uid, context=context)
- list_users=[]
- userid = []
- for event in self.browse(cr, uid, ids, context=context):
- #moodle use time() to store the date
- date = time.strptime(event.date_begin, '%Y-%m-%d %H:%M:%S')
- date = int (time.mktime(date))
- #create the dict of values to create the course in Moodle
- dic_courses= [{
- 'fullname': event.name,
- 'shortname': '',
- 'startdate': date,
- 'summary': event.note,
- 'categoryid':1, #the category hardcoded is 'Miscellaneous'
- }]
- #create a course in moodle and keep the id
- response_courses = moodle_pool.create_moodle_courses(cr, uid, moodle_config_wiz_id, dic_courses, context=context)
- self.write(cr, uid, event.id, {'moodle_id': response_courses[0]['id']})
-
- moodle_uids = []
- for registration in event.registration_ids:
- if registration.state == 'open':
- #enroll the registration in Moodle as it is confirmed
- if not registration.moodle_uid:
- #create a dictionary for an user
- name_user = moodle_pool.make_username(registration.name, response_courses[0]['id'])
- moodle_pool.check_email(registration.email)
- passwd = moodle_pool.create_password()
- dic_users={
- 'username' : name_user,
- 'password' : passwd,
- 'city' : registration.city,
- 'firstname' : registration.name ,
- 'lastname': '',
- 'email': registration.email
- }
- #create the user in moodle
- response_user = moodle_pool.create_moodle_user(cr, uid, moodle_config_wiz_id, [dic_users], context=context)
- for user in response_user:
- self.pool.get('event.registration').write(cr,uid,[registration.id],{'moodle_uid': user['id'], 'moodle_user_password': passwd, 'moodle_username': name_user})
- moodle_uids.append(user['id'])
- else:
- moodle_uids.append(registration.moodle_uid)
-
- #link the course with users
- enrolled = []
- for moodle_user in moodle_uids:
- enrolled.append({
- 'roleid' :'5', #mark as 'Student'
- 'userid' : moodle_user,
- 'courseid' :response_courses[0]['id']
- })
- moodle_pool.moodle_enrolled(cr, uid, moodle_config_wiz_id, enrolled, context=context)
- return res
-
-
-class event_registration(osv.osv):
-
- _inherit = "event.registration"
-
- _columns={
- 'moodle_user_password': fields.char('Password for Moodle User', 128),
- 'moodle_username': fields.char('Moodle Username', 128),
- 'moodle_uid': fields.integer('Moodle User ID'),
- }
-
- def confirm_registration(self, cr, uid, ids, context=None):
- """
- create a user and match to a course if the event is already confirmed
- """
- res = super(event_registration, self).confirm_registration(cr, uid, ids, context=context)
- moodle_pool = self.pool.get('event.moodle.config.wiz')
- moodle_config_wiz_id = moodle_pool.find(cr, uid, context=context)
- for register in self.browse(cr, uid, ids, context=context):
- if register.event_id.state == 'confirm' and register.event_id.moodle_id:
- if not register.moodle_uid:
- #create the user in moodle
- name_user = moodle_pool.make_username(register.name, register.event_id.moodle_id)
- moodle_pool.check_email(register.email)
- passwd = moodle_pool.create_password()
- dic_users = [{
- 'username': name_user,
- 'password': passwd,
- 'city': register.city,
- 'firstname': register.name,
- 'lastname': '', #we could make a split of the register.name on ' ' but it would be inaccurate, so it seems better to let it empty as it's not really useful
- 'email': register.email,
- }]
- response_user = moodle_pool.create_moodle_user(cr, uid, moodle_config_wiz_id, dic_users, context=context)
- #write in database the password and the username
- moodle_user_id = response_user[0]['id']
- self.pool.get('event.registration').write(cr, uid, ids, {'moodle_uid': moodle_user_id, 'moodle_user_password': passwd, 'moodle_username': name_user})
- else:
- moodle_user_id = register.moodle_uid
- enrolled=[{
- 'roleid': '5', #mark as student
- 'userid': moodle_user_id,
- 'courseid': register.event_id.moodle_id
- }]
- moodle_pool.moodle_enrolled(cr, uid, moodle_config_wiz_id, enrolled, context=context)
- return res
-
- def onchange_moodle_name(self, cr, uid, ids, moodle_username, context=None):
- """
- This onchange receive as parameter a username moddle and will fill the moodle_uid and password fields if existing records with this username are found
- @param moodle_username: the existing moodle username
- """
- res = {}
- reg_ids = self.search(cr, uid, [('moodle_username', '=', moodle_username)], order='create_date desc', context=context)
- if reg_ids:
- reg = self.browse(cr, uid, reg_ids[0], context=context)
- res = {'value' :{
- 'moodle_uid': reg.moodle_uid,
- 'name': reg.name,
- 'email':reg.email,
- 'phone':reg.phone,
- 'city': reg.city,
- 'street': reg.street}}
- return res
diff --git a/addons/event_moodle/event_view.xml b/addons/event_moodle/event_view.xml
deleted file mode 100644
index 252e805a6ab..00000000000
--- a/addons/event_moodle/event_view.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
- event.moodle.registration
- event.registration
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- event.moodle.event
- event.event
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/event_moodle/i18n/cs.po b/addons/event_moodle/i18n/cs.po
deleted file mode 100644
index 6621ffd35e0..00000000000
--- a/addons/event_moodle/i18n/cs.po
+++ /dev/null
@@ -1,185 +0,0 @@
-# Czech translation for openobject-addons
-# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2013.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2013-03-31 16:48+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Czech \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:37+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr ""
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr ""
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr ""
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr ""
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr ""
diff --git a/addons/event_moodle/i18n/de.po b/addons/event_moodle/i18n/de.po
deleted file mode 100644
index c1cbb8d8f56..00000000000
--- a/addons/event_moodle/i18n/de.po
+++ /dev/null
@@ -1,198 +0,0 @@
-# German translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-10 08:39+0000\n"
-"Last-Translator: Thorsten Vocks (OpenBig.org) \n"
-"Language-Team: German \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:37+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr "Anbindung mit Benutzer und Passwort"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr "event.moodle.config.wiz"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-"URL Ihres Moodle Servers. Zum Beispiel: 'http://127.0.0.1' oder "
-"'http://localhost'"
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr "Passwort für Moodle Benutzer"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr "Moodle Passwort"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr "Ihre EMail #%s' ist falsch."
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr "Verbindungstoken"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-"Der einfachste Weg für eine OpenERP Verbindung zu einem Moodle Server ist "
-"der Erstellung eines 'Tokens' in Moodle. Dieser wird dann eingesetzt, um "
-"OpenERP als vertrauenswürdige Anwendung zu authentifizieren."
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr "URL des Moodle Servers"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr ""
-"Die url die benutzt wird, um eine Verbindung zu moodle via xml-rpc "
-"herzustellen"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr "Veranstaltung Anmeldung"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr ""
-"Ein anderer Ansatz ist die Erstellung eines Benutzers für OpenERP in Moodle "
-"zu erstellen. Wenn Sie dieses bevorzugen, sollte natürlich sicher gestellt "
-"werden, dass ausreichende Zugriffsrechte erteilt werden."
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr "Moodle Benutzer ID"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr "Moodle Server"
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr "Moodle ID"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr "Server"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr "Fehler !"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr "Sie müssen zuerst Ihre Moodle Verbindung konfigurieren."
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr "Moodle Benutzername"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr "Konfigurieren Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr "Moodle Token"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr ""
-"Sie können sich ebenso mit Ihrem Benutzernamen, den Sie bei der Token "
-"Erstellung erzeugt haben, anmelden."
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr "Die Identifizierung Ihrer Veranstaltung in Moodle"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr "Tragen Sie den in Moodle erstellten Token ein"
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr "Moodle Konfiguration"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr "oder"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr "Konfigurieren Sie zuerst Ihre Moodle Verbindung"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr "Anwenden"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr "Veranstaltung"
diff --git a/addons/event_moodle/i18n/es.po b/addons/event_moodle/i18n/es.po
deleted file mode 100644
index ccbed7ef575..00000000000
--- a/addons/event_moodle/i18n/es.po
+++ /dev/null
@@ -1,194 +0,0 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-12 20:43+0000\n"
-"Last-Translator: lambdasoftware \n"
-"Language-Team: Spanish \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:38+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr "Conexión con nombre de usuario y contraseña"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr "event.moodle.config.wiz"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-"Dirección (URL) de su servidor moodle. Por ejemplo: 'http://127.0.0.1' o "
-"'http://localhost'"
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr "Contraseña del usuario Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr "Contraseña de Moodle"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr "Su email '%s' es erróneo."
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr "Conexión con testigo (token)"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-"La manera más sencilla para conectar OpenERP con el servidor moodle es crear "
-"un 'token' en Moodle. Esto permitirá autenticar a OpenERP como una "
-"aplicación de confianza."
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr "Dirección (URL) al servidor de Moodle"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr "Dirección que se usará para conectar con moodle a través de xml-rpc"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr "Registro de eventos"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr ""
-"Otro enfoque es crear un usuario para OpenERP en Moodle. Si lo hace, "
-"asegúrese de que el usuario tiene los permisos adecuados."
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr "ID del usario Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr "Servidor Moodle"
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr "ID de Moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr "Servidor"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr "¡Error!"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr "Debe configurar la conexión con moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr "Nombre de usuario Moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr "Configurar Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr "Testigo (Token) de Moodle"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr ""
-"También puede conectarse con el nombre de usuario que definió cuando creó el "
-"token"
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr "Identificador de este evento en Moodle"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr "Ponga el token que ha creado en su servidor moodle"
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr "Configuración de Moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr "o"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr "Configure primero su conexion moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr "Aplicar"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr "Evento"
diff --git a/addons/event_moodle/i18n/event_moodle.pot b/addons/event_moodle/i18n/event_moodle.pot
deleted file mode 100644
index 1bae5a8dcd2..00000000000
--- a/addons/event_moodle/i18n/event_moodle.pot
+++ /dev/null
@@ -1,175 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * event_moodle
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 7.0alpha\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-21 17:05+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: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid "URL where you have your moodle server. For exemple: 'http://127.0.0.1' or 'http://localhost'"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr ""
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "The easiest way to connect OpenERP with a moodle server is to create a 'token' in Moodle. It will be used to authenticate OpenERP as a trustable application."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Another approach is to create a user for OpenERP in Moodle. If you do so, make sure that this user has appropriate access rights."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr ""
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr ""
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid "You can also connect with your username that you define when you create a token"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr ""
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr ""
-
diff --git a/addons/event_moodle/i18n/fr.po b/addons/event_moodle/i18n/fr.po
deleted file mode 100644
index 387fa94bea7..00000000000
--- a/addons/event_moodle/i18n/fr.po
+++ /dev/null
@@ -1,194 +0,0 @@
-# French translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-21 13:44+0000\n"
-"Last-Translator: Julius \n"
-"Language-Team: French \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:37+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr "Connexion avec identifiant et mot de passe"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr "event.moodle.config.wiz"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-"L'Url de votre serveur Moodle. Par exemple : 'http://127.0.0.1' ou "
-"http://localhost'"
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr "Mot de passe de l'utilisateur Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr "Mot de passe Moodle"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr "Votre email '%s' est incorrect"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr "Connexion avec une session d'authentification (Token)"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-"La manière la plus simple de se connecter à OpenERP avec un serveur moodle "
-"est de créer une session d'authentification (token). Ceci permet "
-"d'authentifier OpenERP comme une application de confiance"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr "URL du serveur Moodle"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr "L'url qui sera utilisé pour la connexion de Moodle en xml-rpc"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr "Inscription à l'événement"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr ""
-"Une autre approche est de créer un utilisateur pour OpenERP sur Moodle. Si "
-"vous faîtes cela, vérifier que l'utilisateur a des droits d'accés appropriés"
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr "Identifiant de l'utilisateur Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr "Serveur Moodle"
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr "Identifiant Moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr "Serveur"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr "Erreur !"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr "Vous devez configurer votre connexion moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr "Nom de l'utilisateur Moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr "Configurer Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr "Session d'authentification (Token)"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr ""
-"Vous pouvez aussi vous connecter avec votre identifiant que vous avez défini "
-"lors de la création d'un Token"
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr "Configuration Moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr "ou"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr "Première configuration de votre connexion Moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr "Annuler"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr "Évènement"
diff --git a/addons/event_moodle/i18n/hr.po b/addons/event_moodle/i18n/hr.po
deleted file mode 100644
index 2759988dca2..00000000000
--- a/addons/event_moodle/i18n/hr.po
+++ /dev/null
@@ -1,185 +0,0 @@
-# Croatian translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-09 20:12+0000\n"
-"Last-Translator: Goran Kliska \n"
-"Language-Team: Croatian \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:38+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr "Lozinka za Moodle korisnika"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr "Moodle lozinka"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr "Vaša email adresa '%s' nije ispravna."
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr "URL Moodle poslužitelja"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr "Moodle poslužitelj"
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr "Moodle ID"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr "Poslužitelj"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr "Greška!"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr "Moodle korisničko ime"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr "Moodle postavke"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr "Moodle token"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr "ili"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr "Primjeni"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr "Odustani"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr "Event"
diff --git a/addons/event_moodle/i18n/hu.po b/addons/event_moodle/i18n/hu.po
deleted file mode 100644
index b092c30b3b4..00000000000
--- a/addons/event_moodle/i18n/hu.po
+++ /dev/null
@@ -1,197 +0,0 @@
-# Hungarian translation for openobject-addons
-# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2013.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2013-02-28 08:28+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Hungarian \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:37+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr "Csatlakozás felhasználónévvel és jelszóval"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr "event.moodle.config.wiz"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-"A moodle tanulási környezet szerver helyének URL elérési útja. Pédául: "
-"'http://127.0.0.1' or 'http://localhost'"
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr "Jelszó a Moodle tanulási környezet felhasználónak"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr "Moodle tanulási környezeti jelszó"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr "Az '%s' e-mailje hibás."
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr "Szimbólum tokennel való belépés"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-"A legkönnyebb kapcsolódási lehetőség Moodle szerverrel az OpenERP "
-"rendszerhez úgy, hogy egy szimbólum 'tokent' hoz A Moodle-n. Ezt az OpenERP "
-"hitelesítésére lesz használva mint hitelesített alkalmazás."
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr "URL a Moodle szerverhez"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr ""
-"Ezt az url elérési útat az xml-rpc fogja használni a Moodle tanulási "
-"környezet csatlakozására"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr "Rendezvény regisztráció"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr ""
-"Másik lehetőség, hogy az OpenERP felhasználót a moodle tanulási környezetből "
-"állítja be. Ha így tesz, akkor győződjön meg, hogy ennek a felhasználónak "
-"megfelelő elérési jogosultságai vannak."
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr "Moodle tanulási környezet felhasználó ID azonosítója"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr "Moodle szerver"
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr "Moodle ID azonosító"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr "Szerver"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr "Hiba!"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr "Be kell állítani a Moodle tanulási környezet csatlakozást."
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr "Moodle tanulási környezet felhasználó"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr "Moodle tanulási környezet beállítása"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr "Moodle tanulási környezet Token"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr ""
-"A token létrehozásakor létrehozott felhasználó nevével is kapcsolódhat"
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr "Ennek az eseménynek az azonosítójaa moodle tanulási környezetben"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr ""
-"Tegye ide a tokent amit a Moodle tanulási környezet szerveren létrehozott"
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr "Moodle tanulási környezet beállítás"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr "vagy"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr "Előszőr állítsa be a Moodle tanulási környezet csatlakozást"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr "Alkalmaz"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr "Mégsem"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr "Esemény"
diff --git a/addons/event_moodle/i18n/mk.po b/addons/event_moodle/i18n/mk.po
deleted file mode 100644
index 750bafb5462..00000000000
--- a/addons/event_moodle/i18n/mk.po
+++ /dev/null
@@ -1,194 +0,0 @@
-# Macedonian translation for openobject-addons
-# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2013.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2013-03-08 14:43+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Macedonian \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:37+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr "Конекција со корисничко име и лозинка"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr "event.moodle.config.wiz"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-"URl адресата на вашиот moodle сервер. На пример, 'http://127.0.0.1' или "
-"'http://localhost'"
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr "Лозинка за Moodle корисник"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr "Moodle лозинка"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr "Вашата е-пошта '%s' е погрешна."
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr "Конекција со токен"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-"Најлесен начин да се поврзете на OpenERP со moodle сервер е да креирате "
-"'токен' во Moodle. Тој ќе се користи за да се идентификува OpenERP како "
-"доверлива апликација."
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr "URL на Moodle Сервер"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr "URL која ќе се користи за конекција со moodle во xml-rpc"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr "Регистрација на настан"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr ""
-"Другиот начин е да се креира корисник за OpenERP во Moodle. Доколку го "
-"направите тоа, погрижете се овој корисник да ги има сите права за пристап."
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr "ID на Moodle корисник"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr "Moodle Сервер"
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr "Moodle ID"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr "Сервер"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr "Грешка!"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr "Мора да ја конфигурирате вашата moodle конекција."
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr "Moodle корисничко име"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr "Конфигурирај Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr "Moodle Токен"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr ""
-"Можете да се конектирате со вашето корисничко име што го дефинирате кога "
-"креирате токен"
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr "Идентификувач на овој настан во Moodle"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr "Ставете го токенот кој го креиравте во вашиот Moodle сервер"
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr "Moodle Конфигурација"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr "или"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr "Најпрво конфигурирајте ја вашата moodle конекција."
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr "Примени"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr "Откажи"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr "Настан"
diff --git a/addons/event_moodle/i18n/mn.po b/addons/event_moodle/i18n/mn.po
deleted file mode 100644
index 512eecce92a..00000000000
--- a/addons/event_moodle/i18n/mn.po
+++ /dev/null
@@ -1,185 +0,0 @@
-# Mongolian translation for openobject-addons
-# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2013.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2013-02-06 09:39+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Mongolian \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:38+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr "Хэрэглэгчийн нэр ба нууц үгтэй холболт"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr "event.moodle.config.wiz"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr "Moodle хэрэглэгчийн нууц үг"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr "Moodle нууц үг"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr "Таны емайл '%s' буруу байна."
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr "Moodle серверийн URL"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr "Үйл явдлын бүртгэл"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr "Moodle хэрэглэгч ID"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr "Moodle Сервер"
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr "Moodle ID"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr "Сервер"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr "Алдаа гарлаа!"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr "Moodle хэрэглэгчийн нэр"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr "Moodle тохиргоо"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr "Moodle тасалбар"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr "Moodle тохиргоо"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr "эсвэл"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr "Эхлээд moodleхолболтыг тохируул"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr "Ашиглах"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr "Цуцлах"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr "Үйл ажиллагаа"
diff --git a/addons/event_moodle/i18n/nl.po b/addons/event_moodle/i18n/nl.po
deleted file mode 100644
index eb794e9d1c6..00000000000
--- a/addons/event_moodle/i18n/nl.po
+++ /dev/null
@@ -1,185 +0,0 @@
-# Dutch translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-11-30 20:02+0000\n"
-"Last-Translator: Erwin van der Ploeg (BAS Solutions) \n"
-"Language-Team: Dutch \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:37+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr "Connectie met gebruikersnaam en wachtwoord."
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr "event.moodle.config.wiz"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr "Wachtwoord voor Moodle gebruiker"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr "Moodle wachtwoord"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr "Uwr email '%s' is fout."
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr "Connectie met een token"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr "URL van Moodle Server"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr "Evenementregistratie"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr "Moodle User ID"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr "Moodle Server"
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr "Moodle ID"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr "Server"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr "Fout!"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr "Moodle gebruikersnaam"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr "Moodle instellen"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr "Moodle Token"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr "Moodle instellingen"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr "of"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr "Stel eerst uw Moodle connectie in."
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr "Toepassen"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr "Annuleren"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr "Evenement"
diff --git a/addons/event_moodle/i18n/pt.po b/addons/event_moodle/i18n/pt.po
deleted file mode 100644
index 72df6577c6d..00000000000
--- a/addons/event_moodle/i18n/pt.po
+++ /dev/null
@@ -1,187 +0,0 @@
-# Portuguese translation for openobject-addons
-# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2013.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2013-01-04 17:35+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Portuguese \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:38+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr "Ligação com nome de utilizador e senha"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr "event.moodle.config.wiz"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-"Endereço onde tem o seu servidor moodle. Por exemplo: 'http://127.0.0.1' ou "
-"'http://localhost'"
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr "Senha para o utilizador Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr "Senha Moodle"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr "O seu email '%s' está errado."
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr "Endereço para o servidor Moodle"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr "O endereço que será usado para a ligação com o moodle em xml-rpc"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr "Servidor Moodle"
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr "Servidor"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr "Erro!"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr "Tem que configurar a sua ligação ao moodle."
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr "Configurar Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr "Configuração Moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr ""
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr "Primeiro configure a sua ligação ao moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr "Aplicar"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr "Evento"
diff --git a/addons/event_moodle/i18n/pt_BR.po b/addons/event_moodle/i18n/pt_BR.po
deleted file mode 100644
index 94a7220d015..00000000000
--- a/addons/event_moodle/i18n/pt_BR.po
+++ /dev/null
@@ -1,195 +0,0 @@
-# Brazilian Portuguese translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-24 18:29+0000\n"
-"Last-Translator: Fábio Martinelli - http://zupy.com.br "
-"\n"
-"Language-Team: Brazilian Portuguese \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:38+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr "Conectar com usuário e senha"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr "event.moodle.config.wiz"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-"URL aonde está configurado o servidor moodle. Por exemplo 'http://127.0.0.1' "
-"ou 'http://localhost'"
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr "Senha para o Usuário Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr "Senha Moodle"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr "Seu email '%s' está errado."
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr "Conectar com um Token"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-"A maneira mais fácil de conectar o OpenERP com um servidor moodle é criar um "
-"token no Moodle. Ele será usado para autenticar o OpenERP como uma aplicação "
-"confiável."
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr "URL para o Servidor Moodle"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr "A url que será usada para a conexão do moodle em xml-rpc"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr "Inscrição no Evento"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr ""
-"Outra maneira é criar um usuário para o OpenERP no Moodle. Se você fizer "
-"dessa forma, tenha certeza de que este usuário possui os direitos de acesso "
-"apropriados."
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr "ID do Usuário no Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr "Servidor Moodle"
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr "ID Moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr "Servidor"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr "Erro!"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr "Você precisa configurar sua conexão ao moodle."
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr "Usuário Moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr "Configurar Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr "Token Moodle"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr ""
-"Você também pode conectar com o usuário que você definiu ao criar um token"
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr "O identificador deste evento no Moodle"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr "Coloque o token que você criou no seu servidor moodle"
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr "Configuracão do Moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr "ou"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr "Primeiro configure sua conexão do Moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr "Aplicar"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr "Evento"
diff --git a/addons/event_moodle/i18n/ro.po b/addons/event_moodle/i18n/ro.po
deleted file mode 100644
index 56a9d877616..00000000000
--- a/addons/event_moodle/i18n/ro.po
+++ /dev/null
@@ -1,195 +0,0 @@
-# Romanian translation for openobject-addons
-# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2013.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2013-01-23 21:24+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Romanian \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:38+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr "Conectare cu numele de utilizator si parola"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr "wiz.config.eveniment.moodle"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-"URL-ul unde aveti serverul moodle. De exemplu: 'http://127.0.0.1' or "
-"'http://localhost'"
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr "Parola pentru Utilizatorul Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr "Parola Moodle"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr "Email-ul dumneavoastra '%s' este gresit."
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr "Conectare cu un Simbol"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-"Cel mai usor mod de conectare a lui OpenERP cu un server moodle este sa "
-"creati un 'simbol' in Moodle. Va fi folosit pentru a autentifica OpenERP "
-"drept o aplicatie de incredere."
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr "URL catre Serverul Moodle"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr "Url-ul care va fi folosit pentru conectarea cu moodle in xml-rpc"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr "Inregistrarea Evenimentelor"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr ""
-"O alta abordare este sa creati un utilizator pentru OpenERP in Moodle. Daca "
-"faceti acest lucru, asigurati-va ca acest utilizator are drepturi de acces "
-"adecvate."
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr "ID Utilizator Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr "Server Moodle"
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr "ID Moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr "Server"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr "Eroare!"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr "Trebuie sa configurati conexiunea moodle."
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr "Nume de utilizator Moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr "Configureaza Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr "Simbol Moodle"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr ""
-"De asemenea, puteti sa va conectati cu numele de utilizator pe care il "
-"definiti atunci cand creati un simbol"
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr "Identificatorul acestui eveniment in Moodle"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr "Puneti simbolul pe care l-ati creat in serverul moodle"
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr "Configurare Moodle"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr "sau"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr "Mai intai configurati-va conexiunea moodle."
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr "Aplica"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr "Anuleaza"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr "Eveniment"
diff --git a/addons/event_moodle/i18n/ru.po b/addons/event_moodle/i18n/ru.po
deleted file mode 100644
index b42a84a023b..00000000000
--- a/addons/event_moodle/i18n/ru.po
+++ /dev/null
@@ -1,185 +0,0 @@
-# Russian translation for openobject-addons
-# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2013.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2013-11-13 05:19+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Russian \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-11-14 05:23+0000\n"
-"X-Generator: Launchpad (build 16820)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr ""
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr ""
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr ""
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr ""
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr ""
diff --git a/addons/event_moodle/i18n/sl.po b/addons/event_moodle/i18n/sl.po
deleted file mode 100644
index f6aba48c1ff..00000000000
--- a/addons/event_moodle/i18n/sl.po
+++ /dev/null
@@ -1,185 +0,0 @@
-# Slovenian translation for openobject-addons
-# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2013.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2013-01-26 12:20+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Slovenian \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:38+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr "event.moodle.config.wiz"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr ""
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr "Registracija dogodka"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr "Strežnik"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr "Napaka!"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr ""
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr ""
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr ""
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr "ali"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr ""
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr "Uporabi"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr "Prekliči"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr "Dogodek"
diff --git a/addons/event_moodle/i18n/tr.po b/addons/event_moodle/i18n/tr.po
deleted file mode 100644
index 55ab0120d94..00000000000
--- a/addons/event_moodle/i18n/tr.po
+++ /dev/null
@@ -1,193 +0,0 @@
-# Turkish translation for openobject-addons
-# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2013.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2013-02-04 14:05+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Turkish
\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:38+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr "Kullanıcı adı ve parola ile bağlanma"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr "etkinlik.moodle.yapılanma.sih"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-"Moodle sunucunuzun bulunduğu URL. Örneğin: 'http://127.0.0.1' or "
-"'http://localhost'"
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr "Moodle kullanıcı parolası"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr "Moodle Parolası"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr "Epostanız '%s' yanlıştır."
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr "Andaç ile bağlanma"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-"OpenERP ye bir moodle sunucusu ile en kolay bağlanma yolu Moodle da bir "
-"'andaç' oluşturmaktır. OpenERP nin güvenilir bir uygulama olduğunu "
-"doğrulamak için kullanılacaktır."
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr "Moodle Sunucusu için URL"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr "xml-rpc de moodle ile bağlanmak için kullanılacak url."
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr "Etkinlik Kaydı"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr ""
-"Diğer bir yaklaşım Moodle da OpenERP için bir kullanıcı oluşturmaktır. Böyle "
-"yaparsanız, bu kullanıcının uygun izinlerinin olduğundan emin olun."
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr "Moodle Kullanıcı ID"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr "Moodle Sunucusu"
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr "Moodle ID"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr "Sunucu"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr "Hata!"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr "Moodle bağlantınızı yapılandırmalısınız."
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr "Moodle Kullanıcı Adı"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr "Moodle Yapılandır"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr "Moodle Andaçı"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr ""
-"Bir andaç oluştururken tanımladığınız kullanıcı adınızla da bağlanabilirsiniz"
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr "Moodle da bu etkinliğin kimliği"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr "Moodle sunucusunda oluşturduğunuz andaçı koyun"
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr "Modle Yapılandırması"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr "ya da"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr "Önce moodle bağlantınızı yapılandırın."
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr "Uygula"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr "İptal"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr "Etkinlik"
diff --git a/addons/event_moodle/i18n/zh_CN.po b/addons/event_moodle/i18n/zh_CN.po
deleted file mode 100644
index 006004b929e..00000000000
--- a/addons/event_moodle/i18n/zh_CN.po
+++ /dev/null
@@ -1,188 +0,0 @@
-# Chinese (Simplified) translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-30 00:29+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Chinese (Simplified) \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:38+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with username and password"
-msgstr "用户名和密码的链接"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
-msgid "event.moodle.config.wiz"
-msgstr "event.moodle.config.wiz"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,server_moodle:0
-msgid ""
-"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
-"'http://localhost'"
-msgstr ""
-"你的 moodle 服务器的URL。\r\n"
-"例如:“http://127.0.0.1”或“http://localhost”"
-
-#. module: event_moodle
-#: field:event.registration,moodle_user_password:0
-msgid "Password for Moodle User"
-msgstr "Moodle用户密码"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_password:0
-msgid "Moodle Password"
-msgstr "Moodle 密码"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Your email '%s' is wrong."
-msgstr "你的邮件 '%s' 是错误的"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Connection with a Token"
-msgstr "用 令牌 链接"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"The easiest way to connect OpenERP with a moodle server is to create a "
-"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
-"application."
-msgstr ""
-"用Moodle服务器连接OpenERP的最简单的方法是创建一个“标记”在Moodle。将使用它作为可信赖的应用程序中进行身份验证OpenERP的。"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,url:0
-msgid "URL to Moodle Server"
-msgstr "Moodle 服务器的URL"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,url:0
-msgid "The url that will be used for the connection with moodle in xml-rpc"
-msgstr "XML-RPC中的URL将被用于连接与Moodle"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_registration
-msgid "Event Registration"
-msgstr "事件记录"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid ""
-"Another approach is to create a user for OpenERP in Moodle. If you do so, "
-"make sure that this user has appropriate access rights."
-msgstr "在moodle中创建一个Openerp用户的其它方法。如果你这样做了,确实这用户有适当的访问权限。"
-
-#. module: event_moodle
-#: field:event.registration,moodle_uid:0
-msgid "Moodle User ID"
-msgstr "Moodle 用户ID"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,server_moodle:0
-msgid "Moodle Server"
-msgstr "Moodle 服务器"
-
-#. module: event_moodle
-#: field:event.event,moodle_id:0
-msgid "Moodle ID"
-msgstr "Moodle ID"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Server"
-msgstr "服务器"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#: code:addons/event_moodle/event_moodle.py:105
-#: code:addons/event_moodle/event_moodle.py:137
-#, python-format
-msgid "Error!"
-msgstr "错误!"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:105
-#, python-format
-msgid "You must configure your moodle connection."
-msgstr "你必须配置你的 Moodle 链接"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_username:0
-#: field:event.registration,moodle_username:0
-msgid "Moodle Username"
-msgstr "Moodle 用户名"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-#: model:ir.actions.act_window,name:event_moodle.configure_moodle
-msgid "Configure Moodle"
-msgstr "配置 Moodle"
-
-#. module: event_moodle
-#: field:event.moodle.config.wiz,moodle_token:0
-msgid "Moodle Token"
-msgstr "Moodle 令牌"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_username:0
-msgid ""
-"You can also connect with your username that you define when you create a "
-"token"
-msgstr "当你创建了一个令牌,你也能用你定义的用户名链接。"
-
-#. module: event_moodle
-#: help:event.event,moodle_id:0
-msgid "The identifier of this event in Moodle"
-msgstr "该事件在 Moodle 中的标识"
-
-#. module: event_moodle
-#: help:event.moodle.config.wiz,moodle_token:0
-msgid "Put your token that you created in your moodle server"
-msgstr "把你的令牌 放在你的服务器中"
-
-#. module: event_moodle
-#: model:ir.ui.menu,name:event_moodle.wizard_moodle
-msgid "Moodle Configuration"
-msgstr "Moodle 配置"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "or"
-msgstr "或"
-
-#. module: event_moodle
-#: code:addons/event_moodle/event_moodle.py:57
-#, python-format
-msgid "First configure your moodle connection."
-msgstr "第一次配置的你moodle连接"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Apply"
-msgstr "应用"
-
-#. module: event_moodle
-#: view:event.moodle.config.wiz:0
-msgid "Cancel"
-msgstr "取消"
-
-#. module: event_moodle
-#: model:ir.model,name:event_moodle.model_event_event
-msgid "Event"
-msgstr "事件"
diff --git a/addons/event_moodle/security/ir.model.access.csv b/addons/event_moodle/security/ir.model.access.csv
deleted file mode 100644
index 93a9252162d..00000000000
--- a/addons/event_moodle/security/ir.model.access.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_event_moodle,event.moodle.admin,model_event_moodle_config_wiz,event.group_event_manager,1,1,1,1
-access_event_moodle_user,event.moodle.usr,model_event_moodle_config_wiz,event.group_event_user,0,0,0,0
diff --git a/addons/event_moodle/wizard_moodle.xml b/addons/event_moodle/wizard_moodle.xml
deleted file mode 100644
index ef8af01ec3b..00000000000
--- a/addons/event_moodle/wizard_moodle.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
- moodle.config.wizard.form
- event.moodle.config.wiz
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Configure Moodle
- event.moodle.config.wiz
-
- form
- form
- new
-
-
-
-
-
- open
-
-
-
-
-
-
diff --git a/addons/event_sale/__openerp__.py b/addons/event_sale/__openerp__.py
index c274669af98..88e27fd9a3d 100644
--- a/addons/event_sale/__openerp__.py
+++ b/addons/event_sale/__openerp__.py
@@ -39,7 +39,10 @@ this event.
""",
'author': 'OpenERP SA',
'depends': ['event', 'sale_crm'],
- 'data': ['event_sale_view.xml'],
+ 'data': [
+ 'event_sale_view.xml',
+ 'event_sale_data.xml',
+ ],
'demo': ['event_demo.xml'],
'test': ['test/confirm.yml'],
'installable': True,
diff --git a/addons/event_sale/event_sale.py b/addons/event_sale/event_sale.py
index 2d409453682..aa02d26e4b2 100644
--- a/addons/event_sale/event_sale.py
+++ b/addons/event_sale/event_sale.py
@@ -116,17 +116,29 @@ class event_event(osv.osv):
result[rec.id] = sum([ep.register_max for ep in rec.event_ticket_ids])
return result
+ def _get_tickets(self, cr, uid, context={}):
+ md = self.pool.get('ir.model.data')
+ try:
+ dummy, res_id = md.get_object_reference(cr, uid, 'event_sale', 'product_product_event')
+ except ValueError:
+ return []
+ return [{
+ 'name': _('Subscription'),
+ 'product_id': res_id,
+ 'price': 0,
+ }]
+
_columns = {
'event_ticket_ids': fields.one2many('event.event.ticket', "event_id", "Event Ticket"),
- 'organizer_id': fields.many2one('res.partner', "Organizer"),
- 'phone': fields.related('organizer_id', 'phone', type='char', string='Phone'),
- 'email': fields.related('organizer_id', 'email', type='char', string='Email'),
'register_max': fields.function(_get_register_max,
string='Maximum Registrations',
help="The maximum registration level is equal to the sum of the maximum registration of event ticket." +
"If you have too much registrations you are not able to confirm your event. (0 to ignore this rule )",
type='integer')
}
+ _defaults = {
+ 'event_ticket_ids': _get_tickets
+ }
def check_registration_limits(self, cr, uid, ids, context=None):
for event in self.browse(cr, uid, ids, context=context):
@@ -184,6 +196,18 @@ class event_ticket(osv.osv):
'register_prospect': fields.function(_get_register, string='Unconfirmed Registrations', type='integer', multi='register_numbers'),
'register_attended': fields.function(_get_register, string='# of Participations', type='integer', multi='register_numbers'),
}
+ def _default_product_id(self, cr, uid, context={}):
+ md = self.pool.get('ir.model.data')
+ try:
+ dummy, res_id = md.get_object_reference(cr, uid, 'event_sale', 'product_product_event')
+ except ValueError:
+ return False
+ return res_id
+
+ _defaults = {
+ 'product_id': _default_product_id
+ }
+
def check_registration_limits_before(self, cr, uid, ids, number, context=None):
for ticket in self.browse(cr, uid, ids, context=context):
diff --git a/addons/event_sale/event_sale_data.xml b/addons/event_sale/event_sale_data.xml
new file mode 100644
index 00000000000..9c5dae6042b
--- /dev/null
+++ b/addons/event_sale/event_sale_data.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ Generic Events
+
+
+
+ 10.0
+
+ 30.0
+
+
+ Event Subscription
+
+ service
+
+
+
+
+
+
+
+
diff --git a/addons/event_sale/event_sale_view.xml b/addons/event_sale/event_sale_view.xml
index ee71820ff30..33bd7d7469e 100644
--- a/addons/event_sale/event_sale_view.xml
+++ b/addons/event_sale/event_sale_view.xml
@@ -57,9 +57,6 @@
-
-
-
diff --git a/addons/fleet/__openerp__.py b/addons/fleet/__openerp__.py
index fc7649de20e..29c0e9d3ceb 100644
--- a/addons/fleet/__openerp__.py
+++ b/addons/fleet/__openerp__.py
@@ -49,13 +49,14 @@ Main Features
'board'
],
'data' : [
+ 'security/fleet_security.xml',
+ 'security/ir.model.access.csv',
'fleet_view.xml',
'fleet_cars.xml',
'fleet_data.xml',
'fleet_board_view.xml',
],
'images': ['images/costs_analysis.jpeg','images/indicative_costs_analysis.jpeg','images/vehicles.jpeg','images/vehicles_contracts.jpeg','images/vehicles_fuel.jpeg','images/vehicles_odometer.jpeg','images/vehicles_services.jpeg'],
- 'update_xml' : ['security/fleet_security.xml','security/ir.model.access.csv'],
'demo': ['fleet_demo.xml'],
diff --git a/addons/fleet/fleet.py b/addons/fleet/fleet.py
index 483f989fcde..2750485844a 100644
--- a/addons/fleet/fleet.py
+++ b/addons/fleet/fleet.py
@@ -160,8 +160,8 @@ class fleet_vehicle_model(osv.Model):
'brand_id': fields.many2one('fleet.vehicle.model.brand', 'Model Brand', required=True, help='Brand of the vehicle'),
'vendors': fields.many2many('res.partner', 'fleet_vehicle_model_vendors', 'model_id', 'partner_id', string='Vendors'),
'image': fields.related('brand_id', 'image', type="binary", string="Logo"),
- 'image_medium': fields.related('brand_id', 'image_medium', type="binary", string="Logo"),
- 'image_small': fields.related('brand_id', 'image_small', type="binary", string="Logo"),
+ 'image_medium': fields.related('brand_id', 'image_medium', type="binary", string="Logo (medium)"),
+ 'image_small': fields.related('brand_id', 'image_small', type="binary", string="Logo (small)"),
}
@@ -354,8 +354,8 @@ class fleet_vehicle(osv.Model):
'power': fields.integer('Power', help='Power in kW of the vehicle'),
'co2': fields.float('CO2 Emissions', help='CO2 emissions of the vehicle'),
'image': fields.related('model_id', 'image', type="binary", string="Logo"),
- 'image_medium': fields.related('model_id', 'image_medium', type="binary", string="Logo"),
- 'image_small': fields.related('model_id', 'image_small', type="binary", string="Logo"),
+ 'image_medium': fields.related('model_id', 'image_medium', type="binary", string="Logo (medium)"),
+ 'image_small': fields.related('model_id', 'image_small', type="binary", string="Logo (small)"),
'contract_renewal_due_soon': fields.function(_get_contract_reminder_fnc, fnct_search=_search_contract_renewal_due_soon, type="boolean", string='Has Contracts to renew', multi='contract_info'),
'contract_renewal_overdue': fields.function(_get_contract_reminder_fnc, fnct_search=_search_get_overdue_contract_reminder, type="boolean", string='Has Contracts Overdued', multi='contract_info'),
'contract_renewal_name': fields.function(_get_contract_reminder_fnc, type="text", string='Name of contract to renew soon', multi='contract_info'),
@@ -559,7 +559,7 @@ class fleet_vehicle_log_fuel(osv.Model):
'inv_ref': fields.char('Invoice Reference', size=64),
'vendor_id': fields.many2one('res.partner', 'Supplier', domain="[('supplier','=',True)]"),
'notes': fields.text('Notes'),
- 'cost_id': fields.many2one('fleet.vehicle.cost', 'Cost'),
+ 'cost_id': fields.many2one('fleet.vehicle.cost', 'Cost', required=True, ondelete='cascade'),
'cost_amount': fields.related('cost_id', 'amount', string='Amount', type='float', store=True), #we need to keep this field as a related with store=True because the graph view doesn't support (1) to address fields from inherited table and (2) fields that aren't stored in database
}
_defaults = {
@@ -600,7 +600,7 @@ class fleet_vehicle_log_services(osv.Model):
'vendor_id': fields.many2one('res.partner', 'Supplier', domain="[('supplier','=',True)]"),
'cost_amount': fields.related('cost_id', 'amount', string='Amount', type='float', store=True), #we need to keep this field as a related with store=True because the graph view doesn't support (1) to address fields from inherited table and (2) fields that aren't stored in database
'notes': fields.text('Notes'),
- 'cost_id': fields.many2one('fleet.vehicle.cost', 'Cost'),
+ 'cost_id': fields.many2one('fleet.vehicle.cost', 'Cost', required=True, ondelete='cascade'),
}
_defaults = {
'date': fields.date.context_today,
@@ -799,7 +799,7 @@ class fleet_vehicle_log_contract(osv.Model):
'cost_frequency': fields.selection([('no','No'), ('daily', 'Daily'), ('weekly','Weekly'), ('monthly','Monthly'), ('yearly','Yearly')], 'Recurring Cost Frequency', help='Frequency of the recuring cost', required=True),
'generated_cost_ids': fields.one2many('fleet.vehicle.cost', 'contract_id', 'Generated Costs', ondelete='cascade'),
'sum_cost': fields.function(_get_sum_cost, type='float', string='Indicative Costs Total'),
- 'cost_id': fields.many2one('fleet.vehicle.cost', 'Cost'),
+ 'cost_id': fields.many2one('fleet.vehicle.cost', 'Cost', required=True, ondelete='cascade'),
'cost_amount': fields.related('cost_id', 'amount', string='Amount', type='float', store=True), #we need to keep this field as a related with store=True because the graph view doesn't support (1) to address fields from inherited table and (2) fields that aren't stored in database
}
_defaults = {
diff --git a/addons/fleet/fleet_demo.xml b/addons/fleet/fleet_demo.xml
index a550ae78da5..2f9b71b3bb5 100644
--- a/addons/fleet/fleet_demo.xml
+++ b/addons/fleet/fleet_demo.xml
@@ -1,8 +1,9 @@
+
-
+
diff --git a/addons/fleet/fleet_view.xml b/addons/fleet/fleet_view.xml
index 1258e49aa2d..a0ced74a509 100644
--- a/addons/fleet/fleet_view.xml
+++ b/addons/fleet/fleet_view.xml
@@ -43,6 +43,7 @@
+
fleet.vehicle.model.treefleet.vehicle.model
@@ -565,7 +566,7 @@
-
fleet.vehicle.odometer.graph
@@ -671,6 +673,23 @@
+
+
+ fleet.vehicle.log.fuel.search
+ fleet.vehicle.log.fuel
+
+
+
+
+
+
+
+
+
+
+
+
+ fleet.vehicle.log.fuel.graph
@@ -690,6 +709,7 @@
fleet.vehicle.log.fuelformtree,form,graph
+ {"search_default_groupby_vehicle" : True}
\n"
+" Manage all your contracts (leasing, insurances, etc.) with\n"
+" their related services, costs. OpenERP will automatically "
+"warn\n"
+" you when some contracts have to be renewed.\n"
+"
\n"
+" Each contract (e.g.: leasing) may include several services\n"
+" (reparation, insurances, periodic maintenance).\n"
+"
\n"
+" OpenERP helps you managing the costs for your different\n"
+" vehicles. Costs are created automatically from services,\n"
+" contracts (fixed or recurring) and fuel logs.\n"
+"
\n"
+" Here you can add refuelling entries for all vehicles. You "
+"can\n"
+" also filter logs of a particular vehicle using the search\n"
+" field.\n"
+"
\n"
+" You will be able to manage your fleet by keeping track of "
+"the\n"
+" contracts, services, fixed and recurring costs, odometers "
+"and\n"
+" fuel logs associated to each vehicle.\n"
+"
\n"
+" OpenERP will warn you when services or contract have to be\n"
+" renewed.\n"
+"
\n"
+" To add your first report into this dashboard, go to any\n"
+" menu, switch to list or graph view, and click 'Add "
+"to\n"
+" Dashboard' in the extended search options.\n"
+"
\n"
+" You can filter and group data before inserting into the\n"
+" dashboard using the search options.\n"
+"
\n"
+" OpenERP helps you managing the costs for your different vehicles\n"
+" Costs are generally created from services and contract and appears "
+"here.\n"
+"
\n"
+"
\n"
+" Thanks to the different filters, OpenERP can only print the "
+"effective\n"
+" costs, sort them by type and by vehicle.\n"
+"
\n"
+" Here you can add various odometer entries for all vehicles.\n"
+" You can also show odometer value for a particular vehicle "
+"using\n"
+" the search field.\n"
+"
\n"
+" Here are displayed vehicles for which one or more contracts need "
+"to be renewed. If you see this message, then there is no contracts to "
+"renew.\n"
+"
\n"
+" Click to create a new service entry. \n"
+"
\n"
+" OpenERP helps you keeping track of all the services done\n"
+" on your vehicle. Services can be of many type: occasional\n"
+" repair, fixed maintenance, etc.\n"
+"
+ % endif
+ ]]>
+
+
+
diff --git a/addons/gamification/data/cron.xml b/addons/gamification/data/cron.xml
new file mode 100644
index 00000000000..8585771c97d
--- /dev/null
+++ b/addons/gamification/data/cron.xml
@@ -0,0 +1,16 @@
+
+
+
+
+ Run Goal Challenge Checker
+ 1
+ days
+ -1
+
+ gamification.challenge
+ _cron_update
+ ()
+
+
+
\ No newline at end of file
diff --git a/addons/gamification/data/goal_base.xml b/addons/gamification/data/goal_base.xml
new file mode 100644
index 00000000000..66dd7be7431
--- /dev/null
+++ b/addons/gamification/data/goal_base.xml
@@ -0,0 +1,208 @@
+
+
+
+
+
+
+
+ Reminder for Goal Update
+
+ Reminder ${object.name}
+
+
+
You have not updated your progress for the goal ${object.definition_id.name} (currently reached at ${object.completeness}%) for at least ${object.remind_update_delay} days. Do not forget to do it.
+
+
If you have not changed your score yet, you can use the button "The current value is up to date" to indicate so.
+
+ % endfor
+% endif
+ ]]>
+
+
+
+
+
+
+
+
+ Set your Timezone
+ Configure your profile and specify your timezone
+ count
+ boolean
+
+ [('id','=',user.id),('partner_id.tz', '!=', False)]
+
+ user.id
+
+
+
+ Set your Company Data
+ Write some information about your company (specify at least a name)
+ count
+ boolean
+
+ [('user_ids', 'in', [user.id]), ('name', '=', 'Your Company')]
+ lower
+
+ user.company_id.id
+
+
+
+ Set your Company Logo
+ count
+ boolean
+
+ [('user_ids', 'in', user.id),('logo', '!=', False)]
+
+ user.company_id.id
+
+
+
+ Create User
+ ir.actions.act_window
+ res.users
+ form
+ current
+
+ {'default_groups_ref': ['base.group_user']}
+ Create and manage users that will connect to the system. Users can be deactivated should there be a period of time during which they will/should not connect to the system. You can assign them groups in order to give them specific access to the applications they need to use in the system.
+
+
+
+ Invite new Users
+ Create at least another user
+ boolean
+ count
+
+ [('id', '!=', user.id)]
+
+
+
+
+ Mail Group Following
+ Follow mail groups to receive news
+ python
+ result = pool.get('mail.followers').search(cr, uid, [('res_model', '=', 'mail.group'), ('partner_id', '=', object.user_id.partner_id.id)], count=True, context=context)
+
+
+
+
+
+
+ Complete your Profile
+ once
+ personal
+ never
+
+ inprogress
+ other
+
+
+
+ Setup your Company
+ once
+ personal
+ never
+
+ inprogress
+ other
+
+
+
+
+
+ 1
+
+
+
+
+
+ 1
+
+
+
+
+ 0
+
+
+
+
+ 1
+
+
+
+
+
diff --git a/addons/gamification/html/index.html b/addons/gamification/html/index.html
new file mode 100644
index 00000000000..890efa0d1ec
--- /dev/null
+++ b/addons/gamification/html/index.html
@@ -0,0 +1,86 @@
+
+
+
+
Drive Engagement with Gamification
+
Leverage natural desire for competition
+
+ Reinforce good habits and improve win rates with real-time recognition and rewards inspired by game mechanics. Align teams around clear business objectives with challenges, personal objectives and team leader boards.
+
+
+
Leaderboards
+
+
+
+
+ Promote leaders and competition amongst sales team with performance ratios.
+
+
+
+
Personnal Objectives
+
+
+
+
+ Assign clear goals to users to align them with the company objectives.
+
+
+
+
Visual Information
+
+
+
+
+ See in an glance the progress of each user.
+
+
+
+
+
+
+
+
+
Create custom Challenges
+
+
+Use predefined goals to generate easily your own challenges. Assign it to a team or individual users. Receive feedback as often as needed: daily, weekly... Repeat it automatically to compare progresses through time.
+
+
+
+
+
+
+
+
+
+
+
+
+
Motivate with Badges
+
+
+
+
+
+
+
+Inspire achievement with recognition of coworker's good work by rewarding badges. These can be deserved manually or upon completion of challenges. Add fun to the competition with rare badges.
+
+
+
+
+
+
+
+
Adapt to any module
+
+
+Create goals linked to any module. The evaluation system is very flexible and can be used for many different tasks : sales evaluation, creation of events, project completion or even helping new users to complete their profile.
+
+
+
+
+
+
+
+
+
diff --git a/addons/gamification/models/__init__.py b/addons/gamification/models/__init__.py
new file mode 100644
index 00000000000..812a08b1e19
--- /dev/null
+++ b/addons/gamification/models/__init__.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP 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 .
+#
+##############################################################################
+
+import goal
+import challenge
+import res_users
+import badge
diff --git a/addons/gamification/models/badge.py b/addons/gamification/models/badge.py
new file mode 100644
index 00000000000..1d879393ed2
--- /dev/null
+++ b/addons/gamification/models/badge.py
@@ -0,0 +1,276 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP SA ()
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
+#
+##############################################################################
+
+from openerp import SUPERUSER_ID
+from openerp.osv import fields, osv
+from openerp.tools import DEFAULT_SERVER_DATE_FORMAT as DF
+from openerp.tools.translate import _
+
+from datetime import date
+import logging
+
+_logger = logging.getLogger(__name__)
+
+class gamification_badge_user(osv.Model):
+ """User having received a badge"""
+
+ _name = 'gamification.badge.user'
+ _description = 'Gamification user badge'
+ _order = "create_date desc"
+
+ _columns = {
+ 'user_id': fields.many2one('res.users', string="User", required=True),
+ 'sender_id': fields.many2one('res.users', string="Sender", help="The user who has send the badge"),
+ 'badge_id': fields.many2one('gamification.badge', string='Badge', required=True),
+ 'comment': fields.text('Comment'),
+ 'badge_name': fields.related('badge_id', 'name', type="char", string="Badge Name"),
+ 'create_date': fields.datetime('Created', readonly=True),
+ 'create_uid': fields.many2one('res.users', string='Creator', readonly=True),
+ }
+
+
+ def _send_badge(self, cr, uid, ids, context=None):
+ """Send a notification to a user for receiving a badge
+
+ Does not verify constrains on badge granting.
+ The users are added to the owner_ids (create badge_user if needed)
+ The stats counters are incremented
+ :param ids: list(int) of badge users that will receive the badge
+ """
+ res = True
+ temp_obj = self.pool.get('email.template')
+ user_obj = self.pool.get('res.users')
+ template_id = self.pool['ir.model.data'].get_object(cr, uid, 'gamification', 'email_template_badge_received', context)
+ for badge_user in self.browse(cr, uid, ids, context=context):
+ body_html = temp_obj.render_template(cr, uid, template_id.body_html, 'gamification.badge.user', badge_user.id, context=context)
+ res = user_obj.message_post(cr, uid, badge_user.user_id.id, body=body_html, context=context)
+ return res
+
+ def create(self, cr, uid, vals, context=None):
+ self.pool.get('gamification.badge').check_granting(cr, uid, badge_id=vals.get('badge_id'), context=context)
+ return super(gamification_badge_user, self).create(cr, uid, vals, context=context)
+
+
+class gamification_badge(osv.Model):
+ """Badge object that users can send and receive"""
+
+ CAN_GRANT = 1
+ NOBODY_CAN_GRANT = 2
+ USER_NOT_VIP = 3
+ BADGE_REQUIRED = 4
+ TOO_MANY = 5
+
+ _name = 'gamification.badge'
+ _description = 'Gamification badge'
+ _inherit = ['mail.thread']
+
+ def _get_owners_info(self, cr, uid, ids, name, args, context=None):
+ """Return:
+ the list of unique res.users ids having received this badge
+ the total number of time this badge was granted
+ the total number of users this badge was granted to
+ """
+ result = dict.fromkeys(ids, False)
+ for obj in self.browse(cr, uid, ids, context=context):
+ res = list(set(owner.user_id.id for owner in obj.owner_ids))
+ result[obj.id] = {
+ 'unique_owner_ids': res,
+ 'stat_count': len(obj.owner_ids),
+ 'stat_count_distinct': len(res)
+ }
+ return result
+
+ def _get_badge_user_stats(self, cr, uid, ids, name, args, context=None):
+ """Return stats related to badge users"""
+ result = dict.fromkeys(ids, False)
+ badge_user_obj = self.pool.get('gamification.badge.user')
+ first_month_day = date.today().replace(day=1).strftime(DF)
+ for bid in ids:
+ result[bid] = {
+ 'stat_my': badge_user_obj.search(cr, uid, [('badge_id', '=', bid), ('user_id', '=', uid)], context=context, count=True),
+ 'stat_this_month': badge_user_obj.search(cr, uid, [('badge_id', '=', bid), ('create_date', '>=', first_month_day)], context=context, count=True),
+ 'stat_my_this_month': badge_user_obj.search(cr, uid, [('badge_id', '=', bid), ('user_id', '=', uid), ('create_date', '>=', first_month_day)], context=context, count=True),
+ 'stat_my_monthly_sending': badge_user_obj.search(cr, uid, [('badge_id', '=', bid), ('create_uid', '=', uid), ('create_date', '>=', first_month_day)], context=context, count=True)
+ }
+ return result
+
+ def _remaining_sending_calc(self, cr, uid, ids, name, args, context=None):
+ """Computes the number of badges remaining the user can send
+
+ 0 if not allowed or no remaining
+ integer if limited sending
+ -1 if infinite (should not be displayed)
+ """
+ result = dict.fromkeys(ids, False)
+ for badge in self.browse(cr, uid, ids, context=context):
+ if self._can_grant_badge(cr, uid, badge.id, context) != 1:
+ # if the user cannot grant this badge at all, result is 0
+ result[badge.id] = 0
+ elif not badge.rule_max:
+ # if there is no limitation, -1 is returned which means 'infinite'
+ result[badge.id] = -1
+ else:
+ result[badge.id] = badge.rule_max_number - badge.stat_my_monthly_sending
+ return result
+
+ _columns = {
+ 'name': fields.char('Badge', required=True, translate=True),
+ 'description': fields.text('Description'),
+ 'image': fields.binary("Image", help="This field holds the image used for the badge, limited to 256x256"),
+ 'rule_auth': fields.selection([
+ ('everyone', 'Everyone'),
+ ('users', 'A selected list of users'),
+ ('having', 'People having some badges'),
+ ('nobody', 'No one, assigned through challenges'),
+ ],
+ string="Allowance to Grant",
+ help="Who can grant this badge",
+ required=True),
+ 'rule_auth_user_ids': fields.many2many('res.users', 'rel_badge_auth_users',
+ string='Authorized Users',
+ help="Only these people can give this badge"),
+ 'rule_auth_badge_ids': fields.many2many('gamification.badge',
+ 'rel_badge_badge', 'badge1_id', 'badge2_id',
+ string='Required Badges',
+ help="Only the people having these badges can give this badge"),
+
+ 'rule_max': fields.boolean('Monthly Limited Sending',
+ help="Check to set a monthly limit per person of sending this badge"),
+ 'rule_max_number': fields.integer('Limitation Number',
+ help="The maximum number of time this badge can be sent per month per person."),
+ 'stat_my_monthly_sending': fields.function(_get_badge_user_stats,
+ type="integer",
+ string='My Monthly Sending Total',
+ multi='badge_users',
+ help="The number of time the current user has sent this badge this month."),
+ 'remaining_sending': fields.function(_remaining_sending_calc, type='integer',
+ string='Remaining Sending Allowed', help="If a maxium is set"),
+
+ 'challenge_ids': fields.one2many('gamification.challenge', 'reward_id',
+ string="Reward of Challenges"),
+
+ 'goal_definition_ids': fields.many2many('gamification.goal.definition', 'badge_unlocked_definition_rel',
+ string='Rewarded by',
+ help="The users that have succeeded theses goals will receive automatically the badge."),
+
+ 'owner_ids': fields.one2many('gamification.badge.user', 'badge_id',
+ string='Owners', help='The list of instances of this badge granted to users'),
+ 'active': fields.boolean('Active'),
+ 'unique_owner_ids': fields.function(_get_owners_info,
+ string='Unique Owners',
+ help="The list of unique users having received this badge.",
+ multi='unique_users',
+ type="many2many", relation="res.users"),
+
+ 'stat_count': fields.function(_get_owners_info, string='Total',
+ type="integer",
+ multi='unique_users',
+ help="The number of time this badge has been received."),
+ 'stat_count_distinct': fields.function(_get_owners_info,
+ type="integer",
+ string='Number of users',
+ multi='unique_users',
+ help="The number of time this badge has been received by unique users."),
+ 'stat_this_month': fields.function(_get_badge_user_stats,
+ type="integer",
+ string='Monthly total',
+ multi='badge_users',
+ help="The number of time this badge has been received this month."),
+ 'stat_my': fields.function(_get_badge_user_stats, string='My Total',
+ type="integer",
+ multi='badge_users',
+ help="The number of time the current user has received this badge."),
+ 'stat_my_this_month': fields.function(_get_badge_user_stats,
+ type="integer",
+ string='My Monthly Total',
+ multi='badge_users',
+ help="The number of time the current user has received this badge this month."),
+ }
+
+ _defaults = {
+ 'rule_auth': 'everyone',
+ 'active': True,
+ }
+
+ def check_granting(self, cr, uid, badge_id, context=None):
+ """Check the user 'uid' can grant the badge 'badge_id' and raise the appropriate exception
+ if not
+
+ Do not check for SUPERUSER_ID
+ """
+ status_code = self._can_grant_badge(cr, uid, badge_id, context=context)
+ if status_code == self.CAN_GRANT:
+ return True
+ elif status_code == self.NOBODY_CAN_GRANT:
+ raise osv.except_osv(_('Warning!'), _('This badge can not be sent by users.'))
+ elif status_code == self.USER_NOT_VIP:
+ raise osv.except_osv(_('Warning!'), _('You are not in the user allowed list.'))
+ elif status_code == self.BADGE_REQUIRED:
+ raise osv.except_osv(_('Warning!'), _('You do not have the required badges.'))
+ elif status_code == self.TOO_MANY:
+ raise osv.except_osv(_('Warning!'), _('You have already sent this badge too many time this month.'))
+ else:
+ _logger.exception("Unknown badge status code: %d" % int(status_code))
+ return False
+
+ def _can_grant_badge(self, cr, uid, badge_id, context=None):
+ """Check if a user can grant a badge to another user
+
+ :param uid: the id of the res.users trying to send the badge
+ :param badge_id: the granted badge id
+ :return: integer representing the permission.
+ """
+ if uid == SUPERUSER_ID:
+ return self.CAN_GRANT
+
+ badge = self.browse(cr, uid, badge_id, context=context)
+
+ if badge.rule_auth == 'nobody':
+ return self.NOBODY_CAN_GRANT
+
+ elif badge.rule_auth == 'users' and uid not in [user.id for user in badge.rule_auth_user_ids]:
+ return self.USER_NOT_VIP
+
+ elif badge.rule_auth == 'having':
+ all_user_badges = self.pool.get('gamification.badge.user').search(cr, uid, [('user_id', '=', uid)], context=context)
+ for required_badge in badge.rule_auth_badge_ids:
+ if required_badge.id not in all_user_badges:
+ return self.BADGE_REQUIRED
+
+ if badge.rule_max and badge.stat_my_monthly_sending >= badge.rule_max_number:
+ return self.TOO_MANY
+
+ # badge.rule_auth == 'everyone' -> no check
+ return self.CAN_GRANT
+
+ def check_progress(self, cr, uid, context=None):
+ try:
+ model, res_id = template_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'gamification', 'badge_hidden')
+ except ValueError:
+ return True
+ badge_user_obj = self.pool.get('gamification.badge.user')
+ if not badge_user_obj.search(cr, uid, [('user_id', '=', uid), ('badge_id', '=', res_id)], context=context):
+ values = {
+ 'user_id': uid,
+ 'badge_id': res_id,
+ }
+ badge_user_obj.create(cr, SUPERUSER_ID, values, context=context)
+ return True
\ No newline at end of file
diff --git a/addons/gamification/models/challenge.py b/addons/gamification/models/challenge.py
new file mode 100644
index 00000000000..ae27aa96719
--- /dev/null
+++ b/addons/gamification/models/challenge.py
@@ -0,0 +1,821 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP SA ()
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
+#
+##############################################################################
+
+from openerp import SUPERUSER_ID
+from openerp.osv import fields, osv
+from openerp.tools import DEFAULT_SERVER_DATE_FORMAT as DF
+from openerp.tools.translate import _
+
+from datetime import date, datetime, timedelta
+import calendar
+import logging
+_logger = logging.getLogger(__name__)
+
+# display top 3 in ranking, could be db variable
+MAX_VISIBILITY_RANKING = 3
+
+def start_end_date_for_period(period, default_start_date=False, default_end_date=False):
+ """Return the start and end date for a goal period based on today
+
+ :return: (start_date, end_date), datetime.date objects, False if the period is
+ not defined or unknown"""
+ today = date.today()
+ if period == 'daily':
+ start_date = today
+ end_date = start_date
+ elif period == 'weekly':
+ delta = timedelta(days=today.weekday())
+ start_date = today - delta
+ end_date = start_date + timedelta(days=7)
+ elif period == 'monthly':
+ month_range = calendar.monthrange(today.year, today.month)
+ start_date = today.replace(day=1)
+ end_date = today.replace(day=month_range[1])
+ elif period == 'yearly':
+ start_date = today.replace(month=1, day=1)
+ end_date = today.replace(month=12, day=31)
+ else: # period == 'once':
+ start_date = default_start_date # for manual goal, start each time
+ end_date = default_end_date
+
+ if start_date and end_date:
+ return (start_date.strftime(DF), end_date.strftime(DF))
+ else:
+ return (start_date, end_date)
+
+
+class gamification_challenge(osv.Model):
+ """Gamification challenge
+
+ Set of predifined objectives assigned to people with rules for recurrence and
+ rewards
+
+ If 'user_ids' is defined and 'period' is different than 'one', the set will
+ be assigned to the users for each period (eg: every 1st of each month if
+ 'monthly' is selected)
+ """
+
+ _name = 'gamification.challenge'
+ _description = 'Gamification challenge'
+ _inherit = 'mail.thread'
+
+ def _get_next_report_date(self, cr, uid, ids, field_name, arg, context=None):
+ """Return the next report date based on the last report date and report
+ period.
+
+ :return: a string in DEFAULT_SERVER_DATE_FORMAT representing the date"""
+ res = {}
+ for challenge in self.browse(cr, uid, ids, context):
+ last = datetime.strptime(challenge.last_report_date, DF).date()
+ if challenge.report_message_frequency == 'daily':
+ next = last + timedelta(days=1)
+ res[challenge.id] = next.strftime(DF)
+ elif challenge.report_message_frequency == 'weekly':
+ next = last + timedelta(days=7)
+ res[challenge.id] = next.strftime(DF)
+ elif challenge.report_message_frequency == 'monthly':
+ month_range = calendar.monthrange(last.year, last.month)
+ next = last.replace(day=month_range[1]) + timedelta(days=1)
+ res[challenge.id] = next.strftime(DF)
+ elif challenge.report_message_frequency == 'yearly':
+ res[challenge.id] = last.replace(year=last.year + 1).strftime(DF)
+ # frequency == 'once', reported when closed only
+ else:
+ res[challenge.id] = False
+
+ return res
+
+ def _get_categories(self, cr, uid, context=None):
+ return [
+ ('hr', 'Human Ressources / Engagement'),
+ ('other', 'Settings / Gamification Tools'),
+ ]
+
+ def _get_report_template(self, cr, uid, context=None):
+ try:
+ return self.pool.get('ir.model.data').get_object_reference(cr, uid, 'gamification', 'simple_report_template')[1]
+ except ValueError:
+ return False
+
+ _order = 'end_date, start_date, name, id'
+ _columns = {
+ 'name': fields.char('Challenge Name', required=True, translate=True),
+ 'description': fields.text('Description', translate=True),
+ 'state': fields.selection([
+ ('draft', 'Draft'),
+ ('inprogress', 'In Progress'),
+ ('done', 'Done'),
+ ],
+ string='State', required=True, track_visibility='onchange'),
+ 'manager_id': fields.many2one('res.users',
+ string='Responsible', help="The user responsible for the challenge."),
+
+ 'user_ids': fields.many2many('res.users', 'user_ids',
+ string='Users',
+ help="List of users participating to the challenge"),
+ 'autojoin_group_id': fields.many2one('res.groups',
+ string='Auto-subscription Group',
+ help='Group of users whose members will be automatically added to user_ids once the challenge is started'),
+
+ 'period': fields.selection([
+ ('once', 'Non recurring'),
+ ('daily', 'Daily'),
+ ('weekly', 'Weekly'),
+ ('monthly', 'Monthly'),
+ ('yearly', 'Yearly')
+ ],
+ string='Periodicity',
+ help='Period of automatic goal assigment. If none is selected, should be launched manually.',
+ required=True),
+ 'start_date': fields.date('Start Date',
+ help="The day a new challenge will be automatically started. If no periodicity is set, will use this date as the goal start date."),
+ 'end_date': fields.date('End Date',
+ help="The day a new challenge will be automatically closed. If no periodicity is set, will use this date as the goal end date."),
+
+ 'invited_user_ids': fields.many2many('res.users', 'invited_user_ids',
+ string="Suggest to users"),
+
+ 'line_ids': fields.one2many('gamification.challenge.line', 'challenge_id',
+ string='Lines',
+ help="List of goals that will be set",
+ required=True),
+
+ 'reward_id': fields.many2one('gamification.badge', string="For Every Succeding User"),
+ 'reward_first_id': fields.many2one('gamification.badge', string="For 1st user"),
+ 'reward_second_id': fields.many2one('gamification.badge', string="For 2nd user"),
+ 'reward_third_id': fields.many2one('gamification.badge', string="For 3rd user"),
+ 'reward_failure': fields.boolean('Reward Bests if not Succeeded?'),
+
+ 'visibility_mode': fields.selection([
+ ('personal', 'Individual Goals'),
+ ('ranking', 'Leader Board (Group Ranking)'),
+ ],
+ string="Display Mode", required=True),
+
+ 'report_message_frequency': fields.selection([
+ ('never', 'Never'),
+ ('onchange', 'On change'),
+ ('daily', 'Daily'),
+ ('weekly', 'Weekly'),
+ ('monthly', 'Monthly'),
+ ('yearly', 'Yearly')
+ ],
+ string="Report Frequency", required=True),
+ 'report_message_group_id': fields.many2one('mail.group',
+ string='Send a copy to',
+ help='Group that will receive a copy of the report in addition to the user'),
+ 'report_template_id': fields.many2one('email.template', string="Report Template", required=True),
+ 'remind_update_delay': fields.integer('Non-updated manual goals will be reminded after',
+ help="Never reminded if no value or zero is specified."),
+ 'last_report_date': fields.date('Last Report Date'),
+ 'next_report_date': fields.function(_get_next_report_date,
+ type='date', string='Next Report Date', store=True),
+
+ 'category': fields.selection(lambda s, *a, **k: s._get_categories(*a, **k),
+ string="Appears in", help="Define the visibility of the challenge through menus", required=True),
+ }
+
+ _defaults = {
+ 'period': 'once',
+ 'state': 'draft',
+ 'visibility_mode': 'personal',
+ 'report_message_frequency': 'never',
+ 'last_report_date': fields.date.today,
+ 'start_date': fields.date.today,
+ 'manager_id': lambda s, cr, uid, c: uid,
+ 'category': 'hr',
+ 'reward_failure': False,
+ 'report_template_id': lambda s, *a, **k: s._get_report_template(*a, **k),
+ }
+
+
+ def create(self, cr, uid, vals, context=None):
+ """Overwrite the create method to add the user of groups"""
+
+ # add users when change the group auto-subscription
+ if vals.get('autojoin_group_id'):
+ new_group = self.pool.get('res.groups').browse(cr, uid, vals['autojoin_group_id'], context=context)
+
+ if not vals.get('user_ids'):
+ vals['user_ids'] = []
+ vals['user_ids'] += [(4, user.id) for user in new_group.users]
+
+ create_res = super(gamification_challenge, self).create(cr, uid, vals, context=context)
+
+ # subscribe new users to the challenge
+ if vals.get('user_ids'):
+ # done with browse after super to be sure catch all after orm process
+ challenge = self.browse(cr, uid, create_res, context=context)
+ self.message_subscribe_users(cr, uid, [challenge.id], [user.id for user in challenge.user_ids], context=context)
+
+ return create_res
+
+ def write(self, cr, uid, ids, vals, context=None):
+ if isinstance(ids, (int,long)):
+ ids = [ids]
+
+ # add users when change the group auto-subscription
+ if vals.get('autojoin_group_id'):
+ new_group = self.pool.get('res.groups').browse(cr, uid, vals['autojoin_group_id'], context=context)
+
+ if not vals.get('user_ids'):
+ vals['user_ids'] = []
+ vals['user_ids'] += [(4, user.id) for user in new_group.users]
+
+ if vals.get('state') == 'inprogress':
+ # starting a challenge
+ if not vals.get('autojoin_group_id'):
+ # starting challenge, add users in autojoin group
+ if not vals.get('user_ids'):
+ vals['user_ids'] = []
+ for challenge in self.browse(cr, uid, ids, context=context):
+ if challenge.autojoin_group_id:
+ vals['user_ids'] += [(4, user.id) for user in challenge.autojoin_group_id.users]
+
+ self.generate_goals_from_challenge(cr, uid, ids, context=context)
+
+ elif vals.get('state') == 'done':
+ self.check_challenge_reward(cr, uid, ids, force=True, context=context)
+
+ elif vals.get('state') == 'draft':
+ # resetting progress
+ if self.pool.get('gamification.goal').search(cr, uid, [('challenge_id', 'in', ids), ('state', 'in', ['inprogress', 'inprogress_update'])], context=context):
+ raise osv.except_osv("Error", "You can not reset a challenge with unfinished goals.")
+
+ write_res = super(gamification_challenge, self).write(cr, uid, ids, vals, context=context)
+
+ # subscribe new users to the challenge
+ if vals.get('user_ids'):
+ # done with browse after super if changes in groups
+ for challenge in self.browse(cr, uid, ids, context=context):
+ self.message_subscribe_users(cr, uid, [challenge.id], [user.id for user in challenge.user_ids], context=context)
+
+ return write_res
+
+
+ ##### Update #####
+
+ def _cron_update(self, cr, uid, context=None, ids=False):
+ """Daily cron check.
+
+ - Start planned challenges (in draft and with start_date = today)
+ - Create the missing goals (eg: modified the challenge to add lines)
+ - Update every running challenge
+ """
+ # start planned challenges
+ planned_challenge_ids = self.search(cr, uid, [
+ ('state', '=', 'draft'),
+ ('start_date', '<=', fields.date.today())])
+ self.write(cr, uid, planned_challenge_ids, {'state': 'inprogress'}, context=context)
+
+ # close planned challenges
+ planned_challenge_ids = self.search(cr, uid, [
+ ('state', '=', 'inprogress'),
+ ('end_date', '>=', fields.date.today())])
+ self.write(cr, uid, planned_challenge_ids, {'state': 'done'}, context=context)
+
+ if not ids:
+ ids = self.search(cr, uid, [('state', '=', 'inprogress')], context=context)
+
+ return self._update_all(cr, uid, ids, context=context)
+
+ def _update_all(self, cr, uid, ids, context=None):
+ """Update the challenges and related goals
+
+ :param list(int) ids: the ids of the challenges to update, if False will
+ update only challenges in progress."""
+ if isinstance(ids, (int,long)):
+ ids = [ids]
+
+ goal_obj = self.pool.get('gamification.goal')
+
+ # we use yesterday to update the goals that just ended
+ yesterday = date.today() - timedelta(days=1)
+ goal_ids = goal_obj.search(cr, uid, [
+ ('challenge_id', 'in', ids),
+ '|',
+ ('state', 'in', ('inprogress', 'inprogress_update')),
+ '&',
+ ('state', 'in', ('reached', 'failed')),
+ '|',
+ ('end_date', '>=', yesterday.strftime(DF)),
+ ('end_date', '=', False)
+ ], context=context)
+ # update every running goal already generated linked to selected challenges
+ goal_obj.update(cr, uid, goal_ids, context=context)
+
+ for challenge in self.browse(cr, uid, ids, context=context):
+ if challenge.autojoin_group_id:
+ # check in case of new users in challenge, this happens if manager removed users in challenge manually
+ self.write(cr, uid, [challenge.id], {'user_ids': [(4, user.id) for user in challenge.autojoin_group_id.users]}, context=context)
+ self.generate_goals_from_challenge(cr, uid, [challenge.id], context=context)
+
+ # goals closed but still opened at the last report date
+ closed_goals_to_report = goal_obj.search(cr, uid, [
+ ('challenge_id', '=', challenge.id),
+ ('start_date', '>=', challenge.last_report_date),
+ ('end_date', '<=', challenge.last_report_date)
+ ])
+
+ if len(closed_goals_to_report) > 0:
+ # some goals need a final report
+ self.report_progress(cr, uid, challenge, subset_goal_ids=closed_goals_to_report, context=context)
+
+ if fields.date.today() == challenge.next_report_date:
+ self.report_progress(cr, uid, challenge, context=context)
+
+ self.check_challenge_reward(cr, uid, ids, context=context)
+ return True
+
+ def quick_update(self, cr, uid, challenge_id, context=None):
+ """Update all the goals of a challenge, no generation of new goals"""
+ goal_ids = self.pool.get('gamification.goal').search(cr, uid, [('challenge_id', '=', challenge_id)], context=context)
+ self.pool.get('gamification.goal').update(cr, uid, goal_ids, context=context)
+ return True
+
+
+ def action_check(self, cr, uid, ids, context=None):
+ """Check a challenge
+
+ Create goals that haven't been created yet (eg: if added users)
+ Recompute the current value for each goal related"""
+ return self._update_all(cr, uid, ids=ids, context=context)
+
+ def action_report_progress(self, cr, uid, ids, context=None):
+ """Manual report of a goal, does not influence automatic report frequency"""
+ if isinstance(ids, (int,long)):
+ ids = [ids]
+ for challenge in self.browse(cr, uid, ids, context):
+ self.report_progress(cr, uid, challenge, context=context)
+ return True
+
+
+ ##### Automatic actions #####
+
+ def generate_goals_from_challenge(self, cr, uid, ids, context=None):
+ """Generate the goals for each line and user.
+
+ If goals already exist for this line and user, the line is skipped. This
+ can be called after each change in the list of users or lines.
+ :param list(int) ids: the list of challenge concerned"""
+
+ for challenge in self.browse(cr, uid, ids, context):
+ (start_date, end_date) = start_end_date_for_period(challenge.period)
+
+ # if no periodicity, use challenge dates
+ if not start_date and challenge.start_date:
+ start_date = challenge.start_date
+ if not end_date and challenge.end_date:
+ end_date = challenge.end_date
+
+ for line in challenge.line_ids:
+ for user in challenge.user_ids:
+
+ goal_obj = self.pool.get('gamification.goal')
+ domain = [('line_id', '=', line.id), ('user_id', '=', user.id)]
+ if start_date:
+ domain.append(('start_date', '=', start_date))
+
+ # goal already existing for this line ?
+ if len(goal_obj.search(cr, uid, domain, context=context)) > 0:
+
+ # resume canceled goals
+ domain.append(('state', '=', 'canceled'))
+ canceled_goal_ids = goal_obj.search(cr, uid, domain, context=context)
+ goal_obj.write(cr, uid, canceled_goal_ids, {'state': 'inprogress'}, context=context)
+ goal_obj.update(cr, uid, canceled_goal_ids, context=context)
+
+ # skip to next user
+ continue
+
+ values = {
+ 'definition_id': line.definition_id.id,
+ 'line_id': line.id,
+ 'user_id': user.id,
+ 'target_goal': line.target_goal,
+ 'state': 'inprogress',
+ }
+
+ if start_date:
+ values['start_date'] = start_date
+ if end_date:
+ values['end_date'] = end_date
+
+ if challenge.remind_update_delay:
+ values['remind_update_delay'] = challenge.remind_update_delay
+
+ new_goal_id = goal_obj.create(cr, uid, values, context)
+
+ goal_obj.update(cr, uid, [new_goal_id], context=context)
+
+ return True
+
+ ##### JS utilities #####
+
+ def _get_serialized_challenge_lines(self, cr, uid, challenge, user_id=False, restrict_goal_ids=False, restrict_top=False, context=None):
+ """Return a serialised version of the goals information
+
+ :challenge: browse record of challenge to compute
+ :user_id: res.users id of the user retrieving progress (False if no distinction, only for ranking challenges)
+ :restrict_goal_ids: compute only the results for this subset if gamification.goal ids, if False retrieve every goal of current running challenge
+ :restrict_top: for challenge lines where visibility_mode == 'ranking', retrieve only these bests results and itself, if False retrieve all
+ restrict_goal_ids has priority over restrict_top
+
+ format list
+ # if visibility_mode == 'ranking'
+ {
+ 'name': ,
+ 'description': ,
+ 'condition': ,
+ 'computation_mode': ,
+ 'monetary': <{True,False}>,
+ 'suffix': ,
+ 'action': <{True,False}>,
+ 'display_mode': <{progress,boolean}>,
+ 'target': ,
+ 'own_goal_id': ,
+ 'goals': [
+ {
+ 'id': ,
+ 'rank': ,
+ 'user_id': ,
+ 'name': ,
+ 'state': ,
+ 'completeness': ,
+ 'current': ,
+ }
+ ]
+ },
+ # if visibility_mode == 'personal'
+ {
+ 'id': ,
+ 'name': ,
+ 'description': ,
+ 'condition': ,
+ 'computation_mode': ,
+ 'monetary': <{True,False}>,
+ 'suffix': ,
+ 'action': <{True,False}>,
+ 'display_mode': <{progress,boolean}>,
+ 'target': ,
+ 'state': ,
+ 'completeness': ,
+ 'current': ,
+ }
+ """
+ goal_obj = self.pool.get('gamification.goal')
+ (start_date, end_date) = start_end_date_for_period(challenge.period)
+
+ res_lines = []
+ for line in challenge.line_ids:
+ line_data = {
+ 'name': line.definition_id.name,
+ 'description': line.definition_id.description,
+ 'condition': line.definition_id.condition,
+ 'computation_mode': line.definition_id.computation_mode,
+ 'monetary': line.definition_id.monetary,
+ 'suffix': line.definition_id.suffix,
+ 'action': True if line.definition_id.action_id else False,
+ 'display_mode': line.definition_id.display_mode,
+ 'target': line.target_goal,
+ }
+ domain = [
+ ('line_id', '=', line.id),
+ ('state', '!=', 'draft'),
+ ]
+ if restrict_goal_ids:
+ domain.append(('ids', 'in', restrict_goal_ids))
+ else:
+ # if no subset goals, use the dates for restriction
+ if start_date:
+ domain.append(('start_date', '=', start_date))
+ if end_date:
+ domain.append(('end_date', '=', end_date))
+
+ if challenge.visibility_mode == 'personal':
+ if not user_id:
+ raise osv.except_osv(_('Error!'),_("Retrieving progress for personal challenge without user information"))
+ domain.append(('user_id', '=', user_id))
+ sorting = goal_obj._order
+ limit = 1
+ # initialise in case search returns no results
+ line_data.update({
+ 'id': 0,
+ 'current': 0,
+ 'completeness': 0,
+ 'state': 'draft',
+ })
+ else:
+ line_data.update({
+ 'own_goal_id': False,
+ 'goals': [],
+ })
+ sorting = "completeness desc, current desc"
+ limit = False
+
+ goal_ids = goal_obj.search(cr, uid, domain, order=sorting, limit=limit, context=context)
+ ranking = 0
+ for goal in goal_obj.browse(cr, uid, goal_ids, context=context):
+ if challenge.visibility_mode == 'personal':
+ # limit=1 so only one result
+ line_data.update({
+ 'id': goal.id,
+ 'current': goal.current,
+ 'completeness': goal.completeness,
+ 'state': goal.state,
+ })
+ else:
+ ranking += 1
+ if user_id and goal.user_id.id == user_id:
+ line_data['own_goal_id'] = goal.id
+ elif restrict_top and ranking > restrict_top:
+ # not own goal, over top, skipping
+ continue
+
+ line_data['goals'].append({
+ 'id': goal.id,
+ 'user_id': goal.user_id.id,
+ 'name': goal.user_id.name,
+ 'rank': ranking,
+ 'current': goal.current,
+ 'completeness': goal.completeness,
+ 'state': goal.state,
+ })
+ res_lines.append(line_data)
+ return res_lines
+
+ ##### Reporting #####
+
+ def report_progress(self, cr, uid, challenge, context=None, users=False, subset_goal_ids=False):
+ """Post report about the progress of the goals
+
+ :param challenge: the challenge object that need to be reported
+ :param users: the list(res.users) of users that are concerned by
+ the report. If False, will send the report to every user concerned
+ (goal users and group that receive a copy). Only used for challenge with
+ a visibility mode set to 'personal'.
+ :param goal_ids: the list(int) of goal ids linked to the challenge for
+ the report. If not specified, use the goals for the current challenge
+ period. This parameter can be used to produce report for previous challenge
+ periods.
+ :param subset_goal_ids: a list(int) of goal ids to restrict the report
+ """
+ if context is None:
+ context = {}
+
+ temp_obj = self.pool.get('email.template')
+ ctx = context.copy()
+ if challenge.visibility_mode == 'ranking':
+ lines_boards = self._get_serialized_challenge_lines(cr, uid, challenge, user_id=False, restrict_goal_ids=subset_goal_ids, restrict_top=False, context=context)
+
+ ctx.update({'challenge_lines': lines_boards})
+ body_html = temp_obj.render_template(cr, uid, challenge.report_template_id.body_html, 'gamification.challenge', challenge.id, context=ctx)
+
+ # send to every follower of the challenge
+ self.message_post(cr, uid, challenge.id,
+ body=body_html,
+ context=context,
+ subtype='mail.mt_comment')
+ if challenge.report_message_group_id:
+ self.pool.get('mail.group').message_post(cr, uid, challenge.report_message_group_id.id,
+ body=body_html,
+ context=context,
+ subtype='mail.mt_comment')
+
+ else:
+ # generate individual reports
+ for user in users or challenge.user_ids:
+ goals = self._get_serialized_challenge_lines(cr, uid, challenge, user.id, restrict_goal_ids=subset_goal_ids, context=context)
+ if not goals:
+ continue
+
+ ctx.update({'challenge_lines': goals})
+ body_html = temp_obj.render_template(cr, user.id, challenge.report_template_id.body_html, 'gamification.challenge', challenge.id, context=ctx)
+
+ # send message only to users, not on the challenge
+ self.message_post(cr, uid, 0,
+ body=body_html,
+ partner_ids=[(4, user.partner_id.id)],
+ context=context,
+ subtype='mail.mt_comment')
+ if challenge.report_message_group_id:
+ self.pool.get('mail.group').message_post(cr, uid, challenge.report_message_group_id.id,
+ body=body_html,
+ context=context,
+ subtype='mail.mt_comment')
+ return self.write(cr, uid, challenge.id, {'last_report_date': fields.date.today()}, context=context)
+
+ ##### Challenges #####
+ def accept_challenge(self, cr, uid, challenge_ids, context=None, user_id=None):
+ """The user accept the suggested challenge"""
+ user_id = user_id or uid
+ user = self.pool.get('res.users').browse(cr, uid, user_id, context=context)
+ message = "%s has joined the challenge" % user.name
+ self.message_post(cr, uid, challenge_ids, body=message, context=context)
+ self.write(cr, SUPERUSER_ID, challenge_ids, {'invited_user_ids': [(3, user_id)], 'user_ids': [(4, user_id)]}, context=context)
+ return self.generate_goals_from_challenge(cr, uid, challenge_ids, context=context)
+
+ def discard_challenge(self, cr, uid, challenge_ids, context=None, user_id=None):
+ """The user discard the suggested challenge"""
+ user_id = user_id or uid
+ user = self.pool.get('res.users').browse(cr, uid, user_id, context=context)
+ message = "%s has refused the challenge" % user.name
+ self.message_post(cr, SUPERUSER_ID, challenge_ids, body=message, context=context)
+ return self.write(cr, uid, challenge_ids, {'invited_user_ids': (3, user_id)}, context=context)
+
+ def reply_challenge_wizard(self, cr, uid, challenge_id, context=None):
+ result = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'gamification', 'challenge_wizard')
+ id = result and result[1] or False
+ result = self.pool.get('ir.actions.act_window').read(cr, uid, [id], context=context)[0]
+ result['res_id'] = challenge_id
+ return result
+
+ def check_challenge_reward(self, cr, uid, ids, force=False, context=None):
+ """Actions for the end of a challenge
+
+ If a reward was selected, grant it to the correct users.
+ Rewards granted at:
+ - the end date for a challenge with no periodicity
+ - the end of a period for challenge with periodicity
+ - when a challenge is manually closed
+ (if no end date, a running challenge is never rewarded)
+ """
+ if isinstance(ids, (int,long)):
+ ids = [ids]
+ context = context or {}
+ for challenge in self.browse(cr, uid, ids, context=context):
+ (start_date, end_date) = start_end_date_for_period(challenge.period, challenge.start_date, challenge.end_date)
+ yesterday = date.today() - timedelta(days=1)
+ if end_date == yesterday.strftime(DF) or force:
+ # open chatter message
+ message_body = _("The challenge %s is finished." % challenge.name)
+
+ # reward for everybody succeeding
+ rewarded_users = []
+ if challenge.reward_id:
+ for user in challenge.user_ids:
+ reached_goal_ids = self.pool.get('gamification.goal').search(cr, uid, [
+ ('challenge_id', '=', challenge.id),
+ ('user_id', '=', user.id),
+ ('start_date', '=', start_date),
+ ('end_date', '=', end_date),
+ ('state', '=', 'reached')
+ ], context=context)
+ if len(reached_goal_ids) == len(challenge.line_ids):
+ self.reward_user(cr, uid, user.id, challenge.reward_id.id, context)
+ rewarded_users.append(user)
+
+ if rewarded_users:
+ message_body += _(" Reward (badge %s) for every succeeding user was sent to %s." % (challenge.reward_id.name, ", ".join([user.name for user in rewarded_users])))
+ else:
+ message_body += _(" Nobody has succeeded to reach every goal, no badge is rewared for this challenge.")
+
+ # reward bests
+ if challenge.reward_first_id:
+ (first_user, second_user, third_user) = self.get_top3_users(cr, uid, challenge, context)
+ if first_user:
+ self.reward_user(cr, uid, first_user.id, challenge.reward_first_id.id, context)
+ message_body += _(" Special rewards were sent to the top competing users. The ranking for this challenge is :")
+ message_body += " 1. %s - %s" % (first_user.name, challenge.reward_first_id.name)
+ else:
+ message_body += _("Nobody reached the required conditions to receive special badges.")
+
+ if second_user and challenge.reward_second_id:
+ self.reward_user(cr, uid, second_user.id, challenge.reward_second_id.id, context)
+ message_body += " 2. %s - %s" % (second_user.name, challenge.reward_second_id.name)
+ if third_user and challenge.reward_third_id:
+ self.reward_user(cr, uid, third_user.id, challenge.reward_second_id.id, context)
+ message_body += " 3. %s - %s" % (third_user.name, challenge.reward_third_id.name)
+
+ self.message_post(cr, uid, challenge.id, body=message_body, context=context)
+ return True
+
+ def get_top3_users(self, cr, uid, challenge, context=None):
+ """Get the top 3 users for a defined challenge
+
+ Ranking criterias:
+ 1. succeed every goal of the challenge
+ 2. total completeness of each goal (can be over 100)
+ Top 3 is computed only for users succeeding every goal of the challenge,
+ except if reward_failure is True, in which case every user is
+ considered.
+ :return: ('first', 'second', 'third'), tuple containing the res.users
+ objects of the top 3 users. If no user meets the criterias for a rank,
+ it is set to False. Nobody can receive a rank is noone receives the
+ higher one (eg: if 'second' == False, 'third' will be False)
+ """
+ goal_obj = self.pool.get('gamification.goal')
+ (start_date, end_date) = start_end_date_for_period(challenge.period, challenge.start_date, challenge.end_date)
+ challengers = []
+ for user in challenge.user_ids:
+ all_reached = True
+ total_completness = 0
+ # every goal of the user for the running period
+ goal_ids = goal_obj.search(cr, uid, [
+ ('challenge_id', '=', challenge.id),
+ ('user_id', '=', user.id),
+ ('start_date', '=', start_date),
+ ('end_date', '=', end_date)
+ ], context=context)
+ for goal in goal_obj.browse(cr, uid, goal_ids, context=context):
+ if goal.state != 'reached':
+ all_reached = False
+ if goal.definition_condition == 'higher':
+ # can be over 100
+ total_completness += 100.0 * goal.current / goal.target_goal
+ elif goal.state == 'reached':
+ # for lower goals, can not get percentage so 0 or 100
+ total_completness += 100
+
+ challengers.append({'user': user, 'all_reached': all_reached, 'total_completness': total_completness})
+ sorted_challengers = sorted(challengers, key=lambda k: (k['all_reached'], k['total_completness']), reverse=True)
+
+ if len(sorted_challengers) == 0 or (not challenge.reward_failure and not sorted_challengers[0]['all_reached']):
+ # nobody succeeded
+ return (False, False, False)
+ if len(sorted_challengers) == 1 or (not challenge.reward_failure and not sorted_challengers[1]['all_reached']):
+ # only one user succeeded
+ return (sorted_challengers[0]['user'], False, False)
+ if len(sorted_challengers) == 2 or (not challenge.reward_failure and not sorted_challengers[2]['all_reached']):
+ # only one user succeeded
+ return (sorted_challengers[0]['user'], sorted_challengers[1]['user'], False)
+ return (sorted_challengers[0]['user'], sorted_challengers[1]['user'], sorted_challengers[2]['user'])
+
+ def reward_user(self, cr, uid, user_id, badge_id, context=None):
+ """Create a badge user and send the badge to him
+
+ :param user_id: the user to reward
+ :param badge_id: the concerned badge
+ """
+ badge_user_obj = self.pool.get('gamification.badge.user')
+ user_badge_id = badge_user_obj.create(cr, uid, {'user_id': user_id, 'badge_id': badge_id}, context=context)
+ return badge_user_obj._send_badge(cr, uid, [user_badge_id], context=context)
+
+
+class gamification_challenge_line(osv.Model):
+ """Gamification challenge line
+
+ Predifined goal for 'gamification_challenge'
+ These are generic list of goals with only the target goal defined
+ Should only be created for the gamification_challenge object
+ """
+
+ _name = 'gamification.challenge.line'
+ _description = 'Gamification generic goal for challenge'
+ _order = "sequence, id"
+
+ def on_change_definition_id(self, cr, uid, ids, definition_id=False, context=None):
+ goal_definition = self.pool.get('gamification.goal.definition')
+ if not definition_id:
+ return {'value': {'definition_id': False}}
+ goal_definition = goal_definition.browse(cr, uid, definition_id, context=context)
+ ret = {
+ 'value': {
+ 'condition': goal_definition.condition,
+ 'definition_full_suffix': goal_definition.full_suffix
+ }
+ }
+ return ret
+
+ _columns = {
+ 'name': fields.related('definition_id', 'name', string="Name"),
+ 'challenge_id': fields.many2one('gamification.challenge',
+ string='Challenge',
+ required=True,
+ ondelete="cascade"),
+ 'definition_id': fields.many2one('gamification.goal.definition',
+ string='Goal Definition',
+ required=True,
+ ondelete="cascade"),
+ 'target_goal': fields.float('Target Value to Reach',
+ required=True),
+ 'sequence': fields.integer('Sequence',
+ help='Sequence number for ordering'),
+ 'condition': fields.related('definition_id', 'condition', type="selection",
+ readonly=True, string="Condition", selection=[('lower', '<='), ('higher', '>=')]),
+ 'definition_suffix': fields.related('definition_id', 'suffix', type="char", readonly=True, string="Unit"),
+ 'definition_monetary': fields.related('definition_id', 'monetary', type="boolean", readonly=True, string="Monetary"),
+ 'definition_full_suffix': fields.related('definition_id', 'full_suffix', type="char", readonly=True, string="Suffix"),
+ }
+
+ _default = {
+ 'sequence': 1,
+ }
diff --git a/addons/gamification/models/goal.py b/addons/gamification/models/goal.py
new file mode 100644
index 00000000000..8792e219d71
--- /dev/null
+++ b/addons/gamification/models/goal.py
@@ -0,0 +1,394 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP SA ()
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
+#
+##############################################################################
+
+from openerp import SUPERUSER_ID
+from openerp.osv import fields, osv
+from openerp.tools import DEFAULT_SERVER_DATE_FORMAT as DF
+from openerp.tools.safe_eval import safe_eval
+from openerp.tools.translate import _
+
+import logging
+import time
+from datetime import date, datetime, timedelta
+
+_logger = logging.getLogger(__name__)
+
+
+class gamification_goal_definition(osv.Model):
+ """Goal definition
+
+ A goal definition contains the way to evaluate an objective
+ Each module wanting to be able to set goals to the users needs to create
+ a new gamification_goal_definition
+ """
+ _name = 'gamification.goal.definition'
+ _description = 'Gamification goal definition'
+
+ def _get_suffix(self, cr, uid, ids, field_name, arg, context=None):
+ res = dict.fromkeys(ids, '')
+ for goal in self.browse(cr, uid, ids, context=context):
+ if goal.suffix and not goal.monetary:
+ res[goal.id] = goal.suffix
+ elif goal.monetary:
+ # use the current user's company currency
+ user = self.pool.get('res.users').browse(cr, uid, uid, context)
+ if goal.suffix:
+ res[goal.id] = "%s %s" % (user.company_id.currency_id.symbol, goal.suffix)
+ else:
+ res[goal.id] = user.company_id.currency_id.symbol
+ else:
+ res[goal.id] = ""
+ return res
+
+ _columns = {
+ 'name': fields.char('Goal Definition', required=True, translate=True),
+ 'description': fields.text('Goal Description'),
+ 'monetary': fields.boolean('Monetary Value', help="The target and current value are defined in the company currency."),
+ 'suffix': fields.char('Suffix', help="The unit of the target and current values", translate=True),
+ 'full_suffix': fields.function(_get_suffix, type="char", string="Full Suffix", help="The currency and suffix field"),
+ 'computation_mode': fields.selection([
+ ('manually', 'Recorded manually'),
+ ('count', 'Automatic: number of records'),
+ ('sum', 'Automatic: sum on a field'),
+ ('python', 'Automatic: execute a specific Python code'),
+ ],
+ string="Computation Mode",
+ help="Defined how will be computed the goals. The result of the operation will be stored in the field 'Current'.",
+ required=True),
+ 'display_mode': fields.selection([
+ ('progress', 'Progressive (using numerical values)'),
+ ('boolean', 'Exclusive (done or not-done)'),
+ ],
+ string="Displayed as", required=True),
+ 'model_id': fields.many2one('ir.model',
+ string='Model',
+ help='The model object for the field to evaluate'),
+ 'field_id': fields.many2one('ir.model.fields',
+ string='Field to Sum',
+ help='The field containing the value to evaluate'),
+ 'field_date_id': fields.many2one('ir.model.fields',
+ string='Date Field',
+ help='The date to use for the time period evaluated'),
+ 'domain': fields.char("Filter Domain",
+ help="Domain for filtering records. The rule can contain reference to 'user' that is a browse record of the current user, e.g. [('user_id', '=', user.id)].",
+ required=True),
+ 'compute_code': fields.text('Python Code',
+ help="Python code to be executed for each user. 'result' should contains the new current value. Evaluated user can be access through object.user_id."),
+ 'condition': fields.selection([
+ ('higher', 'The higher the better'),
+ ('lower', 'The lower the better')
+ ],
+ string='Goal Performance',
+ help='A goal is considered as completed when the current value is compared to the value to reach',
+ required=True),
+ 'action_id': fields.many2one('ir.actions.act_window', string="Action",
+ help="The action that will be called to update the goal value."),
+ 'res_id_field': fields.char("ID Field of user",
+ help="The field name on the user profile (res.users) containing the value for res_id for action.")
+ }
+
+ _defaults = {
+ 'condition': 'higher',
+ 'computation_mode': 'manually',
+ 'domain': "[]",
+ 'monetary': False,
+ 'display_mode': 'progress',
+ }
+
+ def number_following(self, cr, uid, model_name="mail.thread", context=None):
+ """Return the number of 'model_name' objects the user is following
+
+ The model specified in 'model_name' must inherit from mail.thread
+ """
+ user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+ return self.pool.get('mail.followers').search(cr, uid, [('res_model', '=', model_name), ('partner_id', '=', user.partner_id.id)], count=True, context=context)
+
+
+
+class gamification_goal(osv.Model):
+ """Goal instance for a user
+
+ An individual goal for a user on a specified time period"""
+
+ _name = 'gamification.goal'
+ _description = 'Gamification goal instance'
+ _inherit = 'mail.thread'
+
+ def _get_completion(self, cr, uid, ids, field_name, arg, context=None):
+ """Return the percentage of completeness of the goal, between 0 and 100"""
+ res = dict.fromkeys(ids, 0.0)
+ for goal in self.browse(cr, uid, ids, context=context):
+ if goal.definition_condition == 'higher':
+ if goal.current >= goal.target_goal:
+ res[goal.id] = 100.0
+ else:
+ res[goal.id] = round(100.0 * goal.current / goal.target_goal, 2)
+ elif goal.current < goal.target_goal:
+ # a goal 'lower than' has only two values possible: 0 or 100%
+ res[goal.id] = 100.0
+ else:
+ res[goal.id] = 0.0
+ return res
+
+ def on_change_definition_id(self, cr, uid, ids, definition_id=False, context=None):
+ goal_definition = self.pool.get('gamification.goal.definition')
+ if not definition_id:
+ return {'value': {'definition_id': False}}
+ goal_definition = goal_definition.browse(cr, uid, definition_id, context=context)
+ return {'value': {'computation_mode': goal_definition.computation_mode, 'definition_condition': goal_definition.condition}}
+
+ _columns = {
+ 'definition_id': fields.many2one('gamification.goal.definition', string='Goal Definition', required=True, ondelete="cascade"),
+ 'user_id': fields.many2one('res.users', string='User', required=True),
+ 'line_id': fields.many2one('gamification.challenge.line', string='Goal Line', ondelete="cascade"),
+ 'challenge_id': fields.related('line_id', 'challenge_id',
+ string="Challenge",
+ type='many2one',
+ relation='gamification.challenge',
+ store=True),
+ 'start_date': fields.date('Start Date'),
+ 'end_date': fields.date('End Date'), # no start and end = always active
+ 'target_goal': fields.float('To Reach',
+ required=True,
+ track_visibility='always'), # no goal = global index
+ 'current': fields.float('Current Value', required=True, track_visibility='always'),
+ 'completeness': fields.function(_get_completion, type='float', string='Completeness'),
+ 'state': fields.selection([
+ ('draft', 'Draft'),
+ ('inprogress', 'In progress'),
+ ('inprogress_update', 'In progress (to update)'),
+ ('reached', 'Reached'),
+ ('failed', 'Failed'),
+ ('canceled', 'Canceled'),
+ ],
+ string='State',
+ required=True,
+ track_visibility='always'),
+
+ 'computation_mode': fields.related('definition_id', 'computation_mode', type='char', string="Computation mode"),
+ 'remind_update_delay': fields.integer('Remind delay',
+ help="The number of days after which the user assigned to a manual goal will be reminded. Never reminded if no value is specified."),
+ 'last_update': fields.date('Last Update',
+ help="In case of manual goal, reminders are sent if the goal as not been updated for a while (defined in challenge). Ignored in case of non-manual goal or goal not linked to a challenge."),
+
+ 'definition_description': fields.related('definition_id', 'description', type='char', string='Definition Description', readonly=True),
+ 'definition_condition': fields.related('definition_id', 'condition', type='char', string='Definition Condition', readonly=True),
+ 'definition_suffix': fields.related('definition_id', 'full_suffix', type="char", string="Suffix", readonly=True),
+ 'definition_display': fields.related('definition_id', 'display_mode', type="char", string="Display Mode", readonly=True),
+ }
+
+ _defaults = {
+ 'current': 0,
+ 'state': 'draft',
+ 'start_date': fields.date.today,
+ }
+ _order = 'create_date desc, end_date desc, definition_id, id'
+
+ def _check_remind_delay(self, cr, uid, goal, context=None):
+ """Verify if a goal has not been updated for some time and send a
+ reminder message of needed.
+
+ :return: data to write on the goal object
+ """
+ if goal.remind_update_delay and goal.last_update:
+ delta_max = timedelta(days=goal.remind_update_delay)
+ last_update = datetime.strptime(goal.last_update, DF).date()
+ if date.today() - last_update > delta_max and goal.state == 'inprogress':
+ # generate a remind report
+ temp_obj = self.pool.get('email.template')
+ template_id = self.pool['ir.model.data'].get_object(cr, uid, 'gamification', 'email_template_goal_reminder', context)
+ body_html = temp_obj.render_template(cr, uid, template_id.body_html, 'gamification.goal', goal.id, context=context)
+
+ self.message_post(cr, uid, goal.id, body=body_html, partner_ids=[goal.user_id.partner_id.id], context=context, subtype='mail.mt_comment')
+ return {'state': 'inprogress_update'}
+ return {}
+
+ def update(self, cr, uid, ids, context=None):
+ """Update the goals to recomputes values and change of states
+
+ If a manual goal is not updated for enough time, the user will be
+ reminded to do so (done only once, in 'inprogress' state).
+ If a goal reaches the target value, the status is set to reached
+ If the end date is passed (at least +1 day, time not considered) without
+ the target value being reached, the goal is set as failed."""
+ if context is None:
+ context = {}
+
+ for goal in self.browse(cr, uid, ids, context=context):
+ towrite = {}
+ if goal.state in ('draft', 'canceled'):
+ # skip if goal draft or canceled
+ continue
+
+ if goal.definition_id.computation_mode == 'manually':
+ towrite.update(self._check_remind_delay(cr, uid, goal, context))
+
+ elif goal.definition_id.computation_mode == 'python':
+ # execute the chosen method
+ cxt = {
+ 'self': self.pool.get('gamification.goal'),
+ 'object': goal,
+ 'pool': self.pool,
+ 'cr': cr,
+ 'context': dict(context), # copy context to prevent side-effects of eval
+ 'uid': uid,
+ 'result': False,
+ 'date': date, 'datetime': datetime, 'timedelta': timedelta, 'time': time
+ }
+ code = goal.definition_id.compute_code.strip()
+ safe_eval(code, cxt, mode="exec", nocopy=True)
+ # the result of the evaluated codeis put in the 'result' local variable, propagated to the context
+ result = cxt.get('result', False)
+ if result and type(result) in (float, int, long):
+ if result != goal.current:
+ towrite['current'] = result
+ else:
+ _logger.exception(_('Invalid return content from the evaluation of %s' % code))
+
+ else: # count or sum
+ obj = self.pool.get(goal.definition_id.model_id.model)
+ field_date_name = goal.definition_id.field_date_id.name
+
+ # eval the domain with user replaced by goal user object
+ domain = safe_eval(goal.definition_id.domain, {'user': goal.user_id})
+
+ # add temporal clause(s) to the domain if fields are filled on the goal
+ if goal.start_date and field_date_name:
+ domain.append((field_date_name, '>=', goal.start_date))
+ if goal.end_date and field_date_name:
+ domain.append((field_date_name, '<=', goal.end_date))
+
+ if goal.definition_id.computation_mode == 'sum':
+ field_name = goal.definition_id.field_id.name
+ res = obj.read_group(cr, uid, domain, [field_name], [''], context=context)
+ new_value = res and res[0][field_name] or 0.0
+
+ else: # computation mode = count
+ new_value = obj.search(cr, uid, domain, context=context, count=True)
+
+ # avoid useless write if the new value is the same as the old one
+ if new_value != goal.current:
+ towrite['current'] = new_value
+
+ # check goal target reached
+ if (goal.definition_condition == 'higher' and towrite.get('current', goal.current) >= goal.target_goal) or (goal.definition_condition == 'lower' and towrite.get('current', goal.current) <= goal.target_goal):
+ towrite['state'] = 'reached'
+
+ # check goal failure
+ elif goal.end_date and fields.date.today() > goal.end_date:
+ towrite['state'] = 'failed'
+ if towrite:
+ self.write(cr, uid, [goal.id], towrite, context=context)
+ return True
+
+ def action_start(self, cr, uid, ids, context=None):
+ """Mark a goal as started.
+
+ This should only be used when creating goals manually (in draft state)"""
+ self.write(cr, uid, ids, {'state': 'inprogress'}, context=context)
+ return self.update(cr, uid, ids, context=context)
+
+ def action_reach(self, cr, uid, ids, context=None):
+ """Mark a goal as reached.
+
+ If the target goal condition is not met, the state will be reset to In
+ Progress at the next goal update until the end date."""
+ return self.write(cr, uid, ids, {'state': 'reached'}, context=context)
+
+ def action_fail(self, cr, uid, ids, context=None):
+ """Set the state of the goal to failed.
+
+ A failed goal will be ignored in future checks."""
+ return self.write(cr, uid, ids, {'state': 'failed'}, context=context)
+
+ def action_cancel(self, cr, uid, ids, context=None):
+ """Reset the completion after setting a goal as reached or failed.
+
+ This is only the current state, if the date and/or target criterias
+ match the conditions for a change of state, this will be applied at the
+ next goal update."""
+ return self.write(cr, uid, ids, {'state': 'inprogress'}, context=context)
+
+ def create(self, cr, uid, vals, context=None):
+ """Overwrite the create method to add a 'no_remind_goal' field to True"""
+ if context is None:
+ context = {}
+ context['no_remind_goal'] = True
+ return super(gamification_goal, self).create(cr, uid, vals, context=context)
+
+ def write(self, cr, uid, ids, vals, context=None):
+ """Overwrite the write method to update the last_update field to today
+
+ If the current value is changed and the report frequency is set to On
+ change, a report is generated
+ """
+ if context is None:
+ context = {}
+ vals['last_update'] = fields.date.today()
+ result = super(gamification_goal, self).write(cr, uid, ids, vals, context=context)
+ for goal in self.browse(cr, uid, ids, context=context):
+ if goal.state != "draft" and ('definition_id' in vals or 'user_id' in vals):
+ # avoid drag&drop in kanban view
+ raise osv.except_osv(_('Error!'), _('Can not modify the configuration of a started goal'))
+
+ if vals.get('current'):
+ if 'no_remind_goal' in context:
+ # new goals should not be reported
+ continue
+
+ if goal.challenge_id and goal.challenge_id.report_message_frequency == 'onchange':
+ self.pool.get('gamification.challenge').report_progress(cr, SUPERUSER_ID, goal.challenge_id, users=[goal.user_id], context=context)
+ return result
+
+ def get_action(self, cr, uid, goal_id, context=None):
+ """Get the ir.action related to update the goal
+
+ In case of a manual goal, should return a wizard to update the value
+ :return: action description in a dictionnary
+ """
+ goal = self.browse(cr, uid, goal_id, context=context)
+
+ if goal.definition_id.action_id:
+ # open a the action linked to the goal
+ action = goal.definition_id.action_id.read()[0]
+
+ if goal.definition_id.res_id_field:
+ current_user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+ action['res_id'] = safe_eval(goal.definition_id.res_id_field, {'user': current_user})
+
+ # if one element to display, should see it in form mode if possible
+ action['views'] = [(view_id, mode) for (view_id, mode) in action['views'] if mode == 'form'] or action['views']
+ return action
+
+ if goal.computation_mode == 'manually':
+ # open a wizard window to update the value manually
+ action = {
+ 'name': _("Update %s") % goal.definition_id.name,
+ 'id': goal_id,
+ 'type': 'ir.actions.act_window',
+ 'views': [[False, 'form']],
+ 'target': 'new',
+ 'context': {'default_goal_id': goal_id, 'default_current': goal.current},
+ 'res_model': 'gamification.goal.wizard'
+ }
+ return action
+
+ return False
diff --git a/addons/gamification/models/res_users.py b/addons/gamification/models/res_users.py
new file mode 100644
index 00000000000..408ddddf082
--- /dev/null
+++ b/addons/gamification/models/res_users.py
@@ -0,0 +1,132 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP SA ()
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
+#
+##############################################################################
+
+from openerp.osv import osv
+from challenge import MAX_VISIBILITY_RANKING
+
+class res_users_gamification_group(osv.Model):
+ """ Update of res.users class
+ - if adding groups to an user, check gamification.challenge linked to
+ this group, and the user. This is done by overriding the write method.
+ """
+ _name = 'res.users'
+ _inherit = ['res.users']
+
+ def write(self, cr, uid, ids, vals, context=None):
+ """Overwrite to autosubscribe users if added to a group marked as autojoin, user will be added to challenge"""
+ write_res = super(res_users_gamification_group, self).write(cr, uid, ids, vals, context=context)
+ if vals.get('groups_id'):
+ # form: {'group_ids': [(3, 10), (3, 3), (4, 10), (4, 3)]} or {'group_ids': [(6, 0, [ids]}
+ user_group_ids = [command[1] for command in vals['groups_id'] if command[0] == 4]
+ user_group_ids += [id for command in vals['groups_id'] if command[0] == 6 for id in command[2]]
+
+ challenge_obj = self.pool.get('gamification.challenge')
+ challenge_ids = challenge_obj.search(cr, uid, [('autojoin_group_id', 'in', user_group_ids)], context=context)
+ if challenge_ids:
+ challenge_obj.write(cr, uid, challenge_ids, {'user_ids': [(4, user_id) for user_id in ids]}, context=context)
+ return write_res
+
+ def create(self, cr, uid, vals, context=None):
+ """Overwrite to autosubscribe users if added to a group marked as autojoin, user will be added to challenge"""
+ write_res = super(res_users_gamification_group, self).create(cr, uid, vals, context=context)
+ if vals.get('groups_id'):
+ # form: {'group_ids': [(3, 10), (3, 3), (4, 10), (4, 3)]} or {'group_ids': [(6, 0, [ids]}
+ user_group_ids = [command[1] for command in vals['groups_id'] if command[0] == 4]
+ user_group_ids += [id for command in vals['groups_id'] if command[0] == 6 for id in command[2]]
+
+ challenge_obj = self.pool.get('gamification.challenge')
+ challenge_ids = challenge_obj.search(cr, uid, [('autojoin_group_id', 'in', user_group_ids)], context=context)
+ if challenge_ids:
+ challenge_obj.write(cr, uid, challenge_ids, {'user_ids': [(4, write_res)]}, context=context)
+ return write_res
+
+ # def get_goals_todo_info(self, cr, uid, context=None):
+
+ def get_serialised_gamification_summary(self, cr, uid, context=None):
+ return self._serialised_goals_summary(cr, uid, user_id=uid, context=context)
+
+ def _serialised_goals_summary(self, cr, uid, user_id, context=None):
+ """Return a serialised list of goals assigned to the user, grouped by challenge
+
+ [
+ {
+ 'id': ,
+ 'name': ,
+ 'visibility_mode': ,
+ 'currency': ,
+ 'lines': [(see gamification_challenge._get_serialized_challenge_lines() format)]
+ },
+ ]
+ """
+ all_goals_info = []
+ challenge_obj = self.pool.get('gamification.challenge')
+
+ user = self.browse(cr, uid, uid, context=context)
+ challenge_ids = challenge_obj.search(cr, uid, [('user_ids', 'in', uid), ('state', '=', 'inprogress')], context=context)
+ for challenge in challenge_obj.browse(cr, uid, challenge_ids, context=context):
+ # serialize goals info to be able to use it in javascript
+ all_goals_info.append({
+ 'id': challenge.id,
+ 'name': challenge.name,
+ 'visibility_mode': challenge.visibility_mode,
+ 'currency': user.company_id.currency_id.id,
+ 'lines': challenge_obj._get_serialized_challenge_lines(cr, uid, challenge, user_id, restrict_top=MAX_VISIBILITY_RANKING, context=context),
+ })
+
+ return all_goals_info
+
+ def get_challenge_suggestions(self, cr, uid, context=None):
+ """Return the list of challenges suggested to the user"""
+ challenge_info = []
+ challenge_obj = self.pool.get('gamification.challenge')
+ challenge_ids = challenge_obj.search(cr, uid, [('invited_user_ids', 'in', uid), ('state', '=', 'inprogress')], context=context)
+ for challenge in challenge_obj.browse(cr, uid, challenge_ids, context=context):
+ values = {
+ 'id': challenge.id,
+ 'name': challenge.name,
+ 'description': challenge.description,
+ }
+ challenge_info.append(values)
+ return challenge_info
+
+
+class res_groups_gamification_group(osv.Model):
+ """ Update of res.groups class
+ - if adding users from a group, check gamification.challenge linked to
+ this group, and the user. This is done by overriding the write method.
+ """
+ _name = 'res.groups'
+ _inherit = 'res.groups'
+
+ # No need to overwrite create as very unlikely to be the value in the autojoin_group_id field
+ def write(self, cr, uid, ids, vals, context=None):
+ """Overwrite to autosubscribe users if add users to a group marked as autojoin, these will be added to the challenge"""
+ write_res = super(res_groups_gamification_group, self).write(cr, uid, ids, vals, context=context)
+ if vals.get('users'):
+ # form: {'group_ids': [(3, 10), (3, 3), (4, 10), (4, 3)]} or {'group_ids': [(6, 0, [ids]}
+ user_ids = [command[1] for command in vals['users'] if command[0] == 4]
+ user_ids += [id for command in vals['users'] if command[0] == 6 for id in command[2]]
+
+ challenge_obj = self.pool.get('gamification.challenge')
+ challenge_ids = challenge_obj.search(cr, uid, [('autojoin_group_id', 'in', ids)], context=context)
+ if challenge_ids:
+ challenge_obj.write(cr, uid, challenge_ids, {'user_ids': [(4, user_id) for user_id in user_ids]}, context=context)
+ return write_res
diff --git a/addons/gamification/security/gamification_security.xml b/addons/gamification/security/gamification_security.xml
new file mode 100644
index 00000000000..904ba50721e
--- /dev/null
+++ b/addons/gamification/security/gamification_security.xml
@@ -0,0 +1,43 @@
+
+
+
+
+ Gamification
+
+ 17
+
+
+ Manager
+
+
+
+
+
+ User can only see his/her goals or goal from the same challenge in board visibility
+
+
+
+
+
+
+ [
+ '|',
+ ('user_id','=',user.id),
+ '&',
+ ('challenge_id.user_ids','in',user.id),
+ ('challenge_id.visibility_mode','=','ranking')]
+
+
+
+ Gamification Manager can see any goal
+
+
+
+
+
+
+ [(1, '=', 1)]
+
+
+
+
diff --git a/addons/gamification/security/ir.model.access.csv b/addons/gamification/security/ir.model.access.csv
new file mode 100644
index 00000000000..932c5d97c62
--- /dev/null
+++ b/addons/gamification/security/ir.model.access.csv
@@ -0,0 +1,19 @@
+id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
+
+goal_employee,"Goal Employee",model_gamification_goal,base.group_user,1,1,0,0
+goal_manager,"Goal Manager",model_gamification_goal,group_goal_manager,1,1,1,1
+
+goal_definition_employee,"Goal Definition Employee",model_gamification_goal_definition,base.group_user,1,0,0,0
+goal_definition_manager,"Goal Definition Manager",model_gamification_goal_definition,group_goal_manager,1,1,1,1
+
+challenge_employee,"Goal Challenge Employee",model_gamification_challenge,base.group_user,1,0,0,0
+challenge_manager,"Goal Challenge Manager",model_gamification_challenge,group_goal_manager,1,1,1,1
+
+challenge_line_employee,"Challenge Line Employee",model_gamification_challenge_line,base.group_user,1,0,0,0
+challenge_line_manager,"Challenge Line Manager",model_gamification_challenge_line,group_goal_manager,1,1,1,1
+
+badge_employee,"Badge Employee",model_gamification_badge,base.group_user,1,0,0,0
+badge_manager,"Badge Manager",model_gamification_badge,group_goal_manager,1,1,1,1
+
+badge_user_employee,"Badge-user Employee",model_gamification_badge_user,base.group_user,1,1,1,0
+badge_user_manager,"Badge-user Manager",model_gamification_badge_user,group_goal_manager,1,1,1,1
diff --git a/addons/gamification/static/description/icon.png b/addons/gamification/static/description/icon.png
new file mode 100644
index 00000000000..52a75f726ba
Binary files /dev/null and b/addons/gamification/static/description/icon.png differ
diff --git a/addons/gamification/static/src/css/Makefile b/addons/gamification/static/src/css/Makefile
new file mode 100644
index 00000000000..3a6a70cf59b
--- /dev/null
+++ b/addons/gamification/static/src/css/Makefile
@@ -0,0 +1,3 @@
+gamification.css: gamification.sass
+ sass --trace -t expanded gamification.sass gamification.css
+
diff --git a/addons/gamification/static/src/css/gamification.css b/addons/gamification/static/src/css/gamification.css
new file mode 100644
index 00000000000..4ac3a0340fa
--- /dev/null
+++ b/addons/gamification/static/src/css/gamification.css
@@ -0,0 +1,190 @@
+@charset "UTF-8";
+.openerp .oe_kanban_view .oe_kanban_card.oe_kanban_goal {
+ width: 230px;
+ min-height: 200px;
+}
+.openerp .oe_kanban_view .oe_kanban_card.oe_kanban_badge {
+ width: 250px;
+ min-height: 150px;
+}
+.openerp .oe_kanban_badge_avatars {
+ margin-top: 8px;
+}
+.openerp .oe_kanban_badge_avatars img {
+ width: 30px;
+ height: 30px;
+ padding-left: 0;
+ margin-top: 3px;
+ border-radius: 2px;
+ -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
+}
+.openerp .oe_kanban_goal .oe_goal_state_block {
+ width: 200px;
+ height: 130px;
+ margin: auto;
+ margin-bottom: -20px;
+}
+.openerp .oe_kanban_goal .oe_goal_state_block .oe_goal_state {
+ font-size: 2.5em;
+ font-weight: bold;
+ padding-top: 30px;
+}
+.openerp .oe_kanban_goal .oe_goal_state_block .oe_goal_state.oe_e {
+ font-size: 7em;
+}
+.openerp .oe_kanban_goal .oe_goal_state_block, .openerp .oe_kanban_goal p {
+ text-align: center;
+}
+.openerp .oe_kanban_content .oe_goal_gauge:first-child {
+ margin: auto;
+}
+.openerp .oe_kanban_content .oe_goal_gauge svg {
+ margin-top: -20px;
+}
+.openerp .oe_no_overflow {
+ overflow: hidden;
+}
+.openerp .oe_red {
+ color: red;
+}
+.openerp .oe_green {
+ color: green;
+}
+.openerp .oe_orange {
+ color: orange;
+}
+.openerp .oe_form td .oe_no_padding {
+ margin-left: -6px;
+}
+.openerp .oe_mail_wall .oe_mail_wall_aside {
+ margin-top: 15px;
+ position: relative;
+ display: inline-block;
+ vertical-align: top;
+ width: 280px;
+ border-radius: 2px;
+}
+.openerp .oe_mail_wall .oe_mail_wall_aside .oe_gamification_challenge_list {
+ background-color: #ededf6;
+}
+.openerp .oe_mail_wall .oe_mail_wall_aside .oe_gamification_suggestion {
+ background-color: #d3def1;
+}
+.openerp .oe_mail_wall .oe_mail_wall_aside .oe_gamification_suggestion ul {
+ padding-left: 15px;
+}
+.openerp .oe_mail_wall .oe_mail_wall_aside h4, .openerp .oe_mail_wall .oe_mail_wall_aside .oe_goals_list .oe_thead {
+ text-align: center;
+ padding-bottom: 15px;
+}
+.openerp .oe_mail_wall .oe_mail_wall_aside > div {
+ border-bottom: solid 5px white;
+ border-radius: 2px;
+}
+.openerp .oe_mail_wall .oe_goal {
+ border-bottom: solid 3px white;
+ padding: 5px 10px;
+}
+.openerp .oe_mail_wall .oe_goal .oe_update_challenge.oe_e, .openerp .oe_mail_wall .oe_goal .oe_goal_action.oe_e {
+ visibility: hidden;
+ font-size: 25px;
+ float: right;
+ position: relative;
+}
+.openerp .oe_mail_wall .oe_goal div:hover > .oe_update_challenge, .openerp .oe_mail_wall .oe_goal div:hover > .oe_goal_action, .openerp .oe_mail_wall .oe_goal th:hover > .oe_goal_action {
+ visibility: visible;
+}
+.openerp .oe_mail_wall .oe_goal .oe_goals_list {
+ padding-left: 0;
+ margin-top: 5px;
+ margin-bottom: 10px;
+ width: 100%;
+}
+.openerp .oe_mail_wall .oe_goal .oe_goals_list .oe_no_progress div {
+ display: inline-block;
+}
+.openerp .oe_mail_wall .oe_goal .oe_goals_list .oe_no_progress::before {
+ content: "•";
+ padding-right: 4px;
+}
+.openerp .oe_mail_wall .oe_goal .oe_goals_list .oe_no_progress.oe_goal_reached::before {
+ content: "✓";
+ padding-right: 0;
+ margin-left: -2px;
+}
+.openerp .oe_mail_wall .oe_goal .oe_goals_list .oe_no_progress.oe_goal_reached .oe_cell {
+ text-decoration: line-through;
+}
+.openerp .oe_mail_wall .oe_goal .oe_goals_list .oe_cell.oe_goal_current {
+ font-size: 150%;
+ font-weight: bold;
+ min-width: 50px;
+ padding: 0 5px;
+}
+.openerp .oe_mail_wall .oe_goal .oe_goals_list .oe_goal_outer_box {
+ display: inline-block;
+ position: relative;
+ z-index: 0;
+ vertical-align: middle;
+ width: 100%;
+ border: solid 1px rgba(0, 0, 0, 0.03);
+ border-radius: 2px;
+}
+.openerp .oe_mail_wall .oe_goal .oe_goals_list .oe_goal_outer_box.oe_no_progress {
+ border: none;
+}
+.openerp .oe_mail_wall .oe_goal .oe_goals_list .oe_goal_progress_background {
+ background-color: white;
+ position: absolute;
+ height: 100%;
+ width: 100%;
+ z-index: -2;
+ top: 0;
+ left: 0;
+}
+.openerp .oe_mail_wall .oe_goal .oe_goals_list .oe_goal_progress {
+ background-color: #d4e9de;
+ position: absolute;
+ height: 100%;
+ width: 0;
+ z-index: -1;
+ top: 0;
+ left: 0;
+}
+.openerp .oe_mail_wall .oe_goal .oe_goals_list .oe_thead {
+ font-weight: normal;
+ padding: 5px;
+ text-align: center;
+}
+.openerp .oe_mail_wall .oe_goal .oe_goals_list .oe_cell {
+ padding: 3px 0;
+}
+.openerp .oe_mail_wall .oe_table.oe_goals_list .col0 {
+ font-size: 200%;
+ font-weight: bold;
+ width: 25px;
+ text-align: center;
+}
+.openerp .oe_mail_wall .oe_table.oe_goals_list .col1 {
+ padding: 0 5px;
+}
+.openerp .oe_mail_wall .oe_table.oe_goals_list .col2 {
+ width: auto;
+}
+.openerp .oe_mail_wall .oe_user_avatar {
+ width: 24px;
+ padding-right: 5px;
+}
+.openerp .oe_mail_wall .oe_mail {
+ display: inline-block;
+}
+.openerp .oe_mail_wall .oe_table {
+ display: table;
+}
+.openerp .oe_mail_wall .oe_row {
+ display: table-row;
+}
+.openerp .oe_mail_wall .oe_cell {
+ display: table-cell;
+ vertical-align: middle;
+}
diff --git a/addons/gamification/static/src/css/gamification.sass b/addons/gamification/static/src/css/gamification.sass
new file mode 100644
index 00000000000..3bb6b570e66
--- /dev/null
+++ b/addons/gamification/static/src/css/gamification.sass
@@ -0,0 +1,181 @@
+@charset "utf-8"
+
+.openerp
+ // Kanban views
+ .oe_kanban_view
+ .oe_kanban_card.oe_kanban_goal
+ width: 230px
+ min-height: 200px
+ .oe_kanban_card.oe_kanban_badge
+ width: 250px
+ min-height: 150px
+ .oe_kanban_badge_avatars
+ margin-top: 8px
+ img
+ width: 30px
+ height: 30px
+ padding-left: 0
+ margin-top: 3px
+ border-radius: 2px
+ -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2)
+
+ .oe_kanban_goal
+ .oe_goal_state_block
+ width: 200px
+ height: 130px
+ margin: auto
+ margin-bottom: -20px
+ .oe_goal_state
+ font-size: 2.5em
+ font-weight: bold
+ padding-top: 30px
+ .oe_goal_state.oe_e
+ font-size: 7em
+ .oe_goal_state_block,p
+ text-align: center
+
+ .oe_kanban_content
+ .oe_goal_gauge:first-child
+ margin: auto /* avoid margin-right: 16px */
+ .oe_goal_gauge
+ svg
+ margin-top: -20px
+ .oe_no_overflow
+ overflow: hidden
+
+
+ .oe_red
+ color: red
+ .oe_green
+ color: green
+ .oe_orange
+ color: orange
+
+
+ // compensate padding from .openerp .oe_form td.oe_form_group_cell + .oe_form_group_cell
+ .oe_form td .oe_no_padding
+ margin-left: -6px
+
+
+ .oe_mail_wall
+ .oe_mail_wall_aside
+ margin-top: 15px
+ position: relative
+ display: inline-block
+ vertical-align: top
+ width: 280px
+ border-radius: 2px
+
+ .oe_gamification_challenge_list
+ background-color: #EDEDF6
+ .oe_gamification_suggestion
+ background-color: rgb(211, 222, 241)
+ ul
+ padding-left: 15px
+
+ h4, .oe_goals_list .oe_thead
+ text-align: center
+ padding-bottom: 15px
+
+ .oe_mail_wall_aside > div
+ border-bottom: solid 5px white
+ border-radius: 2px
+
+ .oe_goal
+ border-bottom: solid 3px white
+ padding: 5px 10px
+ .oe_update_challenge.oe_e, .oe_goal_action.oe_e
+ visibility: hidden
+ font-size: 25px
+ float: right
+ position: relative
+ div:hover > .oe_update_challenge, div:hover > .oe_goal_action, th:hover > .oe_goal_action
+ visibility: visible
+
+ .oe_goals_list
+ padding-left: 0
+ margin-top: 5px
+ margin-bottom: 10px
+ width: 100%
+
+ .oe_no_progress
+ div
+ display: inline-block
+ .oe_no_progress::before
+ content: "•"
+ padding-right: 4px
+ .oe_no_progress.oe_goal_reached::before
+ content: "✓"
+ padding-right: 0
+ margin-left: -2px
+ .oe_no_progress.oe_goal_reached
+ .oe_cell
+ text-decoration: line-through
+
+ .oe_cell.oe_goal_current
+ font-size: 150%
+ font-weight: bold
+ min-width: 50px
+ padding: 0 5px
+
+ .oe_goal_outer_box
+ display: inline-block
+ position: relative
+ z-index: 0
+ vertical-align: middle
+ width: 100%
+ border: solid 1px rgba(0,0,0,0.03)
+ border-radius: 2px
+ .oe_goal_outer_box.oe_no_progress
+ border: none
+
+ .oe_goal_progress_background
+ background-color: white
+ position: absolute
+ height: 100%
+ width: 100%
+ z-index: -2
+ top: 0
+ left: 0
+
+ .oe_goal_progress
+ background-color: rgb(212, 233, 222)
+ position: absolute
+ height: 100%
+ width: 0
+ z-index: -1
+ top: 0
+ left: 0
+
+ .oe_thead
+ font-weight: normal
+ padding: 5px
+ text-align: center
+ .oe_cell
+ padding: 3px 0
+
+ .oe_table.oe_goals_list
+ .col0
+ font-size: 200%
+ font-weight: bold
+ width: 25px
+ text-align: center
+ .col1
+ padding: 0 5px
+ .col2
+ width: auto
+
+ .oe_user_avatar
+ width: 24px
+ padding-right: 5px
+
+ .oe_mail
+ display: inline-block
+
+ .oe_table
+ display: table
+ .oe_row
+ display: table-row
+ .oe_cell
+ display: table-cell
+ vertical-align: middle
diff --git a/addons/gamification/static/src/js/gamification.js b/addons/gamification/static/src/js/gamification.js
new file mode 100644
index 00000000000..2a8db5f369d
--- /dev/null
+++ b/addons/gamification/static/src/js/gamification.js
@@ -0,0 +1,148 @@
+openerp.gamification = function(instance) {
+ var QWeb = instance.web.qweb;
+
+ instance.gamification.Sidebar = instance.web.Widget.extend({
+ template: 'gamification.UserWallSidebar',
+ init: function (parent, action) {
+ var self = this;
+ this._super(parent, action);
+ this.deferred = $.Deferred();
+ this.goals_info = {};
+ this.challenge_suggestions = {};
+ $(document).off('keydown.klistener');
+ },
+ events: {
+ // update a challenge and related goals
+ 'click a.oe_update_challenge': function(event) {
+ var self = this;
+ var challenge_id = parseInt(event.currentTarget.id, 10);
+ var goals_updated = new instance.web.Model('gamification.challenge').call('quick_update', [challenge_id]);
+ $.when(goals_updated).done(function() {
+ self.get_goal_todo_info();
+ });
+ },
+ // action to modify a goal
+ 'click a.oe_goal_action': function(event) {
+ var self = this;
+ var goal_id = parseInt(event.currentTarget.id, 10);
+ var goal_action = new instance.web.Model('gamification.goal').call('get_action', [goal_id]).then(function(res) {
+ goal_action['action'] = res;
+ });
+ $.when(goal_action).done(function() {
+ var action = self.do_action(goal_action.action);
+ $.when(action).done(function () {
+ new instance.web.Model('gamification.goal').call('update', [[goal_id]]).then(function(res) {
+ self.get_goal_todo_info();
+ });
+ });
+ });
+ },
+ // get more info about a challenge request
+ 'click a.oe_challenge_reply': function(event) {
+ var self = this;
+ var challenge_id = parseInt(event.currentTarget.id, 10);
+ var challenge_action = new instance.web.Model('gamification.challenge').call('reply_challenge_wizard', [challenge_id]).then(function(res) {
+ challenge_action['action'] = res;
+ });
+ $.when(challenge_action).done(function() {
+ self.do_action(challenge_action.action).done(function () {
+ self.get_goal_todo_info();
+ });
+ });
+ },
+ 'click .oe_goal h4': function(event) {
+ var self = this;
+ this.kkeys = [];
+ $(document).on('keydown.klistener', function(event) {
+ if ("37,38,39,40,65,66".indexOf(event.keyCode) < 0) {
+ $(document).off('keydown.klistener');
+ } else {
+ self.kkeys.push(event.keyCode);
+ if (self.kkeys.toString().indexOf("38,38,40,40,37,39,37,39,66,65") >= 0) {
+ new instance.web.Model('gamification.badge').call('check_progress', []);
+ $(document).off('keydown.klistener');
+ }
+ }
+ });
+ }
+ },
+ start: function() {
+ var self = this;
+ this._super.apply(this, arguments);
+ self.get_goal_todo_info();
+ self.get_challenge_suggestions();
+ },
+ get_goal_todo_info: function() {
+ var self = this;
+ var challenges = new instance.web.Model('res.users').call('get_serialised_gamification_summary', []).then(function(result) {
+ if (result.length === 0) {
+ self.$el.find(".oe_gamification_challenge_list").hide();
+ } else {
+ self.$el.find(".oe_gamification_challenge_list").empty();
+ _.each(result, function(item){
+ var $item = $(QWeb.render("gamification.ChallengeSummary", {challenge: item}));
+ self.render_money_fields($item);
+ self.render_user_avatars($item);
+ self.$el.find('.oe_gamification_challenge_list').append($item);
+ });
+ }
+ });
+ },
+ get_challenge_suggestions: function() {
+ var self = this;
+ var challenge_suggestions = new instance.web.Model('res.users').call('get_challenge_suggestions', []).then(function(result) {
+ if (result.length === 0) {
+ self.$el.find(".oe_gamification_suggestion").hide();
+ } else {
+ var $item = $(QWeb.render("gamification.ChallengeSuggestion", {challenges: result}));
+ self.$el.find('.oe_gamification_suggestion').append($item);
+ }
+ });
+ },
+ render_money_fields: function(item) {
+ var self = this;
+ self.dfm = new instance.web.form.DefaultFieldManager(self);
+ // Generate a FieldMonetary for each .oe_goal_field_monetary
+ item.find(".oe_goal_field_monetary").each(function() {
+ var currency_id = parseInt( $(this).attr('data-id'), 10);
+ money_field = new instance.web.form.FieldMonetary(self.dfm, {
+ attrs: {
+ modifiers: '{"readonly": true}'
+ }
+ });
+ money_field.set('currency', currency_id);
+ money_field.get_currency_info();
+ money_field.set('value', parseInt($(this).text(), 10));
+ money_field.replace($(this));
+ });
+ },
+ render_user_avatars: function(item) {
+ var self = this;
+ item.find(".oe_user_avatar").each(function() {
+ var user_id = parseInt( $(this).attr('data-id'), 10);
+ var url = instance.session.url('/web/binary/image', {model: 'res.users', field: 'image_small', id: user_id});
+ $(this).attr("src", url);
+ });
+ }
+ });
+
+ instance.mail.Widget.include({
+ start: function() {
+ this._super();
+ var sidebar = new instance.gamification.Sidebar(this);
+ sidebar.appendTo($('.oe_mail_wall_aside'));
+ },
+ });
+
+ instance.web_kanban.KanbanRecord.include({
+ // open related goals when clicking on challenge kanban view
+ on_card_clicked: function() {
+ if (this.view.dataset.model === 'gamification.challenge') {
+ this.$('.oe_kanban_project_list a').first().click();
+ } else {
+ this._super.apply(this, arguments);
+ }
+ },
+ });
+
+};
diff --git a/addons/gamification/static/src/xml/gamification.xml b/addons/gamification/static/src/xml/gamification.xml
new file mode 100644
index 00000000000..6316ca886f0
--- /dev/null
+++ b/addons/gamification/static/src/xml/gamification.xml
@@ -0,0 +1,114 @@
+
+
+
+
+
+
diff --git a/addons/gamification/tests/__init__.py b/addons/gamification/tests/__init__.py
new file mode 100644
index 00000000000..9cafd242b28
--- /dev/null
+++ b/addons/gamification/tests/__init__.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Business Applications
+# Copyright (c) 2013 OpenERP S.A.
+#
+# 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 .
+#
+##############################################################################
+
+from . import test_challenge
+
+checks = [
+ test_challenge,
+]
diff --git a/addons/gamification/tests/test_challenge.py b/addons/gamification/tests/test_challenge.py
new file mode 100644
index 00000000000..6b93da727ac
--- /dev/null
+++ b/addons/gamification/tests/test_challenge.py
@@ -0,0 +1,89 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Business Applications
+# Copyright (c) 2013 OpenERP S.A.
+#
+# 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 .
+#
+##############################################################################
+
+from openerp.tests import common
+
+
+class test_challenge(common.TransactionCase):
+
+ def setUp(self):
+ super(test_challenge, self).setUp()
+ cr, uid = self.cr, self.uid
+ self.data_obj = self.registry('ir.model.data')
+ self.user_obj = self.registry('res.users')
+
+ self.challenge_obj = self.registry('gamification.challenge')
+ self.line_obj = self.registry('gamification.challenge.line')
+ self.goal_obj = self.registry('gamification.goal')
+ self.badge_obj = self.registry('gamification.badge')
+ self.badge_user_obj = self.registry('gamification.badge.user')
+
+ self.demo_user_id = self.data_obj.get_object_reference(cr, uid, 'base', 'user_demo')[1]
+ self.group_user_id = self.data_obj.get_object_reference(cr, uid, 'base', 'group_user')[1]
+ self.challenge_base_id = self.data_obj.get_object_reference(cr, uid, 'gamification', 'challenge_base_discover')[1]
+ self.definition_timezone_id = self.data_obj.get_object_reference(cr, uid, 'gamification', 'definition_base_timezone')[1]
+ self.badge_id = self.data_obj.get_object_reference(cr, uid, 'gamification', 'badge_good_job')[1]
+
+ def test_00_join_challenge(self):
+ cr, uid, context = self.cr, self.uid, {}
+
+ user_ids = self.user_obj.search(cr, uid, [('groups_id', '=', self.group_user_id)])
+ challenge = self.challenge_obj.browse(cr, uid, self.challenge_base_id, context=context)
+
+ self.assertGreaterEqual(len(challenge.user_ids), len(user_ids), "Not enough users in base challenge")
+
+ self.user_obj.create(cr, uid, {
+ 'name': 'R2D2',
+ 'login': 'r2d2@openerp.com',
+ 'email': 'r2d2@openerp.com',
+ 'groups_id': [(6, 0, [self.group_user_id])]
+ }, {'no_reset_password': True})
+
+ challenge = self.challenge_obj.browse(cr, uid, self.challenge_base_id, context=context)
+ self.assertGreaterEqual(len(challenge.user_ids), len(user_ids)+1, "These are not droids you are looking for")
+
+ def test_10_reach_challenge(self):
+ cr, uid, context = self.cr, self.uid, {}
+
+ self.challenge_obj.write(cr, uid, [self.challenge_base_id], {'state': 'inprogress'}, context=context)
+ challenge = self.challenge_obj.browse(cr, uid, self.challenge_base_id, context=context)
+ challenge_user_ids = [user.id for user in challenge.user_ids]
+
+ self.assertEqual(challenge.state, 'inprogress', "Challenge failed the change of state")
+
+ line_ids = self.line_obj.search(cr, uid, [('challenge_id', '=', self.challenge_base_id)], context=context)
+ goal_ids = self.goal_obj.search(cr, uid, [('challenge_id', '=', self.challenge_base_id), ('state', '!=', 'draft')], context=context)
+ self.assertEqual(len(goal_ids), len(line_ids)*len(challenge_user_ids), "Incorrect number of goals generated, should be 1 goal per user, per challenge line")
+
+ # demo user will set a timezone
+ self.user_obj.write(cr, uid, self.demo_user_id, {'tz': "Europe/Brussels"}, context=context)
+ goal_ids = self.goal_obj.search(cr, uid, [('user_id', '=', self.demo_user_id), ('definition_id', '=', self.definition_timezone_id)], context=context)
+
+ self.goal_obj.update(cr, uid, goal_ids, context=context)
+ reached_goal_ids = self.goal_obj.search(cr, uid, [('id', 'in', goal_ids), ('state', '=', 'reached')], context=context)
+ self.assertEqual(set(goal_ids), set(reached_goal_ids), "Not every goal was reached after changing timezone")
+
+ # reward for two firsts as admin may have timezone
+ self.challenge_obj.write(cr, uid, self.challenge_base_id, {'reward_first_id': self.badge_id, 'reward_second_id': self.badge_id}, context=context)
+ self.challenge_obj.write(cr, uid, self.challenge_base_id, {'state': 'done'}, context=context)
+
+ badge_ids = self.badge_user_obj.search(cr, uid, [('badge_id', '=', self.badge_id), ('user_id', '=', self.demo_user_id)])
+ self.assertGreater(len(badge_ids), 0, "Demo user has not received the badge")
\ No newline at end of file
diff --git a/addons/gamification/views/badge.xml b/addons/gamification/views/badge.xml
new file mode 100644
index 00000000000..0b37e62051d
--- /dev/null
+++ b/addons/gamification/views/badge.xml
@@ -0,0 +1,194 @@
+
+
+
+
+
+
+ Badges
+ gamification.badge
+ kanban,tree,form
+
+
+ Click to create a badge.
+
+
+ A badge is a symbolic token granted to a user as a sign of reward.
+ It can be deserved automatically when some conditions are met or manually by users.
+ Some badges are harder than others to get with specific conditions.
+
Badges are granted when a challenge is finished. This is either at the end of a running period (eg: end of the month for a monthly challenge), at the end date of a challenge (if no periodicity is set) or when the challenge is manually closed.
+
+
+
+
+
+
+
+
+
+
Depending on the Display mode, reports will be individual or shared.
+ Assign a list of goals to chosen users to evaluate them.
+ The challenge can use a period (weekly, monthly...) for automatic creation of goals.
+ The goals are created for the specified users or member of the group.
+
+
+
+
+
+ Goal Definition Search
+ gamification.goal.definition
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/gamification/wizard/__init__.py b/addons/gamification/wizard/__init__.py
new file mode 100644
index 00000000000..638fbef4373
--- /dev/null
+++ b/addons/gamification/wizard/__init__.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP 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 .
+#
+##############################################################################
+
+import update_goal
+import grant_badge
diff --git a/addons/gamification/wizard/grant_badge.py b/addons/gamification/wizard/grant_badge.py
new file mode 100644
index 00000000000..44f739fff4e
--- /dev/null
+++ b/addons/gamification/wizard/grant_badge.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP SA ()
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
+#
+##############################################################################
+
+from openerp.osv import fields, osv
+from openerp.tools.translate import _
+
+
+class grant_badge_wizard(osv.TransientModel):
+ """ Wizard allowing to grant a badge to a user"""
+
+ _name = 'gamification.badge.user.wizard'
+ _columns = {
+ 'user_id': fields.many2one("res.users", string='User', required=True),
+ 'badge_id': fields.many2one("gamification.badge", string='Badge', required=True),
+ 'comment': fields.text('Comment'),
+ }
+
+ def action_grant_badge(self, cr, uid, ids, context=None):
+ """Wizard action for sending a badge to a chosen user"""
+
+ badge_obj = self.pool.get('gamification.badge')
+ badge_user_obj = self.pool.get('gamification.badge.user')
+
+ for wiz in self.browse(cr, uid, ids, context=context):
+ if uid == wiz.user_id.id:
+ raise osv.except_osv(_('Warning!'), _('You can not grant a badge to yourself'))
+
+ #create the badge
+ values = {
+ 'user_id': wiz.user_id.id,
+ 'sender_id': uid,
+ 'badge_id': wiz.badge_id.id,
+ 'comment': wiz.comment,
+ }
+ badge_user = badge_user_obj.create(cr, uid, values, context=context)
+ result = badge_obj._send_badge(cr, uid, badge_user, context=context)
+
+ return result
diff --git a/addons/gamification/wizard/grant_badge.xml b/addons/gamification/wizard/grant_badge.xml
new file mode 100644
index 00000000000..e03dbac4096
--- /dev/null
+++ b/addons/gamification/wizard/grant_badge.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ Grant Badge User Form
+ gamification.badge.user.wizard
+
+
+ Who would you like to reward?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/gamification/wizard/update_goal.py b/addons/gamification/wizard/update_goal.py
new file mode 100644
index 00000000000..cbda3fefbce
--- /dev/null
+++ b/addons/gamification/wizard/update_goal.py
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP SA ()
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
+#
+##############################################################################
+
+from openerp.osv import fields, osv
+
+class goal_manual_wizard(osv.TransientModel):
+ """Wizard to update a manual goal"""
+ _name = 'gamification.goal.wizard'
+ _columns = {
+ 'goal_id': fields.many2one("gamification.goal", string='Goal', required=True),
+ 'current': fields.float('Current'),
+ }
+
+ def action_update_current(self, cr, uid, ids, context=None):
+ """Wizard action for updating the current value"""
+
+ goal_obj = self.pool.get('gamification.goal')
+
+ for wiz in self.browse(cr, uid, ids, context=context):
+ towrite = {
+ 'current': wiz.current,
+ 'goal_id': wiz.goal_id.id,
+ }
+ goal_obj.write(cr, uid, [wiz.goal_id.id], towrite, context=context)
+ goal_obj.update(cr, uid, [wiz.goal_id.id], context=context)
+ return {}
diff --git a/addons/gamification/wizard/update_goal.xml b/addons/gamification/wizard/update_goal.xml
new file mode 100644
index 00000000000..793efab90ff
--- /dev/null
+++ b/addons/gamification/wizard/update_goal.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+ Update the current value of the Goal
+ gamification.goal.wizard
+
+
+ Set the current value you have reached for this goal
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/website_customer_crm_partner_assign/__init__.py b/addons/gamification_sale_crm/__init__.py
similarity index 92%
rename from addons/website_customer_crm_partner_assign/__init__.py
rename to addons/gamification_sale_crm/__init__.py
index eecb359a225..e14c014a1ef 100644
--- a/addons/website_customer_crm_partner_assign/__init__.py
+++ b/addons/gamification_sale_crm/__init__.py
@@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2013-Today OpenERP S.A. ().
+# Copyright (C) 2013 OpenERP 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
diff --git a/addons/gamification_sale_crm/__openerp__.py b/addons/gamification_sale_crm/__openerp__.py
new file mode 100644
index 00000000000..b2ec9a10428
--- /dev/null
+++ b/addons/gamification_sale_crm/__openerp__.py
@@ -0,0 +1,32 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP 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 .
+#
+##############################################################################
+{
+ 'name': 'CRM Gamification',
+ 'version': '1.0',
+ 'author': 'OpenERP SA',
+ 'category': 'hidden',
+ 'depends': ['gamification','sale_crm'],
+ 'description': """Example of goal definitions and challenges that can be used related to the usage of the CRM Sale module.""",
+
+ 'data': ['sale_crm_goals.xml'],
+ 'demo': ['sale_crm_goals_demo.xml'],
+ 'auto_install': True,
+}
diff --git a/addons/gamification_sale_crm/sale_crm_goals.xml b/addons/gamification_sale_crm/sale_crm_goals.xml
new file mode 100644
index 00000000000..b48cc8a3117
--- /dev/null
+++ b/addons/gamification_sale_crm/sale_crm_goals.xml
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+ Total Invoiced
+
+ sum
+ True
+
+
+
+ [('state','!=','cancel'),('user_id','=',user.id),('type','=','out_invoice')]
+
+
+
+ New Leads
+ Based on the creation date
+ count
+ leads
+
+
+
+ [('user_id','=',user.id), '|', ('type', '=', 'lead'), ('type', '=', 'opportunity')]
+
+
+
+ Time to Qualify a Lead
+ The average number of days to open the case (lower than)
+ sum
+ lower
+ days
+
+
+
+ [('user_id','=',user.id),('type', '=', 'lead')]
+
+
+
+ Days to Close a Deal
+ The average number of days to close the case (lower than)
+ sum
+ lower
+ days
+
+
+
+ [('user_id','=',user.id)]
+
+
+
+
+ Logged Calls
+ Log a certain number of calls to reach this goal
+ count
+ calls
+
+
+ [('user_id','=',user.id),('state','=','done')]
+
+
+
+ New Opportunities
+ Based on the opening date
+ count
+ opportunities
+
+
+ [('user_id','=',user.id),('type','=','opportunity')]
+
+
+
+ New Sales Orders
+ Based on the creation date
+ count
+ orders
+
+
+ [('user_id','=',user.id),('state','not in',('draft', 'sent', 'cancel'))]
+
+
+
+ Paid Sales Orders
+ Based on the invoice date
+ count
+ orders
+
+
+ [('state','=','paid'),('user_id','=',user.id),('type','=','out_invoice')]
+
+
+ Total Paid Sales Orders
+ Based on the invoice date
+ count
+ True
+
+
+
+ [('state','=','paid'),('user_id','=',user.id),('type','=','out_invoice')]
+
+
+
+
+ Customer Refunds
+ Refund the least customers (lower than)
+ count
+ lower
+ invoices
+
+
+ [('state','!=','cancel'),('user_id','=',user.id),('type','=','out_refund')]
+
+
+ Total Customer Refunds
+ The total refunded value is a negative value. Validated when higher (min refunded).
+ sum
+ higher
+ True
+
+
+
+ [('state','!=','cancel'),('user_id','=',user.id),('type','=','out_refund')]
+
+
+
+
+
+
+ Monthly Sales Targets
+ monthly
+ ranking
+
+ weekly
+
+
+
+ Lead Acquisition
+ monthly
+ ranking
+
+ weekly
+
+
+
+
+
+ 20000
+
+
+
+
+
+
+ 7
+
+ 1
+
+
+
+ 15
+
+ 2
+
+
+
+ 5
+
+ 3
+
+
+
+
diff --git a/addons/gamification_sale_crm/sale_crm_goals_demo.xml b/addons/gamification_sale_crm/sale_crm_goals_demo.xml
new file mode 100644
index 00000000000..fd69c36162f
--- /dev/null
+++ b/addons/gamification_sale_crm/sale_crm_goals_demo.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+ inprogress
+
+
+
+
+
+
+
+
+
+ 2000
+ inprogress
+
+
+
+
diff --git a/addons/google_drive/google_drive.py b/addons/google_drive/google_drive.py
index df0d6a3c5af..b69c7ddd173 100644
--- a/addons/google_drive/google_drive.py
+++ b/addons/google_drive/google_drive.py
@@ -60,10 +60,9 @@ class config(osv.Model):
def get_access_token(self, cr, uid, scope=None, context=None):
ir_config = self.pool['ir.config_parameter']
google_drive_refresh_token = ir_config.get_param(cr, SUPERUSER_ID, 'google_drive_refresh_token')
- group_config = self.pool['ir.model.data'].get_object_reference(cr, uid, 'base', 'group_erp_manager')[1]
- user = self.pool['res.users'].read(cr, uid, uid, "groups_id")
+ user_is_admin = self.pool['res.users'].has_group(cr, uid, 'base.group_erp_manager')
if not google_drive_refresh_token:
- if group_config in user['groups_id']:
+ if user_is_admin:
raise self.pool.get('res.config.settings').get_config_warning(cr, _("You haven't configured 'Authorization Code' generated from google, Please generate and configure it in %(menu:base_setup.menu_general_configuration)s."), context=context)
else:
raise osv.except_osv(_('Error!'), _("Google Drive is not yet configured. Please contact your administrator."))
@@ -81,7 +80,7 @@ class config(osv.Model):
req = urllib2.Request('https://accounts.google.com/o/oauth2/token', data, headers)
content = urllib2.urlopen(req).read()
except urllib2.HTTPError:
- if group_config in user['groups_id']:
+ if user_is_admin:
raise self.pool.get('res.config.settings').get_config_warning(cr, _("Something went wrong during the token generation. Please request again an authorization code in %(menu:base_setup.menu_general_configuration)s."), context=context)
else:
raise osv.except_osv(_('Error!'), _("Google Drive is not yet configured. Please contact your administrator."))
diff --git a/addons/google_spreadsheet/google_spreadsheet.py b/addons/google_spreadsheet/google_spreadsheet.py
index a724e3c425e..81ec536b6f2 100644
--- a/addons/google_spreadsheet/google_spreadsheet.py
+++ b/addons/google_spreadsheet/google_spreadsheet.py
@@ -18,6 +18,7 @@
#
##############################################################################
+import cgi
import simplejson
import logging
from lxml import etree
@@ -67,24 +68,24 @@ class config(osv.osv):
request = '''
- https://spreadsheets.google.com/feeds/cells/%s/od6/private/full
+ https://spreadsheets.google.com/feeds/cells/{key}/od6/private/fullA1
- https://spreadsheets.google.com/feeds/cells/%s/od6/private/full/R1C1
+ https://spreadsheets.google.com/feeds/cells/{key}/od6/private/full/R1C1
-
+ href="https://spreadsheets.google.com/feeds/cells/{key}/od6/private/full/R1C1"/>
+ A2
- https://spreadsheets.google.com/feeds/cells/%s/od6/private/full/R60C15
+ https://spreadsheets.google.com/feeds/cells/{key}/od6/private/full/R60C15
-
+ href="https://spreadsheets.google.com/feeds/cells/{key}/od6/private/full/R60C15"/>
+
-''' % (spreadsheet_key, spreadsheet_key, spreadsheet_key, formula.replace('"', '"'), spreadsheet_key, spreadsheet_key, config_formula.replace('"', '"'))
+''' .format(key=spreadsheet_key, formula=cgi.escape(formula, quote=True), config=cgi.escape(config_formula, quote=True))
try:
req = urllib2.Request(
diff --git a/addons/hr/hr.py b/addons/hr/hr.py
index 67bf36a262f..e47e0a9bfb8 100644
--- a/addons/hr/hr.py
+++ b/addons/hr/hr.py
@@ -234,11 +234,13 @@ class hr_employee(osv.osv):
employee_id = super(hr_employee, self).create(cr, uid, data, context=create_ctx)
employee = self.browse(cr, uid, employee_id, context=context)
if employee.user_id:
+ res_users = self.pool['res.users']
# send a copy to every user of the company
- company_id = employee.user_id.partner_id.company_id.id
- partner_ids = self.pool.get('res.partner').search(cr, uid, [
- ('company_id', '=', company_id),
- ('user_ids', '!=', False)], context=context)
+ # TODO: post to the `Whole Company` mail.group when we'll be able to link to the employee record
+ _model, group_id = self.pool['ir.model.data'].get_object_reference(cr, uid, 'base', 'group_user')
+ user_ids = res_users.search(cr, uid, [('company_id', '=', employee.user_id.company_id.id),
+ ('groups_id', 'in', group_id)])
+ partner_ids = list(set(u.partner_id.id for u in res_users.browse(cr, uid, user_ids, context=context)))
else:
partner_ids = []
self.message_post(cr, uid, [employee_id],
diff --git a/addons/hr/hr_demo.xml b/addons/hr/hr_demo.xml
index 17059f217f5..98794a86f22 100644
--- a/addons/hr/hr_demo.xml
+++ b/addons/hr/hr_demo.xml
@@ -182,7 +182,7 @@ If you have development competencies, we can propose you specific traineeships
+3281813700+32486571630john@openerp.com
- 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
+ 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
@@ -194,7 +194,7 @@ If you have development competencies, we can propose you specific traineeships
Grand-Rosière+3281813700michael@openerp.com
- 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
+ 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
@@ -210,14 +210,14 @@ If you have development competencies, we can propose you specific traineeships
- Devid Simpson
+ David SamsonGrand-Rosière+3281813700
- devid@openerp.com
+ david@openerp.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
@@ -243,7 +243,7 @@ If you have development competencies, we can propose you specific traineeships
Grand-Rosière+3281813700jack@openerp.com
- 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
+ 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
@@ -255,7 +255,7 @@ If you have development competencies, we can propose you specific traineeships
Grand-Rosière+3281813700martin@openerp.com
- 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
+ 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
@@ -267,7 +267,7 @@ If you have development competencies, we can propose you specific traineeships
Grand-Rosière+3281813700jimmy@openerp.com
- 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
+ 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
@@ -300,7 +300,7 @@ If you have development competencies, we can propose you specific traineeships
Grand-Rosière+3282823500
- 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
+ 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
@@ -310,7 +310,7 @@ If you have development competencies, we can propose you specific traineeships
Auderghem+3282823500jve@openerp.com
- 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
+ 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
@@ -330,7 +330,7 @@ If you have development competencies, we can propose you specific traineeships
Grand-Rosière+3282823500jod@openerp.com
- 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
+ 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
@@ -340,7 +340,7 @@ If you have development competencies, we can propose you specific traineeships
Auderghem+3282823500jog@openerp.com
- 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
+ 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
@@ -349,17 +349,17 @@ If you have development competencies, we can propose you specific traineeships
Grand-Rosière+3282823500
- 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
+ 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
- Luigi Roni
+ Luigi RondiAuderghem+3282823500lur@openerp.com
- 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
+ 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
@@ -368,7 +368,7 @@ If you have development competencies, we can propose you specific traineeships
Grand-Rosière+3282823500
- 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
+ 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
@@ -377,7 +377,7 @@ If you have development competencies, we can propose you specific traineeships
Grand-Rosière+3282823500
- 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
+ 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
@@ -386,7 +386,7 @@ If you have development competencies, we can propose you specific traineeships
Auderghem+3282823500
- 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
+ /9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBhQSEBQUEhQVFRUWFBUUGBgUFBcVFRcXFRQVFRQUFBcXHCYeFxkjGRUUHy8gIycpLCwsFR4xNTAqNSYrLCkBCQoKDgwOGA8PGikcHCApLCkpLCkpKSkpKSkpKSkpKSkpKSwpKSkpKSkpLCksLCkpKSwpKSkpLCkpLCkpKSkpKf/AABEIAP8AxgMBIgACEQEDEQH/xAAcAAABBQEBAQAAAAAAAAAAAAACAAEDBAUGBwj/xAA8EAABAwIDBAgEBQQBBQEAAAABAAIRAyEEBTESQVFhBgdxgZGhsfATIsHRMkJS4fEUI3KSYkNjgpOyM//EABkBAQADAQEAAAAAAAAAAAAAAAABAgMEBf/EACQRAQEAAwABAwQDAQAAAAAAAAABAgMRIQQSMRMiQVEUMmFx/9oADAMBAAIRAxEAPwD2pJMkoClKUkkCSSSQMUoTpIGCdJJAk6SaUDpIPijiPFGEDSnShC48EBJBBTqSEQQEkmSQOlCSdAydMnQOkkEygAmKaU0qQUpAoU8oCSQhEgSSQToEknAWTm3SzCYa1auxrv0g7Tv9WyUGsAmK87zLrow7SRRp1KnMwwecnyXK5r1xYl1qexSHL5j4n7IPanjkD2hQmn+n5Ty+xXz67rBxjjP9RU1mzo9IVvA9Y2LYf/1c6/5ifK6D3mjibw6J4jQ8x7srGzwXmeS9ZQrQHgNeLzNp4G113uX5iHDaF2EbQIO7f2wgkNTZf/l5EbvfBW2hYma49uztsklpa6Wgka8dFqjEN3kjtEeZsgnKYBIIkDJ0kkDJJJIHlJJJBAkmlKUDp0EokBBEhCIIHWR0i6VUMEzarPAJ/C38zuwLn+sDrHZgQaVKH4gjTVtP/k/nwb4rwfNs9q4ioX1Xl7jvO7kEHbdJutXE4gubTf8ABpfpZZxHN2vouJdiS9xM77k8VSbJ1080W3NhYblInq4nc3xVd3Ez2pn4lrRxPcs+vi3G4cfLwQWnvGoPmpKGK3A3G5Y/xjMpMqEEEbkHQ08wIh7TC9P6BdLA5mxUPy02ugCbkwA4gawCBHKV4w3Ea8Df7q5luduomW33axIm4PcI70H0iMRthjNr5nhu0AWwxshxnhYbuC6mhWkXIvuFvAcF824DrNxDTLS0E6/LPZcrpMq60KjfxNaSbl0uknsvf3ZB7gGj8pjlqP2KmaV57kfWnRqAB4NN3I7Q15hdrl+ZsrCWkE8j9DcHkVAvpEJmIkApJ4TIGTpk6CrKSaUpVuIPKKUEolAMLk+sPpw3AUIaQa7wQxu8De88h5lanSbpC3B4Z9V0EgfKDvcdAvm7PM6fiKz6tR209xkn0A4AcESrY7GOqPc95LnOJcSdSSqr3RG8lNtbyhNSASgKrVAF0FatDbaneqzGOe7eugwGTF5BhEzG34YP9E90QPZVlnR+odAe5egZdkIA0W7hcnA3LHLdI6sPTWvKafRKq7Rp8E1bolWaLsPgvaKOAARuwHJZ/wAj/Gn8T/XgrsA5jvnaezRVXCIXumP6MseLtHauEzzoZszAnhC1w245MM/T5YeXDU3kHetDB4uNZhV8ZhHUzdVhUPFaud1FDFFtwTyI1XV9GOk76dQRU2ZIG0fw/wDmOHPcuEyvEbQLT2hXqTi0yPfaiX0zkeaOq0w4idxGpDhr2j1Ww1y8o6pOlEv/AKd5uW/JO8C+x2gAxyXrYMqEBTEIkxQMkmToKUpShlNKsgYRAqOVVzbHihQq1T/06bn/AOoJQeP9cnSf4mI/p2GW0vxc6hFx2Cw8V5hc9vHgrma4tz3OqOMueS4nmTc+aq06Zi+vpwUJNVMDkFHToueeUogzaK6jIskkAkKLZPNWxxuV4hyjJdJC7PLcqiLKTBZds7lsYRkLj2bOvS06vamwuAAWhSwwUNN0K3RfKxdJvgKZtBInhHvVTfEAUcV6jdhrLKzDLQQbLa+OFHWghR8fC08vKOk/RsEEwvOsdgiwr6CzLLtoFeWdLsn+G421Xbo2e7xXn+p0+37o4zC1S1wI4rpA8WO4+vFc4ad1pYSqdnZPd9F0OJvZXi3UqrHsMOY4Ob2gyF9MZHmPx6DKmhcBI4O3jxXyvSqHaHMeYX0P1cY4VcM1wNiBI4PaA1474nvRLsEJRISoQFOmSQZspShlNKt1A5WV0rofEwWIZxpO8hIBjsWltKDML0am87Do7YMeaD5exNAh+ydWm/boocQdBu/EefDz9FcxLf7jv8jfv1VHEmXcgoSmwTNp4HNeo5LgwKYtuXn3RbDfErCBYar0w1xTbG+NFjt7ftjr0Tn3VbYwBWKdBctWzCpNnR2XR4fNazjZ3vsWP0b+3RN8jsm0VOKZCx8szepID2zzXQ06wdHis7hY1myZKbnHchDSdVYxB2WkrDxOa1IhgjnGn7pMepufGuKampvXMvzio20ntNgPBSUMXUf+fTlIU3TVZvldNUpghcD0+wf9sldjgcdNjryn6ql0py34tB0cCVGv7cobPvwsjwWuwA6WR0WxpdTY/DQTyJVWm0jTzXoPIbFAyBxBBH1Xr3UZjwW16c3Ba4DuLSvGsJiRI3HeF6N1K1y3MHtBs6k+e4tcES93QFFKEqEGSSSQZEpShJTSrcQOUFYS0g8ExKFzk4PmfHMitUERDyI4fMbLMxjoXR9L8OaWMxAIiarnDscdoeq5zFMlzRxUJd30Fy3Zo7cXcunblwcb+JSyfCtp0qTDMu+UARNhLjJsABF+a0MUadNpJaDwm/qsL8u3HnJEeEwVMESR3kLYo5VSNwGzyhcPiMbVqB5bDQ0SBET2AIcixlWq8NJBJ0+UGw1JM2UTXbPlN2Yy847jEYXYu1R4fG3WZgsw2tpoJa9syJ2mOA3wdO5BQxfzGdQYjjzG6FjcbHRjnK6Ws4FiyK5AG5W6eLJAAaQT8oJ0k6TCysZi2NvqeLhJJ5DRvckxpllEuHosdeJ7BPotXD4VoM7Lv9D9lyeIzCsWhwdAJiOHCVr5XiKpaXNeTsgWO87wCNdy2+nefLn+rO842a9Fh3kHmCPVHTZaDcaK1leJNUQ8Qd828U2aUm0iHCSCQCGjiY05GDPasbj1tjnz5eJ9PMl+BiDH4XXHfuXK0zeDr6r1rrFpMr4faYQX0jtOGhA2tkh06G4PYvLX0Zv58114W3Hy4N0kzvEOIsQY3hek9TxeMcyrs/IWupuO4Ax8wO+DFuBXnmtt5uvdepbCgYR20Ltqk35tA7vrCuyellClKZQEkkkgxJSlDKYlXQclMXIS5ASoHiHWvgCzGuJMioA8ekeQXP5Hi3iqGU7uqbLBa8yCIO79l6R1t5O6o2jVbuPw4/yI2T4rkeiuUCnj6TdS3aPg06KtvF8cbXfZbgnBtMn8gqA3m7iw281fOGDhcA9qOlV2ZB0PkeKsU2cL9l1y5Zdehhr4oDLmmZH0KPDZWxlwFdFG29NUBj729VTta8jNxsNBLQJ3btbFZmBIq1tpv4RAnidLK3mFTUcbdilyiiGwGiIU2+OIxw5l1ex+FcxrajROy4EgcAZVKnhdvb2gJDrRvGrSO0H1XUUo2YO8XVFuEDZHCwPLgq43k4tlj29ZWCy9pdpvXQ4XBtboFRp0LzI9PVXqNS9yFaWqWRcpURNgoszozF4iPVT0qkaJqwlT3wiY+XJ9IshL6T3MdL2tc5ocJBMfhPI6LxB9WSYEAnTgeC+kqgsvJsj6JU6tTEtc2XU6k8JBJ996vqy5L1ju1+7Kccrk2WmrXYwfmcB7819OZDlbaFFrQIMCeZ3leWdGOhobjaNWifwP+djjM2IlvcdOS9iBW+OUynY5dmu677chEppQlyaVLMcpIJSQYhKElIlASrIOSgJSJQOcgz8/oh2HfImBtAcxoVwPR3AH+pFU6fDfHjC9ExzZpvHFp9FxuVDZe1v/AGz/APX7rn2XlduiS67/ANbMSpaJUIdBUtN6567sV1ptvVTFPVgOss7H1YBVV+MZ9Uuq7IW1grFYz8VToUfi1DAJ1ALjyEC608mzGnWaHseHN4j6qVJyV0tG4URqiYKGrmtKhSc+o9rGjVx0UWCzKhi6ZfRftRrYg94IBTh3yU3U1IiQqLHQr+FKiLWL9IWRuco2vhM56uyC/RYmXZcKdas8avi3+IWxUdZY9Oqf6sjdDSe8KveLYztFlFswbs6ESfH+V3srkejuGDsTUqDQfKO63rPgurldOmfa4/W5dzk/UFKUoUls4hSkmSQYZKAlO4oSrqmcVGUTigJUJC9cpTw2zU14gcl1RWPjcvdtbTRO/UW4rHbLeWOr02UnZfyrlsp2WKTSj1XJXo41KKqzswqTZWH1IBWW6uXEgblWTq1vFZ+HfoCCzWCJ8Fcy3A3kDZjcBCNgsreDxDQCCRKm1MnV3CsBb8wBGkFS0sINo7MNBEENAE9qDB1g03IV9uydCEiLLAvwwhFQEJqxhDhq3HVTxX3fhea6URao2hSuUqVBVWRicNNRzqdnOs48ItZa7xJj3yR4PAOkbTI4zF+QhJjb8JmeOHbavZJhBTotA33WiCogjBXbJyceTnl7rbfyklOCgTgqVRynQgpIMIlCSkUJKsgJQOKIlASgYoURTKBi127LiOaBpVvNaWju4/RUA5cWycr1dOXcYPE05YVzePzCo2RSYNri7TyXTOf8qzXUhqFnjefLezrCpZhiCLgHvhTUalU60r8nhab8E030U1Ghs/mU9jbDk+ajo1qxAimAebvsFcFCsRLtkdkqxhImxC2cPSGpunYtlnjHPsyuvdwquA3NtsnylX8s2wP7mq13lVKTZdO5Ra5re3q+xO9yja9R1aimKLGCbLxyv9lrNVHLaUNnj6BXguzXOR527L3ZCRAoQnCuyHKcFBKIFEDSTJkGEShlOShVkBKZOUygNCUJ4SARKLEUNppHEfwucmDBXVLmc1bFV3bPiJWG6eOur0+XniOnUvCicy/JDKkoPlcnHfKFmsKwxh4J2U7yrdEqGnUmGwsRZadKVDR3Ky0qVLQvZKB6lqPgKuXSiKfahFRpEuA42TAJqmaUsP8A3KzwxgIBcZgF3ytmNLkK+HmyM87yWt9jIEIwFBgsdTrN2qT2VG8WODh5Gyswu55RBOEgE6BJwUycBAQKSQTIMFMU6SlASlCdMoSUJAJ0pQIrjK2ZNxDjVpE7O05o/wCWySwnsJbIVzpx0kZRwlQU3tNR42AGuBIDrONtLSuT6BVdrBN4h9TzeSstv9XR6f8Au3ttO07wgeEAfC43orzaqt0KqzGVVbovCLNFlaLqzSxaz2NCtMhR0sWDULipJVcOhStBKKjlcz1hUi7LcRyaHf6va70BXT7KoZ5gRVoVKbtHsc094I99itjeVXKdlj56wOa1KLg+k9zHDQscWnxC9O6F9dNYPbSxoFRpt8QACoOZ3P8ACV5fj8qqUXEOEwYkck+T0S+s2Nxk/QL0Xk2cfXNGoHNDmmWkAgjeDcFHC856J9OBRw7KdRjnAEw4RIEzEHUanVdzl+e0K4Bp1GmYsTDr8ioQuwlCIhKEDJJ0kGAmTqrjcyp0RNR4b26nsGpQWFFiMUym3ae4NHEmP5XF511kNaNmgDP6nC/c1cHmufVqx2nOcd0kkkDkNEHeZ91jtbLaEf5vE/6tn18Fw2ZdJq1Yy+o94/5GG9zBAhZDxBk3neb+qGo4lvf9BdSLr3ywgwZvy8lo9D8f8GaZ0kkd6xBVsnZVIMhRlOzi2GXtvXqNKqHBOaS5LKM70BN10mHzAOAlcWeu4vT17ZlE3w1IwFO2sN6tUqQKyvY2h6LXK9RYUWFoLQp0RwUdTUNGgrbKaeQmNYBWUp9lZedYwNYUWYZw1gJJC8/zrpN8QnYPedO7ir44XKs885izs3oh7ubiTp5rPw+HYydkCdT27r+CM1pHOZN5MRxQMbJ7YN+U28124zk483PP3XrSp4v5TNpA8R9bqxgs1kSd0X3nzWK6sLAfvqFYdshoE/MQecaKyjs8s6a1aQAZVkT+F8uHZe4C6jCdY4j+5S/9bt/+JuvJGvM6jeLjusp24p7dbgeHK2vgg91yvpHQrtllQAxJa47Lh3FJeMYfNnD8pB5GZ7jpuTINvO+si+zhwYP5o+btGoE2XD4zNqlRxLnG/OXHmSq5qE66chH8IWutMcv5KAHG8/yUx7+73HFPUJJteN0W5m+qJwv7nv8ABBBUaez1QbXHh7KsOeJ9ntUT28ggiAtdPN0LrJw2RN/coDa7fz3LSwmePZqQ4c9fFY7WlEXlL5TLZ8Ovw/ShhEODh3SO2y08FnYn5Xg9pXAbfvsRGp279O9Z3XjW035R6/gM6sNPFaQzZsXcAvD2VyNCfHt4dymNc8SddTP6v2Wf0I1/lX9PXcZ0tosH4x3GfRc5mPTmZ2B/tby14rh21O2ezl+/kmdVJ15+YcSrTVjGeXqMr8eGljc3qVbvM8Bu04d/NU/iSe/x014KL6axY+/lKk2tL7/P+SfBa8YW2/KRx3ARJ1NuVuaZ75IjW/nvCei0u3RPjwi/aPZRRsmZk66eMe9/JSghTgyeO7np7/lWXOJtE77+oURpReItwB5jTciGydfQj092QJjYmCSbDQ34gz/CdzYBmRw5mwi3cjAaY+vCfVGKQHA2O+N8XugrNqO/U0ds/VOiDRMCNP1R4ykgznXsJPvf4KSmyLWF4g8tY4oxUMG3seid7iIBuYMDUDeSgg2Y0k+eiIxvFp998zZJxJ1kevkkaQgHjx4oIg4A2HdGnhdRsdO7f3qy02MfQBIA7o99yCBt5lvIe96qvaQTbxstEOsRpzj907yJ4ibz9kGdtTvE+YSLI9393VmpRGu/sHkotkgmNPt2oAND14diQZa/n3fdSfFsRb13/wAeCP44G73I+yCKlSmOcW8OfMojTiNfcfcqfDvHCIO7u+ycGLXvYz77EEVNpifegn1PgnLrxHjpv/dTbPKRv9fQpMkG27Tuv77Sgb4Lt9t/p9/VSNe1o58ot3+7jmoS4mxuZ48NBflZGapBFt3FBOK0jnyEjf46kX5IvhyTO1x0/ZBToXM3Nt/6uFlapUosRukXOgJQJmIgEbXi2LcPfBM+p/gZt52nUJ65hs7RMgGOGvLX7qPD1hPHTw8EElJgJiPA3kHS2oT1KYEyb9kaIMW9k3AGkfL9QhAaLEkCdxPLt4oCZERfXUgz7+yZSUXC34iI4jwukg//2Q==
diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml
index 4922a53bcbf..e9a859bf44d 100644
--- a/addons/hr/hr_view.xml
+++ b/addons/hr/hr_view.xml
@@ -117,7 +117,7 @@
hr.employee
-
+
diff --git a/addons/hr/i18n/he.po b/addons/hr/i18n/he.po
new file mode 100644
index 00000000000..b4f74a25a8d
--- /dev/null
+++ b/addons/hr/i18n/he.po
@@ -0,0 +1,963 @@
+# Hebrew translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:04+0000\n"
+"PO-Revision-Date: 2013-12-30 19:04+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Hebrew \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-31 04:47+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: hr
+#: model:process.node,name:hr.process_node_openerpuser0
+msgid "Openerp user"
+msgstr ""
+
+#. module: hr
+#: field:hr.config.settings,module_hr_timesheet_sheet:0
+msgid "Allow timesheets validation by managers"
+msgstr ""
+
+#. module: hr
+#: field:hr.job,requirements:0
+msgid "Requirements"
+msgstr ""
+
+#. module: hr
+#: model:process.transition,name:hr.process_transition_contactofemployee0
+msgid "Link the employee to information"
+msgstr ""
+
+#. module: hr
+#: field:hr.employee,sinid:0
+msgid "SIN No"
+msgstr ""
+
+#. module: hr
+#: model:ir.actions.act_window,name:hr.open_board_hr
+#: model:ir.ui.menu,name:hr.menu_hr_dashboard
+#: model:ir.ui.menu,name:hr.menu_hr_main
+#: model:ir.ui.menu,name:hr.menu_hr_reporting
+#: model:ir.ui.menu,name:hr.menu_hr_root
+#: model:ir.ui.menu,name:hr.menu_human_resources_configuration
+msgid "Human Resources"
+msgstr ""
+
+#. module: hr
+#: help:hr.employee,image_medium:0
+msgid ""
+"Medium-sized photo of the employee. It is automatically resized as a "
+"128x128px image, with aspect ratio preserved. Use this field in form views "
+"or some kanban views."
+msgstr ""
+
+#. module: hr
+#: view:hr.config.settings:0
+msgid "Time Tracking"
+msgstr ""
+
+#. module: hr
+#: view:hr.employee:0
+#: view:hr.job:0
+msgid "Group By..."
+msgstr ""
+
+#. module: hr
+#: model:ir.actions.act_window,name:hr.view_department_form_installer
+msgid "Create Your Departments"
+msgstr ""
+
+#. module: hr
+#: help:hr.job,no_of_employee:0
+msgid "Number of employees currently occupying this job position."
+msgstr ""
+
+#. module: hr
+#: field:hr.config.settings,module_hr_evaluation:0
+msgid "Organize employees periodic evaluation"
+msgstr ""
+
+#. module: hr
+#: view:hr.department:0
+#: view:hr.employee:0
+#: field:hr.employee,department_id:0
+#: view:hr.job:0
+#: field:hr.job,department_id:0
+#: model:ir.model,name:hr.model_hr_department
+msgid "Department"
+msgstr ""
+
+#. module: hr
+#: field:hr.employee,work_email:0
+msgid "Work Email"
+msgstr ""
+
+#. module: hr
+#: help:hr.employee,image:0
+msgid ""
+"This field holds the image used as photo for the employee, limited to "
+"1024x1024px."
+msgstr ""
+
+#. module: hr
+#: help:hr.config.settings,module_hr_holidays:0
+msgid "This installs the module hr_holidays."
+msgstr ""
+
+#. module: hr
+#: view:hr.job:0
+msgid "Jobs"
+msgstr ""
+
+#. module: hr
+#: view:hr.job:0
+msgid "In Recruitment"
+msgstr ""
+
+#. module: hr
+#: field:hr.job,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: hr
+#: field:hr.department,company_id:0
+#: view:hr.employee:0
+#: view:hr.job:0
+#: field:hr.job,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: hr
+#: field:hr.job,no_of_recruitment:0
+msgid "Expected in Recruitment"
+msgstr ""
+
+#. module: hr
+#: field:res.users,employee_ids:0
+msgid "Related employees"
+msgstr ""
+
+#. module: hr
+#: constraint:hr.employee.category:0
+msgid "Error! You cannot create recursive Categories."
+msgstr ""
+
+#. module: hr
+#: help:hr.config.settings,module_hr_recruitment:0
+msgid "This installs the module hr_recruitment."
+msgstr ""
+
+#. module: hr
+#: view:hr.employee:0
+msgid "Birth"
+msgstr ""
+
+#. module: hr
+#: model:ir.actions.act_window,name:hr.open_view_categ_form
+#: model:ir.ui.menu,name:hr.menu_view_employee_category_form
+msgid "Employee Tags"
+msgstr ""
+
+#. module: hr
+#: view:hr.job:0
+msgid "Launch Recruitement"
+msgstr ""
+
+#. module: hr
+#: model:process.transition,name:hr.process_transition_employeeuser0
+msgid "Link a user to an employee"
+msgstr ""
+
+#. module: hr
+#: field:hr.department,parent_id:0
+msgid "Parent Department"
+msgstr ""
+
+#. module: hr
+#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_config
+msgid "Leaves"
+msgstr ""
+
+#. module: hr
+#: selection:hr.employee,marital:0
+msgid "Married"
+msgstr ""
+
+#. module: hr
+#: field:hr.job,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: hr
+#: view:hr.config.settings:0
+msgid "Talent Management"
+msgstr ""
+
+#. module: hr
+#: help:hr.config.settings,module_hr_timesheet_sheet:0
+msgid "This installs the module hr_timesheet_sheet."
+msgstr ""
+
+#. module: hr
+#: view:hr.employee:0
+msgid "Mobile:"
+msgstr ""
+
+#. module: hr
+#: view:hr.employee:0
+msgid "Position"
+msgstr ""
+
+#. module: hr
+#: help:hr.job,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: hr
+#: field:hr.employee,color:0
+msgid "Color Index"
+msgstr ""
+
+#. module: hr
+#: model:process.transition,note:hr.process_transition_employeeuser0
+msgid ""
+"The Related user field on the Employee form allows to link the OpenERP user "
+"(and her rights) to the employee."
+msgstr ""
+
+#. module: hr
+#: field:hr.employee,image_medium:0
+msgid "Medium-sized photo"
+msgstr ""
+
+#. module: hr
+#: field:hr.employee,identification_id:0
+msgid "Identification No"
+msgstr ""
+
+#. module: hr
+#: selection:hr.employee,gender:0
+msgid "Female"
+msgstr ""
+
+#. module: hr
+#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config
+msgid "Attendance"
+msgstr ""
+
+#. module: hr
+#: field:hr.employee,work_phone:0
+msgid "Work Phone"
+msgstr ""
+
+#. module: hr
+#: field:hr.employee.category,child_ids:0
+msgid "Child Categories"
+msgstr ""
+
+#. module: hr
+#: field:hr.job,description:0
+#: model:ir.model,name:hr.model_hr_job
+msgid "Job Description"
+msgstr ""
+
+#. module: hr
+#: field:hr.employee,work_location:0
+msgid "Office Location"
+msgstr ""
+
+#. module: hr
+#: field:hr.job,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: hr
+#: view:hr.employee:0
+#: model:ir.model,name:hr.model_hr_employee
+#: model:process.node,name:hr.process_node_employee0
+msgid "Employee"
+msgstr ""
+
+#. module: hr
+#: model:process.node,note:hr.process_node_employeecontact0
+msgid "Other information"
+msgstr ""
+
+#. module: hr
+#: help:hr.employee,image_small:0
+msgid ""
+"Small-sized photo of the employee. It is automatically resized as a 64x64px "
+"image, with aspect ratio preserved. Use this field anywhere a small image is "
+"required."
+msgstr ""
+
+#. module: hr
+#: field:hr.employee,birthday:0
+msgid "Date of Birth"
+msgstr ""
+
+#. module: hr
+#: help:hr.job,no_of_recruitment:0
+msgid "Number of new employees you expect to recruit."
+msgstr ""
+
+#. module: hr
+#: model:ir.actions.client,name:hr.action_client_hr_menu
+msgid "Open HR Menu"
+msgstr ""
+
+#. module: hr
+#: help:hr.job,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: hr
+#: help:hr.config.settings,module_account_analytic_analysis:0
+msgid ""
+"This installs the module account_analytic_analysis, which will install sales "
+"management too."
+msgstr ""
+
+#. module: hr
+#: view:board.board:0
+msgid "Human Resources Dashboard"
+msgstr ""
+
+#. module: hr
+#: view:hr.employee:0
+#: field:hr.employee,job_id:0
+#: view:hr.job:0
+msgid "Job"
+msgstr ""
+
+#. module: hr
+#: field:hr.job,no_of_employee:0
+msgid "Current Number of Employees"
+msgstr ""
+
+#. module: hr
+#: field:hr.department,member_ids:0
+msgid "Members"
+msgstr ""
+
+#. module: hr
+#: model:ir.ui.menu,name:hr.menu_hr_configuration
+msgid "Configuration"
+msgstr ""
+
+#. module: hr
+#: model:process.node,note:hr.process_node_employee0
+msgid "Employee form and structure"
+msgstr ""
+
+#. module: hr
+#: field:hr.config.settings,module_hr_expense:0
+msgid "Manage employees expenses"
+msgstr ""
+
+#. module: hr
+#: view:hr.employee:0
+msgid "Tel:"
+msgstr ""
+
+#. module: hr
+#: selection:hr.employee,marital:0
+msgid "Divorced"
+msgstr ""
+
+#. module: hr
+#: field:hr.employee.category,parent_id:0
+msgid "Parent Category"
+msgstr ""
+
+#. module: hr
+#: view:hr.department:0
+#: model:ir.actions.act_window,name:hr.open_module_tree_department
+#: model:ir.ui.menu,name:hr.menu_hr_department_tree
+msgid "Departments"
+msgstr ""
+
+#. module: hr
+#: model:process.node,name:hr.process_node_employeecontact0
+msgid "Employee Contact"
+msgstr ""
+
+#. module: hr
+#: model:ir.actions.act_window,help:hr.action_hr_job
+msgid ""
+"
\n"
+" Click to define a new job position.\n"
+"
\n"
+" Job Positions are used to define jobs and their "
+"requirements.\n"
+" You can keep track of the number of employees you have per "
+"job\n"
+" position and follow the evolution according to what you "
+"planned\n"
+" for the future.\n"
+"
\n"
+" You can attach a survey to a job position. It will be used "
+"in\n"
+" the recruitment process to evaluate the applicants for this "
+"job\n"
+" position.\n"
+"
\n"
+" With just a quick glance on the OpenERP employee screen, "
+"you\n"
+" can easily find all the information you need for each "
+"person;\n"
+" contact data, job position, availability, etc.\n"
+"
\n"
+" OpenERP's department structure is used to manage all "
+"documents\n"
+" related to employees by departments: expenses, timesheets,\n"
+" leaves and holidays, recruitments, etc.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: hr
+#: help:hr.config.settings,module_hr_timesheet:0
+msgid "This installs the module hr_timesheet."
+msgstr ""
+
+#. module: hr
+#: help:hr.job,expected_employees:0
+msgid ""
+"Expected number of employees for this job position after new recruitment."
+msgstr ""
+
+#. module: hr
+#: model:ir.actions.act_window,help:hr.view_department_form_installer
+msgid ""
+"
\n"
+" Click to define a new department.\n"
+"
\n"
+" Your departments structure is used to manage all documents\n"
+" related to employees by departments: expenses and "
+"timesheets,\n"
+" leaves and holidays, recruitments, etc.\n"
+"
\n"
+" To add your first report into this dashboard, go to any\n"
+" menu, switch to list or graph view, and click 'Add "
+"to\n"
+" Dashboard' in the extended search options.\n"
+"
\n"
+" You can filter and group data before inserting into the\n"
+" dashboard using the search options.\n"
+"
diff --git a/addons/hr/res_users.py b/addons/hr/res_users.py
index c3550596281..d5bebe05446 100644
--- a/addons/hr/res_users.py
+++ b/addons/hr/res_users.py
@@ -57,9 +57,10 @@ class res_users(osv.Model):
various mailboxes, we do not have access to the current partner_id. """
if kwargs.get('type') == 'email':
return super(res_users, self).message_post(cr, uid, thread_id, context=context, **kwargs)
+ res = None
employee_ids = self._message_post_get_eid(cr, uid, thread_id, context=context)
- if not employee_ids:
- pass # dpo something
+ if not employee_ids: # no employee: fall back on previous behavior
+ return super(res_users, self).message_post(cr, uid, thread_id, context=context, **kwargs)
for employee_id in employee_ids:
res = self.pool.get('hr.employee').message_post(cr, uid, employee_id, context=context, **kwargs)
return res
diff --git a/addons/hr/static/src/css/hr.css b/addons/hr/static/src/css/hr.css
index 951ec4d02e3..be21ca7e7a6 100644
--- a/addons/hr/static/src/css/hr.css
+++ b/addons/hr/static/src/css/hr.css
@@ -72,4 +72,4 @@
.openerp .oe_employee_vignette .oe_followers {
width: auto;
float: none;
-}
+}
\ No newline at end of file
diff --git a/addons/hr_applicant_document/__init__.py b/addons/hr_applicant_document/__init__.py
new file mode 100644
index 00000000000..76e07d0ac4f
--- /dev/null
+++ b/addons/hr_applicant_document/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2010-today OpenERP 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
+#
+##############################################################################
+
+import models
diff --git a/addons/hr_applicant_document/__openerp__.py b/addons/hr_applicant_document/__openerp__.py
new file mode 100644
index 00000000000..bd8224f1755
--- /dev/null
+++ b/addons/hr_applicant_document/__openerp__.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+
+{
+ 'name': 'Applicant Resumes and Letters',
+ 'version': '1.0',
+ 'category': 'Human Resources',
+ 'sequence': 25,
+ 'summary': 'Search job applications by Index content.',
+ 'description': """This module allows you to search job applications by content
+ of resumes and letters.""",
+ 'author': 'OpenERP SA',
+ 'website': 'http://www.openerp.com',
+ 'depends': [
+ 'hr_recruitment',
+ 'document'
+ ],
+ 'data': [
+ 'views/hr_applicant.xml'
+ ],
+ 'demo': [
+ 'demo/hr_applicant.xml'
+ ],
+ 'installable': True,
+ 'auto_install': True,
+ 'application': True,
+}
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_applicant_document/demo/hr_applicant.xml b/addons/hr_applicant_document/demo/hr_applicant.xml
new file mode 100644
index 00000000000..46bac2250a0
--- /dev/null
+++ b/addons/hr_applicant_document/demo/hr_applicant.xml
@@ -0,0 +1,257 @@
+
+
+
+
+
+ JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlci9GbGF0ZURl
+Y29kZT4+CnN0cmVhbQp4nJ1UTWvDMAy951f4PKhnKbEdQyk0TXrYrRDYYey2D9hhsF7292fZtdJk
+djpG4REqS37vSbKSIL6rL6GE8l/aaYmibUC24vxaPd6Jzxjzv/N71Y2VNj5krRHji7g/ggAlxren
+rYIdbhUS1AQNgSYwBHb3PD5Uw1idsuU0Srss2FKeI9jHCh663cYSYglK4UP8KpAA7bz2LIueEgfW
+FhQdPYCKpNKFACx9SHQB11U3sLgNKB+aBPHKS6UAWXk3NPswEG0wHMGcgDo1Cyz7HQ620w09ezAw
+q5ZPTwFXEu5Q1sKik83S6BtiimGg6YBuNixwmNsFk+CrP3vOwXnbiuxj28AuxoTqjR/ZwUI6+zvj
+aUUfBAcDHFPbUEVe/mvaM5dYI/5hxZSRy3HDmm1xvKl6tr3IN8U+66sp34AtjBs5i00cqjVSpkWP
+uY3bM6nLG1La3GBwtk5xG27udHGbvSodM6jMwE7RQTRsVx3C+8ukrRrgHx69fAT6VBLslQGzZf3P
+I4BULQK1El0arvg6kAFItmMX5495n8QPLYlXWAplbmRzdHJlYW0KZW5kb2JqCgozIDAgb2JqCjQx
+MwplbmRvYmoKCjUgMCBvYmoKPDwvTGVuZ3RoIDYgMCBSL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5n
+dGgxIDE4MjEyPj4Kc3RyZWFtCnic3XsJXFTXvf8599w7GwPMDDsIXAZxiQgI4hYThlVRtgBuSY2O
+zCBEYAgzuD4jxocbGJKagKiN1qbG2DRaaw3GFI1iE7PU2GjaxqapjWljQkyedUkNnLzfOfcOW0zS
+z+v//3mfz2PkzrnnnvNbvr/1XBJPXb0TGVEDIshWVm2vvf0+vYYQehMhbClb6pF9ta0/gfFfEBKS
+ymsXV3e7UD5CognWPL+4akX5uuXzcuH+ZYTCxAqn3dE4bkMCQpEn4PmECpiIpjVauP8S7odXVHuW
+/8b/EQmhqGFwf3+Vq8zesfb8Krhfzu6r7ctrP8LPsOfn4V6usVc7L60/dy/cX4fb67Uut+d+tPZr
+hNI+Zs9r65y1jZ2vdiFk0yGkjYA5DB/2Y4Shht0LRJQ0Wp3e4GP09fM3mS0BgUHBIaFh4RHDIqOi
+5Rhr7PC4ESNHjb5rDPq/+dOB3uC/+/ET8F3OZzYIa5DQ9+lAp+C5wNd14DfwJvwSjPeiHriuQ9ew
+gbyKJ8KoE/bOFWNgtgXt5DtbyN9RPXkZvYPOoIsw+jueTGAvfgfF4A+A2qZ+LqQT7k7BdRXpJHNx
+NK5Gz+AXgOIq4OlCawT4FoqB8lviOZh9C22Az1b0DHLBmEm2DuR/Hx1GTeg62iZcQffD+CV0GuSh
+yE/hgS+gm0Bpv3CPUA7rTgO17Wg7XocuILeIsAFWXpIuCGOA6mHQAKFFaKd0QdrG8IDvC9IX8ASc
+VdOhCdTGghYMt734ZTxOKEDvwP5VqJT8gDxMLuJGMVZcRq6gFgGRheghdFa6oAlELdpY1KIpxyvE
+hfyziuknLBMX4v3oCtBcRL6E+xiQbCfXGKHDQrFUIBWAzuUwt5NfW5SrxoTeIrcB9ycEiqeLOSQN
+nqwS89A2tAd2jgRkEHKRVODuQqukLcoH7YfPWGkLaQX6HA2cItyDdgrluAmkvQloukgWmgg8IqWr
+qBEfBrmRdjVySxcQCkQvajWSSASM4mXTQSEu13HQdt9c+bV5MWPjh9zKJq18EBUd9F0hd3z9ddFc
+MUKad1AadpDE6Q6KcbGXvu3hpbHxM4vmyh04JDtLJZu9MAsmS+bCkN3BNMxnZ/FnjOtBKQ7+5S48
+KJdVyJtNm2OnbDY5p4wFm1fQVrFCegaylxZFv4xEDMogDQ48gnXSOkFEiV3nu8ch0/nu891JAeYY
+c1yMOaZCRD1uEtHzEW3V+n15rU4zmsWJAFZBYj2goEMBaIwtFLeZUJt+o8Vk0AEhKdl3khlF6VMC
+TT3dyT3d5pDJ41DidUYXm1OSJ6SOHxEbF5MsBgWKY7A5Frd80vyjnVtoHj58Gwv0668+eV1K7D37
+ZGPj1r0fXnz/r737GE+MHwKe68BPzKjQFqDR+hBkJm1+nfqTWoNGg3QW0/mu7mRgdBk4vWmebJ6c
+ZIszIRM2mWUkY9mchJJwiinJbEM2nGmymYtQES4yFZkt83ECjrVqgsyx5pSge3FKcnCIuO7ulbnP
+Hzl6NOH4uqylE8iKhLv+8GbvO+LCi8vWWIcrGGz6+kNxOsjjg0JQLEjUbEHNxk5Le6je4p9FLEH3
+hpqud/cwSEEi09UkDCwCgxX9RyZbzCYh1iqYTRahovnxx5u3PP74liu3bn5y5eZN8sF77164ePHC
+u+/tpL+jf6WX6Dt4LKSBKJzAsvYpwGEkeGIAGm8Ll0zYqDuiwc1oh5/mpEEI0CK9pPH19wk0nZ/a
+1TO1K3kyA/8ymMF0NdkyeXISDgJdI3FMUAzoG5Makzp+Qoo48lxZPl5L13TQC3jMc7/UBLbft7is
+pSeRnGsp6HhB0fcQ8M0CvnrkixJsYbojyNhl2IFOaoQjIsnzwRopD800aP2A8eXunqmgeGJ38uUe
+rjq4UhDwMsfglKBYKDy/x9U9NbiaXsLRHR3iwp7ElhaSIWReYfrtBj4GTTRwGWEL0CNiOGI8TY5I
+RCMijU+eHuh397zJtQJ0zUyjwOC7mVYjUpk+wpoH5v3+yk9/Rf+IP8Ct//HIzvMnyT8fB/lXgb3m
+gr2C0DCUbRuBggk2NOm3aIKPYE2zL34lrDmg07c9kgjDTPpgDcodZjFNj+Qm7DJbGD9mx8umq/C5
+ftXC/AsHxSgWnRjkh2NlZDahlGSLlnuTVpzb8+HxF+aeqK489QD9ir6H5S/evdUhPrGx8XmT8OD9
+mhdfmzT5xTFj8GQcgI3YRv98es9zB3eC/k2gfw7Elh5V24ZpsYAFjVaToRUIOqyTNFgrmMVxWjNK
+MkB0cQAAiandYOckSAtak3iG/c6zHgrBGM+3jQgRQrWjhRHaSdo5gkN4SFsvrNQaQjUj8GhNDs7V
+zMGLcYVGNx/ND4iB6AQLmWObwEJfnvoaUd0p6cJXKeJbt8eIb32VAhg2Aoax3OdHoxrbXQYtCpeN
+of5adCRU22yJaZKPRzYPZzHgi0PFMD+Dxpgli5qge+8CHLsgGSQr4nZdvt7DYsJ0lcUpYGmBYI1M
+ik6Sk2KSrLvRbrxb2G3Y7bMneHfI7tDdYbvD/ebzEFXQTp1ojk0FxMHi4yfcjVMVwFOV0I3CQuc9
+P/7JyqptL+CjR+/+ZcPP3vzqH7fw+q0Pnnig/NjcptP3jJCFlIdrnbXvvDQ6r3ftXseCV/YcOxm5
+fsWE8R0jRxYXJ2/l+QZVgx1coKsV/cQ2MtTirxe1KDJCow0yNsukM+JkmEmLzP66fE2BOd+/YFho
+fnh2rOn6zIPG0pkHzaUPzD2Kwr8+MWlez1RuJgs309TL18FUTOnJkBWTbNOSxCQpSZOkTdIl6ZMM
+ST5pwWkhaaFpYWnhaRFpw9Ii06IaSIPYIDVoGrQNugZ9g6HBpyW4JaQltCWsJbwlomVYS2RLVCye
+j7n2YTjWDNlVSWZ9AzWrCc9YK2dscO1LzSm6e9/kGbmTn302piwtz0muTs8+Rz/oXSas/cy96qPe
+NcLaL2rZt7hw4dS0HIh9DIEpfCSO5LUjwuYr7EHPi3s0Eo4UkQ7inefd7uuQ31MYO8jpV3rgRxxJ
+z9HJ9KyCJ6sZBeDX4Du2YE2bKLShjbo28RcGLOnHaUkUSjHyetHVxYh185wZwNKU+nuaLO0tFR7r
+rROO9yyTLuynOft7P9yv0GY5MQJsFYDibaF6P4IIxLS503jSANGDZvjqNT45geCDySwfJ4IVWFGC
+AL4DSmLE0YceXtvU0TFun/tnzwlHemcIR9oee/FnvRvEhfsWll1Scj8tFqPFZaDLMJRiGxZq1JNm
+f31zUKd/e8SpsJORoUaNJnwasljuVTJIcjJLH5d5IVBTlloIrRrMPJkVAua9qQy8vA2NjZs2NTZu
+EMLHtjvPXPn4dUd7wtGjwph337t44cLF93o3l8zDE7EZB+Mpc0pa/nlTwQBiM0J8cAgG7QZ80sj0
+nwFAcAx6lCqZrGIQAPZSpGGGU8LqVMeS2kc3Hz067rmHn9+H9zEQGATCiq/27LM7Lqnx8fWH5GWw
+pxn4hRi1OowOiW3+ujbDRv92i14b5YNSLaae8z1d3gp487dM9YmpUZhzY/XApAFu1Q+crGh5mK4T
+pr1za2HnPd333ffUGyRrf4+F/u2TeIXXBdBNA/YdieptNl+j4OcTEh2l0wtaQ0hUdFRGZFSowScq
+WgxCTfiEGNgUdCK02Sw2x3Wa20dFGnyiI7SoMELjl6vVBFqzR5mudwEIl1lS96Z1E71x1XTjqiWE
+pyKeR/0+A3i0/DrPioMS1PzDynBQIBN7pKrI+EQhAbMqmhxM3ircXbJ61Q9enLFpS/fvSo48tPjl
+0pXrb+iyd/3wvdfv3ytOPpyQcF/JzBmxfuE7V+89FhvbmZpaNq9hnOAXvXXNjw/EcN+KA19+HnAV
+kAFts6WjOIxESRTiJFELv5o4SRL1ccSgg18cZyAGFAeNNTFkIKJtwwfJRr2k12k1vDHVS4kGH9Of
+unkDNhVqsVc53Wdak/SZVvk3YKT7DAqHlrDCEW5A/tBFtyCRYB9BJEZRr9Xo1uNNAisWmEApx7Ek
+hsQKFRfwfvqLG/jMuZreG1XnpNhekbxwewxupKuQWnct0DeYIFaSoGNBgeHNfoHNuna/TryDhEBV
+F6aZLT7T+yMlsbs/UPqcUo2QgZFD7u/oSGh3vHHlk9ed26n/xsbGpqbGxo3knJD5z+4tJXMwtAUQ
+JRPnUJ933/vTeYgc5ks31fpqgP4ikLA8JG3UQvuqi9VEERSLfaDB6OpR2hfetEIjLKXGpbAcBLE6
+hb6Ai17HE3pe2y/W53XMuH1BzUHbgG4snIuGoftso9GwOEkjwdmZhETEaTRShsn8rG9bYKuI2gRk
+MgjYEBViNZHhkaYe4HXihFIfGMPrbyomkrj/wVdI8jxrHGufJqCJ92JFc6XYQQet0fphXC+80FN/
+DIemOnK2NjzwWu3iV+0Xsc88x6QL+/fvP40T7l3ZVrj6sYzMN8clX/n1whOe9L8xu7zC+iGwi49i
+l74c1u7fGbEjDHLXNJ7FcphdkpXEOcAuStrkxuClR+lnR4wMgkRKWjc2rt+8eX3jxt4P43eUv/7x
+lTcggXV0CIksgZ3/03vC8uK59Az9nH5KT88p2cKOVRhOb0jUSU9D/hpnC/WTdP7kCDLjk7ojBp2P
+Ho4VGpPFb3BX2319aherpsxNWJEY1Aea4Ri3hz74YP3ZS2f3s7ZWepqebOnd/R+Ltu59Q1jYgu+F
+M8VWekm4hhORhEJtPuQnaI+GiDgSWMEp6E1IDT2spAWR2AB8s+f09jKceJauxWsUezcBfuPA3mHQ
+DYeH/RIdCm4jvr80HjK16VtJe3hAshGN0ySFs5qmHgJ4EryaFOdtFmMg4fPEovj2hIniuPw9D0C/
+fwqn4cgH9uTP2D/7dFfX6bnP5aaOHo1bcS2uwe2jR5+9x0bfpm/R39K3bff01z9+Jhhc/3bcuf51
+37H+mb+n/mkCe5/hBVBAnXS2WAr52KTUv76Y7vRrx6fIyUiI52k8sgd4z8D6F9dXb1W/GeRPy+Dc
+BWH9949fL2/HX2xQfGnDlt4zGkNLyRz6G/oJuM6ZOfiG6k6KPWYDBisgro2o0RavE4igJUQA/bFe
+EHCGgTXQOuihfSA9Qm6U4NAoJho0KMlX6aND1D66izVmSgSe8XbTbAyJ0d+A0XzbcEln0IfgUBKi
+C9VDG01G6EbrJ+DJZIJukt7PXwsfA5mPoZ/WY3bGwrEA82zIHAIWsf8xerOd3nhJutCrE768PUYa
+2fMZCbj9R7Xvnwjya1CqLUyKAwVIHCT+DAn6JCIR2GxF0VoTO45MVg7U3kTBfudZoVcCVjFN5Pne
+T94RdL2p0oXZt9dKY5i9ylkvy2uKL8qwRWNf4gs1wxdqho+2TcJQNLDRgKJ0osbfONzP1NNznrep
+rE9gI8uAswVDAhQjKWDAWH6EFD6go/HvYz559dUzvRukyJ5PyVs9Kc/QndhxHEHHyM4MeRAn/JyM
+DbZw8lO9pS3K2BbaGtU+PCgqQhODIqz+UTHRw0E5SLimq96O4fzVJNu7iSgRJwqJJFFMlBI1idpE
+XaI+0ZDok4bScJqQRtLENClNk6ZN06Xp0wxpPoWoEBcKhYZCnwVoAV4gLDAs8NmFduFdwi6yS9wl
+7dLs0u7S7dLvMuzyOYAO4APCAXJAPCAd0BzQHtAd0B8wHPA5jo7j48Jxclw8Lh3XHNce1x3XHzcc
+98n5NmFUVmSBuEBaoFmgXaBboGeMv43QcHAQzHsGpZkIUHMAC4eBLwfwh/kTJhUVTp40s3FLU9OW
+x5qaHvv8xo3PP79+Xbg6saho4qSCPGEnJIMz9HX6Nk7CE6AvTNpNl9O19FG6HG/Ej+A1eCOPD+jh
+xbn8XDncFqD23+IvdBLmzfd4g9J8K438wNY79gpx9f5AcPbueIN13dP3907s6zfjIAeEoURbuLHJ
+94QJNYWdCG4mpmZ9J0uAFiPS5IRDt+XNfyZ6nXVZd0iA3pOdGDfjR8W0h17EcVi8b3tB7tb5P3/p
+2PMLt6VPhqPyJBwIn0l3xb+SPuUvb5+9dPe9zLfr6TXxB+BfZhSJ7rHJKMpk9o9oI0E8DZujzKEm
+oz8KtSQbJ4Qma1KjvKdmdggDsbq4o8EZFHxcsmpiB9hBG6IN8NoBZoQWbbju9q1bPb23NjW91mba
+sL19w4b27RsiBNyA1+MNuIE20BX0Pdo+vdNBbuFcHE7/Rl+kHfRvOAziYC/g/zB/Z2ZGMkgaG4ba
+DPo2y0bcZvhFtNknLDpAJ0jILypYSh42To+iLEkxygu08zxbT+47Fk3uf49GBrxQY66kZd2pOBrj
+hz8/2Pr0vs8//eG6tU/SGfilj75ct27rs/Qm/SfNEc70vr9qyw83CeX03trVDzv2/uZXm54ODD67
++42zgGcEfUXcLrkhXsejWtu4UWOGh4cQP6M+Yjw5EKI/YDSPHH5gTEjUgXFjUkf6akaBkccEonDf
+BGNgzBjj2IRU6Dd7ukx0aheken60ZyifZ1NdF7rgyD95sjLND/2+6tE2oCGwIUjDYqK/DgT0H/L5
+0Yg9UrxmwsSQfheyBIl+DUuWrF27ZElD8+Nx64p//M47Py5aP/zgEzfp+3gGtkyompyUtmoK3UHn
+4+V46rnbQszaHTvWPrpjB/3YlZZ17eWXr+Xck7azE2LmKNhrZWDQhrBQ/DvcDFb9Lb35F+gT+PkX
+jwMrmo6gPQK0CKLpPO+I+JGXHXfxOH7QFdAaiIscnu+Go7tt1gANagv+mcm3yfiYqc2qaRvWam2P
+C9AQHG3VRxlHhEXHmXoug0v2vSi8yWKEvV3ytrmABuFnDYuZN8Kp4y0psoXpbh0hlK7dunXt+o0b
+LqU9ln/idOL+mj989o8/Y/EafZ9+mvuk0PrSM8+89Iufv3Cwd9NLcSNxDA5zLMGG6/+F9XQzddEN
+1B2N1Pc6LEeHgszgmdrosDZDdJvJ8DMRN6HHxLbgVlN7nDUKjfC1ajXDcAATursb5O5rbD5S3uYk
+YbWh4bU9KFCIlQUl0Ae+/iQfMGl/k8Skvf4+7bkGhStwxpP0/bVPPgnKbJQOg7D0A/p3xxJ66x/X
+6E1cj5/AK/GW6N4qr0I8B7F3sBNB7lFoGvTcAW1Bhib9Xt82TXSTvHdYW2yrpj3oudHBAYgEhkWN
+MEURa3SgPno09NxdalSB/N19nRmPLB5AA493I8bg1L4jR3/jTXRbd9JPbyx+d3H5bxbtPXRo2/bt
+TTufWD+vs2LFr3Pfw9ImEj3y1ad+++mI4WdSx7duebR978pq96pRo16S5Yu/WvWM0rO0gPxjISew
+zGUVtZHhbVpzk+mxwDZflp1927X7oyA3h0RhgxWZoqPYYaFLrY9eX6FdEEc8WTPJUFAgGiQ8k/ms
+cL23a8yc+I+xiX54a9npgh+8ZH/2V8eevW97DsvoT5j86dVPuukXsvxW8riDe3YfiosDT18HshVw
+P45FiSjTFhdqRG0jNW1RY9ssULlHPpcUahx+V1TQ8Ch/fVRQhJVE+cdEJ4GI3VxG3uip8Jp42A96
+Ax7nPTP3Ja1Y63CYCRhwvhMqNmx9qnHj1qfo62ufuPb2uWtPrG3dRenly/TrXfkNK1Y2rFm1okE4
+3bZ5c3tb86ZtpTGH1xw6d+7QmsMxMa/tev3yh2d2n8GLlj/yyPKVDWsVvMHXS1ee+3PxuAX+U2+g
+aB3/s98bzz25o/+PgLRYfF4DQYF0fVOwT1tNIwf8pRAP+cshFs+hCnQaP8T+cocOod1oFfRzjewd
+IuSO0zDH5qvRBTjds781bUOvoHV4K6w5hTqhc22CDq0RKvQpVA91IgL2rIH7TXD6Xsfpj0AL0T50
+Gcu4FIrNecEqbCPgGcRGashe8oU4SnxQPC9Nlf5TOqjRaYo0mzX7NFe1I7S12re1VDdVj/Sj9FX6
+E4ZAw9OGwz5+Pg/5vG4MNT6qahKPUsHeylt+E2pnmktzsBlORSLMBWO/Pn0X9OmOYeUCdSzAOpc6
+hgyJ3OpYhPE6dSxBX75VHWuQH9qljlk1/Lk69oE46FTHvvqt6KI69oPupAYoY1EPd52GPeoYI9ln
+oToWkM6nQR0TmN+ojkUY71PHcMrzeU0da9Awn7+oYx2y+vSoYx80xRiljn0DRhjnqmM/VBH9SKar
+dkVd5eIKjzyqbLScnJSUIi9aIWdUetyeOqe9Ol7OrSlLkNOrquRitsotFzvdzrqlTkeCIcv5kH12
+vVxWYa9Z7HTL9jqnXFkj19Yvqqoskx2uantljXdNib3GLee7alwZLteSoXND72c769yVrho5OSEl
+RXnGHg1YWe6qAUE8IF6Fx1M7JTHRAfNL6xPcrvq6Mme5q26xM6HG6cnhy5hYTLU+leRRbqdTXuSs
+ci0bnSD/C0okGAz9m0E4u6xQ7oPOMPY7fwyG/znI8hDOlSCi7KmzO5zV9rolsqt8KBWDochZV13p
+5gjC6gpnnRN4La6z13icjni5vA6Uh22gMMAUL3tcsr1mhVwLmMMG1yIPKFxZsxi4lIHQbKWnwqki
+bi8rc1XXwnK2wFMB1AEkZ40bALZySKyjgZhDtrvdrrJKO/ADBMvqq501HruHyVNeWQUYj2IU+Qa5
+xFXuWQaYW0dzSeqctXUuR32Zk5NxVIJilYvqPU4uw6AN8WClsqp6B5NkWaWnwlXvAWGqK1VGbH2d
+AiWQrXfDeqZOvFzt5Fpz+7or4gfwiGc8E111stsJdoDVlSCqqv4Q1kw4IFvLgPao0HFGyypc1d/c
+wMxQXl9XAwydfKPDJbtd8bK7ftFDzjIPm1EwrgKXZAqVuWoclUwP9xSDoRQe2Re5ljq5BooXcQH6
+nKDG5QEzuJVZZpXafg9QnsnuCjsotcipogZigJPbB+npqgG/qJOrXXXOO6ote1bUOsvtwChBEWrw
+02r7Cka/2uWoLK9kjmav8oDrwQCI2h0OrrkCHYsvex3IVV9lr+OMHE535eIaLsbiqhW1FW62iXmo
+vQyIuNkOrzzuoZwUj3MogNmrBhAYQkTd55WlnyKIWFO1Qq4c5OqgUp2T/SdIfC0buBmYzDbeEHGC
+3zkVBZa56hxu2doXi1bG2/tAtrLQtXLYwDp5aswsckI0Mar1YAemxFJXZZ9gzuUeiBrZXlsLIWZf
+VOVkDxT9gfIQw1TYPXKF3Q0UnTWDcQF2/R7ukOtrHKrA1sF5xapo+F2WdbuqWGRz0zFD2eUqlkEg
+XrwLa+1lS+yLQTGIxRpXX/741x1rECtIWiCis6qcCTU9W84pLCiVSwpzSuekF2fLuSVyUXHh7Nys
+7CzZml4C99Z4eU5u6fTCWaUyrChOLyidJxfmyOkF8+SZuQVZ8XL23KLi7JISubBYzs0vysvNhrnc
+gsy8WVm5BdPkDNhXUFgq5+Xm55YC0dJCvlUllZtdwojlZxdnTofb9IzcvNzSefFyTm5pAaOZA0TT
+5aL04tLczFl56cVy0aziosKSbKCRBWQLcgtyioFLdn42KAGEMguL5hXnTpteGg+bSmEyXi4tTs/K
+zk8vnhnPJCwElYtlviQBpAQacvZstrlkenpenpyRW1pSWpydns/WMnSmFRTmM4xmFWSll+YWFsgZ
+2aBKekZetiIbqJKZl56bHy9npeenT8su6WfClqnq9MPBNkzLLsguTs+Ll0uKsjNz2QBwzC3Ozizl
+KwF7QCKPi5tZWFCSfd8smIB1XhZgkOnZnAUokA7/MrlkXP0CUJfRKS0sLu0TZU5uSXa8nF6cW8JE
+yCkuBHGZPWEH03EW4MmMV6DKy2zE5r7pHbCK7VYVzMpOzwOCJUyMb6wF78peXuas9TDfVoNbSY88
+lSr5M557rZIEwIWn1UDgKnN8CP4MkcUrj5Lh+oOLleR4Nf2y9AHeDdVISb+OpU7Igm6WSiA+XCyZ
+LKt080iHMljtUuue214FzGBX3yrIl/Yq2ObuE3NwQHkLYm1dJWxZVlfpgWQi2+thtq5ypVqK69RS
+NVQDxmWo/HVOdy1UqsqlzqoVCbC2jtUzLkllDbRb1arqHL4yzxRvDvXIizlxBygOTVmCbPjOfi1x
+WeWSysRKyFHLE2orahPVRIkyoROvRStQHapEi+FM4kEynI7L0Gj4TkZJ8EmB0SJYIaMMWOOBbt0D
+q53IDueTeJjNRTWwPgFG6agKPjIq7qPl5ndO+HbCnqVwdcBKA8qC0UNAYTacX2TYXQHjGtjj5Dvs
+nL4MVGrgWgtrFgHdSlgnw34X8LXzZ0PplHAqjEI+rKqB3wz4daEl37vu+57P5vK7gauLy5QMWqTA
+Z+A+76470yznswoiHhU9hpAH9JsC5+VE0ExZvxTWJ8A6F3zXgc5OvreOo5MANJywJ2cANS9aXqt9
+00rsGbOAk1vSCVi60DJYy2z2/8YSzKaGO3JWkLPDaKDM3/Q6Axr7b3wY9/8NT74z2v06V6ooyvy5
+ndu4mqO6BOZcYNnvk4VpVsTpVXNq/T6o0K7gz5yqXos5lxruYQ5Op5w/dfZxUyyseFM8l8vFJazh
++2tVP1c4uICqR7VwJfcKRZcyFWkvTQ+XYrCP22FVGfeQWpW6lwJbrciueJKTR43iwdYBXmLllmN7
+HfzbzeUqgz12VT/FB8vAK6s5FQ9/4sWnHEZVqh+P6pOxnwOLcya/B2JB8XPGsR8TNlMLVxdwqedy
+9kvj4Bp4uK8tgqce/tTL49s5xKuxVAaS1XMqCibLuA9U8Jj3qMhU87mBGnnp1w3ySkXaeo5h/ADr
+sHE1t6fX1v3x64bd8d+iR3yfnok878icshIPCu1KFdXB1v9urb3IKdLW9nm0Z4jX9Wu0jONR/S9x
+8EZDOc+ZNaqGzgEcHfzKeMTzb4bEQ7CijNNT1gz04yo1S3otVMZ5O7jElaqkU3h0lqq77EDRxTND
+vw0G5qJ+BL6ZCVi98KjR4B601hsr/YgNzAED98lcZ7tqqUV9edvrawoaSia3f4c9XbzGyKrtq/l3
+f/74V2zhAc1red2yqxolDELqu/YyTFb0yV/No6+Sx7I3ozHZPWrWU2YUSRmmjgE2H+h13vrFuCh4
+1QMVO9/n1cjBJWX2qhmAxmJYx7SpUOfqBuRQO/cexXe9PIbi4/5enQbmOMcgD7NzG91Jgu+WZDC/
+objcScZ41e5VfF/ld2T1OjUDObl81YPoemfcfZ7pjZuhVcSp5jvnIAss41o5+H7rHeqitU/voTvY
+em/VtQ7wNiV28obUmUU87l0DZK1X48FriaXwtPIOiDnRco5zjRrRtfBRqpidZ1Zn346B9ldk/u6I
+qeCZXubfblVGJ/eob/cXRbs75XD2tJ6vGozwnVCVByA30Ib/05h18+zprdn9UeeNKNZBVPX1IHXq
+jsEUa7lHL4HrYtViSl2s4dgO7T/+f2Ssb9dqkRojHrUulvchNR1lcz6FqADuGJ9CuCtFc6CfLObP
+cmFOhn6uGJ7MhrssmM3idknnT9hzK4/GOTBmFAvRLE5LoVEMV0Z7Hsww2jK/Z3czYX0B0GJ7s9Fc
+ziMbqJXwlcWcdj7M5sF3trqO7ciEmVlwz8bTEOtGFX4FsKuUxw7bx2RRJC2F+X6ug6XK5Ry9kuXD
+XTHQn64+TQfauZwekz+eI8XGBX1y5qiSpnOMGGVGMxMkyuN3bHYWfBfBuhKOZzrXWZG2gOuQA88V
+XbK5BIolFIky4bsIeLMV00CuUi4F41SqroznGjJ9svh+xnUmn1UkK1StzMb9VBJULBU5GP6z+ziX
+cP3z4CNz/UthppTbJh3oe+l6fWcap5Df50ezuH7pHIdCziGDP2MoMjzz+lYWD7BKJseL2Y1JnsU5
+pXNESu6oiZfaYOvcyTu8HKZx/bI5Unl8dQngmA3rc/tmFH/M5bpmqtgqNBW/V3wibwC6mVxHZtn7
+gGu26lPpHLvBWigRwuTv10KxQLp6zRyAWb/1C1TrZvbZupB72TdRmcNjMZuvSue2LulDIYfHb74q
++awBHua14yzVPwv7JBuMrzeOvOv+ldyh0PLyHmzBLO5PeaqEJX1ofD9dJXdlQ10r4+cdT1/eHly5
+B3aP/V3pwP4zfkCuHdgJKFl4Gl9bPWRd/6ySn5Wa1X/mGdjD3alyeU/JSk/f3/16uw8ldytno4Hd
+r4P36Uov6O7rSpT64errTJbxp/01XTkNVvMVA897bs5X0axe3TGUltJf2nm3wLi574Dmd1WooSfE
+Wl7vFS7L+NijdiZMv3p1LZtfOeRUXDfkVPV9NvDq8n3413F716pnqkqOMOsnE1S6dch7PuvHhCGg
+vN2qHmL1fu9j1KagoX0ow2DxAMkdqsWVN2WMp+HfeL+WyPFeAr+JXEYH7/wSeBdeC3ODO0rlv4VA
+Xz+C7kd3+DkqNOCgQ0/Ol9KH4SDUighcG/j/T0thHMCvFmSBq5mPTfzqj7bD1Y+PfQ99Ok1Kj8O+
+aDXcGVEcXH1QMlwNnJ6er9IhP7hq+VjD10h8LPJ5wmcEPoNt8yihlPSuJj2UfEXJ7WTyz2Pky9Xk
+1s1m6RYlt06IN2/Mk242k5sN4o3rI6Qb88gNm3h9BPnHtUTpH7fJtUTyX5R8QcnnyeRqIPmslXSD
+iN2UdHd8fc72tfjpNPLJFYf0SSu54iAfU/L3v0VIf6fkbxHkI0ouLyEfUvLXY+TSX8KkS7fJX8LI
+B63kz5S8T8mfLgZJf6LkYhB5r5X88Q9B0h8p+cMWH+kPQeT3q8m7U8gFuLkwhZyn5J3fGaR3KPmd
+gZyj5G1Kzm42S2eHkd8Gk7coebOVvNEUJ71ByeuUnFlNXqPkVUp+Q8np7b5SFyWnKDlJySuUnAB6
+JwLJcSPp/PUxqZOSX788X/r1MfLrBvHlY3HSy/PJyzbxWBx5iZKjraSjJV16kZIj8HXkNvkV0DpM
+yS8d5JCD/MKPHLSQA5S8QG295OeUPE/JzyxkPyXP7fOTnksm+/zIs3vN0rOjyF4z+ekzY6WfribP
+jCU/oWQPJT+mZPeuMGm3g+x62iTtCiNPm8iPDGQnJTuAyQ5KtvuS9m0JUjsl2xJIG/BvayWtTx2T
+Wil5CnzrqWPkqQbxycfjpCfnkydt4lZKfkjJE3D/xDHyeBxpATBa0sljoO1jgWSLD2mGiWYHaQLQ
+muLIZjPZRMlGSjZQsr7RLK2npNFM/pOSdZQ8as6QHi0haylpWE7WPLJaWkPJI6vJ6ijyH5Ss8iMr
+KVlGyVJK6j1Gqd6f1HdgZHtP9BiJ54TothC3Tayj5GFKailx1ZRIrlZSUz1Kqikh1aNIFSVLkslD
+lFQmk4rbZPExUk6JkxIHJWWLoqQyShYhk7QoitgpWUjJAkoevN9HetCPzHeQH7xGHoCbBwLJ/T4E
+PHpuIJlDyWxKZkWESbOSSSklJZQUU3LfalJESWEgKaAkH4+V8inJO0ZmjiIzckOlGRNJbqZFyg0l
+07NDpemUTIO7aQ6SA3c5x0h2KMmCiayJJDPDLGVaSGaHYLPpxYx0fynDTDI6BAR36TY/Kd2fpHfg
+E3BnSzNKNj9i68ANcJdm1EtpRpLWgW02h3gvJfeACPfcJlMpuXsUmULJZAB4soNMGhcuTZpJJlIy
+YWygNIGS1JlkfFK4NH4mSYGvFEqSYWEyJePg8bhwkhROEmGUGEoS9MFSwjEyNj5AGhtIxnYIjG28
+ySzFB5B4Jm6rOOauOGkMJXfByrviyGhhijSaklGUjKRkhD+JC86Q4rLJcH8SS4nV31+yUhIjj5Vi
+VhN5LImeSaKAcxQlkZQMA2yHURIBVokII+GUhFESSkkIUAjJIcFBY6XgDBIUaJKCxpJAEwmAdQGB
+xAL7LZSYQXNzBjEBB5OZmBTs/P2Mkr8/8Vew8/M1SH5G4qdg5wvY+RqIL2B3WDTqiZH51kTRhxID
+aGKgRB9MdCaipUQDpDWUSIGEgHLkNhFgQphCMAiAxxJkIrgDOxq34DH/d37Q/7YA/+ZPJPpvgO3r
+dQplbmRzdHJlYW0KZW5kb2JqCgo2IDAgb2JqCjEwNDEzCmVuZG9iagoKNyAwIG9iago8PC9UeXBl
+L0ZvbnREZXNjcmlwdG9yL0ZvbnROYW1lL0JBQUFBQStEZWphVnVTYW5zTW9ubwovRmxhZ3MgNQov
+Rm9udEJCb3hbLTU1NyAtMzc0IDcxNiAxMDQxXS9JdGFsaWNBbmdsZSAwCi9Bc2NlbnQgOTI4Ci9E
+ZXNjZW50IC0yMzUKL0NhcEhlaWdodCAxMDQxCi9TdGVtViA4MAovRm9udEZpbGUyIDUgMCBSCj4+
+CmVuZG9iagoKOCAwIG9iago8PC9MZW5ndGggNDE2L0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVh
+bQp4nF2TzW7iMBSF93kKLzuLKvEPCZVQJAaKxKIz1dA+QEgME2lwIhMWvH197klbaRagz/G9l8/m
+JN/st/vQT/lrHNqDn9SpD1301+EWW6+O/tyHTBvV9e00r+S7vTRjlqfew/06+cs+nIbVKsv/pL3r
+FO/qYd0NR/8jy3/Hzsc+nNXD++aQ1ofbOP7zFx8mVWR1rTp/SnNemvFXc/G5dD3uu7TdT/fH1PJd
+8HYfvTKy1lRph85fx6b1sQlnn62Kolar3a7OfOj+23OWLcdT+7eJqVSn0qJYFHViI1wZsBUud2BH
+LsEL8hO4JG/AFXkBXgq7Z/ATn2vwmrwF/xQ28rsbYbsGb9krc55ZL3N2dMMcXZBRo+nv0Ktnfwum
+v5P62d+B6W/lOf0tzqtnf2H6V1JPf4Mzavo7mU//cgmmf4Wz6NkfZ9T0txWY/hYzDf0t6s3sj7s1
+9C8x39B/AU9Dfwc3Q38nvfQ3uB9Df4v/xdDfykz6W5lJf4t7M/S3SwnJnAbEBXn+jKFqbzGmCEro
+JXtIXR/813sxDiO65PMBZrbPkAplbmRzdHJlYW0KZW5kb2JqCgo5IDAgb2JqCjw8L1R5cGUvRm9u
+dC9TdWJ0eXBlL1RydWVUeXBlL0Jhc2VGb250L0JBQUFBQStEZWphVnVTYW5zTW9ubwovRmlyc3RD
+aGFyIDAKL0xhc3RDaGFyIDQzCi9XaWR0aHNbNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYw
+MiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyCjYwMiA2MDIgNjAyIDYwMiA2MDIgNjAy
+IDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMgo2MDIgNjAyIDYwMiA2MDIg
+NjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiBdCi9Gb250RGVzY3JpcHRvciA3IDAgUgov
+VG9Vbmljb2RlIDggMCBSCj4+CmVuZG9iagoKMTAgMCBvYmoKPDwvRjEgOSAwIFIKPj4KZW5kb2Jq
+CgoxMSAwIG9iago8PC9Gb250IDEwIDAgUgovUHJvY1NldFsvUERGL1RleHRdCj4+CmVuZG9iagoK
+MSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDQgMCBSL1Jlc291cmNlcyAxMSAwIFIvTWVkaWFC
+b3hbMCAwIDU5NSA4NDJdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1
+ZT4+L0NvbnRlbnRzIDIgMCBSPj4KZW5kb2JqCgo0IDAgb2JqCjw8L1R5cGUvUGFnZXMKL1Jlc291
+cmNlcyAxMSAwIFIKL01lZGlhQm94WyAwIDAgNTk1IDg0MiBdCi9LaWRzWyAxIDAgUiBdCi9Db3Vu
+dCAxPj4KZW5kb2JqCgoxMiAwIG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgNCAwIFIKL09wZW5B
+Y3Rpb25bMSAwIFIgL1hZWiBudWxsIG51bGwgMF0KL0xhbmcoZW4tSU4pCj4+CmVuZG9iagoKMTMg
+MCBvYmoKPDwvQ3JlYXRvcjxGRUZGMDA1NzAwNzIwMDY5MDA3NDAwNjUwMDcyPgovUHJvZHVjZXI8
+RkVGRjAwNEMwMDY5MDA2MjAwNzIwMDY1MDA0RjAwNjYwMDY2MDA2OTAwNjMwMDY1MDAyMDAwMzMw
+MDJFMDAzNj4KL0NyZWF0aW9uRGF0ZShEOjIwMTMwOTE3MTA1MjE5KzA1JzMwJyk+PgplbmRvYmoK
+CnhyZWYKMCAxNAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMTIxNDEgMDAwMDAgbiAKMDAwMDAw
+MDAxOSAwMDAwMCBuIAowMDAwMDAwNTAzIDAwMDAwIG4gCjAwMDAwMTIyODQgMDAwMDAgbiAKMDAw
+MDAwMDUyMyAwMDAwMCBuIAowMDAwMDExMDIxIDAwMDAwIG4gCjAwMDAwMTEwNDMgMDAwMDAgbiAK
+MDAwMDAxMTIzOCAwMDAwMCBuIAowMDAwMDExNzIzIDAwMDAwIG4gCjAwMDAwMTIwNTQgMDAwMDAg
+biAKMDAwMDAxMjA4NiAwMDAwMCBuIAowMDAwMDEyMzgzIDAwMDAwIG4gCjAwMDAwMTI0ODAgMDAw
+MDAgbiAKdHJhaWxlcgo8PC9TaXplIDE0L1Jvb3QgMTIgMCBSCi9JbmZvIDEzIDAgUgovSUQgWyA8
+MUQ3RURGOENDMTExODZGOUQwNERCQTNCNTIxRUIwRUQ+CjwxRDdFREY4Q0MxMTE4NkY5RDA0REJB
+M0I1MjFFQjBFRD4gXQovRG9jQ2hlY2tzdW0gL0FGQTcyQ0IwMzY4QzE1RjAyN0YxODgxNDAxQkM3
+QkQ0Cj4+CnN0YXJ0eHJlZgoxMjY1NQolJUVPRgo=
+ Jones_CV.pdf
+ Jones_CV.pdf
+
+ hr.applicant
+
+
+ UFJPRklMRSANCg0KTmFtZSAgICAgICAgICAgIDogU2hhbmUgV2lsbGlhbXMgIA0KQWRkcmVzcyAgICAgICAgIDogODEgQWNhZGVteSBBdmVudWUsIA0KICAgICAgICAgICAgICAgICAgICAgOkJpcm1pbmdoYW1CNDYgM0FHLCANCiAgICAgICAgICAgICAgICAgICAgIDpVbml0ZWQgS2luZ2RvbSwgDQpRdWFsaWZpY2F0aW9uICAgOiBNQ0EgDQpFbWFpbCAgICAgICAgICAgICA6IFNoYW5lV2lsbGlhbXNAaW5mby5jb20gDQpNb2JpbGUgICAgICAgICAgIDogOTk2MzIxNDU4NyA=
+ Williams_CV.doc
+ Williams_CV.doc
+
+ hr.applicant
+
+
+ UHJvZmlsZQ0KDQpOYW1lICAgICAgICAgIDpKb3NlDQpBZGRyZXNzICAgICAgIDo5MywgUHJlc3MgQXZlbnVlDQogICAgICAgICAgICAgICAgICAgOkxlIEJvdXJnZXQgZHUgTGFjLCA3MzM3NywNCiAgICAgICAgICAgICAgICAgICA6IEZyYW5jZSANClF1YWxpZmljYXRpb24gOk1DQQ0KRW1haWwgICAgICAgICAgIDpKb3NlQGdtYWlsLmNvbQ0KTW9iaWxlICAgICAgICAgIDo5OTY4NTEzNTg3
+ Jose_CV.txt
+ Jose_CV.txt
+
+ hr.applicant
+
+
+
diff --git a/addons/hr_applicant_document/models/__init__.py b/addons/hr_applicant_document/models/__init__.py
new file mode 100644
index 00000000000..0f3aa35f140
--- /dev/null
+++ b/addons/hr_applicant_document/models/__init__.py
@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+import hr_applicant
diff --git a/addons/hr_applicant_document/models/hr_applicant.py b/addons/hr_applicant_document/models/hr_applicant.py
new file mode 100644
index 00000000000..036ea6c200e
--- /dev/null
+++ b/addons/hr_applicant_document/models/hr_applicant.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+
+from openerp.osv import fields, osv
+
+
+class hr_applicant(osv.Model):
+ _inherit = 'hr.applicant'
+
+ def _get_index_content(self, cr, uid, ids, fields, args, context=None):
+ res = dict.fromkeys(ids, '')
+ Attachment = self.pool.get('ir.attachment')
+ attachment_ids = Attachment.search(cr, uid, [('res_model', '=', 'hr.applicant'), ('res_id', 'in', ids)], context=context)
+ for attachment in Attachment.browse(cr, uid, attachment_ids, context=context):
+ res[attachment.res_id] += attachment.index_content or ''
+ return res
+
+ def _content_search(self, cr, user, obj, name, args, context=None):
+ record_ids = set()
+ Attachment = self.pool.get('ir.attachment')
+ args = ['&'] + args + [('res_model', '=', 'hr.applicant')]
+ att_ids = Attachment.search(cr, user, args, context=context)
+ record_ids = set(att.res_id for att in Attachment.browse(cr, user, att_ids, context=context))
+ return [('id', 'in', list(record_ids))]
+
+ _columns = {
+ 'index_content': fields.function(
+ _get_index_content, fnct_search=_content_search,
+ string='Index Content', type="text"),
+ }
diff --git a/addons/hr_applicant_document/views/hr_applicant.xml b/addons/hr_applicant_document/views/hr_applicant.xml
new file mode 100644
index 00000000000..706a1b4c754
--- /dev/null
+++ b/addons/hr_applicant_document/views/hr_applicant.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ Jobs - Recruitment Search
+ hr.applicant
+
+
+
+
+
+
+
+
+
+ Resumes and Letters
+ ir.attachment
+ tree,form
+
+ [('res_model','=','hr.applicant')]
+
+
+ Search through resumes and motivation letters.
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/hr_attendance/report/hr_custom_default.xsl b/addons/hr_attendance/report/hr_custom_default.xsl
index e8b133da1b0..2eda3a08f4b 100644
--- a/addons/hr_attendance/report/hr_custom_default.xsl
+++ b/addons/hr_attendance/report/hr_custom_default.xsl
@@ -5,9 +5,9 @@
-
+
-
+ 1.3cm 19.3cm 28.5cm 19.3cm
@@ -17,9 +17,9 @@
-
+
-
+ 1.3cm 19.3cm 28.5cm 19.3cm
diff --git a/addons/hr_attendance/static/src/css/slider.css b/addons/hr_attendance/static/src/css/slider.css
index 664d4f96e41..849cd33a894 100644
--- a/addons/hr_attendance/static/src/css/slider.css
+++ b/addons/hr_attendance/static/src/css/slider.css
@@ -5,7 +5,7 @@
display: inline-block;
}
.openerp .oe_attendance_signin {
- float:left;
+ float: right;
height: 32px;
width: 32px;
background: url(/hr_attendance/static/src/img/emp-out32.png);
diff --git a/addons/hr_evaluation/hr_evaluation.py b/addons/hr_evaluation/hr_evaluation.py
index 09c47b89153..462154e9e4a 100644
--- a/addons/hr_evaluation/hr_evaluation.py
+++ b/addons/hr_evaluation/hr_evaluation.py
@@ -101,6 +101,8 @@ Thanks,
class hr_employee(osv.osv):
_name = "hr.employee"
_inherit="hr.employee"
+
+
_columns = {
'evaluation_plan_id': fields.many2one('hr_evaluation.plan', 'Appraisal Plan'),
'evaluation_date': fields.date('Next Appraisal Date', help="The date of the next appraisal is computed by the appraisal plan's dates (first appraisal + periodicity)."),
@@ -123,6 +125,8 @@ class hr_employee(osv.osv):
obj_evaluation.button_plan_in_progress(cr, uid, [plan_id], context=context)
return True
+
+
class hr_evaluation(osv.osv):
_name = "hr_evaluation.evaluation"
_inherit = "mail.thread"
diff --git a/addons/hr_evaluation/i18n/pl.po b/addons/hr_evaluation/i18n/pl.po
new file mode 100644
index 00000000000..f154b1b71a3
--- /dev/null
+++ b/addons/hr_evaluation/i18n/pl.po
@@ -0,0 +1,913 @@
+# Polish translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:04+0000\n"
+"PO-Revision-Date: 2013-11-17 15:26+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Polish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-18 05:22+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#. module: hr_evaluation
+#: help:hr_evaluation.plan.phase,send_anonymous_manager:0
+msgid "Send an anonymous summary to the manager"
+msgstr "Wyślij anonimowe podsumowanie do menadżera"
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Start Appraisal"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+#: view:hr.evaluation.report:0
+#: view:hr_evaluation.plan:0
+msgid "Group By..."
+msgstr "Grupuj wg..."
+
+#. module: hr_evaluation
+#: field:hr.evaluation.interview,request_id:0
+#: field:hr.evaluation.report,request_id:0
+msgid "Request_id"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,month:0
+msgid "March"
+msgstr "Marzec"
+
+#. module: hr_evaluation
+#: field:hr.evaluation.report,delay_date:0
+msgid "Delay to Start"
+msgstr "Opuźnienie do rozpoczęcia"
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Appraisal that are in waiting appreciation state"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan:0
+#: field:hr_evaluation.plan,company_id:0
+#: field:hr_evaluation.plan.phase,company_id:0
+msgid "Company"
+msgstr "Firma"
+
+#. module: hr_evaluation
+#: field:hr.evaluation.interview,evaluation_id:0
+#: field:hr_evaluation.plan.phase,survey_id:0
+msgid "Appraisal Form"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+#: field:hr.evaluation.report,day:0
+msgid "Day"
+msgstr "Dzień"
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan:0
+#: field:hr_evaluation.plan,phase_ids:0
+msgid "Appraisal Phases"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+msgid "Send Request"
+msgstr "Wyślij żądanie"
+
+#. module: hr_evaluation
+#: help:hr_evaluation.plan,month_first:0
+msgid ""
+"This number of months will be used to schedule the first evaluation date of "
+"the employee when selecting an evaluation plan. "
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.employee:0
+#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_hr_evaluation_tree
+msgid "Appraisals"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "(eval_name)s:Appraisal Name"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.interview,message_ids:0
+#: field:hr_evaluation.evaluation,message_ids:0
+msgid "Messages"
+msgstr "Wiadomości"
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "Mail Body"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.plan.phase,wait:0
+msgid "Wait Previous Phases"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.model,name:hr_evaluation.model_hr_evaluation_evaluation
+msgid "Employee Appraisal"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,state:0
+#: selection:hr_evaluation.evaluation,state:0
+msgid "Cancelled"
+msgstr "Anulowano"
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,rating:0
+#: selection:hr_evaluation.evaluation,rating:0
+msgid "Did not meet expectations"
+msgstr "Nie spełnił oczekiwań"
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+#: model:ir.actions.act_window,name:hr_evaluation.open_view_hr_evaluation_tree
+#: model:ir.ui.menu,name:hr_evaluation.menu_eval_hr
+msgid "Appraisal"
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr.evaluation.interview,message_unread:0
+#: help:hr_evaluation.evaluation,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr "Jeśli zaznaczone, to wiadomość wymaga twojej uwagi"
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "Send to Managers"
+msgstr "Wyślij do menadżera"
+
+#. module: hr_evaluation
+#: field:hr_evaluation.evaluation,date_close:0
+msgid "Ending Date"
+msgstr "Data końcowa"
+
+#. module: hr_evaluation
+#: help:hr_evaluation.evaluation,note_action:0
+msgid ""
+"If the evaluation does not meet the expectations, you can proposean action "
+"plan"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "Send to Employees"
+msgstr "Wyślij do pracownika"
+
+#. module: hr_evaluation
+#: code:addons/hr_evaluation/hr_evaluation.py:84
+#, python-format
+msgid ""
+"\n"
+"Date: %(date)s\n"
+"\n"
+"Dear %(employee_name)s,\n"
+"\n"
+"I am doing an evaluation regarding %(eval_name)s.\n"
+"\n"
+"Kindly submit your response.\n"
+"\n"
+"\n"
+"Thanks,\n"
+"--\n"
+"%(user_signature)s\n"
+"\n"
+" "
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Appraisal that are in Plan In Progress state"
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr.evaluation.interview,message_summary:0
+#: help:hr_evaluation.evaluation,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 ""
+"Zawiera podsumowanie wypowiedzi (liczbę wiadomości, ...). To podsumowanie "
+"jest bezpośrednio w formacie html, aby można je było stosować w widokach "
+"kanban."
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Reset to Draft"
+msgstr "Reset do wersji roboczej"
+
+#. module: hr_evaluation
+#: field:hr.evaluation.report,deadline:0
+msgid "Deadline"
+msgstr "Ostateczny czas ukończenia"
+
+#. module: hr_evaluation
+#: code:addons/hr_evaluation/hr_evaluation.py:235
+#: code:addons/hr_evaluation/hr_evaluation.py:320
+#, python-format
+msgid "Warning!"
+msgstr "Ostrzeżenie !"
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+msgid "In progress Evaluations"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.model,name:hr_evaluation.model_survey_request
+msgid "survey.request"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "(date)s: Current Date"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.actions.act_window,name:hr_evaluation.act_hr_employee_2_hr__evaluation_interview
+msgid "Interviews"
+msgstr "Rozmowy kwalifikacyjne"
+
+#. module: hr_evaluation
+#: code:addons/hr_evaluation/hr_evaluation.py:83
+#, python-format
+msgid "Regarding "
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.interview,message_follower_ids:0
+#: field:hr_evaluation.evaluation,message_follower_ids:0
+msgid "Followers"
+msgstr "Obserwatorzy"
+
+#. module: hr_evaluation
+#: field:hr.evaluation.interview,message_unread:0
+#: field:hr_evaluation.evaluation,message_unread:0
+msgid "Unread Messages"
+msgstr "Nieprzeczytane wiadomości"
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+#: field:hr.evaluation.report,employee_id:0
+#: view:hr_evaluation.evaluation:0
+#: field:hr_evaluation.evaluation,employee_id:0
+#: model:ir.model,name:hr_evaluation.model_hr_employee
+msgid "Employee"
+msgstr "Pracownik"
+
+#. module: hr_evaluation
+#: selection:hr_evaluation.evaluation,state:0
+msgid "New"
+msgstr "Nowe"
+
+#. module: hr_evaluation
+#: field:hr_evaluation.plan.phase,mail_body:0
+msgid "Email"
+msgstr "Email"
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,rating:0
+#: selection:hr_evaluation.evaluation,rating:0
+msgid "Exceeds expectations"
+msgstr "Przekracza oczekiwania"
+
+#. module: hr_evaluation
+#: help:hr_evaluation.plan.phase,mail_feature:0
+msgid ""
+"Check this box if you want to send mail to employees coming under this phase"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+msgid "Creation Date"
+msgstr "Data utworzenia"
+
+#. module: hr_evaluation
+#: help:hr_evaluation.plan.phase,send_answer_manager:0
+msgid "Send all answers to the manager"
+msgstr "Wyślij wszystkie odpowiedzi do menadżera"
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,state:0
+#: selection:hr_evaluation.evaluation,state:0
+msgid "Plan In Progress"
+msgstr "Plan w trakcie realizacji"
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Public Notes"
+msgstr "Notatki publiczne"
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+msgid "Send Reminder Email"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+#: field:hr_evaluation.evaluation,rating:0
+msgid "Appreciation"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Print Interview"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.report,closed:0
+msgid "closed"
+msgstr "zamknięte"
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,rating:0
+#: selection:hr_evaluation.evaluation,rating:0
+msgid "Meet expectations"
+msgstr "Spełnia oczekiwania"
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+#: field:hr.evaluation.report,nbr:0
+msgid "# of Requests"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,month:0
+msgid "July"
+msgstr "Lipiec"
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+#: view:hr.evaluation.report:0
+#: field:hr.evaluation.report,state:0
+#: view:hr_evaluation.evaluation:0
+#: field:hr_evaluation.evaluation,state:0
+msgid "Status"
+msgstr "Status"
+
+#. module: hr_evaluation
+#: model:ir.actions.act_window,name:hr_evaluation.action_evaluation_plans_installer
+msgid "Review Appraisal Plans"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.actions.act_window,help:hr_evaluation.action_evaluation_plans_installer
+msgid ""
+"
\n"
+" Click to define a new appraisal plan.\n"
+"
\n"
+" You can define appraisal plans (ex: first interview after 6\n"
+" months, then every year). Then, each employee can be linked "
+"to\n"
+" an appraisal plan so that OpenERP can automatically "
+"generate\n"
+" interview requests to managers and/or subordinates.\n"
+"
\n"
+" Each employee may be assigned an Appraisal Plan. Such a "
+"plan\n"
+" defines the frequency and the way you manage your periodic\n"
+" personnel evaluation. You will be able to define steps and\n"
+" attach interviews to each step. OpenERP manages all kinds "
+"of\n"
+" evaluations: bottom-up, top-down, self-evaluation and final\n"
+" evaluation by the manager.\n"
+"
\n"
+" Click to create a new interview request related to a "
+"personal evaluation. \n"
+"
\n"
+" Interview requests are usually generated automatically by\n"
+" OpenERP according to an employee's appraisal plan. Each "
+"user\n"
+" receives automatic emails and requests to evaluate their\n"
+" colleagues periodically.\n"
+"
\n"
+" Click to define a new appraisal plan.\n"
+"
\n"
+" You can define appraisal plans (ex: first interview after 6\n"
+" months, then every year). Then, each employee can be linked "
+"to\n"
+" an appraisal plan so that OpenERP can automatically "
+"generate\n"
+" interview requests to managers and/or subordinates.\n"
+"
\n"
+" Each employee may be assigned an Appraisal Plan. Such a "
+"plan\n"
+" defines the frequency and the way you manage your periodic\n"
+" personnel evaluation. You will be able to define steps and\n"
+" attach interviews to each step. OpenERP manages all kinds "
+"of\n"
+" evaluations: bottom-up, top-down, self-evaluation and final\n"
+" evaluation by the manager.\n"
+"
\n"
+" Click to create a new interview request related to a "
+"personal evaluation. \n"
+"
\n"
+" Interview requests are usually generated automatically by\n"
+" OpenERP according to an employee's appraisal plan. Each "
+"user\n"
+" receives automatic emails and requests to evaluate their\n"
+" colleagues periodically.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr.evaluation.interview,message_ids:0
+#: help:hr_evaluation.evaluation,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+#: view:hr_evaluation.evaluation:0
+msgid "Search Appraisal"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.plan.phase,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "(user_signature)s: User name"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:board.board:0
+#: model:ir.actions.act_window,name:hr_evaluation.action_hr_evaluation_interview_board
+#: model:ir.actions.act_window,name:hr_evaluation.action_hr_evaluation_interview_tree
+#: model:ir.ui.menu,name:hr_evaluation.menu_open_hr_evaluation_interview_requests
+msgid "Interview Requests"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.report,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+#: field:hr.evaluation.report,year:0
+msgid "Year"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.evaluation,note_summary:0
+msgid "Appraisal Summary"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.employee,evaluation_date:0
+msgid "Next Appraisal Date"
+msgstr ""
diff --git a/addons/hr_evaluation/security/ir.model.access.csv b/addons/hr_evaluation/security/ir.model.access.csv
index a304ee84c10..4be3d74b7d8 100644
--- a/addons/hr_evaluation/security/ir.model.access.csv
+++ b/addons/hr_evaluation/security/ir.model.access.csv
@@ -39,4 +39,4 @@ access_survey_response_hr_employee,survey.response.employee,survey.model_survey_
access_survey_question_column_heading_hr_employee,survey.question.column.heading.employee,survey.model_survey_question_column_heading,base.group_user,1,0,0,0
access_survey_response_line_hr_employee,survey.response.line.employee,survey.model_survey_response_line,base.group_user,1,1,1,0
access_survey_response_answer_hr_employee,survey.response.answer.hr.employee,survey.model_survey_response_answer,base.group_user,1,1,1,0
-access_survey_tbl_column_heading_hr_employee,survey.tbl.column.heading,survey.model_survey_tbl_column_heading,base.group_user,1,1,1,0
+access_survey_tbl_column_heading_hr_employee,survey.tbl.column.heading,survey.model_survey_tbl_column_heading,base.group_user,1,1,1,0
\ No newline at end of file
diff --git a/addons/hr_expense/hr_expense_demo.xml b/addons/hr_expense/hr_expense_demo.xml
index aa490eddbea..b7b6cd37956 100644
--- a/addons/hr_expense/hr_expense_demo.xml
+++ b/addons/hr_expense/hr_expense_demo.xml
@@ -15,7 +15,6 @@
- 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
@@ -27,7 +26,6 @@
AT
- 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
@@ -38,7 +36,6 @@
HA0
- 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
diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml
index 7505717c672..33f737aa66e 100644
--- a/addons/hr_expense/hr_expense_view.xml
+++ b/addons/hr_expense/hr_expense_view.xml
@@ -157,7 +157,7 @@
-
+
diff --git a/addons/hr_expense/i18n/zh_TW.po b/addons/hr_expense/i18n/zh_TW.po
index 29cf442efbc..227f7fd91db 100644
--- a/addons/hr_expense/i18n/zh_TW.po
+++ b/addons/hr_expense/i18n/zh_TW.po
@@ -7,57 +7,57 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2009-01-30 13:19+0000\n"
-"Last-Translator: <>\n"
+"PO-Revision-Date: 2013-12-27 04:48+0000\n"
+"Last-Translator: Andy Cheng \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 05:53+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-12-28 05:19+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
#. module: hr_expense
#: view:hr.expense.expense:0
#: model:process.node,name:hr_expense.process_node_confirmedexpenses0
msgid "Confirmed Expenses"
-msgstr ""
+msgstr "已確認費用報支"
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_hr_expense_line
msgid "Expense Line"
-msgstr ""
+msgstr "費用報支項目"
#. module: hr_expense
#: model:process.node,note:hr_expense.process_node_reimbursement0
msgid "The accoutant reimburse the expenses"
-msgstr ""
+msgstr "會計師報支費用"
#. module: hr_expense
#: model:mail.message.subtype,description:hr_expense.mt_expense_approved
msgid "Expense approved"
-msgstr ""
+msgstr "費用報支已核准"
#. module: hr_expense
#: field:hr.expense.expense,date_confirm:0
#: field:hr.expense.report,date_confirm:0
msgid "Confirmation Date"
-msgstr ""
+msgstr "確認日期"
#. module: hr_expense
#: view:hr.expense.expense:0
#: view:hr.expense.report:0
msgid "Group By..."
-msgstr ""
+msgstr "分組..."
#. module: hr_expense
#: model:product.template,name:hr_expense.air_ticket_product_template
msgid "Air Ticket"
-msgstr ""
+msgstr "機票"
#. module: hr_expense
#: report:hr.expense:0
msgid "Validated By"
-msgstr ""
+msgstr "已完成審核"
#. module: hr_expense
#: view:hr.expense.expense:0
@@ -65,45 +65,45 @@ msgstr ""
#: view:hr.expense.report:0
#: field:hr.expense.report,department_id:0
msgid "Department"
-msgstr ""
+msgstr "部門"
#. module: hr_expense
#: view:hr.expense.expense:0
msgid "New Expense"
-msgstr ""
+msgstr "新增費用報支"
#. module: hr_expense
#: field:hr.expense.line,uom_id:0
#: view:product.product:0
msgid "Unit of Measure"
-msgstr ""
+msgstr "度量單位"
#. module: hr_expense
#: selection:hr.expense.report,month:0
msgid "March"
-msgstr ""
+msgstr "三月"
#. module: hr_expense
#: field:hr.expense.expense,message_unread:0
msgid "Unread Messages"
-msgstr ""
+msgstr "未讀訊息"
#. module: hr_expense
#: field:hr.expense.expense,company_id:0
#: view:hr.expense.report:0
#: field:hr.expense.report,company_id:0
msgid "Company"
-msgstr ""
+msgstr "公司"
#. module: hr_expense
#: view:hr.expense.expense:0
msgid "Set to Draft"
-msgstr ""
+msgstr "設為草稿"
#. module: hr_expense
#: view:hr.expense.expense:0
msgid "To Pay"
-msgstr ""
+msgstr "應付款"
#. module: hr_expense
#: code:addons/hr_expense/hr_expense.py:172
@@ -111,12 +111,12 @@ msgstr ""
msgid ""
"No expense journal found. Please make sure you have a journal with type "
"'purchase' configured."
-msgstr ""
+msgstr "未找到費用日記帳。請確認您是否有設置型態為「採購」的日記帳。"
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_hr_expense_report
msgid "Expenses Statistics"
-msgstr ""
+msgstr "費用報支統計"
#. module: hr_expense
#: view:hr.expense.expense:0
@@ -127,7 +127,7 @@ msgstr ""
#: view:hr.expense.report:0
#: field:hr.expense.report,day:0
msgid "Day"
-msgstr ""
+msgstr "日"
#. module: hr_expense
#: help:hr.expense.expense,date_valid:0
@@ -139,12 +139,12 @@ msgstr ""
#. module: hr_expense
#: view:hr.expense.expense:0
msgid "Notes"
-msgstr ""
+msgstr "備註"
#. module: hr_expense
#: field:hr.expense.expense,message_ids:0
msgid "Messages"
-msgstr ""
+msgstr "訊息"
#. module: hr_expense
#: code:addons/hr_expense/hr_expense.py:172
@@ -154,28 +154,28 @@ msgstr ""
#: code:addons/hr_expense/hr_expense.py:353
#, python-format
msgid "Error!"
-msgstr ""
+msgstr "錯誤!"
#. module: hr_expense
#: model:mail.message.subtype,description:hr_expense.mt_expense_refused
msgid "Expense refused"
-msgstr ""
+msgstr "費用報支被拒"
#. module: hr_expense
#: model:ir.actions.act_window,name:hr_expense.hr_expense_product
#: view:product.product:0
msgid "Products"
-msgstr ""
+msgstr "產品"
#. module: hr_expense
#: view:hr.expense.report:0
msgid "Confirm Expenses"
-msgstr ""
+msgstr "確認費用報支"
#. module: hr_expense
#: selection:hr.expense.report,state:0
msgid "Cancelled"
-msgstr ""
+msgstr "已取消"
#. module: hr_expense
#: model:process.node,note:hr_expense.process_node_refused0
@@ -190,17 +190,17 @@ msgstr ""
#. module: hr_expense
#: selection:hr.expense.report,state:0
msgid "Waiting confirmation"
-msgstr ""
+msgstr "等待確認中"
#. module: hr_expense
#: selection:hr.expense.report,state:0
msgid "Accepted"
-msgstr ""
+msgstr "已接受"
#. module: hr_expense
#: field:hr.expense.line,ref:0
msgid "Reference"
-msgstr ""
+msgstr "參考"
#. module: hr_expense
#: report:hr.expense:0
@@ -228,7 +228,7 @@ msgstr ""
#: view:hr.expense.report:0
#: field:hr.expense.report,nbr:0
msgid "# of Lines"
-msgstr ""
+msgstr "項目數量"
#. module: hr_expense
#: help:hr.expense.expense,message_summary:0
@@ -241,33 +241,33 @@ msgstr ""
#: code:addons/hr_expense/hr_expense.py:453
#, python-format
msgid "Warning"
-msgstr ""
+msgstr "警告"
#. module: hr_expense
#: report:hr.expense:0
msgid "(Date and signature)"
-msgstr ""
+msgstr "(日期與簽名)"
#. module: hr_expense
#: report:hr.expense:0
msgid "Total:"
-msgstr ""
+msgstr "合計:"
#. module: hr_expense
#: model:process.transition,name:hr_expense.process_transition_refuseexpense0
msgid "Refuse expense"
-msgstr ""
+msgstr "拒絕費用報支"
#. module: hr_expense
#: field:hr.expense.report,price_average:0
msgid "Average Price"
-msgstr ""
+msgstr "平均價格"
#. module: hr_expense
#: view:hr.expense.expense:0
#: model:process.transition.action,name:hr_expense.process_transition_action_confirm0
msgid "Confirm"
-msgstr ""
+msgstr "確認"
#. module: hr_expense
#: model:process.node,note:hr_expense.process_node_supplierinvoice0
diff --git a/addons/hr_gamification/__init__.py b/addons/hr_gamification/__init__.py
new file mode 100644
index 00000000000..1896704c7fc
--- /dev/null
+++ b/addons/hr_gamification/__init__.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP 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 .
+#
+##############################################################################
+
+import models
+import wizard
\ No newline at end of file
diff --git a/addons/hr_gamification/__openerp__.py b/addons/hr_gamification/__openerp__.py
new file mode 100644
index 00000000000..c75a4454437
--- /dev/null
+++ b/addons/hr_gamification/__openerp__.py
@@ -0,0 +1,40 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP 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 .
+#
+##############################################################################
+{
+ 'name': 'HR Gamification',
+ 'version': '1.0',
+ 'author': 'OpenERP SA',
+ 'category': 'hidden',
+ 'depends': ['gamification', 'hr'],
+ 'description': """Use the HR ressources for the gamification process.
+
+The HR officer can now manage challenges and badges.
+This allow the user to send badges to employees instead of simple users.
+Badge received are displayed on the user profile.
+""",
+ 'data': [
+ 'security/ir.model.access.csv',
+ 'security/gamification_security.xml',
+ 'wizard/grant_badge.xml',
+ 'views/gamification.xml',
+ ],
+ 'js': ['static/src/js/gamification.js'],
+}
diff --git a/addons/hr_gamification/models/__init__.py b/addons/hr_gamification/models/__init__.py
new file mode 100644
index 00000000000..51cf01dfa09
--- /dev/null
+++ b/addons/hr_gamification/models/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP 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 .
+#
+##############################################################################
+
+import gamification
diff --git a/addons/hr_gamification/models/gamification.py b/addons/hr_gamification/models/gamification.py
new file mode 100644
index 00000000000..b2aa9039cb1
--- /dev/null
+++ b/addons/hr_gamification/models/gamification.py
@@ -0,0 +1,113 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP SA ()
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
+#
+##############################################################################
+
+from openerp.osv import fields, osv
+
+
+class hr_gamification_badge_user(osv.Model):
+ """User having received a badge"""
+
+ _name = 'gamification.badge.user'
+ _inherit = ['gamification.badge.user']
+
+ _columns = {
+ 'employee_id': fields.many2one("hr.employee", string='Employee'),
+ }
+
+ def _check_employee_related_user(self, cr, uid, ids, context=None):
+ for badge_user in self.browse(cr, uid, ids, context=context):
+ if badge_user.user_id and badge_user.employee_id:
+ if badge_user.employee_id not in badge_user.user_id.employee_ids:
+ return False
+ return True
+
+ _constraints = [
+ (_check_employee_related_user, "The selected employee does not correspond to the selected user.", ['employee_id']),
+ ]
+
+
+class gamification_badge(osv.Model):
+ _name = 'gamification.badge'
+ _inherit = ['gamification.badge']
+
+ def get_granted_employees(self, cr, uid, badge_ids, context=None):
+ if context is None:
+ context = {}
+
+ employee_ids = []
+ badge_user_ids = self.pool.get('gamification.badge.user').search(cr, uid, [('badge_id', 'in', badge_ids), ('employee_id', '!=', False)], context=context)
+ for badge_user in self.pool.get('gamification.badge.user').browse(cr, uid, badge_user_ids, context):
+ employee_ids.append(badge_user.employee_id.id)
+ # remove duplicates
+ employee_ids = list(set(employee_ids))
+ return {
+ 'type': 'ir.actions.act_window',
+ 'name': 'Granted Employees',
+ 'view_mode': 'kanban,tree,form',
+ 'view_type': 'form',
+ 'res_model': 'hr.employee',
+ 'domain': [('id', 'in', employee_ids)]
+ }
+
+
+class hr_employee(osv.osv):
+ _name = "hr.employee"
+ _inherit = "hr.employee"
+
+ def _get_employee_goals(self, cr, uid, ids, field_name, arg, context=None):
+ """Return the list of goals assigned to the employee"""
+ res = {}
+ for employee in self.browse(cr, uid, ids, context=context):
+ res[employee.id] = self.pool.get('gamification.goal').search(cr,uid,[('user_id', '=', employee.user_id.id), ('challenge_id.category', '=', 'hr')], context=context)
+ return res
+
+ def _get_employee_badges(self, cr, uid, ids, field_name, arg, context=None):
+ """Return the list of badge_users assigned to the employee"""
+ res = {}
+ for employee in self.browse(cr, uid, ids, context=context):
+ res[employee.id] = self.pool.get('gamification.badge.user').search(cr, uid, [
+ '|',
+ ('employee_id', '=', employee.id),
+ '&',
+ ('employee_id', '=', False),
+ ('user_id', '=', employee.user_id.id)
+ ], context=context)
+ return res
+
+ def _has_badges(self, cr, uid, ids, field_name, arg, context=None):
+ """Return the list of badge_users assigned to the employee"""
+ res = {}
+ for employee in self.browse(cr, uid, ids, context=context):
+ employee_badge_ids = self.pool.get('gamification.badge.user').search(cr, uid, [
+ '|',
+ ('employee_id', '=', employee.id),
+ '&',
+ ('employee_id', '=', False),
+ ('user_id', '=', employee.user_id.id)
+ ], context=context)
+ res[employee.id] = len(employee_badge_ids) > 0
+ return res
+
+ _columns = {
+ 'goal_ids': fields.function(_get_employee_goals, type="one2many", obj='gamification.goal', string="Employee HR Goals"),
+ 'badge_ids': fields.function(_get_employee_badges, type="one2many", obj='gamification.badge.user', string="Employee Badges"),
+ 'has_badges': fields.function(_has_badges, type="boolean", string="Has Badges"),
+ }
diff --git a/addons/hr_gamification/security/gamification_security.xml b/addons/hr_gamification/security/gamification_security.xml
new file mode 100644
index 00000000000..e0f9a6cf918
--- /dev/null
+++ b/addons/hr_gamification/security/gamification_security.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ HR Officer can see any goal
+
+
+
+
+
+
+ [(1, '=', 1)]
+
+
+
+
diff --git a/addons/hr_gamification/security/ir.model.access.csv b/addons/hr_gamification/security/ir.model.access.csv
new file mode 100644
index 00000000000..b89db7cd104
--- /dev/null
+++ b/addons/hr_gamification/security/ir.model.access.csv
@@ -0,0 +1,5 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+challenge_officer,"Challenge Officer",gamification.model_gamification_challenge,base.group_hr_user,1,1,1,1
+challenge_line_officer,"Challenge Line Officer",gamification.model_gamification_challenge_line,base.group_hr_user,1,1,1,1
+badge_officer,"Badge Officer",gamification.model_gamification_badge,base.group_hr_user,1,1,1,1
+badge_user_officer,"Badge-user Officer",gamification.model_gamification_badge_user,base.group_hr_user,1,1,1,1
\ No newline at end of file
diff --git a/addons/hr_gamification/static/src/js/gamification.js b/addons/hr_gamification/static/src/js/gamification.js
new file mode 100644
index 00000000000..a9126464a10
--- /dev/null
+++ b/addons/hr_gamification/static/src/js/gamification.js
@@ -0,0 +1,19 @@
+openerp.hr_gamification = function(instance) {
+ instance.web_kanban.KanbanRecord.include({
+ on_card_clicked: function() {
+ if (this.view.dataset.model === 'gamification.badge.user') {
+ var action = {
+ type: 'ir.actions.act_window',
+ res_model: 'gamification.badge',
+ view_mode: 'form',
+ view_type: 'form,kanban,tree',
+ views: [[false, 'form']],
+ res_id: this.record.badge_id.raw_value[0]
+ };
+ this.do_action(action);
+ } else {
+ this._super.apply(this, arguments);
+ }
+ }
+ });
+};
diff --git a/addons/hr_gamification/views/gamification.xml b/addons/hr_gamification/views/gamification.xml
new file mode 100644
index 00000000000..e2d45948b95
--- /dev/null
+++ b/addons/hr_gamification/views/gamification.xml
@@ -0,0 +1,104 @@
+
+
+
+
+
+ Badge Form
+ gamification.badge
+
+
+
+
+
+
+
+
+
+
+
+ hr.hr.employee.view.form
+ hr.employee
+
+
+
+
+
+
+ to reward this employee for a good action
+
+
+ Click to grant this employee his first badge
+
+ Badges are rewards of good work. Give them to people you believe deserve it.
+
+ Assign a list of goals to chosen users to evaluate them.
+ The challenge can use a period (weekly, monthly...) for automatic creation of goals.
+ The goals are created for the specified users or member of the group.
+
+
+
+
+
+ kanban
+
+
+
+
+
+ form
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/hr_gamification/wizard/__init__.py b/addons/hr_gamification/wizard/__init__.py
new file mode 100644
index 00000000000..bb521f011bb
--- /dev/null
+++ b/addons/hr_gamification/wizard/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP 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 .
+#
+##############################################################################
+
+import grant_badge
\ No newline at end of file
diff --git a/addons/hr_gamification/wizard/grant_badge.py b/addons/hr_gamification/wizard/grant_badge.py
new file mode 100644
index 00000000000..b8a51044d4c
--- /dev/null
+++ b/addons/hr_gamification/wizard/grant_badge.py
@@ -0,0 +1,60 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP SA ()
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
+#
+##############################################################################
+
+from openerp.osv import fields, osv
+from openerp.tools.translate import _
+
+class hr_grant_badge_wizard(osv.TransientModel):
+ _name = 'gamification.badge.user.wizard'
+ _inherit = ['gamification.badge.user.wizard']
+
+ _columns = {
+ 'employee_id': fields.many2one("hr.employee", string='Employee', required=True),
+ 'user_id': fields.related("employee_id", "user_id",
+ type="many2one", relation="res.users",
+ store=True, string='User')
+ }
+
+ def action_grant_badge(self, cr, uid, ids, context=None):
+ """Wizard action for sending a badge to a chosen employee"""
+ if context is None:
+ context = {}
+
+ badge_user_obj = self.pool.get('gamification.badge.user')
+
+ for wiz in self.browse(cr, uid, ids, context=context):
+ if not wiz.user_id:
+ raise osv.except_osv(_('Warning!'), _('You can send badges only to employees linked to a user.'))
+
+ if uid == wiz.user_id.id:
+ raise osv.except_osv(_('Warning!'), _('You can not send a badge to yourself'))
+
+ values = {
+ 'user_id': wiz.user_id.id,
+ 'sender_id': uid,
+ 'badge_id': wiz.badge_id.id,
+ 'employee_id': wiz.employee_id.id,
+ 'comment': wiz.comment,
+ }
+
+ badge_user = badge_user_obj.create(cr, uid, values, context=context)
+ result = badge_user_obj._send_badge(cr, uid, [badge_user], context=context)
+ return result
\ No newline at end of file
diff --git a/addons/hr_gamification/wizard/grant_badge.xml b/addons/hr_gamification/wizard/grant_badge.xml
new file mode 100644
index 00000000000..6dcf2d2e7c4
--- /dev/null
+++ b/addons/hr_gamification/wizard/grant_badge.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+ Grant Badge Employee Form
+ gamification.badge.user.wizard
+
+
+
+
+
+
+
+
+
+
+
+ Reward Employee Badge Form
+ gamification.badge.user.wizard
+
+
@@ -231,7 +190,7 @@
- Leave Requests
+ Leave Requesthr.holidaysform
@@ -305,7 +264,7 @@
form{'default_type':'add', 'search_default_my_leaves':1}[('type','=','add')]
-
+
@@ -319,7 +278,7 @@
form
-
+
@@ -331,7 +290,7 @@
form{'default_type': 'add', 'search_default_approve':1}[('type','=','add')]
-
+
@@ -345,7 +304,7 @@
form
-
+
diff --git a/addons/hr_holidays/hr_holidays_workflow.xml b/addons/hr_holidays/hr_holidays_workflow.xml
index b563dbf68d4..c539ff6de41 100644
--- a/addons/hr_holidays/hr_holidays_workflow.xml
+++ b/addons/hr_holidays/hr_holidays_workflow.xml
@@ -55,6 +55,7 @@
refuse
+ functionholidays_refuse()
diff --git a/addons/hr_holidays/report/holidays_summary_report.py b/addons/hr_holidays/report/holidays_summary_report.py
index d39ae53d5b6..adf09a63c85 100644
--- a/addons/hr_holidays/report/holidays_summary_report.py
+++ b/addons/hr_holidays/report/holidays_summary_report.py
@@ -96,7 +96,7 @@ class report_custom(report_rml):
res=cr.fetchone()[0]
date_xml=[]
date_today=time.strftime('%Y-%m-%d %H:%M:%S')
- date_xml +=['' % (res,date_today)]
+ date_xml +=['' % (to_xml(res),date_today)]
cr.execute("SELECT id, name, color_name FROM hr_holidays_status ORDER BY id")
legend=cr.fetchall()
@@ -128,7 +128,7 @@ class report_custom(report_rml):
# date_xml=[]
for l in range(0,len(legend)):
date_xml += ['' % (l+1,legend[l][0],_(legend[l][1]),legend[l][2])]
- date_xml += ['' % (som.strftime('%B'), som.year),'']
+ date_xml += ['' % (ustr(som.strftime('%B')), som.year),'']
cell=1
if day_diff.days>=30:
diff --git a/addons/hr_holidays/report/hr_custom_default.xsl b/addons/hr_holidays/report/hr_custom_default.xsl
index e8b133da1b0..2eda3a08f4b 100644
--- a/addons/hr_holidays/report/hr_custom_default.xsl
+++ b/addons/hr_holidays/report/hr_custom_default.xsl
@@ -5,9 +5,9 @@
-
+
-
+ 1.3cm 19.3cm 28.5cm 19.3cm
@@ -17,9 +17,9 @@
-
+
-
+ 1.3cm 19.3cm 28.5cm 19.3cm
diff --git a/addons/hr_holidays/tests/test_holidays_flow.py b/addons/hr_holidays/tests/test_holidays_flow.py
index 9b678e426d0..5a5d51a098f 100644
--- a/addons/hr_holidays/tests/test_holidays_flow.py
+++ b/addons/hr_holidays/tests/test_holidays_flow.py
@@ -23,7 +23,7 @@ from datetime import datetime
from dateutil.relativedelta import relativedelta
from openerp.addons.hr_holidays.tests.common import TestHrHolidaysBase
-from openerp.exceptions import Warning
+from openerp.exceptions import Warning, AccessError
from openerp.osv.orm import except_orm
from openerp.tools import mute_logger
@@ -46,7 +46,7 @@ class TestHolidaysFlow(TestHrHolidaysBase):
'hr_holidays: wrong type days computation')
# HrUser creates some holiday statuses -> crash because only HrManagers should do this
- with self.assertRaises(except_orm):
+ with self.assertRaises(AccessError):
self.holidays_status_dummy = self.hr_holidays_status.create(cr, self.user_hruser_id, {
'name': 'UserCheats',
'limit': True,
diff --git a/addons/hr_payroll/hr_payroll.py b/addons/hr_payroll/hr_payroll.py
index e7d4cef594a..081fe226c3a 100644
--- a/addons/hr_payroll/hr_payroll.py
+++ b/addons/hr_payroll/hr_payroll.py
@@ -143,8 +143,9 @@ class hr_contract(osv.osv):
@param contract_ids: list of contracts
@return: the structures linked to the given contracts, ordered by hierachy (parent=False first, then first level children and so on) and without duplicata
"""
- all_structures = []
- structure_ids = [contract.struct_id.id for contract in self.browse(cr, uid, contract_ids, context=context)]
+ structure_ids = [contract.struct_id.id for contract in self.browse(cr, uid, contract_ids, context=context) if contract.struct_id]
+ if not structure_ids:
+ return []
return list(set(self.pool.get('hr.payroll.structure')._get_parent_structure(cr, uid, structure_ids, context=context)))
@@ -260,7 +261,7 @@ class hr_payslip(osv.osv):
_columns = {
'struct_id': fields.many2one('hr.payroll.structure', 'Structure', readonly=True, states={'draft': [('readonly', False)]}, help='Defines the rules that have to be applied to this payslip, accordingly to the contract chosen. If you let empty the field contract, this field isn\'t mandatory anymore and thus the rules applied will be all the rules set on the structure of all contracts of the employee valid for the chosen period'),
- 'name': fields.char('Description', size=64, required=False, readonly=True, states={'draft': [('readonly', False)]}),
+ 'name': fields.char('Payslip Name', size=64, required=False, readonly=True, states={'draft': [('readonly', False)]}),
'number': fields.char('Reference', size=64, required=False, readonly=True, states={'draft': [('readonly', False)]}),
'employee_id': fields.many2one('hr.employee', 'Employee', required=True, readonly=True, states={'draft': [('readonly', False)]}),
'date_from': fields.date('Date From', readonly=True, states={'draft': [('readonly', False)]}, required=True),
@@ -281,7 +282,7 @@ class hr_payslip(osv.osv):
'worked_days_line_ids': fields.one2many('hr.payslip.worked_days', 'payslip_id', 'Payslip Worked Days', required=False, readonly=True, states={'draft': [('readonly', False)]}),
'input_line_ids': fields.one2many('hr.payslip.input', 'payslip_id', 'Payslip Inputs', required=False, readonly=True, states={'draft': [('readonly', False)]}),
'paid': fields.boolean('Made Payment Order ? ', required=False, readonly=True, states={'draft': [('readonly', False)]}),
- 'note': fields.text('Description', readonly=True, states={'draft':[('readonly',False)]}),
+ 'note': fields.text('Internal Note', readonly=True, states={'draft':[('readonly',False)]}),
'contract_id': fields.many2one('hr.contract', 'Contract', required=False, readonly=True, states={'draft': [('readonly', False)]}),
'details_by_salary_rule_category': fields.function(_get_lines_salary_rule_category, method=True, type='one2many', relation='hr.payslip.line', string='Details by Salary Rule Category'),
'credit_note': fields.boolean('Credit Note', help="Indicates this payslip has a refund of another", readonly=True, states={'draft': [('readonly', False)]}),
diff --git a/addons/hr_payroll/i18n/zh_TW.po b/addons/hr_payroll/i18n/zh_TW.po
new file mode 100644
index 00000000000..f09efc9eeb3
--- /dev/null
+++ b/addons/hr_payroll/i18n/zh_TW.po
@@ -0,0 +1,1251 @@
+# Chinese (Traditional) translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:04+0000\n"
+"PO-Revision-Date: 2013-11-18 02:50+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Traditional) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-19 05:27+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#. module: hr_payroll
+#: field:hr.payslip.line,condition_select:0
+#: field:hr.salary.rule,condition_select:0
+msgid "Condition Based on"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.contract,schedule_pay:0
+msgid "Monthly"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,rate:0
+msgid "Rate (%)"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip.line:0
+#: model:ir.model,name:hr_payroll.model_hr_salary_rule_category
+#: report:paylip.details:0
+msgid "Salary Rule Category"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.worked_days,number_of_days:0
+msgid "Number of Days"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.salary.rule.category,parent_id:0
+msgid ""
+"Linking a salary category to its parent is used only for the reporting "
+"purpose."
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+#: view:hr.payslip.line:0
+#: view:hr.salary.rule:0
+msgid "Group By..."
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "States"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,input_ids:0
+#: view:hr.salary.rule:0
+#: field:hr.salary.rule,input_ids:0
+msgid "Inputs"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,parent_rule_id:0
+#: field:hr.salary.rule,parent_rule_id:0
+msgid "Parent Salary Rule"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+#: field:hr.employee,slip_ids:0
+#: view:hr.payslip:0
+#: view:hr.payslip.run:0
+#: field:hr.payslip.run,slip_ids:0
+#: model:ir.actions.act_window,name:hr_payroll.act_hr_employee_payslip_list
+msgid "Payslips"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.structure,parent_id:0
+#: field:hr.salary.rule.category,parent_id:0
+msgid "Parent"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contribution.register,company_id:0
+#: field:hr.payroll.structure,company_id:0
+#: field:hr.payslip,company_id:0
+#: field:hr.payslip.line,company_id:0
+#: field:hr.salary.rule,company_id:0
+#: field:hr.salary.rule.category,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Done Slip"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+#: view:hr.payslip.run:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_salary_rule
+msgid "hr.salary.rule"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+#: view:hr.payslip.run:0
+msgid "to"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,payslip_run_id:0
+#: view:hr.payslip.run:0
+#: model:ir.model,name:hr_payroll.model_hr_payslip_run
+msgid "Payslip Batches"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip.employees:0
+msgid ""
+"This wizard will generate payslips for all selected employee(s) based on the "
+"dates and credit note specified on Payslips Run."
+msgstr ""
+
+#. module: hr_payroll
+#: report:contribution.register.lines:0
+#: report:paylip.details:0
+#: report:payslip:0
+msgid "Quantity/Rate"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.salary.rule:0
+msgid "Children Definition"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.input,payslip_id:0
+#: field:hr.payslip.line,slip_id:0
+#: field:hr.payslip.worked_days,payslip_id:0
+#: model:ir.model,name:hr_payroll.model_hr_payslip
+#: report:payslip:0
+msgid "Pay Slip"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip.employees:0
+msgid "Generate"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.line,amount_percentage_base:0
+#: help:hr.salary.rule,amount_percentage_base:0
+msgid "result will be affected to a variable"
+msgstr ""
+
+#. module: hr_payroll
+#: report:contribution.register.lines:0
+msgid "Total:"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.act_children_salary_rules
+msgid "All Children Rules"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+#: view:hr.salary.rule:0
+msgid "Input Data"
+msgstr ""
+
+#. module: hr_payroll
+#: constraint:hr.payslip:0
+msgid "Payslip 'Date From' must be before 'Date To'."
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.salary.rule.category:0
+msgid "Notes"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:871
+#: code:addons/hr_payroll/hr_payroll.py:876
+#: code:addons/hr_payroll/hr_payroll.py:882
+#: code:addons/hr_payroll/hr_payroll.py:899
+#: code:addons/hr_payroll/hr_payroll.py:905
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: hr_payroll
+#: report:contribution.register.lines:0
+#: field:hr.payslip.input,amount:0
+#: field:hr.payslip.line,amount:0
+#: report:paylip.details:0
+#: report:payslip:0
+msgid "Amount"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+#: view:hr.payslip.line:0
+#: model:ir.model,name:hr_payroll.model_hr_payslip_line
+msgid "Payslip Line"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Other Information"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.config.settings,module_hr_payroll_account:0
+msgid "Link your payroll to accounting system"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.line,amount_select:0
+#: help:hr.salary.rule,amount_select:0
+msgid "The computation method for the rule amount."
+msgstr ""
+
+#. module: hr_payroll
+#: view:payslip.lines.contribution.register:0
+msgid "Contribution Register's Payslip Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/wizard/hr_payroll_payslips_by_employees.py:52
+#, python-format
+msgid "Warning !"
+msgstr ""
+
+#. module: hr_payroll
+#: report:paylip.details:0
+msgid "Details by Salary Rule Category:"
+msgstr ""
+
+#. module: hr_payroll
+#: report:paylip.details:0
+#: report:payslip:0
+msgid "Note"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.structure,code:0
+#: field:hr.payslip,number:0
+#: report:paylip.details:0
+#: report:payslip:0
+msgid "Reference"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Draft Slip"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:432
+#, python-format
+msgid "Normal Working Days paid at 100%"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,condition_range_max:0
+#: field:hr.salary.rule,condition_range_max:0
+msgid "Maximum Range"
+msgstr ""
+
+#. module: hr_payroll
+#: report:paylip.details:0
+#: report:payslip:0
+msgid "Identification No"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,struct_id:0
+msgid "Structure"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contribution.register,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Total Working Days"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.line,code:0
+#: help:hr.salary.rule,code:0
+msgid ""
+"The code of salary rules can be used as reference in computation of other "
+"rules. In that case, it is case sensitive."
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.contract,schedule_pay:0
+msgid "Weekly"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "From"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Confirm"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,help:hr_payroll.action_contribution_register_form
+msgid ""
+"
\n"
+" Click to add a new contribution register.\n"
+"
\n"
+" A contribution register is a third party involved in the "
+"salary\n"
+" payment of the employees. It can be the social security, "
+"the\n"
+" estate or anyone that collect or inject money on payslips.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.line,condition_range_max:0
+#: help:hr.salary.rule,condition_range_max:0
+msgid "The maximum amount, applied for this rule."
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.line,condition_python:0
+#: help:hr.salary.rule,condition_python:0
+msgid ""
+"Applied this rule for calculation if condition is true. You can specify "
+"condition like basic > 1000."
+msgstr ""
+
+#. module: hr_payroll
+#: report:contribution.register.lines:0
+#: report:paylip.details:0
+msgid "Register Name"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip.employees:0
+msgid "Payslips by Employees"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.contract,schedule_pay:0
+msgid "Quarterly"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip,state:0
+msgid "Waiting"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.salary.rule,quantity:0
+msgid ""
+"It is used in computation for percentage and fixed amount.For e.g. A rule "
+"for Meal Voucher having fixed amount of 1€ per worked day can have its "
+"quantity defined in expression like worked_days.WORK100.number_of_days."
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.salary.rule:0
+msgid "Search Salary Rule"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,employee_id:0
+#: field:hr.payslip.line,employee_id:0
+#: model:ir.model,name:hr_payroll.model_hr_employee
+msgid "Employee"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.contract,schedule_pay:0
+msgid "Semi-annually"
+msgstr ""
+
+#. module: hr_payroll
+#: report:paylip.details:0
+#: report:payslip:0
+msgid "Email"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip.run:0
+msgid "Search Payslip Batches"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,amount_percentage_base:0
+#: field:hr.salary.rule,amount_percentage_base:0
+msgid "Percentage based on"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:90
+#, python-format
+msgid "%s (copy)"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.config.settings,module_hr_payroll_account:0
+msgid "Create journal entries from payslips"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,paid:0
+msgid "Made Payment Order ? "
+msgstr ""
+
+#. module: hr_payroll
+#: report:contribution.register.lines:0
+msgid "PaySlip Lines by Contribution Register"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+#: field:hr.payslip,line_ids:0
+#: view:hr.payslip.line:0
+#: model:ir.actions.act_window,name:hr_payroll.act_contribution_reg_payslip_lines
+msgid "Payslip Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Miscellaneous"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip,state:0
+msgid "Rejected"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.structure:0
+#: field:hr.payroll.structure,rule_ids:0
+#: view:hr.salary.rule:0
+#: model:ir.actions.act_window,name:hr_payroll.action_salary_rule_form
+#: model:ir.ui.menu,name:hr_payroll.menu_action_hr_salary_rule_form
+msgid "Salary Rules"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:341
+#, python-format
+msgid "Refund: "
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_payslip_lines_contribution_register
+msgid "PaySlip Lines by Contribution Registers"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+#: selection:hr.payslip,state:0
+#: view:hr.payslip.run:0
+msgid "Done"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,appears_on_payslip:0
+#: field:hr.salary.rule,appears_on_payslip:0
+msgid "Appears on Payslip"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,amount_fix:0
+#: selection:hr.payslip.line,amount_select:0
+#: field:hr.salary.rule,amount_fix:0
+#: selection:hr.salary.rule,amount_select:0
+msgid "Fixed Amount"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:370
+#, python-format
+msgid "Warning!"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.line,active:0
+#: help:hr.salary.rule,active:0
+msgid ""
+"If the active field is set to false, it will allow you to hide the salary "
+"rule without removing it."
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,state:0
+#: field:hr.payslip.run,state:0
+msgid "Status"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Worked Days & Inputs"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,details_by_salary_rule_category:0
+msgid "Details by Salary Rule Category"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_payslip_lines_contribution_register
+msgid "PaySlip Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.line,register_id:0
+#: help:hr.salary.rule,register_id:0
+msgid "Eventual third party involved in the salary payment of the employees."
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.worked_days,number_of_hours:0
+msgid "Number of Hours"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "PaySlip Batch"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,condition_range_min:0
+#: field:hr.salary.rule,condition_range_min:0
+msgid "Minimum Range"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,child_ids:0
+#: field:hr.salary.rule,child_ids:0
+msgid "Child Salary Rule"
+msgstr ""
+
+#. module: hr_payroll
+#: report:contribution.register.lines:0
+#: field:hr.payslip,date_to:0
+#: field:hr.payslip.run,date_end:0
+#: report:paylip.details:0
+#: report:payslip:0
+#: field:payslip.lines.contribution.register,date_to:0
+msgid "Date To"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,condition_select:0
+#: selection:hr.salary.rule,condition_select:0
+msgid "Range"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payroll_structure_tree
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_structure_tree
+msgid "Salary Structures Hierarchy"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.employee,total_wage:0
+msgid "Sum of all current contract's wage of employee."
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Payslip"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,credit_note:0
+#: field:hr.payslip.run,credit_note:0
+msgid "Credit Note"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+#: model:ir.actions.act_window,name:hr_payroll.act_payslip_lines
+msgid "Payslip Computation Details"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.line,appears_on_payslip:0
+#: help:hr.salary.rule,appears_on_payslip:0
+msgid "Used to display the salary rule on payslip."
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_payslip_input
+msgid "Payslip Input"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.salary.rule.category:0
+#: model:ir.actions.act_window,name:hr_payroll.action_hr_salary_rule_category
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_salary_rule_category
+msgid "Salary Rule Categories"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.input,contract_id:0
+#: help:hr.payslip.worked_days,contract_id:0
+msgid "The contract for which applied this input"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.salary.rule:0
+msgid "Computation"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:899
+#, python-format
+msgid "Wrong range condition defined for salary rule %s (%s)."
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.input,amount:0
+msgid ""
+"It is used in computation. For e.g. A rule for sales having 1% commission of "
+"basic salary for per product can defined in expression like result = "
+"inputs.SALEURO.amount * contract.wage*0.01."
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip.line:0
+#: field:hr.payslip.line,amount_select:0
+#: field:hr.salary.rule,amount_select:0
+msgid "Amount Type"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,category_id:0
+#: view:hr.salary.rule:0
+#: field:hr.salary.rule,category_id:0
+msgid "Category"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.salary.rule:0
+msgid "Company Contribution"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.run,credit_note:0
+msgid ""
+"If its checked, indicates that all payslips generated from here are refund "
+"payslips."
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:876
+#, python-format
+msgid "Wrong percentage base or quantity defined for salary rule %s (%s)."
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payroll_structure_list_form
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_structure_view
+msgid "Salary Structures"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip.run:0
+msgid "Draft Payslip Batches"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+#: selection:hr.payslip,state:0
+#: view:hr.payslip.run:0
+#: selection:hr.payslip.run,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: hr_payroll
+#: report:contribution.register.lines:0
+#: field:hr.payslip,date_from:0
+#: field:hr.payslip.run,date_start:0
+#: report:paylip.details:0
+#: report:payslip:0
+#: field:payslip.lines.contribution.register,date_from:0
+msgid "Date From"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip.run:0
+msgid "Done Payslip Batches"
+msgstr ""
+
+#. module: hr_payroll
+#: report:paylip.details:0
+msgid "Payslip Lines by Contribution Register:"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.salary.rule:0
+msgid "Conditions"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,amount_percentage:0
+#: selection:hr.payslip.line,amount_select:0
+#: field:hr.salary.rule,amount_percentage:0
+#: selection:hr.salary.rule,amount_select:0
+msgid "Percentage (%)"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:871
+#, python-format
+msgid "Wrong quantity defined for salary rule %s (%s)."
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Worked Day"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.structure:0
+msgid "Employee Function"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.payslip_report
+msgid "Employee PaySlip"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,salary_rule_id:0
+msgid "Rule"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.payslip_details_report
+msgid "PaySlip Details"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Compute Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,active:0
+#: field:hr.salary.rule,active:0
+msgid "Active"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.salary.rule:0
+msgid "Child Rules"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.line,condition_range_min:0
+#: help:hr.salary.rule,condition_range_min:0
+msgid "The minimum amount, applied for this rule."
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,condition_select:0
+#: selection:hr.salary.rule,condition_select:0
+msgid "Python Expression"
+msgstr ""
+
+#. module: hr_payroll
+#: report:paylip.details:0
+#: report:payslip:0
+msgid "Designation"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Companies"
+msgstr ""
+
+#. module: hr_payroll
+#: report:paylip.details:0
+#: report:payslip:0
+msgid "Authorized Signature"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,contract_id:0
+#: field:hr.payslip.input,contract_id:0
+#: field:hr.payslip.line,contract_id:0
+#: field:hr.payslip.worked_days,contract_id:0
+#: model:ir.model,name:hr_payroll.model_hr_contract
+msgid "Contract"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/wizard/hr_payroll_payslips_by_employees.py:52
+#, python-format
+msgid "You must select employee(s) to generate payslip(s)."
+msgstr ""
+
+#. module: hr_payroll
+#: report:paylip.details:0
+#: report:payslip:0
+msgid "Credit"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contract,schedule_pay:0
+msgid "Scheduled Pay"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,condition_python:0
+#: field:hr.salary.rule,condition_python:0
+msgid "Python Condition"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.contribution.register:0
+msgid "Contribution"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:351
+#, python-format
+msgid "Refund Payslip"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.rule.input,input_id:0
+#: model:ir.model,name:hr_payroll.model_hr_rule_input
+msgid "Salary Rule Input"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,quantity:0
+#: field:hr.salary.rule,quantity:0
+msgid "Quantity"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Refund"
+msgstr ""
+
+#. module: hr_payroll
+#: report:contribution.register.lines:0
+#: field:hr.payslip.input,code:0
+#: field:hr.payslip.line,code:0
+#: field:hr.payslip.worked_days,code:0
+#: field:hr.rule.input,code:0
+#: field:hr.salary.rule,code:0
+#: field:hr.salary.rule.category,code:0
+#: report:paylip.details:0
+#: report:payslip:0
+msgid "Code"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,amount_python_compute:0
+#: selection:hr.payslip.line,amount_select:0
+#: field:hr.salary.rule,amount_python_compute:0
+#: selection:hr.salary.rule,amount_select:0
+msgid "Python Code"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.input,sequence:0
+#: field:hr.payslip.line,sequence:0
+#: field:hr.payslip.worked_days,sequence:0
+#: field:hr.salary.rule,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Period"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip.run:0
+msgid "Period from"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.salary.rule:0
+msgid "General"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:674
+#, python-format
+msgid "Salary Slip of %s for %s"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_payslip_employees
+msgid "Generate payslips for all selected employees"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contract,struct_id:0
+#: view:hr.payroll.structure:0
+#: view:hr.payslip:0
+#: view:hr.payslip.line:0
+#: model:ir.model,name:hr_payroll.model_hr_payroll_structure
+msgid "Salary Structure"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contribution.register,register_line_ids:0
+msgid "Register Line"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Cancel"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip.run:0
+#: selection:hr.payslip.run,state:0
+msgid "Close"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip,struct_id:0
+msgid ""
+"Defines the rules that have to be applied to this payslip, accordingly to "
+"the contract chosen. If you let empty the field contract, this field isn't "
+"mandatory anymore and thus the rules applied will be all the rules set on "
+"the structure of all contracts of the employee valid for the chosen period"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.structure,children_ids:0
+#: field:hr.salary.rule.category,children_ids:0
+msgid "Children"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip,credit_note:0
+msgid "Indicates this payslip has a refund of another"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.contract,schedule_pay:0
+msgid "Bi-monthly"
+msgstr ""
+
+#. module: hr_payroll
+#: report:paylip.details:0
+msgid "Pay Slip Details"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payslip_form
+#: model:ir.ui.menu,name:hr_payroll.menu_department_tree
+msgid "Employee Payslips"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_config_settings
+msgid "hr.config.settings"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip.line:0
+#: field:hr.payslip.line,register_id:0
+#: field:hr.salary.rule,register_id:0
+#: model:ir.model,name:hr_payroll.model_hr_contribution_register
+msgid "Contribution Register"
+msgstr ""
+
+#. module: hr_payroll
+#: view:payslip.lines.contribution.register:0
+msgid "Print"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip.line:0
+msgid "Calculations"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Worked Days"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Search Payslips"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip.run:0
+#: model:ir.actions.act_window,name:hr_payroll.action_hr_payslip_run_tree
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_payslip_run
+msgid "Payslips Batches"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.contribution.register:0
+#: field:hr.contribution.register,note:0
+#: field:hr.payroll.structure,note:0
+#: field:hr.payslip,name:0
+#: field:hr.payslip,note:0
+#: field:hr.payslip.input,name:0
+#: field:hr.payslip.line,note:0
+#: field:hr.payslip.worked_days,name:0
+#: field:hr.rule.input,name:0
+#: view:hr.salary.rule:0
+#: field:hr.salary.rule,note:0
+#: field:hr.salary.rule.category,note:0
+msgid "Description"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,total_wage:0
+msgid "Total Basic Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.contribution.register:0
+#: model:ir.actions.act_window,name:hr_payroll.action_contribution_register_form
+#: model:ir.ui.menu,name:hr_payroll.menu_action_hr_contribution_register_form
+msgid "Contribution Registers"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_reporting
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_root_payroll
+#: model:ir.ui.menu,name:hr_payroll.payroll_configure
+msgid "Payroll"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.contribution_register
+msgid "PaySlip Lines By Conribution Register"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:370
+#, python-format
+msgid "You cannot delete a payslip which is not draft or cancelled!"
+msgstr ""
+
+#. module: hr_payroll
+#: report:paylip.details:0
+#: report:payslip:0
+msgid "Address"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,worked_days_line_ids:0
+#: model:ir.model,name:hr_payroll.model_hr_payslip_worked_days
+msgid "Payslip Worked Days"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.salary.rule.category:0
+msgid "Salary Categories"
+msgstr ""
+
+#. module: hr_payroll
+#: report:contribution.register.lines:0
+#: field:hr.contribution.register,name:0
+#: field:hr.payroll.structure,name:0
+#: field:hr.payslip.line,name:0
+#: field:hr.payslip.run,name:0
+#: field:hr.salary.rule,name:0
+#: field:hr.salary.rule.category,name:0
+#: report:paylip.details:0
+#: report:payslip:0
+msgid "Name"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.line,amount_percentage:0
+#: help:hr.salary.rule,amount_percentage:0
+msgid "For example, enter 50.0 to apply a percentage of 50%"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.structure:0
+msgid "Payroll Structures"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+#: view:hr.payslip.employees:0
+#: field:hr.payslip.employees,employee_ids:0
+#: view:hr.payslip.line:0
+msgid "Employees"
+msgstr ""
+
+#. module: hr_payroll
+#: report:paylip.details:0
+#: report:payslip:0
+msgid "Bank Account"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.line,sequence:0
+#: help:hr.salary.rule,sequence:0
+msgid "Use to arrange calculation sequence"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip,state:0
+msgid ""
+"* When the payslip is created the status is 'Draft'. \n"
+"* If the payslip is under verification, the status is 'Waiting'. "
+"\n"
+"* If the payslip is confirmed then status is set to 'Done'. \n"
+"* When user cancel payslip the status is 'Rejected'."
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.line,condition_range:0
+#: help:hr.salary.rule,condition_range:0
+msgid ""
+"This will be used to compute the % fields values; in general it is on basic, "
+"but you can also use categories code fields in lowercase as a variable names "
+"(hra, ma, lta, etc.) and the variable basic."
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.contract,schedule_pay:0
+msgid "Annually"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,input_line_ids:0
+msgid "Payslip Inputs"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Other Inputs"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_hr_salary_rule_category_tree_view
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_salary_rule_category_tree_view
+msgid "Salary Rule Categories Hierarchy"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:882
+#, python-format
+msgid "Wrong python code defined for salary rule %s (%s)."
+msgstr ""
+
+#. module: hr_payroll
+#: report:contribution.register.lines:0
+#: field:hr.payslip.line,total:0
+#: report:paylip.details:0
+#: report:payslip:0
+msgid "Total"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Salary Computation"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Details By Salary Rule Category"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payslip.input,code:0
+#: help:hr.payslip.worked_days,code:0
+#: help:hr.rule.input,code:0
+msgid "The code that can be used in the salary rules"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:905
+#, python-format
+msgid "Wrong python condition defined for salary rule %s (%s)."
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip.run:0
+#: model:ir.actions.act_window,name:hr_payroll.action_hr_payslip_by_employees
+msgid "Generate Payslips"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip.line:0
+msgid "Search Payslip Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.contract,schedule_pay:0
+msgid "Bi-weekly"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,condition_select:0
+#: selection:hr.salary.rule,condition_select:0
+msgid "Always True"
+msgstr ""
+
+#. module: hr_payroll
+#: report:contribution.register.lines:0
+msgid "PaySlip Name"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Accounting"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,condition_range:0
+#: field:hr.salary.rule,condition_range:0
+msgid "Range Based on"
+msgstr ""
diff --git a/addons/hr_payroll_account/i18n/zh_TW.po b/addons/hr_payroll_account/i18n/zh_TW.po
new file mode 100644
index 00000000000..0aaa10dc759
--- /dev/null
+++ b/addons/hr_payroll_account/i18n/zh_TW.po
@@ -0,0 +1,126 @@
+# Chinese (Traditional) translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-11-18 02:50+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Traditional) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-19 05:27+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#. module: hr_payroll_account
+#: field:hr.salary.rule,account_credit:0
+msgid "Credit Account"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:104
+#, python-format
+msgid "Payslip of %s"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:157
+#, python-format
+msgid ""
+"The Expense Journal \"%s\" has not properly configured the Credit Account!"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.payslip,move_id:0
+msgid "Accounting Entry"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:173
+#, python-format
+msgid ""
+"The Expense Journal \"%s\" has not properly configured the Debit Account!"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.salary.rule,account_tax_id:0
+msgid "Tax Code"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.payslip,period_id:0
+msgid "Force Period"
+msgstr ""
+
+#. module: hr_payroll_account
+#: help:hr.payslip,period_id:0
+msgid "Keep empty to use the period of the validation(Payslip) date."
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_contract
+msgid "Contract"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.contract,analytic_account_id:0
+#: field:hr.salary.rule,analytic_account_id:0
+msgid "Analytic Account"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.salary.rule,account_debit:0
+msgid "Debit Account"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payslip_run
+msgid "Payslip Batches"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payslip_employees
+msgid "Generate payslips for all selected employees"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:157
+#: code:addons/hr_payroll_account/hr_payroll_account.py:173
+#, python-format
+msgid "Configuration Error!"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_salary_rule
+msgid "hr.salary.rule"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.contract:0
+#: view:hr.salary.rule:0
+msgid "Accounting"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payslip
+msgid "Pay Slip"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:159
+#: code:addons/hr_payroll_account/hr_payroll_account.py:175
+#, python-format
+msgid "Adjustment Entry"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.contract,journal_id:0
+#: field:hr.payslip,journal_id:0
+#: field:hr.payslip.run,journal_id:0
+msgid "Salary Journal"
+msgstr ""
diff --git a/addons/hr_recruitment/doc/changelog.rst b/addons/hr_recruitment/doc/changelog.rst
index 404b94ee6d1..7cfce3f677d 100644
--- a/addons/hr_recruitment/doc/changelog.rst
+++ b/addons/hr_recruitment/doc/changelog.rst
@@ -3,6 +3,13 @@
Changelog
=========
+`trunk (saas-3)`
+----------------
+
+- ``hr.recruitment.stage``: added template_id field. If an email template is linked
+ to the stage, it is used to render and post a message on the applicant. This
+ allows for example to have template for accepted or refused applicants.
+
`trunk (saas-2)`
----------------
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 4bc358f4cda..766fe008810 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -52,12 +52,14 @@ class hr_recruitment_stage(osv.osv):
'name': fields.char('Name', size=64, required=True, translate=True),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of stages."),
'department_id':fields.many2one('hr.department', 'Specific to a Department', help="Stages of the recruitment process may be different per department. If this stage is common to all departments, keep this field empty."),
- 'fold': fields.boolean('Hide in views if empty', help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."),
'requirements': fields.text('Requirements'),
+ 'template_id': fields.many2one('email.template', 'Use template', help="If set, a message is posted on the applicant using the template when the applicant is set to the stage."),
+ 'fold': fields.boolean('Folded in Kanban View',
+ help='This stage is folded in the kanban view when'
+ 'there are no records in that stage to display.'),
}
_defaults = {
'sequence': 1,
- 'fold': False,
}
class hr_recruitment_degree(osv.osv):
@@ -82,8 +84,9 @@ class hr_applicant(osv.Model):
_inherit = ['mail.thread', 'ir.needaction_mixin']
_track = {
'stage_id': {
- 'hr_recruitment.mt_applicant_new': lambda self, cr, uid, obj, ctx=None: obj.stage_id and obj.stage_id.sequence == 1,
- 'hr_recruitment.mt_applicant_stage_changed': lambda self, cr, uid, obj, ctx=None: obj.stage_id and obj.stage_id.sequence != 1,
+ # this is only an heuristics; depending on your particular stage configuration it may not match all 'new' stages
+ 'hr_recruitment.mt_applicant_new': lambda self, cr, uid, obj, ctx=None: obj.stage_id and obj.stage_id.sequence <= 1,
+ 'hr_recruitment.mt_applicant_stage_changed': lambda self, cr, uid, obj, ctx=None: obj.stage_id and obj.stage_id.sequence > 1,
},
}
@@ -94,7 +97,7 @@ class hr_applicant(osv.Model):
def _get_default_stage_id(self, cr, uid, context=None):
""" Gives default stage_id """
department_id = self._get_default_department_id(cr, uid, context=context)
- return self.stage_find(cr, uid, [], department_id, [('sequence', '=', '1')], context=context)
+ return self.stage_find(cr, uid, [], department_id, [('fold', '=', False)], context=context)
def _resolve_department_id_from_context(self, cr, uid, context=None):
""" Returns ID of department based on the value of 'default_department_id'
@@ -170,8 +173,14 @@ class hr_applicant(osv.Model):
res[issue.id][field] = abs(float(duration))
return res
+ def _get_attachment_number(self, cr, uid, ids, fields, args, context=None):
+ res = dict.fromkeys(ids, 0)
+ for app_id in ids:
+ res[app_id] = self.pool['ir.attachment'].search_count(cr, uid, [('res_model', '=', 'hr.applicant'), ('res_id', '=', app_id)], context=context)
+ return res
+
_columns = {
- 'name': fields.char('Subject', size=128, required=True),
+ 'name': fields.char('Subject / Application Name', size=128, required=True),
'active': fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the case without removing it."),
'description': fields.text('Description'),
'email_from': fields.char('Email', size=128, help="These people will receive email."),
@@ -198,7 +207,7 @@ class hr_applicant(osv.Model):
'salary_expected_extra': fields.char('Expected Salary Extra', size=100, help="Salary Expected by Applicant, extra advantages"),
'salary_proposed': fields.float('Proposed Salary', help="Salary Proposed by the Organisation"),
'salary_expected': fields.float('Expected Salary', help="Salary Expected by Applicant"),
- 'availability': fields.integer('Availability'),
+ 'availability': fields.integer('Availability', help="The number of days in which the applicant will be available to start working"),
'partner_name': fields.char("Applicant's Name", size=64),
'partner_phone': fields.char('Phone', size=32),
'partner_mobile': fields.char('Mobile', size=32),
@@ -213,9 +222,9 @@ class hr_applicant(osv.Model):
'day_close': fields.function(_compute_day, string='Days to Close', \
multi='day_close', type="float", store=True),
'color': fields.integer('Color Index'),
- 'emp_id': fields.many2one('hr.employee', string='Employee',
- help='Employee linked to the applicant.'),
+ 'emp_id': fields.many2one('hr.employee', string='Employee', help='Employee linked to the applicant.'),
'user_email': fields.related('user_id', 'email', type='char', string='User Email', readonly=True),
+ 'attachment_number': fields.function(_get_attachment_number, string='Number of Attachments', type="integer"),
}
_defaults = {
@@ -233,15 +242,15 @@ class hr_applicant(osv.Model):
}
def onchange_job(self, cr, uid, ids, job_id=False, context=None):
+ department_id = False
if job_id:
job_record = self.pool.get('hr.job').browse(cr, uid, job_id, context=context)
- if job_record and job_record.department_id:
- return {'value': {'department_id': job_record.department_id.id}}
- return {}
+ department_id = job_record and job_record.department_id and job_record.department_id.id or False
+ return {'value': {'department_id': department_id}}
def onchange_department_id(self, cr, uid, ids, department_id=False, stage_id=False, context=None):
if not stage_id:
- stage_id = self.stage_find(cr, uid, [], department_id, [('sequence', '=', '1')], context=context)
+ stage_id = self.stage_find(cr, uid, [], department_id, [('fold', '=', False)], context=context)
return {'value': {'stage_id': stage_id}}
def onchange_partner_id(self, cr, uid, ids, partner_id, context=None):
@@ -288,10 +297,15 @@ class hr_applicant(osv.Model):
@return: Dictionary value for created Meeting view
"""
applicant = self.browse(cr, uid, ids[0], context)
+ applicant_ids = []
+ if applicant.partner_id:
+ applicant_ids.append(applicant.partner_id.id)
+ if applicant.department_id and applicant.department_id.manager_id and applicant.department_id.manager_id.user_id and applicant.department_id.manager_id.user_id.partner_id:
+ applicant_ids.append(applicant.department_id.manager_id.user_id.partner_id.id)
category = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'categ_meet_interview', context)
res = self.pool.get('ir.actions.act_window').for_xml_id(cr, uid, 'base_calendar', 'action_crm_meeting', context)
res['context'] = {
- 'default_partner_ids': applicant.partner_id and [applicant.partner_id.id] or False,
+ 'default_partner_ids': applicant_ids,
'default_user_id': uid,
'default_name': applicant.name,
'default_categ_ids': category and [category.id] or False,
@@ -317,6 +331,20 @@ class hr_applicant(osv.Model):
value = self.pool.get("survey").action_print_survey(cr, uid, ids, context=context)
return value
+ def action_get_attachment_tree_view(self, cr, uid, ids, context):
+ domain = ['&', ('res_model', '=', 'hr.applicant'), ('res_id', 'in', ids)]
+ return {
+ 'name': _('Attachments'),
+ 'domain': domain,
+ 'res_model': 'ir.attachment',
+ 'type': 'ir.actions.act_window',
+ 'view_id': False,
+ 'view_mode': 'tree,form',
+ 'view_type': 'form',
+ 'limit': 80,
+ 'context': "{'default_res_model': '%s'}" % (self._name)
+ }
+
def message_get_suggested_recipients(self, cr, uid, ids, context=None):
recipients = super(hr_applicant, self).message_get_suggested_recipients(cr, uid, ids, context=context)
for applicant in self.browse(cr, uid, ids, context=context):
@@ -331,7 +359,8 @@ class hr_applicant(osv.Model):
through message_process.
This override updates the document according to the email.
"""
- if custom_values is None: custom_values = {}
+ if custom_values is None:
+ custom_values = {}
val = msg.get('from').split('<')[0]
defaults = {
'name': msg.get('subject') or _("No Subject"),
@@ -344,38 +373,7 @@ class hr_applicant(osv.Model):
if msg.get('priority'):
defaults['priority'] = msg.get('priority')
defaults.update(custom_values)
- return super(hr_applicant,self).message_new(cr, uid, msg, custom_values=defaults, context=context)
-
- def message_update(self, cr, uid, ids, msg, update_vals=None, context=None):
- """ Override mail_thread message_update that is called by the mailgateway
- through message_process.
- This method updates the document according to the email.
- """
- if isinstance(ids, (str, int, long)):
- ids = [ids]
- if update_vals is None:
- update_vals = {}
-
- update_vals.update({
- 'email_from': msg.get('from'),
- 'email_cc': msg.get('cc'),
- })
- if msg.get('priority'):
- update_vals['priority'] = msg.get('priority')
-
- maps = {
- 'cost': 'planned_cost',
- 'revenue': 'planned_revenue',
- 'probability': 'probability',
- }
- for line in msg.get('body', '').split('\n'):
- line = line.strip()
- res = tools.command_re.match(line)
- if res and maps.get(res.group(1).lower(), False):
- key = maps.get(res.group(1).lower())
- update_vals[key] = res.group(2).lower()
-
- return super(hr_applicant, self).message_update(cr, uid, ids, msg, update_vals=update_vals, context=context)
+ return super(hr_applicant, self).message_new(cr, uid, msg, custom_values=defaults, context=context)
def create(self, cr, uid, vals, context=None):
if context is None:
@@ -392,6 +390,8 @@ class hr_applicant(osv.Model):
def write(self, cr, uid, ids, vals, context=None):
if isinstance(ids, (int, long)):
ids = [ids]
+ res = True
+
# user_id change: update date_start
if vals.get('user_id'):
vals['date_start'] = fields.datetime.now()
@@ -401,8 +401,34 @@ class hr_applicant(osv.Model):
for applicant in self.browse(cr, uid, ids, context=None):
vals['last_stage_id'] = applicant.stage_id.id
res = super(hr_applicant, self).write(cr, uid, [applicant.id], vals, context=context)
- return res
- return super(hr_applicant, self).write(cr, uid, ids, vals, context=context)
+ else:
+ res = super(hr_applicant, self).write(cr, uid, ids, vals, context=context)
+
+ # post processing: if stage changed, post a message in the chatter
+ if vals.get('stage_id'):
+ stage = self.pool['hr.recruitment.stage'].browse(cr, uid, vals['stage_id'], context=context)
+ if stage.template_id:
+ # TDENOTE: probably factorize me in a message_post_with_template generic method FIXME
+ compose_ctx = dict(context,
+ active_ids=ids)
+ compose_id = self.pool['mail.compose.message'].create(
+ cr, uid, {
+ 'model': self._name,
+ 'composition_mode': 'mass_mail',
+ 'template_id': stage.template_id.id,
+ 'same_thread': True,
+ 'post': True,
+ 'notify': True,
+ }, context=compose_ctx)
+ self.pool['mail.compose.message'].write(
+ cr, uid, [compose_id],
+ self.pool['mail.compose.message'].onchange_template_id(
+ cr, uid, [compose_id],
+ stage.template_id.id, 'mass_mail', self._name, False,
+ context=compose_ctx)['value'],
+ context=compose_ctx)
+ self.pool['mail.compose.message'].send_mail(cr, uid, [compose_id], context=compose_ctx)
+ return res
def create_employee_from_applicant(self, cr, uid, ids, context=None):
""" Create an hr.employee from the hr.applicants """
@@ -422,7 +448,10 @@ class hr_applicant(osv.Model):
emp_id = hr_employee.create(cr, uid, {'name': applicant.partner_name or contact_name,
'job_id': applicant.job_id.id,
'address_home_id': address_id,
- 'department_id': applicant.department_id.id
+ 'department_id': applicant.department_id.id or False,
+ 'address_id': applicant.company_id and applicant.company_id.partner_id and applicant.company_id.partner_id.id or False,
+ 'work_email': applicant.department_id and applicant.department_id.company_id and applicant.department_id.company_id.email or False,
+ 'work_phone': applicant.department_id and applicant.department_id.company_id and applicant.department_id.company_id.phone or False,
})
self.write(cr, uid, [applicant.id], {'emp_id': emp_id}, context=context)
else:
diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml
index 854dea0548f..492c0f12c73 100644
--- a/addons/hr_recruitment/hr_recruitment_data.xml
+++ b/addons/hr_recruitment/hr_recruitment_data.xml
@@ -17,6 +17,43 @@
Interview
+
+
+ Application refused
+ Application refused
+ ${object.email_from}
+ ${object.partner_id and object.partner_id.id or ''}
+ ${object.partner_id and object.partner_id.lang or ''}
+
+
+ Dear ${object.partner_name or 'applicant'},
+
We thank you for your interest in our company and for your application.
+ Unfortunately, your profile does not match with our needs or our recruitment
+ campaign has reached its term.
+
If you want more details, feel free to contact us by phone.
+
Kind regards,
+
+ ${object.user_id and object.user_id.signature or ''}]]>
+
+
+
+ Application approved
+ Application approved
+ ${object.email_from}
+ ${object.partner_id and object.partner_id.id or ''}
+ ${object.partner_id and object.partner_id.lang or ''}
+
+
+ Dear ${object.partner_name or 'applicant'},
+
Congrats! Your resume's got our interest!
+ I will call you as soon as possible to make a 10 minutes phone interview and plan a first meeting.
+
If we can’t reach you or if you miss our call, feel free to reach me back on the number 001 312 349 3030
+ If I do not answer, please let me a message with some schedules to call you back.
+
Kind regards,
+
+ ${object.user_id.signature}]]>
+
+
@@ -58,6 +95,7 @@
First Interview
+ 2
@@ -71,12 +109,15 @@
Contract Signed5
+ Refused6
+
+
Job Survey20
diff --git a/addons/hr_recruitment/hr_recruitment_demo.xml b/addons/hr_recruitment/hr_recruitment_demo.xml
index c15e0deb188..8ba49a2beb8 100644
--- a/addons/hr_recruitment/hr_recruitment_demo.xml
+++ b/addons/hr_recruitment/hr_recruitment_demo.xml
@@ -2,11 +2,12 @@
- Salesperson
-
+ Sales Manager
+
+
-
+ 2Enrique Jones9963214587
@@ -16,10 +17,10 @@
Trainee - MCA
-
-
+
+
+
- 3Marie Justine
@@ -31,11 +32,11 @@
Fresher
-
-
+
+
+
-
-
+ 1Jose
@@ -45,10 +46,10 @@
Marketing Job
-
-
+
+
+
- John Bruno
@@ -58,9 +59,9 @@
More than 5 yrs Experience in PHP
+
- Sandra Elvis
@@ -68,11 +69,11 @@
Send mail regarding our interview
- Finance Job
-
+ Finance Manager
+
+
- 4David Armstrong
@@ -83,10 +84,10 @@
Trainee - MCA
-
-
+
+
+
- Tina Augustie9898745745
@@ -97,9 +98,9 @@
Programmer
-
+
+
- Shane Williams9812398524
@@ -110,10 +111,10 @@
Advertisement
-
+
+
- David Armstrong9988774455
@@ -123,7 +124,80 @@
+ recruit
+ 4
+
+
+
+
+
+
+
+ recruit
+ 1
+
+
+
+ 1
+ recruit
+
+
+
+ recruit
+ 3
+
+
+
+ recruit
+ 6
+
+
+
+
+ hr.applicant
+
+ Please do refer to this application for sure.
+ comment
+
+
+
+ Regarding reference
+ hr.applicant
+
+ Hello!
+ I will surely refer to this application as it is by your reference and
+ will try to conduct an interview within a very short time
+ Thanks,]]>
+ comment
+
+
+
+
+
+ Refuse Application
+ hr.applicant
+
+ Hello,
+
I have checked this application but It's not match with our requirement. so no need to process further and we should refuse this application.
+
Kind regards,
]]>
+ comment
+
+
+
+
+ hr.applicant
+
+ Hello,
+
We should move further for this application as early as possible..
+
Kind regards,
]]>
+ comment
+
+
+
+
-
\ No newline at end of file
+
diff --git a/addons/hr_recruitment/hr_recruitment_menu.xml b/addons/hr_recruitment/hr_recruitment_menu.xml
index c280f64105c..2dcd490b075 100644
--- a/addons/hr_recruitment/hr_recruitment_menu.xml
+++ b/addons/hr_recruitment/hr_recruitment_menu.xml
@@ -10,13 +10,15 @@
-
- OpenERP helps you track applicants in the recruitment
- process and follow up all operations: meetings, interviews, etc.
+
+ Click to add a new job applicant.
- Applicants and their attached CV are created automatically when an email is sent.
- If you install the document management modules, all resumes are indexed automatically,
- so that you can easily search through their content.
+ OpenERP helps you track applicants in the recruitment process
+ and follow up all operations: meetings, interviews, etc.
+ Candidates and their cv's are automatically created when they
+ apply for a job. If you install the document management modules,
+ all resumes are indexed automatically, so that you can easily
+ search through their content in the recruitment menu.
@@ -368,6 +376,7 @@
+
diff --git a/addons/hr_recruitment/i18n/zh_TW.po b/addons/hr_recruitment/i18n/zh_TW.po
new file mode 100644
index 00000000000..d956b954e5b
--- /dev/null
+++ b/addons/hr_recruitment/i18n/zh_TW.po
@@ -0,0 +1,1261 @@
+# Chinese (Traditional) translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:04+0000\n"
+"PO-Revision-Date: 2013-11-18 02:51+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Traditional) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-19 05:27+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#. module: hr_recruitment
+#: help:hr.applicant,active:0
+msgid ""
+"If the active field is set to false, it will allow you to hide the case "
+"without removing it."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.stage:0
+#: field:hr.recruitment.stage,requirements:0
+msgid "Requirements"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Application Summary"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Start Interview"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Mobile:"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.stage,fold:0
+msgid ""
+"This stage is not visible, for example in status bar or kanban view, when "
+"there are no records in that stage to display."
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.degree,name:hr_recruitment.degree_graduate
+msgid "Graduate"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Group By..."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Filter and view on next actions and date"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,department_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,department_id:0
+msgid "Department"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,date_action:0
+msgid "Next Action Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,salary_expected_extra:0
+msgid "Expected Salary Extra"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Jobs"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Pending Jobs"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,company_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.source:0
+#: model:ir.actions.act_window,name:hr_recruitment.hr_recruitment_source_action
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_source
+msgid "Sources of Applicants"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:445
+#, python-format
+msgid "You must define Applied Job for this applicant."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Job"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.partner.create,close:0
+msgid "Close job request"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,help:hr_recruitment.crm_case_categ0_act_job
+msgid ""
+"
\n"
+" Click to add a new job applicant.\n"
+"
\n"
+" OpenERP helps you track applicants in the recruitment\n"
+" process and follow up all operations: meetings, interviews, "
+"etc.\n"
+"
\n"
+" If you setup the email gateway, applicants and their "
+"attached\n"
+" CV are created automatically when an email is sent to\n"
+" jobs@yourcompany.com. If you install the document "
+"management\n"
+" modules, all resumes are indexed automatically, so that you "
+"can\n"
+" easily search through their content.\n"
+"
\n"
+" Click to add a new stage in the recruitment process.\n"
+"
\n"
+" Define here your stages of the recruitment process, for "
+"example:\n"
+" qualification call, first interview, second interview, refused,\n"
+" hired.\n"
+"
\n"
+" Click to add a new stage in the recruitment process.\n"
+"
\n"
+" Don't forget to specify the department if your recruitment "
+"process\n"
+" is different according to the job position.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,response:0
+msgid "Response"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.config.settings,module_document_ftp:0
+msgid "Allow the automatic indexation of resumes"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,salary_proposed_extra:0
+msgid "Proposed Salary Extra"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:56
+#, python-format
+msgid "A contact is already existing with the same name."
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,name:hr_recruitment.hr_recruitment_stage_form_installer
+msgid "Review Recruitment Stages"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Contact:"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Search Jobs"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,date:0
+#: field:hr.recruitment.report,date:0
+msgid "Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,survey:0
+msgid "Survey"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hired.employee:0
+msgid "Would you like to create an employee ?"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Degree:"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,help:hr_recruitment.hr_recruitment_stage_form_installer
+msgid ""
+"Check if the following stages are matching your recruitment process. Don't "
+"forget to specify the department if your recruitment process is different "
+"according to the job position."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.config.settings:0
+msgid "Configure"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job4
+msgid "Contract Proposed"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.source,name:hr_recruitment.source_website_company
+msgid "Company Website"
+msgstr ""
+
+#. module: hr_recruitment
+#: sql_constraint:hr.recruitment.degree:0
+msgid "The name of the Degree of Recruitment must be unique!"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,year:0
+msgid "Year"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hired.employee:0
+#: view:hr.recruitment.partner.create:0
+msgid "Cancel"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.partner.create:0
+msgid "Are you sure you want to create a contact based on this job request ?"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.config.settings,fetchmail_applicants:0
+msgid ""
+"Allow applicants to send their job application to an email address "
+"(jobs@mycompany.com),\n"
+" and create automatically application documents in the system."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+#: selection:hr.recruitment.stage,state:0
+msgid "In Progress"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Subject / Applicant"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.degree,sequence:0
+msgid "Gives the sequence order when displaying a list of degrees."
+msgstr ""
+
+#. module: hr_recruitment
+#: model:mail.message.subtype,description:hr_recruitment.mt_stage_changed
+msgid "Stage changed"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,user_id:0
+#: view:hr.recruitment.report:0
+msgid "Responsible"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_report_all
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_report_all
+msgid "Recruitment Analysis"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hired.employee:0
+msgid "Create New Employee"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.source,name:hr_recruitment.source_linkedin
+msgid "LinkedIn"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:mail.message.subtype,name:hr_recruitment.mt_job_new_applicant
+msgid "New Applicant"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_stage
+msgid "Stage of Recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Cases By Stage and Estimates"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+#: view:hr.recruitment.report:0
+#: selection:hr.recruitment.report,state:0
+#: selection:hr.recruitment.stage,state:0
+msgid "New"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:crm.meeting.type,name:hr_recruitment.categ_meet_interview
+#: view:hr.job:0
+msgid "Interview"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.source,name:0
+msgid "Source Name"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Day(s)"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,description:0
+msgid "Description"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:mail.message.subtype,name:hr_recruitment.mt_stage_changed
+msgid "Stage Changed"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job5
+msgid "Contract Signed"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.source,name:hr_recruitment.source_word
+msgid "Word of Mouth"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.stage,fold:0
+msgid "Hide in views if empty"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.config.settings,module_document_ftp:0
+msgid ""
+"Manage your CV's and motivation letter related to all applicants.\n"
+" This installs the module document_ftp. This will install the "
+"knowledge management module in order to allow you to search using specific "
+"keywords through the content of all documents (PDF, .DOCx...)"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,state:0
+#: selection:hr.recruitment.report,state:0
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job6
+#: selection:hr.recruitment.stage,state:0
+msgid "Refused"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,state:0
+#: view:hr.recruitment.report:0
+#: selection:hr.recruitment.report,state:0
+#: selection:hr.recruitment.stage,state:0
+msgid "Hired"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,reference:0
+msgid "Referred By"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Departement:"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "On Average"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_degree
+msgid "Degree of Recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,salary_prop_avg:0
+msgid "Avg. Proposed Salary"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Open Jobs"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Not Good"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant_category,name:0
+#: field:hr.recruitment.degree,name:0
+#: field:hr.recruitment.stage,name:0
+msgid "Name"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,salary_exp_avg:0
+msgid "Avg. Expected Salary"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Avg Expected Salary"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_partner_create
+msgid "Create Partner from job application"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,email_from:0
+msgid "These people will receive email."
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.job,alias_id:0
+msgid "Alias"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Pending recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Contract"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:mail.message.subtype,description:hr_recruitment.mt_applicant_refused
+msgid "Applicant refused"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.stage,department_id:0
+msgid "Specific to a Department"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "In progress recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.degree,sequence:0
+#: field:hr.recruitment.stage,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.degree,name:hr_recruitment.degree_bachelor
+msgid "Bachelor Degree"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Unassigned Recruitments"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_config_settings
+msgid "hr.config.settings"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.stage,state:0
+msgid ""
+"The related status for the stage. The status of your document will "
+"automatically change according to the selected stage. Example, a stage is "
+"related to the status 'Close', when your document reach this stage, it will "
+"be automatically closed."
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,salary_proposed_extra:0
+msgid "Salary Proposed by the Organisation, extra advantages"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.report,delay_close:0
+msgid "Number of Days to close the project issue"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,state:0
+msgid "Open"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:board.board:0
+msgid "Applications to be Processed"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Schedule Interview"
+msgstr ""
diff --git a/addons/hr_recruitment/report/hr_recruitment_report.py b/addons/hr_recruitment/report/hr_recruitment_report.py
index 0292875a2c7..908b701d928 100644
--- a/addons/hr_recruitment/report/hr_recruitment_report.py
+++ b/addons/hr_recruitment/report/hr_recruitment_report.py
@@ -90,7 +90,7 @@ class hr_recruitment_report(osv.Model):
(sum(salary_proposed)/count(*)) as salary_prop_avg,
sum(salary_expected) as salary_exp,
(sum(salary_expected)/count(*)) as salary_exp_avg,
- extract('epoch' from (s.date_closed-s.create_date))/(3600*24) as delay_close,
+ extract('epoch' from (s.write_date-s.create_date))/(3600*24) as delay_close,
count(*) as nbr
from hr_applicant s
group by
@@ -101,6 +101,7 @@ class hr_recruitment_report(osv.Model):
date_trunc('day',s.date_closed),
s.date_open,
s.create_date,
+ s.write_date,
s.date_closed,
s.date_last_stage_update,
s.partner_id,
diff --git a/addons/hr_recruitment/res_config.py b/addons/hr_recruitment/res_config.py
index d18ca7de477..ca70150b592 100644
--- a/addons/hr_recruitment/res_config.py
+++ b/addons/hr_recruitment/res_config.py
@@ -26,7 +26,7 @@ class hr_applicant_settings(osv.osv_memory):
_inherit = ['hr.config.settings', 'fetchmail.config.settings']
_columns = {
- 'module_document_ftp': fields.boolean('Allow the automatic indexation of resumes',
+ 'module_document': fields.boolean('Allow the automatic indexation of resumes',
help='Manage your CV\'s and motivation letter related to all applicants.\n'
'-This installs the module document_ftp. This will install the knowledge management module in order to allow you to search using specific keywords through the content of all documents (PDF, .DOCx...)'),
'fetchmail_applicants': fields.boolean('Create applicants from an incoming email account',
diff --git a/addons/hr_recruitment/res_config_view.xml b/addons/hr_recruitment/res_config_view.xml
index 1c692099f60..b0dfc5bb232 100644
--- a/addons/hr_recruitment/res_config_view.xml
+++ b/addons/hr_recruitment/res_config_view.xml
@@ -15,14 +15,8 @@
-
-
-
-
-
-
-
+
+
diff --git a/addons/hr_timesheet/hr_timesheet_view.xml b/addons/hr_timesheet/hr_timesheet_view.xml
index 3d9e39e986f..0cd8a880a68 100644
--- a/addons/hr_timesheet/hr_timesheet_view.xml
+++ b/addons/hr_timesheet/hr_timesheet_view.xml
@@ -81,7 +81,8 @@
- {'search_default_account_id': [active_id], 'default_account_id': active_id, 'search_default_group_date': 1, 'search_default_group_journal': 1}
+ {'search_default_group_date': 1, 'search_default_group_journal': 1}
+ [('account_id','child_of', active_id)]Costs & Revenuesaccount.analytic.lineaccount.analytic.account
diff --git a/addons/hr_timesheet/report/custom_default.xsl b/addons/hr_timesheet/report/custom_default.xsl
index e8b133da1b0..2eda3a08f4b 100644
--- a/addons/hr_timesheet/report/custom_default.xsl
+++ b/addons/hr_timesheet/report/custom_default.xsl
@@ -5,9 +5,9 @@
-
+
-
+ 1.3cm 19.3cm 28.5cm 19.3cm
@@ -17,9 +17,9 @@
-
+
-
+ 1.3cm 19.3cm 28.5cm 19.3cm
diff --git a/addons/hr_timesheet/report/users_timesheet.py b/addons/hr_timesheet/report/users_timesheet.py
index d8c4927947d..0d3f23e6bd3 100644
--- a/addons/hr_timesheet/report/users_timesheet.py
+++ b/addons/hr_timesheet/report/users_timesheet.py
@@ -106,7 +106,7 @@ class report_custom(report_rml):
%s%s
- ''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),registry['res.users'].browse(cr,uid,uid).company_id.name)
+ ''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),toxml(registry['res.users'].browse(cr,uid,uid).company_id.name))
xml='''
diff --git a/addons/hr_timesheet_sheet/i18n/oc.po b/addons/hr_timesheet_sheet/i18n/oc.po
new file mode 100644
index 00000000000..7f910b60428
--- /dev/null
+++ b/addons/hr_timesheet_sheet/i18n/oc.po
@@ -0,0 +1,1151 @@
+# Occitan (post 1500) translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:04+0000\n"
+"PO-Revision-Date: 2013-11-26 11:20+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Occitan (post 1500) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-27 04:37+0000\n"
+"X-Generator: Launchpad (build 16845)\n"
+
+#. module: hr_timesheet_sheet
+#: field:hr.analytic.timesheet,sheet_id:0
+#: field:hr.attendance,sheet_id:0
+#: field:hr_timesheet_sheet.sheet.account,sheet_id:0
+#: field:hr_timesheet_sheet.sheet.day,sheet_id:0
+msgid "Sheet"
+msgstr "Fuèlh"
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_timesheetdraft0
+msgid "Service"
+msgstr "Servici"
+
+#. module: hr_timesheet_sheet
+#: field:hr.timesheet.report,quantity:0
+#: field:timesheet.report,quantity:0
+msgid "Time"
+msgstr "Temps"
+
+#. module: hr_timesheet_sheet
+#: help:hr.config.settings,timesheet_max_difference:0
+msgid ""
+"Allowed difference in hours between the sign in/out and the timesheet\n"
+" computation for one sheet. Set this to 0 if you do not want "
+"any control."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0
+#: view:hr_timesheet_sheet.sheet:0
+#: view:timesheet.report:0
+msgid "Group By..."
+msgstr "Regropar per..."
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,total_attendance:0
+msgid "Total Attendance"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+#: field:hr_timesheet_sheet.sheet,department_id:0
+#: view:timesheet.report:0
+#: field:timesheet.report,department_id:0
+msgid "Department"
+msgstr "Departament"
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_tasktimesheet0
+msgid "Task timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:73
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:86
+#, python-format
+msgid ""
+"In order to create a timesheet for this employee, you must assign an "
+"analytic journal to the employee, like 'Timesheet Journal'."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0
+#: selection:timesheet.report,month:0
+msgid "March"
+msgstr "març"
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0
+#: field:timesheet.report,cost:0
+msgid "#Cost"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0
+#: field:hr.timesheet.report,company_id:0
+#: field:hr_timesheet_sheet.sheet,company_id:0
+#: view:timesheet.report:0
+#: field:timesheet.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0
+#: view:hr_timesheet_sheet.sheet:0
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_report
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_sheet_sheet
+#: model:ir.model,name:hr_timesheet_sheet.model_timesheet_report
+#: model:process.node,name:hr_timesheet_sheet.process_node_timesheet0
+#: view:timesheet.report:0
+msgid "Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Timesheet Period"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,date_to:0
+#: field:timesheet.report,date_to:0
+msgid "Date to"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "to"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_invoiceonwork0
+msgid "Based on the timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:327
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:398
+#, python-format
+msgid "You cannot modify an entry in a confirmed timesheet."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0
+#: view:timesheet.report:0
+msgid "Group by day of date"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_my_current
+msgid "My Current Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition.action,name:hr_timesheet_sheet.process_transition_action_validatetimesheet0
+msgid "Validate"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr_timesheet_sheet.sheet,state:0
+msgid "Approved"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr_timesheet_sheet.sheet,state_attendance:0
+msgid "Present"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0
+msgid "Total Cost"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+#: model:process.transition.action,name:hr_timesheet_sheet.process_transition_action_refusetimesheet0
+msgid "Refuse"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_2_hr_analytic_timesheet
+msgid "Timesheet Activities"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/wizard/hr_timesheet_current.py:38
+#, python-format
+msgid "Please create an employee and associate it with this user."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:402
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:422
+#, python-format
+msgid ""
+"You cannot enter an attendance date outside the current timesheet dates."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:205
+#, python-format
+msgid "Week "
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,help:hr_timesheet_sheet.action_hr_timesheet_current_open
+msgid ""
+"My Timesheet opens your timesheet so that you can book your activities into "
+"the system. From the same form, you can register your attendances (Sign "
+"In/Out) and describe the working hours made on the different projects. At "
+"the end of the period defined in the company, the timesheet is confirmed by "
+"the user and can be validated by his manager. If required, as defined on the "
+"project, you can generate the invoices based on the timesheet."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: help:hr_timesheet_sheet.sheet,state:0
+msgid ""
+" * The 'Draft' status is used when a user is encoding a new and unconfirmed "
+"timesheet. \n"
+"* The 'Confirmed' status is used for to confirm the timesheet by user. "
+" \n"
+"* The 'Done' status is used when users timesheet is accepted by his/her "
+"senior."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:64
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:69
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:71
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:80
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:82
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:84
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:327
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:398
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:429
+#: code:addons/hr_timesheet_sheet/wizard/hr_timesheet_current.py:38
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr.config.settings,timesheet_max_difference:0
+msgid ""
+"Allow a difference of time between timesheets and attendances of (in hours)"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:99
+#, python-format
+msgid ""
+"Please verify that the total difference of the sheet is lower than %.2f."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.action_timesheet_report_stat_all
+#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_timesheet_report_all
+msgid "Timesheet Sheet Analysis"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet.account,name:0
+msgid "Project / Analytic Account"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_validatetimesheet0
+msgid "Validation"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: help:hr_timesheet_sheet.sheet,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:69
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:80
+#, python-format
+msgid ""
+"In order to create a timesheet for this employee, you must assign it to a "
+"user."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_attendance0
+msgid "Employee's timesheet entry"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:213
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:215
+#, python-format
+msgid "Invalid Action!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0
+#: field:hr.timesheet.report,account_id:0
+#: view:timesheet.report:0
+#: field:timesheet.report,account_id:0
+msgid "Analytic Account"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: help:hr_timesheet_sheet.sheet,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: hr_timesheet_sheet
+#: field:timesheet.report,nbr:0
+msgid "#Nbr"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,date_from:0
+#: field:timesheet.report,date_from:0
+msgid "Date from"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.employee:0
+#: view:hr_timesheet_sheet.sheet:0
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_employee_2_hr_timesheet
+#: view:res.company:0
+msgid "Timesheets"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,name:hr_timesheet_sheet.process_node_confirmedtimesheet0
+#: view:timesheet.report:0
+#: selection:timesheet.report,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet.day,total_attendance:0
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_attendance
+#: model:process.node,name:hr_timesheet_sheet.process_node_attendance0
+msgid "Attendance"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition.action,name:hr_timesheet_sheet.process_transition_action_draftconfirmtimesheet0
+msgid "Confirm"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,timesheet_ids:0
+msgid "Timesheet lines"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_confirmedtimesheet0
+msgid "State is 'confirmed'."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,employee_id:0
+msgid "Employee"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr_timesheet_sheet.sheet,state:0
+#: selection:timesheet.report,state:0
+msgid "New"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.action_week_attendance_graph
+msgid "My Total Attendances By Week"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet.account,total:0
+msgid "Total Time"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_form
+#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form
+msgid "Timesheets to Validate"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Hours"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0
+#: view:timesheet.report:0
+msgid "Group by month of date"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,note:hr_timesheet_sheet.process_transition_validatetimesheet0
+msgid "The project manager validates the timesheets."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0
+#: selection:timesheet.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr.config.settings,timesheet_range:0
+msgid "Validate timesheets every"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:73
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:86
+#, python-format
+msgid "Configuration Error!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,state:0
+#: view:timesheet.report:0
+#: field:timesheet.report,state:0
+msgid "Status"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,name:hr_timesheet_sheet.process_node_workontask0
+msgid "Work on Task"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr_timesheet_sheet.sheet,state:0
+msgid "Waiting Approval"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0
+msgid "#Quantity"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,total_timesheet:0
+#: view:hr_timesheet_sheet.sheet.day:0
+#: field:hr_timesheet_sheet.sheet.day,total_timesheet:0
+msgid "Total Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Available Attendance"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Sign In"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0
+#: field:timesheet.report,total_timesheet:0
+msgid "#Total Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_current_open
+msgid "hr.timesheet.current.open"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:71
+#, python-format
+msgid ""
+"In order to create a timesheet for this employee, you must link the employee "
+"to a product, like 'Consultant'."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0
+#: selection:timesheet.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0
+#: selection:timesheet.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.current.open:0
+msgid "It will open your current timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.config.settings,timesheet_range:0
+#: view:hr.timesheet.report:0
+#: field:hr.timesheet.report,month:0
+#: selection:res.company,timesheet_range:0
+#: view:timesheet.report:0
+#: field:timesheet.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0
+#: field:timesheet.report,total_diff:0
+msgid "#Total Diff"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "In Draft"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_attendancetimesheet0
+msgid "Sign in/out"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:84
+#, python-format
+msgid ""
+"In order to create a timesheet for this employee, you must link the employee "
+"to a product."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#. openerp-web
+#: code:addons/hr_timesheet_sheet/static/src/xml/timesheet.xml:58
+#, python-format
+msgid ""
+"You will be able to register your working hours and\n"
+" activities."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.current.open:0
+msgid "or"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_invoiceontimesheet0
+msgid "Billing"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,note:hr_timesheet_sheet.process_transition_timesheetdraft0
+msgid ""
+"The timesheet line represents the time spent by the employee on a specific "
+"service provided."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,name:0
+msgid "Note"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#. openerp-web
+#: code:addons/hr_timesheet_sheet/static/src/xml/timesheet.xml:33
+#, python-format
+msgid "Add"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0
+#: selection:timesheet.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:res.company,timesheet_max_difference:0
+msgid "Timesheet allowed difference(Hours)"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,note:hr_timesheet_sheet.process_transition_invoiceontimesheet0
+msgid "The invoice is created based on the timesheet."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,name:hr_timesheet_sheet.process_node_drafttimesheetsheet0
+msgid "Draft Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,help:hr_timesheet_sheet.act_hr_timesheet_sheet_form
+msgid ""
+"
\n"
+" New timesheet to approve.\n"
+"
\n"
+" You must record timesheets every day and confirm at the end\n"
+" of the week. Once the timesheet is confirmed, it should be\n"
+" validated by a manager.\n"
+"
\n"
+" Timesheets can also be invoiced to customers, depending on "
+"the\n"
+" configuration of each project's related contract.\n"
+"
\n"
+" This report performs analysis on timesheets created by your\n"
+" human resources in the system. It allows you to have a full\n"
+" overview of entries done by your employees. You can group "
+"them\n"
+" by specific selection criteria thanks to the search tool.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Employees"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: constraint:hr.analytic.timesheet:0
+msgid "You cannot modify an entry in a Confirmed/Done timesheet !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_timesheet0
+msgid "Information of time spent on a service"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0
+#: selection:timesheet.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_confirmtimesheet0
+msgid "Confirmation"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:99
+#, python-format
+msgid "Warning!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet.account,invoice_rate:0
+msgid "Invoice rate"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:402
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:422
+#, python-format
+msgid "User Error!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet.day:0
+msgid "Total Difference"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Approve"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: help:hr_timesheet_sheet.sheet,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,account_ids:0
+msgid "Analytic accounts"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0
+#: field:timesheet.report,to_invoice:0
+msgid "Type of Invoicing"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0
+#: field:timesheet.report,total_attendance:0
+msgid "#Total Attendance"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr.timesheet.report,cost:0
+msgid "Cost"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:timesheet.report,date_current:0
+msgid "Current date"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.process,name:hr_timesheet_sheet.process_process_hrtimesheetprocess0
+msgid "Hr Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0
+#: field:hr.timesheet.report,year:0
+#: view:timesheet.report:0
+#: field:timesheet.report,year:0
+msgid "Year"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.current.open:0
+#: selection:hr_timesheet_sheet.sheet,state:0
+msgid "Open"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "To Approve"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#. openerp-web
+#: code:addons/hr_timesheet_sheet/static/src/xml/timesheet.xml:15
+#: code:addons/hr_timesheet_sheet/static/src/xml/timesheet.xml:40
+#: view:hr_timesheet_sheet.sheet.account:0
+#, python-format
+msgid "Total"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr.timesheet.report,journal_id:0
+msgid "Journal"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_by_day
+msgid "Timesheet by Day"
+msgstr ""
diff --git a/addons/hr_timesheet_sheet/report/timesheet_report.py b/addons/hr_timesheet_sheet/report/timesheet_report.py
index 16889253a68..6d284ac08c8 100644
--- a/addons/hr_timesheet_sheet/report/timesheet_report.py
+++ b/addons/hr_timesheet_sheet/report/timesheet_report.py
@@ -95,7 +95,7 @@ class timesheet_report(osv.osv):
htss.state
from account_analytic_line as aal
left join hr_analytic_timesheet as hat ON (hat.line_id=aal.id)
- left join hr_timesheet_sheet_sheet as htss ON (hat.line_id=htss.id)
+ left join hr_timesheet_sheet_sheet as htss ON (hat.sheet_id=htss.id)
group by
aal.account_id,
aal.date,
diff --git a/addons/hr_timesheet_sheet/static/src/css/timesheet.css b/addons/hr_timesheet_sheet/static/src/css/timesheet.css
index 36ea9a34db9..99a63002326 100644
--- a/addons/hr_timesheet_sheet/static/src/css/timesheet.css
+++ b/addons/hr_timesheet_sheet/static/src/css/timesheet.css
@@ -19,7 +19,7 @@
text-align: center;
color: #006699;
font-family: "Helvetica Neue", Arial, Verdana, "Nimbus Sans L", sans-serif;
- font-size: 10px;
+ font-size: 11px;
background: #eeeeee;
min-width: 47px;
}
@@ -33,7 +33,7 @@
min-width: 130px;
}
.openerp .oe_timesheet_weekly td input.oe_timesheet_weekly_input {
- padding: 5px 2px !important;
+ padding-right: 2px !important;
width: 40px;
text-align: right;
min-width: 0 !important;
diff --git a/addons/hr_timesheet_sheet/static/src/css/timesheet.sass b/addons/hr_timesheet_sheet/static/src/css/timesheet.sass
index 5e04271037c..daa835db88d 100644
--- a/addons/hr_timesheet_sheet/static/src/css/timesheet.sass
+++ b/addons/hr_timesheet_sheet/static/src/css/timesheet.sass
@@ -28,7 +28,7 @@
.oe_timesheet_first_col
min-width: 130px
td input.oe_timesheet_weekly_input
- padding: 5px 2px !important
+ padding-right: 2px !important
width: 40px
text-align: right
min-width: 0 !important
diff --git a/addons/idea/static/src/css/idea_idea.css b/addons/idea/static/src/css/idea_idea.css
index 08daffd902a..ff146bd189d 100644
--- a/addons/idea/static/src/css/idea_idea.css
+++ b/addons/idea/static/src/css/idea_idea.css
@@ -1,5 +1,5 @@
.openerp .oe_kanban_view .oe_kanban_idea_idea {
- width: 200px;
+ width: 212px; /* Customize width according bootstrap3 */
}
.openerp .oe_kanban_view .oe_kanban_idea_idea .oe_avatars {
diff --git a/addons/im/static/src/js/im.js b/addons/im/static/src/js/im.js
index 6fbf452f974..aa2e7d963b6 100644
--- a/addons/im/static/src/js/im.js
+++ b/addons/im/static/src/js/im.js
@@ -62,16 +62,12 @@
this.user_search_dm = new instance.web.DropMisordered();
},
start: function() {
+ var self = this;
this.$el.css("right", -this.$el.outerWidth());
$(window).scroll(_.bind(this.calc_box, this));
$(window).resize(_.bind(this.calc_box, this));
this.calc_box();
-
this.on("change:current_search", this, this.search_changed);
- this.search_changed();
-
- var self = this;
-
return this.c_manager.start_polling().then(function() {
self.c_manager.on("new_conversation", self, function(conv) {
conv.$el.droppable({
@@ -80,10 +76,11 @@
}
});
});
+ self.search_changed();
});
},
calc_box: function() {
- var $topbar = instance.client.$(".oe_topbar");
+ var $topbar = instance.client.$(".navbar"); // .oe_topbar is replaced with .navbar of bootstrap3
var top = $topbar.offset().top + $topbar.height();
top = Math.max(top - $(window).scrollTop(), 0);
this.$el.css("top", top);
@@ -174,4 +171,4 @@
openerp.webclient.to_kitten();
};
-})();
\ No newline at end of file
+})();
diff --git a/addons/im_livechat/im_livechat.py b/addons/im_livechat/im_livechat.py
index 5be63d4dcec..16f1128fd78 100644
--- a/addons/im_livechat/im_livechat.py
+++ b/addons/im_livechat/im_livechat.py
@@ -211,5 +211,5 @@ class im_session(osv.osv):
_inherit = 'im.session'
_columns = {
- 'channel_id': fields.many2one("im.user", "Channel"),
+ 'channel_id': fields.many2one("im_livechat.channel", "Channel"),
}
diff --git a/addons/l10n_be/__openerp__.py b/addons/l10n_be/__openerp__.py
index cd822045e64..8e607ba3120 100644
--- a/addons/l10n_be/__openerp__.py
+++ b/addons/l10n_be/__openerp__.py
@@ -65,6 +65,7 @@ Wizards provided by this module:
'account_pcmn_belgium.xml',
'account_tax_code_template.xml',
'account_chart_template.xml',
+ 'account_chart_template.yml',
'account_tax_template.xml',
'wizard/l10n_be_account_vat_declaration_view.xml',
'wizard/l10n_be_vat_intra_view.xml',
diff --git a/addons/l10n_be/account_chart_template.xml b/addons/l10n_be/account_chart_template.xml
index 48e506ded79..1de39382624 100644
--- a/addons/l10n_be/account_chart_template.xml
+++ b/addons/l10n_be/account_chart_template.xml
@@ -12,7 +12,6 @@
-
diff --git a/addons/l10n_be/account_chart_template.yml b/addons/l10n_be/account_chart_template.yml
new file mode 100644
index 00000000000..0028576f964
--- /dev/null
+++ b/addons/l10n_be/account_chart_template.yml
@@ -0,0 +1,4 @@
+-
+ !python {model: account.chart.template}: |
+ if 'spoken_languages' in self._all_columns:
+ self.write(cr, uid, [ref('l10nbe_chart_template')], {'spoken_languages': 'nl_BE'})
diff --git a/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py b/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py
index 0576e1d5f8f..2ef1a81fef2 100644
--- a/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py
+++ b/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py
@@ -185,7 +185,7 @@ class l10n_be_vat_declaration(osv.osv_memory):
for item in cases_list:
grid_amount_data = {
'code': str(int(item['code'])),
- 'amount': str(abs(item['sum_period'])),
+ 'amount': '%.2f' % abs(item['sum_period']),
}
data_of_file += '\n\t\t\t%(amount)s' % (grid_amount_data)
diff --git a/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_demo.xml b/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_demo.xml
index 0cb05a218c3..6e9bed17ab2 100644
--- a/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_demo.xml
+++ b/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_demo.xml
@@ -19,6 +19,22 @@
single
+
+ 54 Rue Jean Baptiste Colette BP
+ Attiches
+ 59551
+
+ onss@yourcompany.example.com
+
+
+ Shanghai Branch
+ Anshun Road 83, Room 1603 -
+ Shanghai
+ 200052
+
+ fiscal@yourcompany.example.com
+
+
diff --git a/addons/l10n_bo/__openerp__.py b/addons/l10n_bo/__openerp__.py
index d55777d198f..7bb13365928 100644
--- a/addons/l10n_bo/__openerp__.py
+++ b/addons/l10n_bo/__openerp__.py
@@ -41,7 +41,7 @@ Plan contable boliviano e impuestos de acuerdo a disposiciones vigentes
],
"demo_xml": [
],
- "update_xml": [
+ "data": [
],
"active": False,
"installable": True,
diff --git a/addons/l10n_ch/sterchi_chart/account.xml b/addons/l10n_ch/sterchi_chart/account.xml
index acee99cad4a..11198c43b9c 100644
--- a/addons/l10n_ch/sterchi_chart/account.xml
+++ b/addons/l10n_ch/sterchi_chart/account.xml
@@ -177,14 +177,12 @@
Bilan : Debiteursreceivable
- unreconcilednoneBilan : Fournisseurspayable
- unreconcilednone
@@ -11809,7 +11807,6 @@
-
diff --git a/addons/l10n_es/taxes_data_assoc.xml b/addons/l10n_es/taxes_data_assoc.xml
index e2ebb47fb59..152b27363af 100644
--- a/addons/l10n_es/taxes_data_assoc.xml
+++ b/addons/l10n_es/taxes_data_assoc.xml
@@ -44,7 +44,6 @@
Base adquisiciones exentas
- --1.0
@@ -53,7 +52,6 @@
Base ventas exentas--
- 1.0
diff --git a/addons/l10n_fr/fr_tax.xml b/addons/l10n_fr/fr_tax.xml
index 7c75136bdd3..8633cca7141 100644
--- a/addons/l10n_fr/fr_tax.xml
+++ b/addons/l10n_fr/fr_tax.xml
@@ -219,8 +219,8 @@
-
-
+
+
diff --git a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv
index 2fe1ba739f4..043ba8f0522 100644
--- a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv
+++ b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv
@@ -1,5 +1,5 @@
-"id","amount_select","condition_range_min","condition_range_max","amount_percentage","amount_fix","name","category_id","sequence","code","parent_rule_id/id","condition_select","condition_range","amount_percentage_base"
-1,"fix",1,1,,100,"Education Allowance For One Child","Allowance",23,"CHEAONE","hr_payroll_rule_child1","range","employee.children",
-2,"fix",2,10,,200,"Education Allowance For Two Child","Allowance",24,"CHEATWO","hr_payroll_rule_child1","range","employee.children",
-3,"fix",1,1,,300,"Child Hostel Allowance For One Child","Allowance",26,"CHOONE","hr_payroll_rule_child2","range","employee.children",
-4,"fix",2,10,,600,"Child Hostel Allowance For Two Child","Allowance",27,"CHOTWO","hr_payroll_rule_child2","range","employee.children",
+"id","amount_select","condition_range_min","condition_range_max","amount_percentage","amount_fix","name","category_id/id","sequence","code","parent_rule_id/id","condition_select","condition_range","amount_percentage_base"
+1,"fix",1,1,,100,"Education Allowance For One Child",hr_payroll.ALW,23,"CHEAONE","hr_payroll_rule_child1","range","employee.children",
+2,"fix",2,10,,200,"Education Allowance For Two Child",hr_payroll.ALW,24,"CHEATWO","hr_payroll_rule_child1","range","employee.children",
+3,"fix",1,1,,300,"Child Hostel Allowance For One Child",hr_payroll.ALW,26,"CHOONE","hr_payroll_rule_child2","range","employee.children",
+4,"fix",2,10,,600,"Child Hostel Allowance For Two Child",hr_payroll.ALW,27,"CHOTWO","hr_payroll_rule_child2","range","employee.children",
diff --git a/addons/l10n_ma/l10n_ma_tax.xml b/addons/l10n_ma/l10n_ma_tax.xml
index 5bc59035861..3040cd4e78e 100644
--- a/addons/l10n_ma/l10n_ma_tax.xml
+++ b/addons/l10n_ma/l10n_ma_tax.xml
@@ -745,6 +745,8 @@
+
+
diff --git a/addons/l10n_multilang/i18n/zh_CN.po b/addons/l10n_multilang/i18n/zh_CN.po
index 40b9b024813..8dd8ef276d8 100644
--- a/addons/l10n_multilang/i18n/zh_CN.po
+++ b/addons/l10n_multilang/i18n/zh_CN.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 01:06+0000\n"
-"PO-Revision-Date: 2013-07-24 12:29+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2013-11-19 05:36+0000\n"
+"Last-Translator: Guipo Hao \n"
"Language-Team: Chinese (Simplified) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:34+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-11-20 05:25+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_fiscal_position_template
@@ -107,6 +107,7 @@ msgid ""
"the final object when generating them from templates. You must provide the "
"language codes separated by ';'"
msgstr ""
+"此处表明模板翻译所用语言可以在该本地化模块安装时加载,并且由此模板生成最终目标时该语言也会被拷贝到最终目标。提交语言代码时必须用分号 ';' 分隔。'"
#. module: l10n_multilang
#: constraint:account.account:0
diff --git a/addons/l10n_multilang/l10n_multilang.py b/addons/l10n_multilang/l10n_multilang.py
index b7564a9960a..937ba332694 100644
--- a/addons/l10n_multilang/l10n_multilang.py
+++ b/addons/l10n_multilang/l10n_multilang.py
@@ -33,6 +33,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
"""
_inherit = 'wizard.multi.charts.accounts'
+ # FIXME: in trunk, drop the force_write param entirely
def process_translations(self, cr, uid, langs, in_obj, in_field, in_ids, out_obj, out_ids, force_write=False, context=None):
"""
This method copies translations values of templates into new Accounts/Taxes/Journals for languages selected
@@ -45,8 +46,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
:param in_ids: List of ids of source object
:param out_obj: Destination object for which translation is to be copied
:param out_ids: List of ids of destination object
- :param force_write: boolean that depicts if we need to create a translation OR simply replace the actual value
- with the translation in the uid's language by doing a write (in case it's TRUE)
+ :param force_write: Deprecated as of 7.0, do not use
:param context: usual context information. May contain the key 'lang', which is the language of the user running
the wizard, that will be used if force_write is True
@@ -65,26 +65,25 @@ class wizard_multi_charts_accounts(osv.osv_memory):
for j in range(len(in_ids)):
in_id = in_ids[j]
if value[in_id]:
- if not force_write:
- #copy Translation from Source to Destination object
- xlat_obj.create(cr, uid, {
- 'name': out_obj._name + ',' + in_field,
- 'type': 'model',
- 'res_id': out_ids[j],
- 'lang': lang,
- 'src': src[in_id],
- 'value': value[in_id],
+ #copy Translation from Source to Destination object
+ xlat_obj.create(cr, uid, {
+ 'name': out_obj._name + ',' + in_field,
+ 'type': 'model',
+ 'res_id': out_ids[j],
+ 'lang': lang,
+ 'src': src[in_id],
+ 'value': value[in_id],
})
- else:
- #replace the value in the destination object only if it's the user lang
- if context.get('lang') == lang:
- self.pool[out_obj._name].write(cr, uid, out_ids[j], {in_field: value[in_id]})
else:
_logger.info('Language: %s. Translation from template: there is no translation available for %s!' %(lang, src[in_id]))#out_obj._name))
return True
def execute(self, cr, uid, ids, context=None):
- res = super(wizard_multi_charts_accounts, self).execute(cr, uid, ids, context=context)
+ if not context:
+ context = {}
+ # remove the lang to get the untranslated value
+ ctx = dict(context, lang=None)
+ res = super(wizard_multi_charts_accounts, self).execute(cr, uid, ids, context=ctx)
obj_multi = self.browse(cr, uid, ids[0], context=context)
company_id = obj_multi.company_id.id
@@ -125,7 +124,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
acc_root_id = obj_acc.search(cr, uid, [('company_id', '=', company_id), ('parent_id', '=', None)])[0]
in_ids = obj_acc_template.search(cr, uid, [('id', 'child_of', [acc_template_root_id])], order='id')[1:]
out_ids = obj_acc.search(cr, uid, [('id', 'child_of', [acc_root_id])], order='id')[1:]
- return self.process_translations(cr, uid, langs, obj_acc_template, field, in_ids, obj_acc, out_ids, force_write=True, context=context)
+ return self.process_translations(cr, uid, langs, obj_acc_template, field, in_ids, obj_acc, out_ids, context=context)
def _process_tax_codes_translations(self, cr, uid, obj_multi, company_id, langs, field, context=None):
obj_tax_code_template = self.pool.get('account.tax.code.template')
@@ -134,21 +133,21 @@ class wizard_multi_charts_accounts(osv.osv_memory):
tax_code_root_id = obj_tax_code.search(cr, uid, [('company_id', '=', company_id), ('parent_id', '=', None)])[0]
in_ids = obj_tax_code_template.search(cr, uid, [('id', 'child_of', [tax_code_template_root_id])], order='id')[1:]
out_ids = obj_tax_code.search(cr, uid, [('id', 'child_of', [tax_code_root_id])], order='id')[1:]
- return self.process_translations(cr, uid, langs, obj_tax_code_template, field, in_ids, obj_tax_code, out_ids, force_write=False, context=context)
+ return self.process_translations(cr, uid, langs, obj_tax_code_template, field, in_ids, obj_tax_code, out_ids, context=context)
def _process_taxes_translations(self, cr, uid, obj_multi, company_id, langs, field, context=None):
obj_tax_template = self.pool.get('account.tax.template')
obj_tax = self.pool.get('account.tax')
in_ids = sorted([x.id for x in obj_multi.chart_template_id.tax_template_ids])
out_ids = obj_tax.search(cr, uid, [('company_id', '=', company_id)], order='id')
- return self.process_translations(cr, uid, langs, obj_tax_template, field, in_ids, obj_tax, out_ids, force_write=False, context=context)
+ return self.process_translations(cr, uid, langs, obj_tax_template, field, in_ids, obj_tax, out_ids, context=context)
def _process_fiscal_pos_translations(self, cr, uid, obj_multi, company_id, langs, field, context=None):
obj_fiscal_position_template = self.pool.get('account.fiscal.position.template')
obj_fiscal_position = self.pool.get('account.fiscal.position')
in_ids = obj_fiscal_position_template.search(cr, uid, [('chart_template_id', '=', obj_multi.chart_template_id.id)], order='id')
out_ids = obj_fiscal_position.search(cr, uid, [('company_id', '=', company_id)], order='id')
- return self.process_translations(cr, uid, langs, obj_fiscal_position_template, field, in_ids, obj_fiscal_position, out_ids, force_write=False, context=context)
+ return self.process_translations(cr, uid, langs, obj_fiscal_position_template, field, in_ids, obj_fiscal_position, out_ids, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_mx/__openerp__.py b/addons/l10n_mx/__openerp__.py
index d540b477f90..8e137012957 100644
--- a/addons/l10n_mx/__openerp__.py
+++ b/addons/l10n_mx/__openerp__.py
@@ -51,7 +51,7 @@ With this module you will have:
"account_chart",
],
"demo_xml" : [],
- "update_xml" : ["data/account_tax_code.xml",
+ "data" : ["data/account_tax_code.xml",
"data/account_chart.xml",
"data/account_tax.xml",
"data/l10n_chart_mx_wizard.xml"],
diff --git a/addons/l10n_mx/data/account_chart.xml b/addons/l10n_mx/data/account_chart.xml
index daa564fd10e..c28d8da8a44 100644
--- a/addons/l10n_mx/data/account_chart.xml
+++ b/addons/l10n_mx/data/account_chart.xml
@@ -3693,8 +3693,6 @@ Cuentas del plan
-
-
diff --git a/addons/l10n_pa/__openerp__.py b/addons/l10n_pa/__openerp__.py
index e63296f89e6..05e7ad5aefc 100644
--- a/addons/l10n_pa/__openerp__.py
+++ b/addons/l10n_pa/__openerp__.py
@@ -44,7 +44,7 @@ Con la Colaboración de
],
"demo_xml": [
],
- "update_xml": [
+ "data": [
],
"active": False,
"installable": True,
diff --git a/addons/l10n_pt/account_chart_template.xml b/addons/l10n_pt/account_chart_template.xml
index 49adfa393ef..08984b8d2af 100644
--- a/addons/l10n_pt/account_chart_template.xml
+++ b/addons/l10n_pt/account_chart_template.xml
@@ -15,7 +15,6 @@
-
diff --git a/addons/l10n_ro/__openerp__.py b/addons/l10n_ro/__openerp__.py
index e8bc9b869ad..388a6b2fc0f 100644
--- a/addons/l10n_ro/__openerp__.py
+++ b/addons/l10n_ro/__openerp__.py
@@ -32,7 +32,7 @@ This is the module to manage the accounting chart, VAT structure and Registratio
Romanian accounting chart and localization.
""",
"demo_xml" : [],
- "update_xml" : ['partner_view.xml','account_tax_code_template.xml','account_chart.xml','account_tax_template.xml','l10n_chart_ro_wizard.xml'],
+ "data" : ['partner_view.xml','account_tax_code_template.xml','account_chart.xml','account_tax_template.xml','l10n_chart_ro_wizard.xml'],
"auto_install": False,
"installable": True,
}
diff --git a/addons/l10n_uk/demo/demo.xml b/addons/l10n_uk/demo/demo.xml
index ec262412c43..03f42b2c9ba 100644
--- a/addons/l10n_uk/demo/demo.xml
+++ b/addons/l10n_uk/demo/demo.xml
@@ -6,19 +6,24 @@
12, Hill LaneHA4 7JWRuislip
-
+ +44 845 643 454808455274653http://www.smartmode.co.uk
+ smartmode@yourcompany.example.comVadim Chobanu
- vadim@smartmode.co.uk
+ vadim@smartmode.example.com1default
+ 88 Wood Street, 10th floor
+ EC2V 7RS
+ London
+
diff --git a/addons/l10n_us/account.account.template.csv b/addons/l10n_us/account.account.template.csv
index c7431ce89a7..6e6435fcbea 100644
--- a/addons/l10n_us/account.account.template.csv
+++ b/addons/l10n_us/account.account.template.csv
@@ -119,3 +119,5 @@
"51100_general_product",51100,"Freight and Shipping Costs","other","l10n_us.user_type_cogs","cost_of_goods_sold","False","l10n_us.account_chart_template_general_product"
"52500_general_product",52500,"Purchase Discounts","other","l10n_us.user_type_cogs","cost_of_goods_sold","False","l10n_us.account_chart_template_general_product"
"52900_general_product",52900,"Purchases - Resale Items","other","l10n_us.user_type_cogs","cost_of_goods_sold","False","l10n_us.account_chart_template_general_product"
+"base_miscincome","49000","Miscellaneous Income","other","l10n_us.user_type_income","income","False","l10n_us.account_chart_template_basic"
+"base_miscexpense","69000","Miscellaneous Expense","other","l10n_us.user_type_expense","expense","False","l10n_us.account_chart_template_basic"
\ No newline at end of file
diff --git a/addons/l10n_us/account_chart_template.xml b/addons/l10n_us/account_chart_template.xml
index 704afbad152..0adeddc5856 100644
--- a/addons/l10n_us/account_chart_template.xml
+++ b/addons/l10n_us/account_chart_template.xml
@@ -6,7 +6,6 @@
Basic Chart of Account
-
diff --git a/addons/l10n_us/account_chart_template_after.xml b/addons/l10n_us/account_chart_template_after.xml
index 4cd1472773d..8db22dd262a 100644
--- a/addons/l10n_us/account_chart_template_after.xml
+++ b/addons/l10n_us/account_chart_template_after.xml
@@ -9,6 +9,8 @@
+
+
diff --git a/addons/l10n_ve/data/account_tax.xml b/addons/l10n_ve/data/account_tax.xml
index 7acbda3e2af..8fb1aa4b819 100644
--- a/addons/l10n_ve/data/account_tax.xml
+++ b/addons/l10n_ve/data/account_tax.xml
@@ -7,8 +7,8 @@
0.00000percentall
-
-
+
+
@@ -21,8 +21,8 @@
0.120000percentsale
-
-
+
+
@@ -34,8 +34,8 @@
0.080000percentsale
-
-
+
+
@@ -47,8 +47,8 @@
0.220000percentsale
-
-
+
+
@@ -60,8 +60,8 @@
0.120000percentpurchase
-
-
+
+
@@ -73,8 +73,8 @@
0.080000percentpurchase
-
-
+
+
@@ -86,8 +86,8 @@
0.220000percentpurchase
-
-
+
+
diff --git a/addons/lunch/i18n/zh_CN.po b/addons/lunch/i18n/zh_CN.po
index 3a62cca4273..b039f65c5ab 100644
--- a/addons/lunch/i18n/zh_CN.po
+++ b/addons/lunch/i18n/zh_CN.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-11-28 11:04+0000\n"
-"Last-Translator: 盈通 ccdos \n"
+"PO-Revision-Date: 2013-11-19 10:02+0000\n"
+"Last-Translator: Guipo Hao \n"
"Language-Team: Chinese (Simplified) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:29+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-11-20 05:25+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
#. module: lunch
#: field:lunch.product,category_id:0
@@ -117,6 +117,15 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" This list contains messages sent to you.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: mail
+#: model:mail.group,name:mail.group_rd
+msgid "R&D"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:61
+#, python-format
+msgid "/web/binary/upload_attachment"
+msgstr ""
+
+#. module: mail
+#: model:ir.model,name:mail.model_mail_thread
+msgid "Email Thread"
+msgstr ""
+
+#. module: mail
+#: view:mail.mail:0
+msgid "Advanced"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:244
+#, python-format
+msgid "Move to Inbox"
+msgstr ""
+
+#. module: mail
+#: code:addons/mail/wizard/mail_compose_message.py:193
+#, python-format
+msgid "Re:"
+msgstr ""
+
+#. module: mail
+#: field:mail.compose.message,to_read:0
+#: field:mail.message,to_read:0
+msgid "To read"
+msgstr ""
+
+#. module: mail
+#: code:addons/mail/res_users.py:69
+#, python-format
+msgid ""
+"You may not create a user. To create new users, you should use the "
+"\"Settings > Users\" menu."
+msgstr ""
+
+#. module: mail
+#: help:mail.followers,res_model:0
+#: help:mail.wizard.invite,res_model:0
+msgid "Model of the followed resource"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:337
+#, python-format
+msgid "like"
+msgstr ""
+
+#. module: mail
+#: view:mail.compose.message:0
+#: view:mail.wizard.invite:0
+msgid "Cancel"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:47
+#, python-format
+msgid "Share with my followers..."
+msgstr ""
+
+#. module: mail
+#: field:mail.notification,partner_id:0
+msgid "Contact"
+msgstr ""
+
+#. module: mail
+#: view:mail.group:0
+msgid ""
+"Only the invited followers can read the\n"
+" discussions on this group."
+msgstr ""
+
+#. module: mail
+#: model:ir.model,name:mail.model_ir_ui_menu
+msgid "ir.ui.menu"
+msgstr ""
+
+#. module: mail
+#: view:mail.message:0
+msgid "Has attachments"
+msgstr ""
+
+#. module: mail
+#: view:mail.mail:0
+msgid "on"
+msgstr ""
+
+#. module: mail
+#: code:addons/mail/mail_message.py:926
+#, python-format
+msgid ""
+"The following partners chosen as recipients for the email have no email "
+"address linked :"
+msgstr ""
+
+#. module: mail
+#: help:mail.alias,alias_defaults:0
+msgid ""
+"A Python dictionary that will be evaluated to provide default values when "
+"creating new records for this alias."
+msgstr ""
+
+#. module: mail
+#: model:ir.model,name:mail.model_mail_message_subtype
+msgid "Message subtypes"
+msgstr ""
+
+#. module: mail
+#: help:mail.compose.message,notified_partner_ids:0
+#: help:mail.message,notified_partner_ids:0
+msgid ""
+"Partners that have a notification pushing this message in their mailboxes"
+msgstr ""
+
+#. module: mail
+#: selection:mail.compose.message,type:0
+#: view:mail.mail:0
+#: selection:mail.message,type:0
+msgid "Comment"
+msgstr ""
+
+#. module: mail
+#: model:ir.actions.client,help:mail.action_mail_inbox_feeds
+msgid ""
+"
\n"
+" Good Job! Your inbox is empty.\n"
+"
\n"
+" Your inbox contains private messages or emails sent to "
+"you\n"
+" as well as information related to documents or people "
+"you\n"
+" follow.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: mail
+#: field:mail.mail,notification:0
+msgid "Is Notification"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:188
+#, python-format
+msgid "Compose a new message"
+msgstr ""
+
+#. module: mail
+#: view:mail.mail:0
+msgid "Send Now"
+msgstr ""
+
+#. module: mail
+#: code:addons/mail/mail_mail.py:75
+#, python-format
+msgid ""
+"Unable to send email, please configure the sender's email address or alias."
+msgstr ""
+
+#. module: mail
+#: help:res.users,alias_id:0
+msgid ""
+"Email address internally associated with this user. Incoming emails will "
+"appear in the user's notifications."
+msgstr ""
+
+#. module: mail
+#: field:mail.group,image:0
+msgid "Photo"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:54
+#: code:addons/mail/static/src/xml/mail.xml:191
+#: view:mail.compose.message:0
+#: view:mail.wizard.invite:0
+#, python-format
+msgid "or"
+msgstr ""
+
+#. module: mail
+#: help:mail.compose.message,vote_user_ids:0
+#: help:mail.message,vote_user_ids:0
+msgid "Users that voted for this message"
+msgstr ""
+
+#. module: mail
+#: help:mail.group,alias_id:0
+msgid ""
+"The email address associated with this group. New emails received will "
+"automatically create new topics."
+msgstr ""
+
+#. module: mail
+#: view:mail.mail:0
+msgid "Month"
+msgstr ""
+
+#. module: mail
+#: view:mail.mail:0
+msgid "Email Search"
+msgstr ""
+
+#. module: mail
+#: field:mail.compose.message,child_ids:0
+#: field:mail.message,child_ids:0
+msgid "Child Messages"
+msgstr ""
+
+#. module: mail
+#: field:mail.alias,alias_user_id:0
+msgid "Owner"
+msgstr ""
+
+#. module: mail
+#: model:ir.model,name:mail.model_res_users
+msgid "Users"
+msgstr ""
+
+#. module: mail
+#: model:ir.model,name:mail.model_mail_message
+#: field:mail.mail,mail_message_id:0
+#: view:mail.message:0
+#: field:mail.notification,message_id:0
+#: field:mail.wizard.invite,message:0
+msgid "Message"
+msgstr ""
+
+#. module: mail
+#: help:mail.followers,res_id:0
+#: help:mail.wizard.invite,res_id:0
+msgid "Id of the followed resource"
+msgstr ""
+
+#. module: mail
+#: field:mail.compose.message,body:0
+#: field:mail.message,body:0
+msgid "Contents"
+msgstr ""
+
+#. module: mail
+#: model:ir.actions.act_window,name:mail.action_view_mail_alias
+#: model:ir.ui.menu,name:mail.mail_alias_menu
+msgid "Aliases"
+msgstr ""
+
+#. module: mail
+#: help:mail.message.subtype,description:0
+msgid ""
+"Description that will be added in the message posted for this subtype. If "
+"void, the name will be added instead."
+msgstr ""
+
+#. module: mail
+#: field:mail.compose.message,vote_user_ids:0
+#: field:mail.message,vote_user_ids:0
+msgid "Votes"
+msgstr ""
+
+#. module: mail
+#: view:mail.group:0
+msgid "Group"
+msgstr ""
+
+#. module: mail
+#: help:mail.compose.message,starred:0
+#: help:mail.message,starred:0
+msgid "Current user has a starred notification linked to this message"
+msgstr ""
+
+#. module: mail
+#: field:mail.group,public:0
+msgid "Privacy"
+msgstr ""
+
+#. module: mail
+#: view:mail.mail:0
+msgid "Notification"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/js/mail.js:654
+#, python-format
+msgid "Please complete partner's informations"
+msgstr ""
+
+#. module: mail
+#: view:mail.wizard.invite:0
+msgid "Add Followers"
+msgstr ""
+
+#. module: mail
+#: view:mail.compose.message:0
+msgid "Followers of selected items and"
+msgstr ""
+
+#. module: mail
+#: field:mail.alias,alias_force_thread_id:0
+msgid "Record Thread ID"
+msgstr ""
+
+#. module: mail
+#: model:ir.ui.menu,name:mail.mail_group_root
+msgid "My Groups"
+msgstr ""
+
+#. module: mail
+#: model:ir.actions.client,help:mail.action_mail_archives_feeds
+msgid ""
+"
\n"
+" No message found and no message sent yet.\n"
+"
\n"
+" Click on the top-right icon to compose a message. This\n"
+" message will be sent by email if it's an internal "
+"contact.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: mail
+#: view:mail.mail:0
+#: field:mail.mail,state:0
+msgid "Status"
+msgstr ""
+
+#. module: mail
+#: view:mail.mail:0
+#: selection:mail.mail,state:0
+msgid "Outgoing"
+msgstr ""
+
+#. module: mail
+#: selection:res.partner,notification_email_send:0
+msgid "All feeds"
+msgstr ""
+
+#. module: mail
+#: help:mail.compose.message,record_name:0
+#: help:mail.message,record_name:0
+msgid "Name get of the related document."
+msgstr ""
+
+#. module: mail
+#: model:ir.actions.act_window,name:mail.action_view_notifications
+#: model:ir.model,name:mail.model_mail_notification
+#: model:ir.ui.menu,name:mail.menu_email_notifications
+#: field:mail.compose.message,notification_ids:0
+#: view:mail.message:0
+#: field:mail.message,notification_ids:0
+#: view:mail.notification:0
+msgid "Notifications"
+msgstr ""
+
+#. module: mail
+#: view:mail.alias:0
+msgid "Search Alias"
+msgstr ""
+
+#. module: mail
+#: help:mail.alias,alias_force_thread_id:0
+msgid ""
+"Optional ID of a thread (record) to which all incoming messages will be "
+"attached, even if they did not reply to it. If set, this will disable the "
+"creation of new records completely."
+msgstr ""
+
+#. module: mail
+#: help:mail.message.subtype,name:0
+msgid ""
+"Message subtype gives a more precise type on the message, especially for "
+"system notifications. For example, it can be a notification related to a new "
+"record (New), or to a stage change in a process (Stage change). Message "
+"subtypes allow to precisely tune the notifications the user want to receive "
+"on its wall."
+msgstr ""
+
+#. module: mail
+#: view:mail.mail:0
+msgid "by"
+msgstr ""
+
+#. module: mail
+#: model:mail.group,name:mail.group_best_sales_practices
+msgid "Best Sales Practices"
+msgstr ""
+
+#. module: mail
+#: selection:mail.group,public:0
+msgid "Selected Group Only"
+msgstr ""
+
+#. module: mail
+#: field:mail.group,message_is_follower:0
+#: field:mail.thread,message_is_follower:0
+#: field:res.partner,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: mail
+#: view:mail.alias:0
+#: view:mail.mail:0
+msgid "User"
+msgstr ""
+
+#. module: mail
+#: view:mail.group:0
+msgid "Groups"
+msgstr ""
+
+#. module: mail
+#: view:mail.message:0
+msgid "Messages Search"
+msgstr ""
+
+#. module: mail
+#: field:mail.compose.message,date:0
+#: field:mail.message,date:0
+msgid "Date"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:34
+#, python-format
+msgid "Post"
+msgstr ""
+
+#. module: mail
+#: view:mail.mail:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:120
+#, python-format
+msgid "To:"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:193
+#, python-format
+msgid "Write to my followers"
+msgstr ""
+
+#. module: mail
+#: model:ir.model,name:mail.model_res_groups
+msgid "Access Groups"
+msgstr ""
+
+#. module: mail
+#: field:mail.message.subtype,default:0
+msgid "Default"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:311
+#, python-format
+msgid "show more message"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:246
+#, python-format
+msgid "Mark as Todo"
+msgstr ""
+
+#. module: mail
+#: help:mail.message.subtype,parent_id:0
+msgid "Parent subtype, used for automatic subscription."
+msgstr ""
+
+#. module: mail
+#: model:ir.model,name:mail.model_mail_wizard_invite
+msgid "Invite wizard"
+msgstr ""
+
+#. module: mail
+#: field:mail.group,message_summary:0
+#: field:mail.thread,message_summary:0
+#: field:res.partner,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: mail
+#: help:mail.message.subtype,res_model:0
+msgid ""
+"Model the subtype applies to. If False, this subtype applies to all models."
+msgstr ""
+
+#. module: mail
+#: field:mail.compose.message,subtype_id:0
+#: field:mail.followers,subtype_ids:0
+#: field:mail.message,subtype_id:0
+#: view:mail.message.subtype:0
+msgid "Subtype"
+msgstr ""
+
+#. module: mail
+#: view:mail.group:0
+msgid "Group Form"
+msgstr ""
+
+#. module: mail
+#: field:mail.compose.message,starred:0
+#: field:mail.message,starred:0
+#: field:mail.notification,starred:0
+msgid "Starred"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:313
+#, python-format
+msgid "more messages"
+msgstr ""
+
+#. module: mail
+#: code:addons/mail/update.py:93
+#, python-format
+msgid "Error"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail_followers.xml:13
+#, python-format
+msgid "Following"
+msgstr ""
+
+#. module: mail
+#: sql_constraint:mail.alias:0
+msgid ""
+"Unfortunately this email alias is already used, please choose a unique one"
+msgstr ""
+
+#. module: mail
+#: help:mail.alias,alias_user_id:0
+msgid ""
+"The owner of records created upon receiving emails on this alias. If this "
+"field is not set the system will attempt to find the right owner based on "
+"the sender (From) address, or will use the Administrator account if no "
+"system user is found for that address."
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail_followers.xml:52
+#, python-format
+msgid "And"
+msgstr ""
+
+#. module: mail
+#: field:mail.compose.message,message_id:0
+#: field:mail.message,message_id:0
+msgid "Message-Id"
+msgstr ""
+
+#. module: mail
+#: help:mail.group,image:0
+msgid ""
+"This field holds the image used as photo for the group, limited to "
+"1024x1024px."
+msgstr ""
+
+#. module: mail
+#: field:mail.compose.message,attachment_ids:0
+#: view:mail.mail:0
+#: field:mail.message,attachment_ids:0
+msgid "Attachments"
+msgstr ""
+
+#. module: mail
+#: field:mail.compose.message,record_name:0
+#: field:mail.message,record_name:0
+msgid "Message Record Name"
+msgstr ""
+
+#. module: mail
+#: field:mail.mail,email_cc:0
+msgid "Cc"
+msgstr ""
+
+#. module: mail
+#: help:mail.notification,starred:0
+msgid "Starred message that goes into the todo mailbox"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:123
+#: view:mail.compose.message:0
+#, python-format
+msgid "Followers of"
+msgstr ""
+
+#. module: mail
+#: help:mail.mail,auto_delete:0
+msgid "Permanently delete this email after sending it, to save space"
+msgstr ""
+
+#. module: mail
+#: model:ir.actions.client,name:mail.action_mail_group_feeds
+msgid "Discussion Group"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:242
+#, python-format
+msgid "Done"
+msgstr ""
+
+#. module: mail
+#: model:mail.message.subtype,name:mail.mt_comment
+msgid "Discussions"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail_followers.xml:11
+#, python-format
+msgid "Follow"
+msgstr ""
+
+#. module: mail
+#: field:mail.group,name:0
+msgid "Name"
+msgstr ""
+
+#. module: mail
+#: model:mail.group,name:mail.group_all_employees
+msgid "Whole Company"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:129
+#: code:addons/mail/static/src/xml/mail.xml:292
+#: view:mail.compose.message:0
+#, python-format
+msgid "and"
+msgstr ""
+
+#. module: mail
+#: help:mail.mail,body_html:0
+msgid "Rich-text/HTML message"
+msgstr ""
+
+#. module: mail
+#: view:mail.mail:0
+msgid "Creation Month"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:323
+#, python-format
+msgid "Compose new Message"
+msgstr ""
+
+#. module: mail
+#: field:mail.group,menu_id:0
+msgid "Related Menu"
+msgstr ""
+
+#. module: mail
+#: view:mail.message:0
+msgid "Content"
+msgstr ""
+
+#. module: mail
+#: field:mail.mail,email_to:0
+msgid "To"
+msgstr ""
+
+#. module: mail
+#: field:mail.compose.message,notified_partner_ids:0
+#: field:mail.message,notified_partner_ids:0
+msgid "Notified partners"
+msgstr ""
+
+#. module: mail
+#: help:mail.group,public:0
+msgid ""
+"This group is visible by non members. Invisible groups can add "
+"members through the invite button."
+msgstr ""
+
+#. module: mail
+#: model:mail.group,name:mail.group_board
+msgid "Board meetings"
+msgstr ""
+
+#. module: mail
+#: constraint:mail.alias:0
+msgid ""
+"Invalid expression, it must be a literal python dictionary definition e.g. "
+"\"{'field': 'value'}\""
+msgstr ""
+
+#. module: mail
+#: field:mail.alias,alias_model_id:0
+msgid "Aliased Model"
+msgstr ""
+
+#. module: mail
+#: help:mail.compose.message,message_id:0
+#: help:mail.message,message_id:0
+msgid "Message unique identifier"
+msgstr ""
+
+#. module: mail
+#: field:mail.group,description:0
+#: field:mail.message.subtype,description:0
+msgid "Description"
+msgstr ""
+
+#. module: mail
+#: model:ir.model,name:mail.model_mail_followers
+msgid "Document Followers"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail_followers.xml:35
+#, python-format
+msgid "Remove this follower"
+msgstr ""
+
+#. module: mail
+#: selection:res.partner,notification_email_send:0
+msgid "Never"
+msgstr ""
+
+#. module: mail
+#: field:mail.mail,mail_server_id:0
+msgid "Outgoing mail server"
+msgstr ""
+
+#. module: mail
+#: code:addons/mail/mail_message.py:930
+#, python-format
+msgid "Partners email addresses not found"
+msgstr ""
+
+#. module: mail
+#: view:mail.mail:0
+#: selection:mail.mail,state:0
+msgid "Sent"
+msgstr ""
+
+#. module: mail
+#: field:mail.mail,body_html:0
+msgid "Rich-text Contents"
+msgstr ""
+
+#. module: mail
+#: help:mail.compose.message,to_read:0
+#: help:mail.message,to_read:0
+msgid "Current user has an unread notification linked to this message"
+msgstr ""
+
+#. module: mail
+#: help:res.partner,notification_email_send:0
+msgid ""
+"Choose in which case you want to receive an email when you receive new feeds."
+msgstr ""
+
+#. module: mail
+#: model:ir.actions.act_window,name:mail.action_view_groups
+#: model:ir.ui.menu,name:mail.mail_allgroups
+msgid "Join a group"
+msgstr ""
+
+#. module: mail
+#: model:ir.actions.client,help:mail.action_mail_group_feeds
+msgid ""
+"
\n"
+" No message in this group.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:213
+#, python-format
+msgid "Please, wait while the file is uploading."
+msgstr ""
+
+#. module: mail
+#: view:mail.group:0
+msgid ""
+"This group is visible by everyone,\n"
+" including your customers if you "
+"installed\n"
+" the portal module."
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:243
+#, python-format
+msgid "Set back to Todo"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:126
+#, python-format
+msgid "this document"
+msgstr ""
+
+#. module: mail
+#: field:mail.compose.message,filter_id:0
+msgid "Filters"
+msgstr ""
+
+#. module: mail
+#: field:res.partner,notification_email_send:0
+msgid "Receive Feeds by Email"
+msgstr ""
+
+#. module: mail
+#: help:base.config.settings,alias_domain:0
+msgid ""
+"If you have setup a catch-all email domain redirected to the OpenERP server, "
+"enter the domain name here."
+msgstr ""
+
+#. module: mail
+#: model:ir.actions.act_window,name:mail.action_view_mail_message
+#: model:ir.ui.menu,name:mail.menu_mail_message
+#: field:mail.group,message_ids:0
+#: view:mail.message:0
+#: field:mail.thread,message_ids:0
+#: field:res.partner,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:139
+#, python-format
+msgid "others..."
+msgstr ""
+
+#. module: mail
+#: model:ir.actions.client,name:mail.action_mail_star_feeds
+#: model:ir.ui.menu,name:mail.mail_starfeeds
+msgid "To-do"
+msgstr ""
+
+#. module: mail
+#: view:mail.alias:0
+#: field:mail.alias,alias_name:0
+#: field:mail.group,alias_id:0
+#: field:res.users,alias_id:0
+msgid "Alias"
+msgstr ""
+
+#. module: mail
+#: model:ir.model,name:mail.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: mail
+#: help:mail.compose.message,notification_ids:0
+#: help:mail.message,notification_ids:0
+msgid ""
+"Technical field holding the message notifications. Use notified_partner_ids "
+"to access notified partners."
+msgstr ""
+
+#. module: mail
+#: model:ir.ui.menu,name:mail.mail_feeds
+#: model:ir.ui.menu,name:mail.mail_feeds_main
+msgid "Messaging"
+msgstr ""
+
+#. module: mail
+#: view:mail.alias:0
+#: field:mail.message.subtype,res_model:0
+msgid "Model"
+msgstr ""
+
+#. module: mail
+#: view:mail.message:0
+msgid "Unread"
+msgstr ""
+
+#. module: mail
+#: help:mail.followers,subtype_ids:0
+msgid ""
+"Message subtypes followed, meaning subtypes that will be pushed onto the "
+"user's Wall."
+msgstr ""
+
+#. module: mail
+#: help:mail.group,message_ids:0
+#: help:mail.thread,message_ids:0
+#: help:res.partner,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: mail
+#: help:mail.mail,references:0
+msgid "Message references, such as identifiers of previous messages"
+msgstr ""
+
+#. module: mail
+#: field:mail.compose.message,composition_mode:0
+msgid "Composition mode"
+msgstr ""
+
+#. module: mail
+#: field:mail.compose.message,model:0
+#: field:mail.followers,res_model:0
+#: field:mail.message,model:0
+#: field:mail.wizard.invite,res_model:0
+msgid "Related Document Model"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:338
+#, python-format
+msgid "unlike"
+msgstr ""
+
+#. module: mail
+#: help:mail.compose.message,author_id:0
+#: help:mail.message,author_id:0
+msgid ""
+"Author of the message. If not set, email_from may hold an email address that "
+"did not match any partner."
+msgstr ""
+
+#. module: mail
+#: help:mail.mail,email_cc:0
+msgid "Carbon copy message recipients"
+msgstr ""
+
+#. module: mail
+#: field:mail.alias,alias_domain:0
+msgid "Alias domain"
+msgstr ""
+
+#. module: mail
+#: code:addons/mail/update.py:93
+#, python-format
+msgid "Error during communication with the publisher warranty server."
+msgstr ""
+
+#. module: mail
+#: selection:mail.group,public:0
+msgid "Private"
+msgstr ""
+
+#. module: mail
+#: model:ir.actions.client,help:mail.action_mail_star_feeds
+msgid ""
+"
\n"
+" No todo.\n"
+"
\n"
+" When you process messages in your inbox, you can mark "
+"some\n"
+" as todo. From this menu, you can process all your "
+"todo.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: mail
+#: selection:mail.mail,state:0
+msgid "Delivery Failed"
+msgstr ""
+
+#. module: mail
+#: field:mail.compose.message,partner_ids:0
+msgid "Additional contacts"
+msgstr ""
+
+#. module: mail
+#: help:mail.compose.message,parent_id:0
+#: help:mail.message,parent_id:0
+msgid "Initial thread message."
+msgstr ""
+
+#. module: mail
+#: model:mail.group,name:mail.group_hr_policies
+msgid "HR Policies"
+msgstr ""
+
+#. module: mail
+#: selection:res.partner,notification_email_send:0
+msgid "Emails only"
+msgstr ""
+
+#. module: mail
+#: model:ir.actions.client,name:mail.action_mail_inbox_feeds
+#: model:ir.ui.menu,name:mail.mail_inboxfeeds
+msgid "Inbox"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/mail.xml:58
+#, python-format
+msgid "File"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/js/many2many_tags_email.js:63
+#, python-format
+msgid "Please complete partner's informations and Email"
+msgstr ""
+
+#. module: mail
+#: model:ir.actions.act_window,name:mail.action_view_message_subtype
+#: model:ir.ui.menu,name:mail.menu_message_subtype
+msgid "Subtypes"
+msgstr ""
+
+#. module: mail
+#: model:ir.model,name:mail.model_mail_alias
+msgid "Email Aliases"
+msgstr ""
+
+#. module: mail
+#: field:mail.group,image_small:0
+msgid "Small-sized photo"
+msgstr ""
+
+#. module: mail
+#: help:mail.mail,reply_to:0
+msgid "Preferred response address for the message"
+msgstr ""
diff --git a/addons/mail/i18n/hu.po b/addons/mail/i18n/hu.po
index b03ef6d9b0d..9b376093a29 100644
--- a/addons/mail/i18n/hu.po
+++ b/addons/mail/i18n/hu.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2013-02-14 16:43+0000\n"
+"PO-Revision-Date: 2013-12-02 18:38+0000\n"
"Last-Translator: krnkris \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:29+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-12-03 05:41+0000\n"
+"X-Generator: Launchpad (build 16856)\n"
#. module: mail
#: view:mail.followers:0
@@ -1791,7 +1791,7 @@ msgstr "Altípusok"
#. module: mail
#: model:ir.model,name:mail.model_mail_alias
msgid "Email Aliases"
-msgstr "e-amil álnevek"
+msgstr "Email álnevek"
#. module: mail
#: field:mail.group,image_small:0
diff --git a/addons/mail/i18n/zh_CN.po b/addons/mail/i18n/zh_CN.po
index ab95c7225bc..3aa7c826e21 100644
--- a/addons/mail/i18n/zh_CN.po
+++ b/addons/mail/i18n/zh_CN.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2012-12-23 11:23+0000\n"
-"Last-Translator: 盈通 ccdos \n"
+"PO-Revision-Date: 2013-11-19 10:40+0000\n"
+"Last-Translator: Guipo Hao \n"
"Language-Team: Chinese (Simplified) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:30+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-11-20 05:25+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
#. module: mail
#: view:mail.followers:0
@@ -298,6 +298,7 @@ msgid ""
"automatic subscription on a related document. The field is used to compute "
"getattr(related_document.relation_field)."
msgstr ""
+"使用自动注册相关文档时用来关联模型和子模型的域。该域用来计算 getattr(related_document.relation_field)."
#. module: mail
#: selection:mail.mail,state:0
@@ -908,7 +909,7 @@ msgstr "别名"
msgid ""
"Description that will be added in the message posted for this subtype. If "
"void, the name will be added instead."
-msgstr ""
+msgstr "将为该子模型的消息添加注解。如为空,则添加名称。"
#. module: mail
#: field:mail.compose.message,vote_user_ids:0
diff --git a/addons/mail/ir_attachment.py b/addons/mail/ir_attachment.py
new file mode 100644
index 00000000000..99c5a9e054e
--- /dev/null
+++ b/addons/mail/ir_attachment.py
@@ -0,0 +1,197 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2014-TODAY OpenERP SA (http://www.openerp.com)
+#
+# 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 .
+#
+##############################################################################
+
+from openerp.osv import fields, osv
+
+import os.path
+
+
+class IrAttachment(osv.Model):
+ """ Update partner to add a field about notification preferences """
+ _name = "ir.attachment"
+ _inherit = 'ir.attachment'
+
+ _fileext_to_type = {
+ '7z': 'archive',
+ 'aac': 'audio',
+ 'ace': 'archive',
+ 'ai': 'vector',
+ 'aiff': 'audio',
+ 'apk': 'archive',
+ 'app': 'binary',
+ 'as': 'script',
+ 'asf': 'video',
+ 'ass': 'text',
+ 'avi': 'video',
+ 'bat': 'script',
+ 'bin': 'binary',
+ 'bmp': 'image',
+ 'bzip2': 'archive',
+ 'c': 'script',
+ 'cab': 'archive',
+ 'cc': 'script',
+ 'ccd': 'disk',
+ 'cdi': 'disk',
+ 'cdr': 'vector',
+ 'cer': 'certificate',
+ 'cgm': 'vector',
+ 'cmd': 'script',
+ 'coffee': 'script',
+ 'com': 'binary',
+ 'cpp': 'script',
+ 'crl': 'certificate',
+ 'crt': 'certificate',
+ 'cs': 'script',
+ 'csr': 'certificate',
+ 'css': 'html',
+ 'csv': 'spreadsheet',
+ 'cue': 'disk',
+ 'd': 'script',
+ 'dds': 'image',
+ 'deb': 'archive',
+ 'der': 'certificate',
+ 'djvu': 'image',
+ 'dmg': 'archive',
+ 'dng': 'image',
+ 'doc': 'document',
+ 'docx': 'document',
+ 'dvi': 'print',
+ 'eot': 'font',
+ 'eps': 'vector',
+ 'exe': 'binary',
+ 'exr': 'image',
+ 'flac': 'audio',
+ 'flv': 'video',
+ 'gif': 'webimage',
+ 'gz': 'archive',
+ 'gzip': 'archive',
+ 'h': 'script',
+ 'htm': 'html',
+ 'html': 'html',
+ 'ico': 'image',
+ 'icon': 'image',
+ 'img': 'disk',
+ 'iso': 'disk',
+ 'jar': 'archive',
+ 'java': 'script',
+ 'jp2': 'image',
+ 'jpe': 'webimage',
+ 'jpeg': 'webimage',
+ 'jpg': 'webimage',
+ 'jpx': 'image',
+ 'js': 'script',
+ 'key': 'presentation',
+ 'keynote': 'presentation',
+ 'lisp': 'script',
+ 'lz': 'archive',
+ 'lzip': 'archive',
+ 'm': 'script',
+ 'm4a': 'audio',
+ 'm4v': 'video',
+ 'mds': 'disk',
+ 'mdx': 'disk',
+ 'mid': 'audio',
+ 'midi': 'audio',
+ 'mkv': 'video',
+ 'mng': 'image',
+ 'mp2': 'audio',
+ 'mp3': 'audio',
+ 'mp4': 'video',
+ 'mpe': 'video',
+ 'mpeg': 'video',
+ 'mpg': 'video',
+ 'nrg': 'disk',
+ 'numbers': 'spreadsheet',
+ 'odg': 'vector',
+ 'odm': 'document',
+ 'odp': 'presentation',
+ 'ods': 'spreadsheet',
+ 'odt': 'document',
+ 'ogg': 'audio',
+ 'ogm': 'video',
+ 'otf': 'font',
+ 'p12': 'certificate',
+ 'pak': 'archive',
+ 'pbm': 'image',
+ 'pdf': 'print',
+ 'pem': 'certificate',
+ 'pfx': 'certificate',
+ 'pgf': 'image',
+ 'pgm': 'image',
+ 'pk3': 'archive',
+ 'pk4': 'archive',
+ 'pl': 'script',
+ 'png': 'webimage',
+ 'pnm': 'image',
+ 'ppm': 'image',
+ 'pps': 'presentation',
+ 'ppt': 'presentation',
+ 'ps': 'print',
+ 'psd': 'image',
+ 'psp': 'image',
+ 'py': 'script',
+ 'r': 'script',
+ 'ra': 'audio',
+ 'rar': 'archive',
+ 'rb': 'script',
+ 'rpm': 'archive',
+ 'rtf': 'text',
+ 'sh': 'script',
+ 'sub': 'disk',
+ 'svg': 'vector',
+ 'sxc': 'spreadsheet',
+ 'sxd': 'vector',
+ 'tar': 'archive',
+ 'tga': 'image',
+ 'tif': 'image',
+ 'tiff': 'image',
+ 'ttf': 'font',
+ 'txt': 'text',
+ 'vbs': 'script',
+ 'vc': 'spreadsheet',
+ 'vml': 'vector',
+ 'wav': 'audio',
+ 'webp': 'image',
+ 'wma': 'audio',
+ 'wmv': 'video',
+ 'woff': 'font',
+ 'xar': 'vector',
+ 'xbm': 'image',
+ 'xcf': 'image',
+ 'xhtml': 'html',
+ 'xls': 'spreadsheet',
+ 'xlsx': 'spreadsheet',
+ 'xml': 'html',
+ 'zip': 'archive'
+ }
+
+ def get_attachment_type(self, cr, uid, ids, name, args, context=None):
+ result = {}
+ for attachment in self.browse(cr, uid, ids, context=context):
+ fileext = os.path.splitext(attachment.datas_fname)[1].lower()
+ if not fileext or not fileext[1:] in self._fileext_to_type:
+ return 'unknown'
+ result[attachment.id] = self._fileext_to_type[fileext[1:]]
+ return result
+
+ _columns = {
+ 'file_type': fields.function(get_attachment_type, type='char', string='File Type'),
+ }
diff --git a/addons/mail/mail_alias.py b/addons/mail/mail_alias.py
index 97d2842d15c..1eacb902e0f 100644
--- a/addons/mail/mail_alias.py
+++ b/addons/mail/mail_alias.py
@@ -64,7 +64,7 @@ class mail_alias(osv.Model):
return dict.fromkeys(ids, domain or "")
_columns = {
- 'alias_name': fields.char('Alias',
+ 'alias_name': fields.char('Alias Name',
help="The name of the email alias, e.g. 'jobs' if you want to catch emails for ",),
'alias_model_id': fields.many2one('ir.model', 'Aliased Model', required=True, ondelete="cascade",
help="The model (OpenERP Document Kind) to which this alias "
diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py
index d1d26886823..5a9f8751f2d 100644
--- a/addons/mail/mail_group.py
+++ b/addons/mail/mail_group.py
@@ -34,7 +34,6 @@ class mail_group(osv.Model):
_mail_flat_thread = False
_inherit = ['mail.thread']
_inherits = {'mail.alias': 'alias_id'}
- _mail_post_access = 'read'
def _get_image(self, cr, uid, ids, name, args, context=None):
result = dict.fromkeys(ids, False)
diff --git a/addons/mail/mail_mail_view.xml b/addons/mail/mail_mail_view.xml
index dd6a78fd8a4..cf3dd1e8233 100644
--- a/addons/mail/mail_mail_view.xml
+++ b/addons/mail/mail_mail_view.xml
@@ -12,12 +12,13 @@
+
by on
+ context="{'default_composition_mode':'reply', 'default_parent_id': mail_message_id}" states='received,sent,exception,cancel'/>
diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py
index 72ccdc83bb6..40a51df91d2 100644
--- a/addons/mail/mail_message.py
+++ b/addons/mail/mail_message.py
@@ -201,7 +201,7 @@ class mail_message(osv.Model):
def _get_default_from(self, cr, uid, context=None):
this = self.pool.get('res.users').browse(cr, SUPERUSER_ID, uid, context=context)
- if this.alias_domain:
+ if this.alias_name and this.alias_domain:
return '%s <%s@%s>' % (this.name, this.alias_name, this.alias_domain)
elif this.email:
return '%s <%s>' % (this.name, this.email)
@@ -351,8 +351,13 @@ class mail_message(osv.Model):
partner_tree = dict((partner[0], partner) for partner in partners)
# 2. Attachments as SUPERUSER, because could receive msg and attachments for doc uid cannot see
- attachments = ir_attachment_obj.read(cr, SUPERUSER_ID, list(attachment_ids), ['id', 'datas_fname', 'name'], context=context)
- attachments_tree = dict((attachment['id'], {'id': attachment['id'], 'filename': attachment['datas_fname'], 'name': attachment['name']}) for attachment in attachments)
+ attachments = ir_attachment_obj.read(cr, SUPERUSER_ID, list(attachment_ids), ['id', 'datas_fname', 'name', 'file_type'], context=context)
+ attachments_tree = dict((attachment['id'], {
+ 'id': attachment['id'],
+ 'filename': attachment['datas_fname'],
+ 'name': attachment['name'],
+ 'file_type': attachment['file_type'],
+ }) for attachment in attachments)
# 3. Update message dictionaries
for message_dict in messages:
@@ -698,8 +703,9 @@ class mail_message(osv.Model):
"""
model_record_ids = {}
for id in msg_ids:
- if msg_val[id]['model'] and msg_val[id]['res_id']:
- model_record_ids.setdefault(msg_val[id]['model'], dict()).setdefault(msg_val[id]['res_id'], set()).add(msg_val[id]['res_id'])
+ vals = msg_val.get(id, {})
+ if vals.get('model') and vals.get('res_id'):
+ model_record_ids.setdefault(vals['model'], set()).add(vals['res_id'])
return model_record_ids
if uid == SUPERUSER_ID:
@@ -711,7 +717,7 @@ class mail_message(osv.Model):
partner_id = self.pool['res.users'].browse(cr, SUPERUSER_ID, uid, context=None).partner_id.id
# Read mail_message.ids to have their values
- message_values = dict.fromkeys(ids)
+ message_values = dict.fromkeys(ids, {})
cr.execute('SELECT DISTINCT id, model, res_id, author_id, parent_id FROM "%s" WHERE id = ANY (%%s)' % self._table, (ids,))
for id, rmod, rid, author_id, parent_id in cr.fetchall():
message_values[id] = {'model': rmod, 'res_id': rid, 'author_id': author_id, 'parent_id': parent_id}
@@ -745,10 +751,10 @@ class mail_message(osv.Model):
], context=context)
notified_ids = [notification.message_id.id for notification in not_obj.browse(cr, SUPERUSER_ID, not_ids, context=context)]
elif operation == 'create':
- for doc_model, doc_dict in model_record_ids.items():
+ for doc_model, doc_ids in model_record_ids.items():
fol_ids = fol_obj.search(cr, SUPERUSER_ID, [
('res_model', '=', doc_model),
- ('res_id', 'in', list(doc_dict.keys())),
+ ('res_id', 'in', list(doc_ids)),
('partner_id', '=', partner_id),
], context=context)
fol_mids = [follower.res_id for follower in fol_obj.browse(cr, SUPERUSER_ID, fol_ids, context=context)]
@@ -759,9 +765,9 @@ class mail_message(osv.Model):
other_ids = other_ids.difference(set(notified_ids))
model_record_ids = _generate_model_record_ids(message_values, other_ids)
document_related_ids = []
- for model, doc_dict in model_record_ids.items():
+ for model, doc_ids in model_record_ids.items():
model_obj = self.pool[model]
- mids = model_obj.exists(cr, uid, doc_dict.keys())
+ mids = model_obj.exists(cr, uid, list(doc_ids))
if hasattr(model_obj, 'check_mail_message_access'):
model_obj.check_mail_message_access(cr, uid, mids, operation, context=context)
else:
@@ -816,12 +822,11 @@ class mail_message(osv.Model):
return email_reply_to
def _get_message_id(self, cr, uid, values, context=None):
- message_id = None
- if not values.get('message_id') and values.get('reply_to'):
+ if values.get('reply_to'):
message_id = tools.generate_tracking_message_id('reply_to')
- elif not values.get('message_id') and values.get('res_id') and values.get('model'):
+ elif values.get('res_id') and values.get('model'):
message_id = tools.generate_tracking_message_id('%(res_id)s-%(model)s' % values)
- elif not values.get('message_id'):
+ else:
message_id = tools.generate_tracking_message_id('private')
return message_id
@@ -832,7 +837,7 @@ class mail_message(osv.Model):
if 'email_from' not in values: # needed to compute reply_to
values['email_from'] = self._get_default_from(cr, uid, context=context)
- if not values.get('message_id'):
+ if 'message_id' not in values:
values['message_id'] = self._get_message_id(cr, uid, values, context=context)
if 'reply_to' not in values:
values['reply_to'] = self._get_reply_to(cr, uid, values, context=context)
diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py
index 9692b94f159..cee085129ea 100644
--- a/addons/mail/mail_thread.py
+++ b/addons/mail/mail_thread.py
@@ -23,6 +23,11 @@ import base64
import datetime
import dateutil
import email
+try:
+ import simplejson as json
+except ImportError:
+ import json
+from lxml import etree
import logging
import pytz
import time
@@ -33,6 +38,7 @@ from openerp import tools
from openerp import SUPERUSER_ID
from openerp.addons.mail.mail_message import decode
from openerp.osv import fields, osv, orm
+from openerp.osv.orm import browse_record, browse_null
from openerp.tools.safe_eval import safe_eval as eval
from openerp.tools.translate import _
@@ -159,7 +165,7 @@ class mail_thread(osv.AbstractModel):
def read_followers_data(self, cr, uid, follower_ids, context=None):
result = []
- technical_group = self.pool.get('ir.model.data').get_object(cr, uid, 'base', 'group_no_one')
+ technical_group = self.pool.get('ir.model.data').get_object(cr, uid, 'base', 'group_no_one', context=context, check_existence_and_raise=True)
for follower in self.pool.get('res.partner').browse(cr, uid, follower_ids, context=context):
is_editable = uid in map(lambda x: x.id, technical_group.users)
is_uid = uid in map(lambda x: x.id, follower.user_ids)
@@ -246,13 +252,10 @@ class mail_thread(osv.AbstractModel):
new = set(command[2])
# remove partners that are no longer followers
- fol_ids = fol_obj.search(cr, SUPERUSER_ID,
- [('res_model', '=', self._name), ('res_id', '=', id), ('partner_id', 'not in', list(new))])
- fol_obj.unlink(cr, SUPERUSER_ID, fol_ids)
+ self.message_unsubscribe(cr, uid, [id], list(old-new))
# add new followers
- for partner_id in new - old:
- fol_obj.create(cr, SUPERUSER_ID, {'res_model': self._name, 'res_id': id, 'partner_id': partner_id})
+ self.message_subscribe(cr, uid, [id], list(new-old))
def _search_followers(self, cr, uid, obj, name, args, context):
"""Search function for message_follower_ids
@@ -306,6 +309,28 @@ class mail_thread(osv.AbstractModel):
"be inserted in kanban views."),
}
+ def _get_user_chatter_options(self, cr, uid, context=None):
+ options = {
+ 'display_log_button': False
+ }
+ group_ids = self.pool.get('res.users').browse(cr, uid, uid, context=context).groups_id
+ group_user_id = self.pool.get("ir.model.data").get_object_reference(cr, uid, 'base', 'group_user')[1]
+ is_employee = group_user_id in [group.id for group in group_ids]
+ if is_employee:
+ options['display_log_button'] = True
+ return options
+
+ def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
+ res = super(mail_thread, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
+ if view_type == 'form':
+ doc = etree.XML(res['arch'])
+ for node in doc.xpath("//field[@name='message_ids']"):
+ options = json.loads(node.get('options', '{}'))
+ options.update(self._get_user_chatter_options(cr, uid, context=context))
+ node.set('options', json.dumps(options))
+ res['arch'] = etree.tostring(doc)
+ return res
+
#------------------------------------------------------
# CRUD overrides for automatic subscription and logging
#------------------------------------------------------
@@ -318,6 +343,7 @@ class mail_thread(osv.AbstractModel):
"""
if context is None:
context = {}
+
thread_id = super(mail_thread, self).create(cr, uid, values, context=context)
# automatic logging unless asked not to (mainly for various testing purpose)
@@ -327,37 +353,45 @@ class mail_thread(osv.AbstractModel):
# subscribe uid unless asked not to
if not context.get('mail_create_nosubscribe'):
self.message_subscribe_users(cr, uid, [thread_id], [uid], context=context)
+
# auto_subscribe: take values and defaults into account
- create_values = set(values.keys())
+ create_values = dict(values)
for key, val in context.iteritems():
if key.startswith('default_'):
- create_values.add(key[8:])
- self.message_auto_subscribe(cr, uid, [thread_id], list(create_values), context=context)
+ create_values[key[8:]] = val
+ self.message_auto_subscribe(cr, uid, [thread_id], create_values.keys(), context=context, values=create_values)
# track values
- tracked_fields = self._get_tracked_fields(cr, uid, values.keys(), context=context)
+ track_ctx = dict(context)
+ if 'lang' not in track_ctx:
+ track_ctx['lang'] = self.pool.get('res.users').browse(cr, uid, uid, context=context).lang
+ tracked_fields = self._get_tracked_fields(cr, uid, values.keys(), context=track_ctx)
if tracked_fields:
initial_values = {thread_id: dict((item, False) for item in tracked_fields)}
- self.message_track(cr, uid, [thread_id], tracked_fields, initial_values, context=context)
-
+ self.message_track(cr, uid, [thread_id], tracked_fields, initial_values, context=track_ctx)
return thread_id
def write(self, cr, uid, ids, values, context=None):
+ if context is None:
+ context = {}
if isinstance(ids, (int, long)):
ids = [ids]
# Track initial values of tracked fields
- tracked_fields = self._get_tracked_fields(cr, uid, values.keys(), context=context)
+ track_ctx = dict(context)
+ if 'lang' not in track_ctx:
+ track_ctx['lang'] = self.pool.get('res.users').browse(cr, uid, uid, context=context).lang
+ tracked_fields = self._get_tracked_fields(cr, uid, values.keys(), context=track_ctx)
if tracked_fields:
- records = self.browse(cr, uid, ids, context=context)
+ records = self.browse(cr, uid, ids, context=track_ctx)
initial_values = dict((this.id, dict((key, getattr(this, key)) for key in tracked_fields.keys())) for this in records)
# Perform write, update followers
result = super(mail_thread, self).write(cr, uid, ids, values, context=context)
- self.message_auto_subscribe(cr, uid, ids, values.keys(), context=context)
+ self.message_auto_subscribe(cr, uid, ids, values.keys(), context=context, values=values)
# Perform the tracking
if tracked_fields:
- self.message_track(cr, uid, ids, tracked_fields, initial_values, context=context)
+ self.message_track(cr, uid, ids, tracked_fields, initial_values, context=track_ctx)
return result
def unlink(self, cr, uid, ids, context=None):
@@ -461,10 +495,9 @@ class mail_thread(osv.AbstractModel):
posted = False
for subtype in subtypes:
- try:
- subtype_rec = self.pool.get('ir.model.data').get_object(cr, uid, subtype.split('.')[0], subtype.split('.')[1], context=context)
- except ValueError, e:
- _logger.debug('subtype %s not found, giving error "%s"' % (subtype, e))
+ subtype_rec = self.pool.get('ir.model.data').get_object(cr, uid, subtype.split('.')[0], subtype.split('.')[1], context=context, check_existence_and_raise=False)
+ if not subtype_rec.exists():
+ _logger.debug('subtype %s not found' % subtype)
continue
message = format_message(subtype_rec.description if subtype_rec.description else subtype_rec.name, tracked_values)
self.message_post(cr, uid, browse_record.id, body=message, subtype=subtype, context=context)
@@ -577,7 +610,8 @@ class mail_thread(osv.AbstractModel):
return action
if msg_id and not (model and res_id):
msg = self.pool.get('mail.message').browse(cr, uid, msg_id, context=context)
- model, res_id = msg.model, msg.res_id
+ if msg.exists():
+ model, res_id = msg.model, msg.res_id
# if model + res_id found: try to redirect to the document or fallback on the Inbox
if model and res_id:
@@ -687,8 +721,8 @@ class mail_thread(osv.AbstractModel):
# Private message: should not contain any thread_id
if not model and thread_id:
if assert_model:
- assert thread_id == 0, 'Routing: posting a message without model should be with a null res_id (private message).'
- _warn('posting a message without model should be with a null res_id (private message), resetting thread_id')
+ assert thread_id == 0, 'Routing: posting a message without model should be with a null res_id (private message), received %s.' % thread_id
+ _warn('posting a message without model should be with a null res_id (private message), received %s, resetting thread_id' % thread_id)
thread_id = 0
# Private message: should have a parent_id (only answers)
if not model and not message_dict.get('parent_id'):
@@ -785,6 +819,7 @@ class mail_thread(osv.AbstractModel):
:return: list of [model, thread_id, custom_values, user_id, alias]
"""
assert isinstance(message, Message), 'message must be an email.message.Message at this point'
+ mail_msg_obj = self.pool['mail.message']
fallback_model = model
# Get email.message.Message variables for future processing
@@ -793,31 +828,54 @@ class mail_thread(osv.AbstractModel):
email_to = decode_header(message, 'To')
references = decode_header(message, 'References')
in_reply_to = decode_header(message, 'In-Reply-To')
-
- # 1. Verify if this is a reply to an existing thread
thread_references = references or in_reply_to
+
+ # 1. message is a reply to an existing message (exact match of message_id)
+ msg_references = thread_references.split()
+ mail_message_ids = mail_msg_obj.search(cr, uid, [('message_id', 'in', msg_references)], context=context)
+ if mail_message_ids:
+ original_msg = mail_msg_obj.browse(cr, SUPERUSER_ID, mail_message_ids[0], context=context)
+ model, thread_id = original_msg.model, original_msg.res_id
+ _logger.info(
+ 'Routing mail from %s to %s with Message-Id %s: direct reply to msg: model: %s, thread_id: %s, custom_values: %s, uid: %s',
+ email_from, email_to, message_id, model, thread_id, custom_values, uid)
+ route = self.message_route_verify(
+ cr, uid, message, message_dict,
+ (model, thread_id, custom_values, uid, None),
+ update_author=True, assert_model=True, create_fallback=True, context=context)
+ return route and [route] or []
+
+ # 2. message is a reply to an existign thread (6.1 compatibility)
ref_match = thread_references and tools.reference_re.search(thread_references)
if ref_match:
thread_id = int(ref_match.group(1))
model = ref_match.group(2) or fallback_model
if thread_id and model in self.pool:
model_obj = self.pool[model]
- if model_obj.exists(cr, uid, thread_id) and hasattr(model_obj, 'message_update'):
- _logger.info('Routing mail from %s to %s with Message-Id %s: direct reply to model: %s, thread_id: %s, custom_values: %s, uid: %s',
- email_from, email_to, message_id, model, thread_id, custom_values, uid)
- route = self.message_route_verify(cr, uid, message, message_dict,
- (model, thread_id, custom_values, uid, None),
- update_author=True, assert_model=True, create_fallback=True, context=context)
+ compat_mail_msg_ids = mail_msg_obj.search(
+ cr, uid, [
+ ('message_id', '=', False),
+ ('model', '=', model),
+ ('res_id', '=', thread_id),
+ ], context=context)
+ if compat_mail_msg_ids and model_obj.exists(cr, uid, thread_id) and hasattr(model_obj, 'message_update'):
+ _logger.info(
+ 'Routing mail from %s to %s with Message-Id %s: direct thread reply (compat-mode) to model: %s, thread_id: %s, custom_values: %s, uid: %s',
+ email_from, email_to, message_id, model, thread_id, custom_values, uid)
+ route = self.message_route_verify(
+ cr, uid, message, message_dict,
+ (model, thread_id, custom_values, uid, None),
+ update_author=True, assert_model=True, create_fallback=True, context=context)
return route and [route] or []
# 2. Reply to a private message
if in_reply_to:
- mail_message_ids = self.pool.get('mail.message').search(cr, uid, [
+ mail_message_ids = mail_msg_obj.search(cr, uid, [
('message_id', '=', in_reply_to),
'!', ('message_id', 'ilike', 'reply_to')
], limit=1, context=context)
if mail_message_ids:
- mail_message = self.pool.get('mail.message').browse(cr, uid, mail_message_ids[0], context=context)
+ mail_message = mail_msg_obj.browse(cr, uid, mail_message_ids[0], context=context)
_logger.info('Routing mail from %s to %s with Message-Id %s: direct reply to a private message: %s, custom_values: %s, uid: %s',
email_from, email_to, message_id, mail_message.id, custom_values, uid)
route = self.message_route_verify(cr, uid, message, message_dict,
@@ -1060,7 +1118,7 @@ class mail_thread(osv.AbstractModel):
encoding = part.get_content_charset() # None if attachment
# 1) Explicit Attachments -> attachments
if filename or part.get('content-disposition', '').strip().startswith('attachment'):
- attachments.append((filename or 'attachment', part.get_payload(decode=True)))
+ attachments.append((decode(filename) or 'attachment', part.get_payload(decode=True)))
continue
# 2) text/plain ->
if part.get_content_type() == 'text/plain' and (not alternative or not body):
@@ -1285,6 +1343,40 @@ class mail_thread(osv.AbstractModel):
mail_message_obj.write(cr, SUPERUSER_ID, message_ids, {'author_id': partner_info['partner_id']}, context=context)
return result
+ def _message_preprocess_attachments(self, cr, uid, attachments, attachment_ids, attach_model, attach_res_id, context=None):
+ """ Preprocess attachments for mail_thread.message_post() or mail_mail.create().
+
+ :param list attachments: list of attachment tuples in the form ``(name,content)``,
+ where content is NOT base64 encoded
+ :param list attachment_ids: a list of attachment ids, not in tomany command form
+ :param str attach_model: the model of the attachments parent record
+ :param integer attach_res_id: the id of the attachments parent record
+ """
+ Attachment = self.pool['ir.attachment']
+ m2m_attachment_ids = []
+ if attachment_ids:
+ filtered_attachment_ids = Attachment.search(cr, SUPERUSER_ID, [
+ ('res_model', '=', 'mail.compose.message'),
+ ('create_uid', '=', uid),
+ ('id', 'in', attachment_ids)], context=context)
+ if filtered_attachment_ids:
+ Attachment.write(cr, SUPERUSER_ID, filtered_attachment_ids, {'res_model': attach_model, 'res_id': attach_res_id}, context=context)
+ m2m_attachment_ids += [(4, id) for id in attachment_ids]
+ # Handle attachments parameter, that is a dictionary of attachments
+ for name, content in attachments:
+ if isinstance(content, unicode):
+ content = content.encode('utf-8')
+ data_attach = {
+ 'name': name,
+ 'datas': base64.b64encode(str(content)),
+ 'datas_fname': name,
+ 'description': name,
+ 'res_model': attach_model,
+ 'res_id': attach_res_id,
+ }
+ m2m_attachment_ids.append((0, 0, data_attach))
+ return m2m_attachment_ids
+
def message_post(self, cr, uid, thread_id, body='', subject=None, type='notification',
subtype=None, parent_id=False, attachments=None, context=None,
content_subtype='html', **kwargs):
@@ -1363,28 +1455,7 @@ class mail_thread(osv.AbstractModel):
# 3. Attachments
# - HACK TDE FIXME: Chatter: attachments linked to the document (not done JS-side), load the message
- attachment_ids = kwargs.pop('attachment_ids', []) or [] # because we could receive None (some old code sends None)
- if attachment_ids:
- filtered_attachment_ids = ir_attachment.search(cr, SUPERUSER_ID, [
- ('res_model', '=', 'mail.compose.message'),
- ('create_uid', '=', uid),
- ('id', 'in', attachment_ids)], context=context)
- if filtered_attachment_ids:
- ir_attachment.write(cr, SUPERUSER_ID, filtered_attachment_ids, {'res_model': model, 'res_id': thread_id}, context=context)
- attachment_ids = [(4, id) for id in attachment_ids]
- # Handle attachments parameter, that is a dictionary of attachments
- for name, content in attachments:
- if isinstance(content, unicode):
- content = content.encode('utf-8')
- data_attach = {
- 'name': name,
- 'datas': base64.b64encode(str(content)),
- 'datas_fname': name,
- 'description': name,
- 'res_model': model,
- 'res_id': thread_id,
- }
- attachment_ids.append((0, 0, data_attach))
+ attachment_ids = self._message_preprocess_attachments(cr, uid, attachments, kwargs.pop('attachment_ids', []), model, thread_id, context)
# 4: mail.message.subtype
subtype_id = False
@@ -1472,35 +1543,33 @@ class mail_thread(osv.AbstractModel):
else:
self.check_access_rights(cr, uid, 'write')
- for record in self.browse(cr, SUPERUSER_ID, ids, context=context):
- existing_pids = set([f.id for f in record.message_follower_ids
- if f.id in partner_ids])
+ existing_pids_dict = {}
+ fol_ids = mail_followers_obj.search(cr, SUPERUSER_ID, [('res_model', '=', self._name), ('res_id', 'in', ids)])
+ for fol in mail_followers_obj.browse(cr, SUPERUSER_ID, fol_ids, context=context):
+ existing_pids_dict.setdefault(fol.res_id, set()).add(fol.partner_id.id)
+
+ # subtype_ids specified: update already subscribed partners
+ if subtype_ids and fol_ids:
+ mail_followers_obj.write(cr, SUPERUSER_ID, fol_ids, {'subtype_ids': [(6, 0, subtype_ids)]}, context=context)
+ # subtype_ids not specified: do not update already subscribed partner, fetch default subtypes for new partners
+ if subtype_ids is None:
+ subtype_ids = subtype_obj.search(
+ cr, uid, [
+ ('default', '=', True), '|', ('res_model', '=', self._name), ('res_model', '=', False)], context=context)
+
+ for id in ids:
+ existing_pids = existing_pids_dict.get(id, set())
new_pids = set(partner_ids) - existing_pids
- # subtype_ids specified: update already subscribed partners
- if subtype_ids and existing_pids:
- fol_ids = mail_followers_obj.search(cr, SUPERUSER_ID, [
- ('res_model', '=', self._name),
- ('res_id', '=', record.id),
- ('partner_id', 'in', list(existing_pids)),
- ], context=context)
- mail_followers_obj.write(cr, SUPERUSER_ID, fol_ids, {'subtype_ids': [(6, 0, subtype_ids)]}, context=context)
- # subtype_ids not specified: do not update already subscribed partner, fetch default subtypes for new partners
- elif subtype_ids is None:
- subtype_ids = subtype_obj.search(cr, uid, [
- ('default', '=', True),
- '|',
- ('res_model', '=', self._name),
- ('res_model', '=', False)
- ], context=context)
# subscribe new followers
for new_pid in new_pids:
- mail_followers_obj.create(cr, SUPERUSER_ID, {
- 'res_model': self._name,
- 'res_id': record.id,
- 'partner_id': new_pid,
- 'subtype_ids': [(6, 0, subtype_ids)],
- }, context=context)
+ mail_followers_obj.create(
+ cr, SUPERUSER_ID, {
+ 'res_model': self._name,
+ 'res_id': id,
+ 'partner_id': new_pid,
+ 'subtype_ids': [(6, 0, subtype_ids)],
+ }, context=context)
return True
@@ -1519,7 +1588,14 @@ class mail_thread(osv.AbstractModel):
self.check_access_rights(cr, uid, 'read')
else:
self.check_access_rights(cr, uid, 'write')
- return self.write(cr, SUPERUSER_ID, ids, {'message_follower_ids': [(3, pid) for pid in partner_ids]}, context=context)
+ fol_obj = self.pool['mail.followers']
+ fol_ids = fol_obj.search(
+ cr, SUPERUSER_ID, [
+ ('res_model', '=', self._name),
+ ('res_id', 'in', ids),
+ ('partner_id', 'in', partner_ids)
+ ], context=context)
+ return fol_obj.unlink(cr, SUPERUSER_ID, fol_ids, context=context)
def _message_get_auto_subscribe_fields(self, cr, uid, updated_fields, auto_follow_fields=['user_id'], context=None):
""" Returns the list of relational fields linking to res.users that should
@@ -1538,75 +1614,100 @@ class mail_thread(osv.AbstractModel):
user_field_lst.append(name)
return user_field_lst
- def message_auto_subscribe(self, cr, uid, ids, updated_fields, context=None):
- """
- 1. fetch project subtype related to task (parent_id.res_model = 'project.task')
- 2. for each project subtype: subscribe the follower to the task
+ def message_auto_subscribe(self, cr, uid, ids, updated_fields, context=None, values=None):
+ """ Handle auto subscription. Two methods for auto subscription exist:
+
+ - tracked res.users relational fields, such as user_id fields. Those fields
+ must be relation fields toward a res.users record, and must have the
+ track_visilibity attribute set.
+ - using subtypes parent relationship: check if the current model being
+ modified has an header record (such as a project for tasks) whose followers
+ can be added as followers of the current records. Example of structure
+ with project and task:
+
+ - st_project_1.parent_id = st_task_1
+ - st_project_1.res_model = 'project.project'
+ - st_project_1.relation_field = 'project_id'
+ - st_task_1.model = 'project.task'
+
+ :param list updated_fields: list of updated fields to track
+ :param dict values: updated values; if None, the first record will be browsed
+ to get the values. Added after releasing 7.0, therefore
+ not merged with updated_fields argumment.
"""
subtype_obj = self.pool.get('mail.message.subtype')
follower_obj = self.pool.get('mail.followers')
+ new_followers = dict()
- # fetch auto_follow_fields
+ # fetch auto_follow_fields: res.users relation fields whose changes are tracked for subscription
user_field_lst = self._message_get_auto_subscribe_fields(cr, uid, updated_fields, context=context)
- # fetch related record subtypes
- related_subtype_ids = subtype_obj.search(cr, uid, ['|', ('res_model', '=', False), ('parent_id.res_model', '=', self._name)], context=context)
- subtypes = subtype_obj.browse(cr, uid, related_subtype_ids, context=context)
- default_subtypes = [subtype for subtype in subtypes if subtype.res_model == False]
- related_subtypes = [subtype for subtype in subtypes if subtype.res_model != False]
- relation_fields = set([subtype.relation_field for subtype in subtypes if subtype.relation_field != False])
- if (not related_subtypes or not any(relation in updated_fields for relation in relation_fields)) and not user_field_lst:
+ # fetch header subtypes
+ header_subtype_ids = subtype_obj.search(cr, uid, ['|', ('res_model', '=', False), ('parent_id.res_model', '=', self._name)], context=context)
+ subtypes = subtype_obj.browse(cr, uid, header_subtype_ids, context=context)
+
+ # if no change in tracked field or no change in tracked relational field: quit
+ relation_fields = set([subtype.relation_field for subtype in subtypes if subtype.relation_field is not False])
+ if not any(relation in updated_fields for relation in relation_fields) and not user_field_lst:
return True
- for record in self.browse(cr, uid, ids, context=context):
- new_followers = dict()
- parent_res_id = False
- parent_model = False
- for subtype in related_subtypes:
- if not subtype.relation_field or not subtype.parent_id:
- continue
- if not subtype.relation_field in self._columns or not getattr(record, subtype.relation_field, False):
- continue
- parent_res_id = getattr(record, subtype.relation_field).id
- parent_model = subtype.res_model
- follower_ids = follower_obj.search(cr, SUPERUSER_ID, [
- ('res_model', '=', parent_model),
- ('res_id', '=', parent_res_id),
- ('subtype_ids', 'in', [subtype.id])
- ], context=context)
- for follower in follower_obj.browse(cr, SUPERUSER_ID, follower_ids, context=context):
- new_followers.setdefault(follower.partner_id.id, set()).add(subtype.parent_id.id)
+ # legacy behavior: if values is not given, compute the values by browsing
+ # @TDENOTE: remove me in 8.0
+ if values is None:
+ record = self.browse(cr, uid, ids[0], context=context)
+ for updated_field in updated_fields:
+ field_value = getattr(record, updated_field)
+ if isinstance(field_value, browse_record):
+ field_value = field_value.id
+ elif isinstance(field_value, browse_null):
+ field_value = False
+ values[updated_field] = field_value
- if parent_res_id and parent_model:
- for subtype in default_subtypes:
- follower_ids = follower_obj.search(cr, SUPERUSER_ID, [
- ('res_model', '=', parent_model),
- ('res_id', '=', parent_res_id),
- ('subtype_ids', 'in', [subtype.id])
- ], context=context)
- for follower in follower_obj.browse(cr, SUPERUSER_ID, follower_ids, context=context):
- new_followers.setdefault(follower.partner_id.id, set()).add(subtype.id)
+ # find followers of headers, update structure for new followers
+ headers = set()
+ for subtype in subtypes:
+ if subtype.relation_field and values.get(subtype.relation_field):
+ headers.add((subtype.res_model, values.get(subtype.relation_field)))
+ if headers:
+ header_domain = ['|'] * (len(headers) - 1)
+ for header in headers:
+ header_domain += ['&', ('res_model', '=', header[0]), ('res_id', '=', header[1])]
+ header_follower_ids = follower_obj.search(
+ cr, SUPERUSER_ID,
+ header_domain,
+ context=context
+ )
+ for header_follower in follower_obj.browse(cr, SUPERUSER_ID, header_follower_ids, context=context):
+ for subtype in header_follower.subtype_ids:
+ if subtype.parent_id and subtype.parent_id.res_model == self._name:
+ new_followers.setdefault(header_follower.partner_id.id, set()).add(subtype.parent_id.id)
+ elif subtype.res_model is False:
+ new_followers.setdefault(header_follower.partner_id.id, set()).add(subtype.id)
- # add followers coming from res.users relational fields that are tracked
- user_ids = [getattr(record, name).id for name in user_field_lst if getattr(record, name)]
- user_id_partner_ids = [user.partner_id.id for user in self.pool.get('res.users').browse(cr, SUPERUSER_ID, user_ids, context=context)]
- for partner_id in user_id_partner_ids:
- new_followers.setdefault(partner_id, None)
+ # add followers coming from res.users relational fields that are tracked
+ user_ids = [values[name] for name in user_field_lst if values.get(name)]
+ user_pids = [user.partner_id.id for user in self.pool.get('res.users').browse(cr, SUPERUSER_ID, user_ids, context=context)]
+ for partner_id in user_pids:
+ new_followers.setdefault(partner_id, None)
- for pid, subtypes in new_followers.items():
- subtypes = list(subtypes) if subtypes is not None else None
- self.message_subscribe(cr, uid, [record.id], [pid], subtypes, context=context)
+ for pid, subtypes in new_followers.items():
+ subtypes = list(subtypes) if subtypes is not None else None
+ self.message_subscribe(cr, uid, ids, [pid], subtypes, context=context)
- # find first email message, set it as unread for auto_subscribe fields for them to have a notification
- if user_id_partner_ids:
- msg_ids = self.pool.get('mail.message').search(cr, uid, [
- ('model', '=', self._name),
- ('res_id', '=', record.id),
- ('type', '=', 'email')], limit=1, context=context)
- if not msg_ids and record.message_ids:
- msg_ids = [record.message_ids[-1].id]
+ # find first email message, set it as unread for auto_subscribe fields for them to have a notification
+ if user_pids:
+ for record_id in ids:
+ message_obj = self.pool.get('mail.message')
+ msg_ids = message_obj.search(cr, SUPERUSER_ID, [
+ ('model', '=', self._name),
+ ('res_id', '=', record_id),
+ ('type', '=', 'email')], limit=1, context=context)
+ if not msg_ids:
+ msg_ids = message_obj.search(cr, SUPERUSER_ID, [
+ ('model', '=', self._name),
+ ('res_id', '=', record_id)], limit=1, context=context)
if msg_ids:
- self.pool.get('mail.notification')._notify(cr, uid, msg_ids[0], partners_to_notify=user_id_partner_ids, context=context)
+ self.pool.get('mail.notification')._notify(cr, uid, msg_ids[0], partners_to_notify=user_pids, context=context)
return True
diff --git a/addons/mail/res_users.py b/addons/mail/res_users.py
index ac1d406c29a..e335929ec2f 100644
--- a/addons/mail/res_users.py
+++ b/addons/mail/res_users.py
@@ -81,6 +81,12 @@ class res_users(osv.Model):
self._create_welcome_message(cr, uid, user, context=context)
return user_id
+ def copy_data(self, *args, **kwargs):
+ data = super(res_users, self).copy_data(*args, **kwargs)
+ if data.get('alias_name'):
+ data['alias_name'] = data['login']
+ return data
+
def _create_welcome_message(self, cr, uid, user, context=None):
if not self.has_group(cr, uid, 'base.group_user'):
return False
diff --git a/addons/mail/static/src/css/announcement.css b/addons/mail/static/src/css/announcement.css
new file mode 100644
index 00000000000..5d2a0ecba44
--- /dev/null
+++ b/addons/mail/static/src/css/announcement.css
@@ -0,0 +1,3 @@
+.openerp .annoucement_bar {
+ display: none;
+}
diff --git a/addons/mail/static/src/css/mail.css b/addons/mail/static/src/css/mail.css
index e4b7f9247e3..bfae7571a9c 100644
--- a/addons/mail/static/src/css/mail.css
+++ b/addons/mail/static/src/css/mail.css
@@ -68,7 +68,7 @@
border: solid 1px rgba(0,0,0,0.03);
}
.openerp .oe_mail .oe_msg.oe_msg_nobody{
- background: #F8F8F8;
+ background: #E4E4E4;
}
.openerp .oe_mail .oe_msg.oe_msg_notification{
background: #F8F8F8;
@@ -94,9 +94,7 @@
}
.openerp .oe_mail .oe_msg .oe_msg_footer{
margin-left: 4px;
- padding-top: 3px;
overflow: hidden;
- margin-bottom: 4px;
font-size: 11px;
}
.openerp .oe_mail .oe_msg .oe_msg_content{
@@ -478,7 +476,7 @@
}
.openerp .oe_mail .oe_msg_footer button.oe_attach{
width: 24px;
- overflow: hidden;
+ margin-bottom: 5px; /* improved margin of file attach button according bootstrap3 */
filter:none;
}
.openerp .oe_mail .oe_msg_footer button.oe_attach .oe_e{
@@ -634,7 +632,7 @@
margin-bottom: 4px;
}
.openerp .oe_followers .oe_invite{
- float: right;
+ padding-left: 5px;
}
.openerp .oe_followers .oe_partner {
height: 32px;
diff --git a/addons/mail/static/src/css/mail_group.css b/addons/mail/static/src/css/mail_group.css
index 9560a4765d0..39cdf5c0b4c 100644
--- a/addons/mail/static/src/css/mail_group.css
+++ b/addons/mail/static/src/css/mail_group.css
@@ -90,7 +90,9 @@
}
.openerp .oe_group_button {
- padding-top: 7px;
+ position: absolute;
+ padding-bottom: 50px;
+ bottom: 0;
}
.openerp .oe_group_button .oe_group_join {
diff --git a/addons/mail/static/src/js/announcement.js b/addons/mail/static/src/js/announcement.js
new file mode 100644
index 00000000000..0dd438d13af
--- /dev/null
+++ b/addons/mail/static/src/js/announcement.js
@@ -0,0 +1,42 @@
+openerp_announcement = function(instance) {
+ instance.web.WebClient.include({
+ show_application: function() {
+ return $.when(this._super.apply(this, arguments)).then(this.proxy('show_annoucement_bar'));
+ },
+ _ab_location: function(dbuuid) {
+ return _.str.sprintf('https://services.openerp.com/openerp-enterprise/ab/css/%s.css', dbuuid);
+ },
+ show_annoucement_bar: function() {
+ if (this.session.get_cookie('ab') === 'c') {
+ return;
+ }
+ var self = this;
+ var config_parameter = new instance.web.Model('ir.config_parameter');
+ var $bar = this.$el.find('.announcement_bar');
+ return config_parameter.call('get_param', ['database.uuid', false]).then(function(dbuuid) {
+ if (!dbuuid) {
+ return;
+ }
+ var $link = $bar.find('.url a');
+ $link.attr('href', _.str.sprintf('%s/%s', $link.attr('href'), dbuuid));
+ var $css = $('').attr({
+ rel : 'stylesheet',
+ type: 'text/css',
+ media: 'screen',
+ href: self._ab_location(dbuuid)
+ });
+ $css.on('load', function() {
+ var close = function() {
+ var ttl = 7*24*60*60;
+ self.session.set_cookie('ab', 'c', ttl);
+ $bar.slideUp('slow');
+ };
+ $bar.find('.close').on('click', close);
+ self.trigger('ab_loaded', $bar);
+ });
+
+ $('head').append($css);
+ });
+ }
+ });
+};
diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js
index e3f813bfa47..d9fd2526b8e 100644
--- a/addons/mail/static/src/js/mail.js
+++ b/addons/mail/static/src/js/mail.js
@@ -6,6 +6,7 @@ openerp.mail = function (session) {
openerp_mail_followers(session, mail); // import mail_followers.js
openerp_FieldMany2ManyTagsEmail(session); // import manyy2many_tags_email.js
+ openerp_announcement(session);
/**
* ------------------------------------------------------------
@@ -113,57 +114,6 @@ openerp.mail = function (session) {
}
return out;
},
-
- // returns the file type of a file based on its extension
- // As it only looks at the extension it is quite approximative.
- filetype: function(url){
- var url = url && url.filename || url;
- var tokens = typeof url == 'string' ? url.split('.') : [];
- if(tokens.length <= 1){
- return 'unknown';
- }
- var extension = tokens[tokens.length -1];
- if(extension.length === 0){
- return 'unknown';
- }else{
- extension = extension.toLowerCase();
- }
- var filetypes = {
- 'webimage': ['png','jpg','jpeg','jpe','gif'], // those have browser preview
- 'image': ['tif','tiff','tga',
- 'bmp','xcf','psd','ppm','pbm','pgm','pnm','mng',
- 'xbm','ico','icon','exr','webp','psp','pgf','xcf',
- 'jp2','jpx','dng','djvu','dds'],
- 'vector': ['ai','svg','eps','vml','cdr','xar','cgm','odg','sxd'],
- 'print': ['dvi','pdf','ps'],
- 'document': ['doc','docx','odm','odt'],
- 'presentation': ['key','keynote','odp','pps','ppt'],
- 'font': ['otf','ttf','woff','eot'],
- 'archive': ['zip','7z','ace','apk','bzip2','cab','deb','dmg','gzip','jar',
- 'rar','tar','gz','pak','pk3','pk4','lzip','lz','rpm'],
- 'certificate': ['cer','key','pfx','p12','pem','crl','der','crt','csr'],
- 'audio': ['aiff','wav','mp3','ogg','flac','wma','mp2','aac',
- 'm4a','ra','mid','midi'],
- 'video': ['asf','avi','flv','mkv','m4v','mpeg','mpg','mpe','wmv','mp4','ogm'],
- 'text': ['txt','rtf','ass'],
- 'html': ['html','xhtml','xml','htm','css'],
- 'disk': ['iso','nrg','img','ccd','sub','cdi','cue','mds','mdx'],
- 'script': ['py','js','c','cc','cpp','cs','h','java','bat','sh',
- 'd','rb','pl','as','cmd','coffee','m','r','vbs','lisp'],
- 'spreadsheet': ['123','csv','ods','numbers','sxc','xls','vc','xlsx'],
- 'binary': ['exe','com','bin','app'],
- };
- for(filetype in filetypes){
- var ext_list = filetypes[filetype];
- for(var i = 0, len = ext_list.length; i < len; i++){
- if(extension === ext_list[i]){
- return filetype;
- }
- }
- }
- return 'unknown';
- },
-
};
@@ -303,7 +253,6 @@ openerp.mail = function (session) {
var attach = this.attachment_ids[l];
if (!attach.formating) {
attach.url = mail.ChatterUtils.get_attachment_url(this.session, this.id, attach.id);
- attach.filetype = mail.ChatterUtils.filetype(attach.filename || attach.name);
attach.name = mail.ChatterUtils.breakword(attach.name || attach.filename);
attach.formating = true;
}
@@ -725,6 +674,7 @@ openerp.mail = function (session) {
var values = {
'body': this.$('textarea').val(),
'subject': false,
+ 'parent_id': this.context.default_parent_id,
'attachment_ids': _.map(this.attachment_ids, function (file) {return file.id;}),
'partner_ids': partner_ids,
'context': _.extend(this.parent_thread.context, {
@@ -833,7 +783,9 @@ openerp.mail = function (session) {
// go to the parented message
var message = this.parent_thread.parent_message;
var parent_message = message.parent_id ? message.parent_thread.parent_message : message;
- var messages = [parent_message].concat(parent_message.get_childs());
+ if(parent_message){
+ var messages = [parent_message].concat(parent_message.get_childs());
+ }
} else if (this.options.emails_from_on_composer) {
// get all wall messages if is not a mail.Wall
_.each(this.options.root_thread.messages, function (msg) {messages.push(msg); messages.concat(msg.get_childs());});
@@ -1799,15 +1751,17 @@ openerp.mail = function (session) {
'read_action': 'unread',
'show_record_name': false,
'show_compact_message': 1,
+ 'display_log_button' : true,
}, this.node.params);
-
if (this.node.attrs.placeholder) {
this.node.params.compose_placeholder = this.node.attrs.placeholder;
}
if (this.node.attrs.readonly) {
this.node.params.readonly = this.node.attrs.readonly;
}
-
+ if ('display_log_button' in this.options) {
+ this.node.params.display_log_button = this.options.display_log_button;
+ }
this.domain = this.node.params && this.node.params.domain || [];
if (!this.ParentViewManager.is_action_enabled('edit')) {
diff --git a/addons/mail/static/src/js/mail_followers.js b/addons/mail/static/src/js/mail_followers.js
index 53cab629d79..938d6a01f6d 100644
--- a/addons/mail/static/src/js/mail_followers.js
+++ b/addons/mail/static/src/js/mail_followers.js
@@ -264,7 +264,7 @@ openerp_mail_followers = function(session, mail) {
var $list = this.$('.oe_subtype_list');
}
$list.empty().hide();
- var records = data[this.view.datarecord.id || this.view.dataset.ids[0]].message_subtype_data;
+ var records = data[id].message_subtype_data;
this.records_length = $.map(records, function(value, index) { return index; }).length;
if (this.records_length > 1) { self.display_followers(); }
_(records).each(function (record, record_name) {
diff --git a/addons/mail/static/src/xml/announcement.xml b/addons/mail/static/src/xml/announcement.xml
new file mode 100644
index 00000000000..84dfa426796
--- /dev/null
+++ b/addons/mail/static/src/xml/announcement.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
- Attach a note that will not be sent to the followers
+ Add an internal note that will not be sent to the followers
@@ -293,9 +295,9 @@
logged a note
- to
-
- nobody
+
+
+ to
+# Copyright (c) 2012-TODAY OpenERP S.A.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/addons/mail/tests/test_mail_features.py b/addons/mail/tests/test_mail_features.py
index 62c76db5a40..c7f1056c59a 100644
--- a/addons/mail/tests/test_mail_features.py
+++ b/addons/mail/tests/test_mail_features.py
@@ -294,9 +294,9 @@ class test_mail(TestMail):
'notification email: link should contain the user login')
self.assertIn('message_id=%s' % mail.mail_message_id.id, url,
'notification email: link based on message should contain the mail_message id')
- self.assertNotIn('model', url,
+ self.assertNotIn('model=mail.group', url,
'notification email: link based on message should not contain model')
- self.assertNotIn('res_id', url,
+ self.assertNotIn('res_id=%s' % group_pigs.id, url,
'notification email: link based on message should not contain res_id')
@mute_logger('openerp.addons.mail.mail_thread', 'openerp.osv.orm')
diff --git a/addons/mail/tests/test_mail_gateway.py b/addons/mail/tests/test_mail_gateway.py
index b2a1c3250aa..c6fffbde9fe 100644
--- a/addons/mail/tests/test_mail_gateway.py
+++ b/addons/mail/tests/test_mail_gateway.py
@@ -378,7 +378,7 @@ class TestMailgateway(TestMail):
frog_groups = format_and_process(MAIL_TEMPLATE, email_from='other4@gmail.com',
msg_id='<1198923581.41972151344608186760.JavaMail.diff1@agrolait.com>',
to='erroneous@example.com>', subject='Re: news',
- extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n' % frog_group.id)
+ extra='In-Reply-To: <1198923581.41972151344608186799.JavaMail.diff1@agrolait.com>\n')
# Test: no group 'Re: news' created, still only 1 Frogs group
self.assertEqual(len(frog_groups), 0,
'message_process: reply on Frogs should not have created a new group with new subject')
@@ -387,16 +387,41 @@ class TestMailgateway(TestMail):
'message_process: reply on Frogs should not have created a duplicate group with old subject')
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
# Test: one new message
- self.assertEqual(len(frog_group.message_ids), 3, 'message_process: group should contain 2 messages after reply')
+ self.assertEqual(len(frog_group.message_ids), 3, 'message_process: group should contain 3 messages after reply')
# Test: author (and not recipient) added as follower
frog_follower_ids = set([p.id for p in frog_group.message_follower_ids])
self.assertEqual(frog_follower_ids, set([p1id, p2id]),
'message_process: after reply, group should have 2 followers')
+ # Do: incoming email with ref holding model / res_id but that does not match any message in the thread: must raise since OpenERP saas-3
+ self.assertRaises(AssertionError,
+ format_and_process,
+ MAIL_TEMPLATE, email_from='other5@gmail.com',
+ to='noone@example.com', subject='spam',
+ extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>' % frog_group.id,
+ msg_id='<1.1.JavaMail.new@agrolait.com>')
+ # There are 6.1 messages, activate compat mode
+ tmp_msg_id = self.mail_message.create(cr, uid, {'message_id': False, 'model': 'mail.group', 'res_id': frog_group.id})
+ # Do: compat mode accepts partial-matching emails
+ frog_groups = format_and_process(MAIL_TEMPLATE, email_from='other5@gmail.com',
+ msg_id='<1.2.JavaMail.new@agrolait.com>',
+ to='noone@example.com>', subject='spam',
+ extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>' % frog_group.id)
+ self.mail_message.unlink(cr, uid, [tmp_msg_id])
+ # Test: no group 'Re: news' created, still only 1 Frogs group
+ self.assertEqual(len(frog_groups), 0,
+ 'message_process: reply on Frogs should not have created a new group with new subject')
+ frog_groups = self.mail_group.search(cr, uid, [('name', '=', 'Frogs')])
+ self.assertEqual(len(frog_groups), 1,
+ 'message_process: reply on Frogs should not have created a duplicate group with old subject')
+ frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
+ # Test: one new message
+ self.assertEqual(len(frog_group.message_ids), 4, 'message_process: group should contain 4 messages after reply')
+
# Do: due to some issue, same email goes back into the mailgateway
frog_groups = format_and_process(MAIL_TEMPLATE, email_from='other4@gmail.com',
msg_id='<1198923581.41972151344608186760.JavaMail.diff1@agrolait.com>',
- subject='Re: news', extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n' % frog_group.id)
+ subject='Re: news', extra='In-Reply-To: <1198923581.41972151344608186799.JavaMail.diff1@agrolait.com>\n')
# Test: no group 'Re: news' created, still only 1 Frogs group
self.assertEqual(len(frog_groups), 0,
'message_process: reply on Frogs should not have created a new group with new subject')
@@ -405,7 +430,7 @@ class TestMailgateway(TestMail):
'message_process: reply on Frogs should not have created a duplicate group with old subject')
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
# Test: no new message
- self.assertEqual(len(frog_group.message_ids), 3, 'message_process: message with already existing message_id should not have been duplicated')
+ self.assertEqual(len(frog_group.message_ids), 4, 'message_process: message with already existing message_id should not have been duplicated')
# Test: message_id is still unique
msg_ids = self.mail_message.search(cr, uid, [('message_id', 'ilike', '<1198923581.41972151344608186760.JavaMail.diff1@agrolait.com>')])
self.assertEqual(len(msg_ids), 1,
@@ -422,7 +447,7 @@ class TestMailgateway(TestMail):
format_and_process(MAIL_TEMPLATE, email_from='Lombrik Lubrik ',
to='erroneous@example.com>', subject='Re: news (2)',
msg_id='<1198923581.41972151344608186760.JavaMail.new1@agrolait.com>',
- extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n' % frog_group.id)
+ extra='In-Reply-To: <1198923581.41972151344608186799.JavaMail.diff1@agrolait.com>')
frog_groups = self.mail_group.search(cr, uid, [('name', '=', 'Frogs')])
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
# Test: author is A-Raoul (only existing)
@@ -436,7 +461,7 @@ class TestMailgateway(TestMail):
format_and_process(MAIL_TEMPLATE, email_from='Lombrik Lubrik ',
to='erroneous@example.com>', subject='Re: news (3)',
msg_id='<1198923581.41972151344608186760.JavaMail.new2@agrolait.com>',
- extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n' % frog_group.id)
+ extra='In-Reply-To: <1198923581.41972151344608186799.JavaMail.diff1@agrolait.com>')
frog_groups = self.mail_group.search(cr, uid, [('name', '=', 'Frogs')])
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
# Test: author is Raoul (user), not A-Raoul
@@ -451,7 +476,7 @@ class TestMailgateway(TestMail):
format_and_process(MAIL_TEMPLATE, email_from='Lombrik Lubrik ',
to='erroneous@example.com>', subject='Re: news (3)',
msg_id='<1198923581.41972151344608186760.JavaMail.new3@agrolait.com>',
- extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n' % frog_group.id)
+ extra='In-Reply-To: <1198923581.41972151344608186799.JavaMail.diff1@agrolait.com>')
frog_groups = self.mail_group.search(cr, uid, [('name', '=', 'Frogs')])
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
# Test: author is Raoul (user), not A-Raoul
diff --git a/addons/mail/tests/test_mail_group.py b/addons/mail/tests/test_mail_group.py
index c1512441b13..34c7f0c00e0 100644
--- a/addons/mail/tests/test_mail_group.py
+++ b/addons/mail/tests/test_mail_group.py
@@ -20,6 +20,7 @@
##############################################################################
from openerp.addons.mail.tests.common import TestMail
+from openerp.exceptions import AccessError
from openerp.osv.orm import except_orm
from openerp.tools import mute_logger
@@ -40,7 +41,7 @@ class TestMailGroup(TestMail):
self.mail_group.read(cr, user_employee_id, [self.group_pigs_id])
# Do: Bert creates a group -> ko, no access rights
- with self.assertRaises(except_orm):
+ with self.assertRaises(AccessError):
self.mail_group.create(cr, user_noone_id, {'name': 'Test'})
# Do: Raoul creates a restricted group -> ok
new_group_id = self.mail_group.create(cr, user_employee_id, {'name': 'Test'})
@@ -58,7 +59,7 @@ class TestMailGroup(TestMail):
# Do: Raoul write on Jobs -> ok
self.mail_group.write(cr, user_employee_id, [self.group_priv_id], {'name': 'modified'})
# Do: Bert cannot write on Private -> ko (read but no write)
- with self.assertRaises(except_orm):
+ with self.assertRaises(AccessError):
self.mail_group.write(cr, user_noone_id, [self.group_priv_id], {'name': 're-modified'})
# Test: Bert cannot unlink the group
with self.assertRaises(except_orm):
diff --git a/addons/mail/tests/test_mail_message.py b/addons/mail/tests/test_mail_message.py
index 5dc5e9e247d..180661a0707 100644
--- a/addons/mail/tests/test_mail_message.py
+++ b/addons/mail/tests/test_mail_message.py
@@ -20,6 +20,7 @@
##############################################################################
from openerp.addons.mail.tests.common import TestMail
+from openerp.exceptions import AccessError
from openerp.osv.orm import except_orm
from openerp.tools import mute_logger
@@ -258,13 +259,13 @@ class TestMailMessage(TestMail):
# ----------------------------------------
# Do: Bert creates a message on Pigs -> ko, no creation rights
- self.assertRaises(except_orm, self.mail_message.create,
+ self.assertRaises(AccessError, self.mail_message.create,
cr, user_bert_id, {'model': 'mail.group', 'res_id': self.group_pigs_id, 'body': 'Test'})
# Do: Bert create a message on Jobs -> ko, no creation rights
- self.assertRaises(except_orm, self.mail_message.create,
+ self.assertRaises(AccessError, self.mail_message.create,
cr, user_bert_id, {'model': 'mail.group', 'res_id': self.group_jobs_id, 'body': 'Test'})
# Do: Bert create a private message -> ko, no creation rights
- self.assertRaises(except_orm, self.mail_message.create,
+ self.assertRaises(AccessError, self.mail_message.create,
cr, user_bert_id, {'body': 'Test'})
# Do: Raoul creates a message on Jobs -> ok, write access to the related document
@@ -410,15 +411,15 @@ class TestMailMessage(TestMail):
for message in bert_jobs.message_ids:
trigger_read = message.subject
for partner in bert_jobs.message_follower_ids:
- with self.assertRaises(except_orm):
+ with self.assertRaises(AccessError):
trigger_read = partner.name
# Do: Bert comments Jobs, ko because no creation right
- self.assertRaises(except_orm,
+ self.assertRaises(AccessError,
self.mail_group.message_post,
cr, user_bert_id, self.group_jobs_id, body='I love Pigs')
# Do: Bert writes on its own profile, ko because no message create access
- with self.assertRaises(except_orm):
+ with self.assertRaises(AccessError):
self.res_users.message_post(cr, user_bert_id, user_bert_id, body='I love Bert')
self.res_partner.message_post(cr, user_bert_id, partner_bert_id, body='I love Bert')
diff --git a/addons/mail/update.py b/addons/mail/update.py
index bcf9bb8c7c9..94286817648 100644
--- a/addons/mail/update.py
+++ b/addons/mail/update.py
@@ -94,13 +94,11 @@ class publisher_warranty_contract(osv.osv):
# old behavior based on res.log; now on mail.message, that is not necessarily installed
IMD = self.pool['ir.model.data']
user = self.pool['res.users'].browse(cr, SUPERUSER_ID, SUPERUSER_ID)
- try:
- poster = IMD.get_object(cr, SUPERUSER_ID, 'mail', 'group_all_employees')
- except ValueError:
- # Cannot found group, post the message on the wall of the admin
- poster = user
+ poster = IMD.get_object(cr, SUPERUSER_ID, 'mail', 'group_all_employees', context=context, check_existence_and_raise=False)
if not poster.exists():
- return True
+ if not user.exists():
+ return True
+ poster = user
for message in result["messages"]:
try:
poster.message_post(body=message, subtype='mt_comment', partner_ids=[user.partner_id.id])
diff --git a/addons/mail/wizard/invite.py b/addons/mail/wizard/invite.py
index a6bfc34c213..ad012e786ca 100644
--- a/addons/mail/wizard/invite.py
+++ b/addons/mail/wizard/invite.py
@@ -60,6 +60,10 @@ class invite_wizard(osv.osv_memory):
help="If checked, the partners will receive an email warning they have been "
"added in the document's followers."),
}
+
+ _defaults = {
+ 'send_mail' : True,
+ }
def add_followers(self, cr, uid, ids, context=None):
for wizard in self.browse(cr, uid, ids, context=context):
diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py
index f129e5bf0f9..833811c07a1 100644
--- a/addons/mail/wizard/mail_compose_message.py
+++ b/addons/mail/wizard/mail_compose_message.py
@@ -19,7 +19,9 @@
#
##############################################################################
+import base64
import re
+
from openerp import tools
from openerp import SUPERUSER_ID
from openerp.osv import osv
@@ -260,6 +262,12 @@ class mail_compose_message(osv.TransientModel):
for res_id, mail_values in all_mail_values.iteritems():
if mass_mail_mode and not wizard.post:
+ m2m_attachment_ids = self.pool['mail.thread']._message_preprocess_attachments(
+ cr, uid, mail_values.pop('attachments', []),
+ mail_values.pop('attachment_ids', []),
+ 'mail.message', 0,
+ context=context)
+ mail_values['attachment_ids'] = m2m_attachment_ids
self.pool.get('mail.mail').create(cr, uid, mail_values, context=context)
else:
subtype = 'mail.mt_comment'
@@ -298,7 +306,12 @@ class mail_compose_message(osv.TransientModel):
if mass_mail_mode and wizard.model:
email_dict = rendered_values[res_id]
mail_values['partner_ids'] += email_dict.pop('partner_ids', [])
- mail_values['attachments'] = email_dict.pop('attachments', [])
+ # process attachments: should not be encoded before being processed by message_post / mail_mail create
+ attachments = []
+ if email_dict.get('attachments'):
+ for name, enc_cont in email_dict.pop('attachments'):
+ attachments.append((name, base64.b64decode(enc_cont)))
+ mail_values['attachments'] = attachments
attachment_ids = []
for attach_id in mail_values.pop('attachment_ids'):
new_attach_id = self.pool.get('ir.attachment').copy(cr, uid, attach_id, {'res_model': self._name, 'res_id': wizard.id}, context=context)
diff --git a/addons/marketing/i18n/he.po b/addons/marketing/i18n/he.po
new file mode 100644
index 00000000000..19ce42dbfa0
--- /dev/null
+++ b/addons/marketing/i18n/he.po
@@ -0,0 +1,109 @@
+# Hebrew translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-12-30 19:08+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Hebrew \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-31 04:47+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: marketing
+#: model:ir.model,name:marketing.model_marketing_config_settings
+msgid "marketing.config.settings"
+msgstr ""
+
+#. module: marketing
+#: help:marketing.config.settings,module_marketing_campaign_crm_demo:0
+msgid ""
+"Installs demo data like leads, campaigns and segments for Marketing "
+"Campaigns.\n"
+" This installs the module marketing_campaign_crm_demo."
+msgstr ""
+
+#. module: marketing
+#: model:ir.actions.act_window,name:marketing.action_marketing_configuration
+#: view:marketing.config.settings:0
+msgid "Configure Marketing"
+msgstr ""
+
+#. module: marketing
+#: view:crm.lead:0
+#: model:ir.ui.menu,name:marketing.menu_marketing_configuration
+msgid "Marketing"
+msgstr ""
+
+#. module: marketing
+#: field:marketing.config.settings,module_marketing_campaign:0
+msgid "Marketing campaigns"
+msgstr ""
+
+#. module: marketing
+#: view:marketing.config.settings:0
+msgid "or"
+msgstr ""
+
+#. module: marketing
+#: view:marketing.config.settings:0
+msgid "Campaigns"
+msgstr ""
+
+#. module: marketing
+#: model:res.groups,name:marketing.group_marketing_manager
+msgid "Manager"
+msgstr ""
+
+#. module: marketing
+#: model:res.groups,name:marketing.group_marketing_user
+msgid "User"
+msgstr ""
+
+#. module: marketing
+#: view:marketing.config.settings:0
+msgid "Campaigns Settings"
+msgstr ""
+
+#. module: marketing
+#: field:marketing.config.settings,module_crm_profiling:0
+msgid "Track customer profile to focus your campaigns"
+msgstr ""
+
+#. module: marketing
+#: view:marketing.config.settings:0
+msgid "Cancel"
+msgstr ""
+
+#. module: marketing
+#: view:marketing.config.settings:0
+msgid "Apply"
+msgstr ""
+
+#. module: marketing
+#: help:marketing.config.settings,module_marketing_campaign:0
+msgid ""
+"Provides leads automation through marketing campaigns.\n"
+" Campaigns can in fact be defined on any resource, not just "
+"CRM leads.\n"
+" This installs the module marketing_campaign."
+msgstr ""
+
+#. module: marketing
+#: help:marketing.config.settings,module_crm_profiling:0
+msgid ""
+"Allows users to perform segmentation within partners.\n"
+" This installs the module crm_profiling."
+msgstr ""
+
+#. module: marketing
+#: field:marketing.config.settings,module_marketing_campaign_crm_demo:0
+msgid "Demo data for marketing campaigns"
+msgstr ""
diff --git a/addons/marketing_campaign/i18n/he.po b/addons/marketing_campaign/i18n/he.po
new file mode 100644
index 00000000000..71ef53e095c
--- /dev/null
+++ b/addons/marketing_campaign/i18n/he.po
@@ -0,0 +1,1056 @@
+# Hebrew translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-12-30 19:09+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Hebrew \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-31 04:47+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Manual Mode"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,activity_from_id:0
+msgid "Previous Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:819
+#, python-format
+msgid "The current step for this item has no email or report to preview."
+msgstr ""
+
+#. module: marketing_campaign
+#: constraint:marketing.campaign.transition:0
+msgid "The To/From Activity of transition must be of the same Campaign "
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,trigger:0
+msgid "Time"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.activity,type:0
+msgid "Custom Action"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+#: view:marketing.campaign.workitem:0
+msgid "Group By..."
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,revenue:0
+msgid ""
+"Set an expected revenue if you consider that every campaign item that has "
+"reached this point has generated a certain revenue. You can get revenue "
+"statistics in the Reporting section"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,trigger:0
+msgid "Trigger"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Follow-Up"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,count:0
+msgid "# of Actions"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Campaign Editor"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: selection:marketing.campaign,state:0
+#: view:marketing.campaign.segment:0
+#: selection:marketing.campaign.segment,state:0
+msgid "Running"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:email.template,body_html:marketing_campaign.email_template_3
+msgid ""
+"Hi, we are delighted to let you know that you have entered the select circle "
+"of our Gold Partners"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "March"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,object_id:0
+msgid "Object"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Sync mode: only records created after last sync"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,condition:0
+msgid ""
+"Python expression to decide whether the activity can be executed, otherwise "
+"it will be deleted or cancelled.The expression may use the following "
+"[browsable] variables:\n"
+" - activity: the campaign activity\n"
+" - workitem: the campaign workitem\n"
+" - resource: the resource object this campaign item represents\n"
+" - transitions: list of campaign transitions outgoing from this activity\n"
+"...- re: Python regular expression module"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+#: field:marketing.campaign.activity,to_ids:0
+msgid "Next Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:148
+#, python-format
+msgid ""
+"The campaign cannot be started. It does not have any starting activity. "
+"Modify campaign's activities to mark one as the starting point."
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,email_template_id:0
+msgid "The email to send when this activity is activated"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+#: field:marketing.campaign.segment,date_run:0
+msgid "Launch Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,day:0
+msgid "Day"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Outgoing Transitions"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Reset"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,object_id:0
+msgid "Choose the resource on which you want this campaign to be run"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.client,name:marketing_campaign.action_client_marketing_menu
+msgid "Open Marketing Menu"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,sync_last_date:0
+msgid "Last Synchronization"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Year(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.segment,sync_last_date:0
+msgid ""
+"Date on which this segment was synchronized last time (automatically or "
+"manually)"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,state:0
+#: selection:marketing.campaign,state:0
+#: selection:marketing.campaign.segment,state:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,trigger:0
+msgid "Automatic"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,mode:0
+msgid ""
+"Test - It creates and process all the activities directly (without waiting "
+"for the delay on transitions) but does not send emails or produce reports.\n"
+"Test in Realtime - It creates and processes all the activities directly but "
+"does not send emails or produce reports.\n"
+"With Manual Confirmation - the campaigns runs normally, but the user has to "
+"validate all workitem manually.\n"
+"Normal - the campaign runs normally and automatically sends all emails and "
+"reports (be very careful with this mode, you're live!)"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.segment,date_run:0
+msgid "Initial start date of this segment."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:res.partner:0
+msgid "False"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,campaign_id:0
+#: view:marketing.campaign:0
+#: field:marketing.campaign.activity,campaign_id:0
+#: view:marketing.campaign.segment:0
+#: field:marketing.campaign.segment,campaign_id:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,campaign_id:0
+msgid "Campaign"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:email.template,body_html:marketing_campaign.email_template_1
+msgid "Hello, you will receive your welcome pack via email shortly."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,segment_id:0
+#: view:marketing.campaign.segment:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,segment_id:0
+msgid "Segment"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:214
+#, python-format
+msgid "You cannot duplicate a campaign, Not supported yet."
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,type:0
+msgid ""
+"The type of action to execute when an item enters this activity, such as:\n"
+" - Email: send an email using a predefined email template\n"
+" - Report: print an existing Report defined on the resource item and save "
+"it into a specific directory\n"
+" - Custom Action: execute a predefined action, e.g. to modify the fields "
+"of the resource record\n"
+" "
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.segment,date_next_sync:0
+msgid "Next time the synchronization job is scheduled to run automatically"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Month(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,partner_id:0
+#: model:ir.model,name:marketing_campaign.model_res_partner
+#: field:marketing.campaign.workitem,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.filters,name:marketing_campaign.filter0
+msgid "Partners"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "Marketing Reports"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,state:0
+#: selection:marketing.campaign.segment,state:0
+msgid "New"
+msgstr ""
+
+#. module: marketing_campaign
+#: sql_constraint:marketing.campaign.transition:0
+msgid "The interval must be positive or zero"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.activity,type:0
+msgid "Email"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,name:0
+#: field:marketing.campaign.activity,name:0
+#: field:marketing.campaign.segment,name:0
+#: field:marketing.campaign.transition,name:0
+msgid "Name"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.workitem,res_name:0
+msgid "Resource Name"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,sync_mode:0
+msgid "Synchronization mode"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Run"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+#: field:marketing.campaign.activity,from_ids:0
+msgid "Previous Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:email.template,subject:marketing_campaign.email_template_2
+msgid "Congratulations! You are now a Silver Partner!"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.segment,date_done:0
+msgid "Date this segment was last closed or cancelled."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Marketing Campaign Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,error_msg:0
+msgid "Error Message"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_form
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_form
+#: view:marketing.campaign:0
+#: view:res.partner:0
+msgid "Campaigns"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,interval_type:0
+msgid "Interval Unit"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,country_id:0
+msgid "Country"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,report_id:0
+#: selection:marketing.campaign.activity,type:0
+msgid "Report"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "July"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_configuration
+msgid "Configuration"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,variable_cost:0
+msgid ""
+"Set a variable cost if you consider that every campaign item that has "
+"reached this point has entailed a certain cost. You can get cost statistics "
+"in the Reporting section"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Hour(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_segment
+msgid "Campaign Segment"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,keep_if_condition_not_met:0
+msgid ""
+"By activating this option, workitems that aren't executed because the "
+"condition is not met are marked as cancelled instead of being deleted."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "Exceptions"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_followup
+#: field:res.partner,workitem_ids:0
+msgid "Workitems"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,fixed_cost:0
+msgid "Fixed Cost"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Newly Modified"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,help:marketing_campaign.action_marketing_campaign_form
+msgid ""
+"
\n"
+" Click to create a marketing campaign.\n"
+"
\n"
+" OpenERP's marketing campaign allows you to automate "
+"communication\n"
+" to your prospects. You can define a segment (set of conditions) "
+"on\n"
+" your leads and partners to fullfil the campaign.\n"
+"
\n"
+" A campaign can have many activities like sending an email, "
+"printing\n"
+" a letter, assigning to a team, etc. These activities are "
+"triggered\n"
+" from specific situations; contact form, 10 days after first\n"
+" contact, if a lead is not closed yet, etc.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,interval_nbr:0
+msgid "Interval Value"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,revenue:0
+#: field:marketing.campaign.activity,revenue:0
+msgid "Revenue"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "September"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "December"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,partner_field_id:0
+msgid ""
+"The generated workitems will be linked to the partner related to the record. "
+"If the record is the partner itself leave this field empty. This is useful "
+"for reporting purposes, via the Campaign Analysis or Campaign Follow-up "
+"views."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,month:0
+msgid "Month"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,activity_to_id:0
+msgid "Next Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_stat
+#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_workitem
+#: model:ir.ui.menu,name:marketing_campaign.menu_action_marketing_campaign_workitem
+msgid "Campaign Follow-up"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Test Mode"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.segment,sync_mode:0
+msgid "Only records modified after last sync (no duplicates)"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_ir_actions_report_xml
+msgid "ir.actions.report.xml"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Campaign Statistics"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,server_action_id:0
+msgid "The action to perform when this activity is activated"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,partner_field_id:0
+msgid "Partner Field"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: model:ir.actions.act_window,name:marketing_campaign.action_campaign_analysis_all
+#: model:ir.model,name:marketing_campaign.model_campaign_analysis
+#: model:ir.ui.menu,name:marketing_campaign.menu_action_campaign_analysis_all
+msgid "Campaign Analysis"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.segment,sync_mode:0
+msgid ""
+"Determines an additional criterion to add to the filter when selecting new "
+"records to inject in the campaign. \"No duplicates\" prevents selecting "
+"records which have already entered the campaign previously.If the campaign "
+"has a \"unique field\" set, \"no duplicates\" will also prevent selecting "
+"records which have the same value for the unique field as other records that "
+"already entered the campaign."
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "Test in Realtime"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "Test Directly"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,report_directory_id:0
+msgid "Directory"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Draft"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Marketing Campaign Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Preview"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,state:0
+#: view:marketing.campaign:0
+#: field:marketing.campaign,state:0
+#: view:marketing.campaign.segment:0
+#: field:marketing.campaign.segment,state:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,state:0
+msgid "Status"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "August"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "Normal"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,start:0
+msgid "This activity is launched when the campaign starts."
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,signal:0
+msgid ""
+"An activity with a signal can be called programmatically. Be careful, the "
+"workitem is always created when a signal is sent"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: selection:campaign.analysis,state:0
+#: view:marketing.campaign.workitem:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "To Do"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "June"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_email_template
+msgid "Email Templates"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Sync mode: all records"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.segment,sync_mode:0
+msgid "All records (no duplicates)"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Newly Created"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,date:0
+msgid "Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "November"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,condition:0
+msgid "Condition"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,report_id:0
+msgid "The report to generate when this activity is activated"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,unique_field_id:0
+msgid "Unique Field"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,state:0
+#: view:marketing.campaign.workitem:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "Exception"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "October"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,email_template_id:0
+msgid "Email Template"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "January"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,date:0
+msgid "Execution Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_workitem
+msgid "Campaign Workitem"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_activity
+msgid "Campaign Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,report_directory_id:0
+msgid "This folder is used to store the generated reports"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:136
+#: code:addons/marketing_campaign/marketing_campaign.py:148
+#: code:addons/marketing_campaign/marketing_campaign.py:158
+#, python-format
+msgid "Error"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,server_action_id:0
+msgid "Action"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:528
+#, python-format
+msgid "Automatic transition"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,start:0
+msgid "Start"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:819
+#, python-format
+msgid "No preview"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Process"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:530
+#: selection:marketing.campaign.transition,trigger:0
+#, python-format
+msgid "Cosmetic"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.transition,trigger:0
+msgid "How is the destination workitem triggered"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: selection:campaign.analysis,state:0
+#: view:marketing.campaign:0
+#: selection:marketing.campaign,state:0
+#: selection:marketing.campaign.segment,state:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "Done"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:214
+#, python-format
+msgid "Operation not supported"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Cancel"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Close"
+msgstr ""
+
+#. module: marketing_campaign
+#: constraint:marketing.campaign.segment:0
+msgid "Model of filter must be same as resource model of Campaign "
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Synchronize Manually"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,res_id:0
+msgid "Resource ID"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_transition
+msgid "Campaign Transition"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Marketing Campaign Segment"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_segment_opened
+#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_segment_form
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_segment_form
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Segments"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,keep_if_condition_not_met:0
+msgid "Don't Delete Workitems"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Incoming Transitions"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Day(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: field:marketing.campaign,activity_ids:0
+#: view:marketing.campaign.activity:0
+msgid "Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "With Manual Confirmation"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "May"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,type:0
+msgid "Type"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:email.template,subject:marketing_campaign.email_template_3
+msgid "Congratulations! You are now one of our Gold Partners!"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,unique_field_id:0
+msgid ""
+"If set, this field will help segments that work in \"no duplicates\" mode to "
+"avoid selecting similar records twice. Similar records are records that have "
+"the same value for this unique field. For example by choosing the "
+"\"email_from\" field for CRM Leads you would prevent sending the same "
+"campaign to the same email address again. If not set, the \"no duplicates\" "
+"segments will only avoid selecting the same record again if it entered the "
+"campaign previously. Only easily comparable fields like textfields, "
+"integers, selections or single relationships may be used."
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:529
+#, python-format
+msgid "After %(interval_nbr)d %(interval_type)s"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign
+#: view:marketing.campaign:0
+msgid "Marketing Campaign"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,date_done:0
+msgid "End Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "February"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,res_id:0
+#: view:marketing.campaign:0
+#: field:marketing.campaign,object_id:0
+#: field:marketing.campaign.segment,object_id:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,object_id:0
+msgid "Resource"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,fixed_cost:0
+msgid ""
+"Fixed cost for running this campaign. You may also specify variable cost and "
+"revenue on each campaign activity. Cost and Revenue statistics are included "
+"in Campaign Reporting."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Sync mode: only records updated after last sync"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:793
+#, python-format
+msgid "Email Preview"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,signal:0
+msgid "Signal"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.workitem,date:0
+msgid "If date is not set, this workitem has to be run manually"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "April"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:158
+#, python-format
+msgid "The campaign cannot be marked as done before all segments are closed."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: field:marketing.campaign,mode:0
+msgid "Mode"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,activity_id:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,activity_id:0
+msgid "Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.segment,ir_filter_id:0
+msgid ""
+"Filter to select the matching resource records that belong to this segment. "
+"New filters can be created and saved using the advanced search on the list "
+"view of the Resource. If no filter is set, all records are selected without "
+"filtering. The synchronization mode may also add a criterion to the filter."
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:136
+#, python-format
+msgid "The campaign cannot be started. There are no activities in it."
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,date_next_sync:0
+msgid "Next Synchronization"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:email.template,body_html:marketing_campaign.email_template_2
+msgid ""
+"Hi, we are delighted to welcome you among our Silver Partners as of today!"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,ir_filter_id:0
+msgid "Filter"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "All"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.segment,sync_mode:0
+msgid "Only records created after last sync"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,variable_cost:0
+msgid "Variable Cost"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:email.template,subject:marketing_campaign.email_template_1
+msgid "Welcome to the OpenERP Partner Channel!"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,total_cost:0
+msgid "Cost"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,year:0
+msgid "Year"
+msgstr ""
diff --git a/addons/marketing_campaign/marketing_campaign.py b/addons/marketing_campaign/marketing_campaign.py
index fdec2fb39e0..e434090ad76 100644
--- a/addons/marketing_campaign/marketing_campaign.py
+++ b/addons/marketing_campaign/marketing_campaign.py
@@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 OpenERP SA ().
+# Copyright (C) 2004-2013 OpenERP 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
@@ -32,6 +32,7 @@ import re
from openerp.addons.decimal_precision import decimal_precision as dp
from openerp.osv import fields, osv
+from openerp.report import render_report
from openerp.tools.translate import _
_intervalTypes = {
@@ -461,8 +462,7 @@ class marketing_campaign_activity(osv.osv):
#dead code
def _process_wi_report(self, cr, uid, activity, workitem, context=None):
- service = netsvc.LocalService('report.%s'%activity.report_id.report_name)
- (report_data, format) = service.create(cr, uid, [], {}, {})
+ report_data, format = render_report(cr, uid, [], activity.report_id.report_name, {}, context=context)
attach_vals = {
'name': '%s_%s_%s'%(activity.report_id.report_name,
activity.name,workitem.partner_id.name),
diff --git a/addons/marketing_campaign/marketing_campaign_demo.xml b/addons/marketing_campaign/marketing_campaign_demo.xml
index 89a299e3a85..a7b1a8bce0c 100644
--- a/addons/marketing_campaign/marketing_campaign_demo.xml
+++ b/addons/marketing_campaign/marketing_campaign_demo.xml
@@ -5,7 +5,7 @@
welcome new partnerinfo@openerp.comWelcome to the OpenERP Partner Channel!
- ${object.email or ''}
+ ${(object.email or '')|safe}Hello, you will receive your welcome pack via email shortly.
@@ -13,7 +13,7 @@
congrats silver partnerinfo@openerp.comCongratulations! You are now a Silver Partner!
- ${object.email or ''}
+ ${(object.email or '')|safe}Hi, we are delighted to welcome you among our Silver Partners as of today!
@@ -22,7 +22,7 @@
congrats gold partnerinfo@openerp.comCongratulations! You are now one of our Gold Partners!
- ${object.email or ''}
+ ${(object.email or '')|safe}Hi, we are delighted to let you know that you have entered the select circle of our Gold Partners
diff --git a/addons/marketing_campaign_crm_demo/i18n/zh_CN.po b/addons/marketing_campaign_crm_demo/i18n/zh_CN.po
index 79cb70b271f..bd55988976a 100644
--- a/addons/marketing_campaign_crm_demo/i18n/zh_CN.po
+++ b/addons/marketing_campaign_crm_demo/i18n/zh_CN.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-06-29 16:49+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2013-11-19 10:16+0000\n"
+"Last-Translator: Guipo Hao \n"
"Language-Team: Chinese (Simplified) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:20+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-11-20 05:25+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_html:marketing_campaign_crm_demo.email_template_8
@@ -29,6 +29,11 @@ msgid ""
"reply to this message.\n"
"
Regards,OpenERP Team,
"
msgstr ""
+"
Hello,
\n"
+"
感谢您对注册参加技术培训的兴趣。
\n"
+" 如果您需要更多的信息,请重新提交。衷心感谢您的合作。\n"
+"
如果您需要更多的信息,请尽管回复此信息。
\n"
+"
安好,OpenERP 团队
"
#. module: marketing_campaign_crm_demo
#: model:ir.actions.report.xml,name:marketing_campaign_crm_demo.mc_crm_lead_demo_report
@@ -50,6 +55,10 @@ msgid ""
"reply to this message.\n"
"
Regards,OpenERP Team,
"
msgstr ""
+"
Hello,
\n"
+"
感谢您对注册参加OpenERP开放日的兴趣。
\n"
+"
如果您需要更多的信息,请尽管回复此信息。
\n"
+"
安好,OpenERP 团队
"
#. module: marketing_campaign_crm_demo
#: report:crm.lead.demo:0
@@ -72,6 +81,11 @@ msgid ""
"reply to this message.\n"
"
-
diff --git a/addons/point_of_sale/static/src/css/pos.css b/addons/point_of_sale/static/src/css/pos.css
index 89ab429c4f4..3a3a8f23231 100644
--- a/addons/point_of_sale/static/src/css/pos.css
+++ b/addons/point_of_sale/static/src/css/pos.css
@@ -126,6 +126,7 @@
background: #393939;
background: -moz-linear-gradient(#7b7979, #393939);
background: -webkit-gradient(linear, left top, left bottom, from(#7b7979), to(#393939));
+ z-index: 2; /* Customize according bootstrap3 navbar */
}
/* a) The left part of the top-bar */
@@ -306,12 +307,12 @@
text-align: center;
vertical-align: top;
width: 205px;
- max-height: 232px;
+ max-height: 350px;
overflow-y: auto;
overflow-x: hidden;
}
.point-of-sale #paypad button {
- height: 50px;
+ height: 39px;
display: block;
width: 100%;
margin: 0px -6px 4px -2px;
@@ -659,6 +660,7 @@
.point-of-sale .screen header h2 {
margin-top: 0px;
padding-top: 7px;
+ font-size: 1.5em /* Customize font according bootstrap3 */
}
.point-of-sale .screen p{
font-size: 18px;
diff --git a/addons/point_of_sale/static/src/img/open-cashbox.png.moved b/addons/point_of_sale/static/src/img/open-cashbox.png.moved
new file mode 100644
index 00000000000..1e07b0a9282
Binary files /dev/null and b/addons/point_of_sale/static/src/img/open-cashbox.png.moved differ
diff --git a/addons/point_of_sale/static/src/js/devices.js b/addons/point_of_sale/static/src/js/devices.js
index 67fde81136a..7071a862413 100644
--- a/addons/point_of_sale/static/src/js/devices.js
+++ b/addons/point_of_sale/static/src/js/devices.js
@@ -560,6 +560,7 @@ function openerp_pos_devices(instance,module){ //module is instance.point_of_sal
this.handler = function(e){
if(e.which === 13){ //ignore returns
+ e.preventDefault();
return;
}
diff --git a/addons/portal/i18n/he.po b/addons/portal/i18n/he.po
new file mode 100644
index 00000000000..7a76965f9fd
--- /dev/null
+++ b/addons/portal/i18n/he.po
@@ -0,0 +1,497 @@
+# Hebrew translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-12-30 19:47+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Hebrew \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-31 04:47+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: portal
+#: view:portal.payment.acquirer:0
+msgid "Mako"
+msgstr ""
+
+#. module: portal
+#: code:addons/portal/wizard/share_wizard.py:50
+#, python-format
+msgid "Please select at least one user to share with"
+msgstr ""
+
+#. module: portal
+#: view:portal.wizard:0
+msgid ""
+"Select which contacts should belong to the portal in the list below.\n"
+" The email address of each selected contact must be "
+"valid and unique.\n"
+" If necessary, you can fix any contact's email "
+"address directly in the list."
+msgstr ""
+
+#. module: portal
+#: model:mail.group,name:portal.company_jobs
+msgid "Company Jobs"
+msgstr ""
+
+#. module: portal
+#: view:portal.payment.acquirer:0
+msgid "amount: the total amount to pay, as a float"
+msgstr ""
+
+#. module: portal
+#: view:portal.wizard.user:0
+msgid "Contacts"
+msgstr ""
+
+#. module: portal
+#: view:share.wizard:0
+#: field:share.wizard,group_ids:0
+msgid "Existing groups"
+msgstr ""
+
+#. module: portal
+#: view:res.groups:0
+msgid "Portal Groups"
+msgstr ""
+
+#. module: portal
+#: field:portal.wizard,welcome_message:0
+msgid "Invitation Message"
+msgstr ""
+
+#. module: portal
+#: view:res.groups:0
+msgid "Non-Portal Groups"
+msgstr ""
+
+#. module: portal
+#: code:addons/portal/wizard/share_wizard.py:54
+#, python-format
+msgid "Please select at least one group to share with"
+msgstr ""
+
+#. module: portal
+#: view:share.wizard:0
+msgid "Details"
+msgstr ""
+
+#. module: portal
+#: model:ir.ui.menu,name:portal.portal_orders
+msgid "Quotations and Sales Orders"
+msgstr ""
+
+#. module: portal
+#: view:portal.payment.acquirer:0
+msgid "reference: the reference number of the document to pay"
+msgstr ""
+
+#. module: portal
+#: help:portal.payment.acquirer,visible:0
+msgid ""
+"Make this payment acquirer available in portal forms (Customer invoices, "
+"etc.)"
+msgstr ""
+
+#. module: portal
+#: model:ir.model,name:portal.model_share_wizard
+msgid "Share Wizard"
+msgstr ""
+
+#. module: portal
+#: field:portal.wizard.user,email:0
+msgid "Email"
+msgstr ""
+
+#. module: portal
+#: model:ir.actions.client,help:portal.action_news
+msgid ""
+"
\n"
+" Youd don't have unread company's news.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: portal
+#: code:addons/portal/wizard/portal_wizard.py:194
+#, python-format
+msgid ""
+"You must have an email address in your User Preferences to send emails."
+msgstr ""
+
+#. module: portal
+#: model:ir.actions.client,name:portal.action_jobs
+#: model:ir.ui.menu,name:portal.portal_jobs
+msgid "Jobs"
+msgstr ""
+
+#. module: portal
+#: field:portal.wizard,user_ids:0
+msgid "Users"
+msgstr ""
+
+#. module: portal
+#: code:addons/portal/acquirer.py:82
+#, python-format
+msgid "Pay safely online"
+msgstr ""
+
+#. module: portal
+#: code:addons/portal/acquirer.py:77
+#, python-format
+msgid "No online payment acquirers configured"
+msgstr ""
+
+#. module: portal
+#: view:portal.payment.acquirer:0
+msgid ""
+"kind: the kind of document on which the payment form is rendered (translated "
+"to user language, e.g. \"Invoice\")"
+msgstr ""
+
+#. module: portal
+#: help:portal.wizard,portal_id:0
+msgid "The portal that users can be added in or removed from."
+msgstr ""
+
+#. module: portal
+#: code:addons/portal/wizard/share_wizard.py:38
+#, python-format
+msgid "Users you already shared with"
+msgstr ""
+
+#. module: portal
+#: model:ir.actions.client,help:portal.action_jobs
+msgid ""
+"
\n"
+" Youd don't have unread job offers.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: portal
+#: view:portal.payment.acquirer:0
+msgid ""
+", so it may use Mako expressions.\n"
+" The Mako evaluation context provides:"
+msgstr ""
+
+#. module: portal
+#: model:ir.ui.menu,name:portal.portal_menu
+#: field:portal.wizard,portal_id:0
+#: field:res.groups,is_portal:0
+#: model:res.groups,name:portal.group_portal
+msgid "Portal"
+msgstr ""
+
+#. module: portal
+#: code:addons/portal/wizard/portal_wizard.py:34
+#, python-format
+msgid "Your OpenERP account at %(company)s"
+msgstr ""
+
+#. module: portal
+#: model:res.groups,name:portal.group_anonymous
+msgid "Anonymous"
+msgstr ""
+
+#. module: portal
+#: field:portal.wizard.user,in_portal:0
+msgid "In Portal"
+msgstr ""
+
+#. module: portal
+#: model:ir.actions.client,name:portal.action_news
+#: model:ir.ui.menu,name:portal.portal_company_news
+msgid "News"
+msgstr ""
+
+#. module: portal
+#: model:ir.ui.menu,name:portal.portal_after_sales
+msgid "After Sale Services"
+msgstr ""
+
+#. module: portal
+#: model:res.groups,comment:portal.group_portal
+msgid ""
+"Portal members have specific access rights (such as record rules and "
+"restricted menus).\n"
+" They usually do not belong to the usual OpenERP groups."
+msgstr ""
+
+#. module: portal
+#: model:ir.actions.act_window,name:portal.action_acquirer_list
+#: view:portal.payment.acquirer:0
+msgid "Payment Acquirers"
+msgstr ""
+
+#. module: portal
+#: model:ir.ui.menu,name:portal.portal_projects
+msgid "Projects"
+msgstr ""
+
+#. module: portal
+#: model:ir.actions.client,name:portal.action_mail_inbox_feeds_portal
+#: model:ir.ui.menu,name:portal.portal_inbox
+msgid "Inbox"
+msgstr ""
+
+#. module: portal
+#: view:share.wizard:0
+#: field:share.wizard,user_ids:0
+msgid "Existing users"
+msgstr ""
+
+#. module: portal
+#: field:portal.wizard.user,wizard_id:0
+msgid "Wizard"
+msgstr ""
+
+#. module: portal
+#: field:portal.payment.acquirer,name:0
+msgid "Name"
+msgstr ""
+
+#. module: portal
+#: model:ir.model,name:portal.model_res_groups
+msgid "Access Groups"
+msgstr ""
+
+#. module: portal
+#: view:portal.payment.acquirer:0
+msgid "uid: the current user id"
+msgstr ""
+
+#. module: portal
+#: view:portal.payment.acquirer:0
+msgid ""
+"quote(): a method to quote special string character to make them suitable "
+"for inclusion in a URL"
+msgstr ""
+
+#. module: portal
+#: help:res.groups,is_portal:0
+msgid "If checked, this group is usable as a portal."
+msgstr ""
+
+#. module: portal
+#: field:portal.payment.acquirer,form_template:0
+msgid "Payment form template (HTML)"
+msgstr ""
+
+#. module: portal
+#: field:portal.wizard.user,partner_id:0
+msgid "Contact"
+msgstr ""
+
+#. module: portal
+#: model:ir.model,name:portal.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: portal
+#: code:addons/portal/wizard/portal_wizard.py:193
+#, python-format
+msgid "Email required"
+msgstr ""
+
+#. module: portal
+#: model:ir.ui.menu,name:portal.portal_messages
+msgid "Messaging"
+msgstr ""
+
+#. module: portal
+#: model:res.groups,comment:portal.group_anonymous
+msgid ""
+"Anonymous users have specific access rights (such as record rules and "
+"restricted menus).\n"
+" They usually do not belong to the usual OpenERP groups."
+msgstr ""
+
+#. module: portal
+#: model:ir.model,name:portal.model_portal_payment_acquirer
+msgid "Online Payment Acquirer"
+msgstr ""
+
+#. module: portal
+#: model:mail.group,name:portal.company_news_feed
+msgid "Company News"
+msgstr ""
+
+#. module: portal
+#: code:addons/portal/acquirer.py:76
+#, python-format
+msgid ""
+"You can finish the configuration in the Bank&Cash settings"
+msgstr ""
+
+#. module: portal
+#: view:portal.payment.acquirer:0
+msgid "cr: the current database cursor"
+msgstr ""
+
+#. module: portal
+#: model:ir.actions.client,help:portal.action_mail_inbox_feeds_portal
+msgid ""
+"
\n"
+" Good Job! Your inbox is empty.\n"
+"
\n"
+" Your inbox contains private messages or emails sent to "
+"you\n"
+" as well as information related to documents or people "
+"you\n"
+" follow.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: portal
+#: view:portal.payment.acquirer:0
+msgid ""
+"object: the document on which the payment form is rendered (usually an "
+"invoice or sales order record)"
+msgstr ""
+
+#. module: portal
+#: help:portal.wizard,welcome_message:0
+msgid "This text is included in the email sent to new users of the portal."
+msgstr ""
+
+#. module: portal
+#: model:ir.ui.menu,name:portal.portal_company
+msgid "About Us"
+msgstr ""
+
+#. module: portal
+#: view:portal.payment.acquirer:0
+msgid ""
+"currency: the currency record in which the document is issued (e.g. "
+"currency.name could be EUR)"
+msgstr ""
+
+#. module: portal
+#: view:portal.payment.acquirer:0
+msgid "Payment Acquirer"
+msgstr ""
+
+#. module: portal
+#: code:addons/portal/wizard/portal_wizard.py:35
+#, python-format
+msgid ""
+"Dear %(name)s,\n"
+"\n"
+"You have been given access to %(portal)s.\n"
+"\n"
+"Your login account data is:\n"
+"Database: %(db)s\n"
+"Username: %(login)s\n"
+"\n"
+"In order to complete the signin process, click on the following url:\n"
+"%(url)s\n"
+"\n"
+"%(welcome_message)s\n"
+"\n"
+"--\n"
+"OpenERP - Open Source Business Applications\n"
+"http://www.openerp.com\n"
+msgstr ""
+
+#. module: portal
+#: view:portal.wizard:0
+msgid "or"
+msgstr ""
+
+#. module: portal
+#: model:portal.payment.acquirer,form_template:portal.paypal_acquirer
+msgid ""
+"\n"
+"% if object.company_id.paypal_account:\n"
+"
\n"
+" \n"
+" \n"
+" \n"
+" \n"
+" \n"
+" \n"
+"
\n"
+"% endif\n"
+" "
+msgstr ""
+
+#. module: portal
+#: model:ir.model,name:portal.model_portal_wizard_user
+msgid "Portal User Config"
+msgstr ""
+
+#. module: portal
+#: view:portal.payment.acquirer:0
+msgid ""
+"If the template renders to an empty result in a certain context it will be "
+"ignored, as if it was inactive."
+msgstr ""
+
+#. module: portal
+#: field:portal.payment.acquirer,visible:0
+msgid "Visible"
+msgstr ""
+
+#. module: portal
+#: code:addons/portal/wizard/share_wizard.py:39
+#, python-format
+msgid "Existing Groups (e.g Portal Groups)"
+msgstr ""
+
+#. module: portal
+#: view:portal.wizard:0
+msgid "Cancel"
+msgstr ""
+
+#. module: portal
+#: view:portal.wizard:0
+msgid "Apply"
+msgstr ""
+
+#. module: portal
+#: view:portal.payment.acquirer:0
+msgid "ctx: the current context dictionary"
+msgstr ""
+
+#. module: portal
+#: view:portal.payment.acquirer:0
+msgid ""
+"This is an HTML form template to submit a payment through this acquirer.\n"
+" The template will be rendered with"
+msgstr ""
+
+#. module: portal
+#: code:addons/portal/mail_mail.py:42
+#, python-format
+msgid ""
+"Access your personal documents through our Customer Portal"
+msgstr ""
+
+#. module: portal
+#: view:portal.payment.acquirer:0
+msgid "Form Template"
+msgstr ""
+
+#. module: portal
+#: model:ir.actions.act_window,name:portal.partner_wizard_action
+#: model:ir.model,name:portal.model_portal_wizard
+#: view:portal.wizard:0
+msgid "Portal Access Management"
+msgstr ""
diff --git a/addons/portal/mail_message.py b/addons/portal/mail_message.py
index 9699b3a9ef6..4429df3be8b 100644
--- a/addons/portal/mail_message.py
+++ b/addons/portal/mail_message.py
@@ -19,6 +19,7 @@
#
##############################################################################
+from openerp import SUPERUSER_ID
from openerp.osv import osv, orm
from openerp.tools.translate import _
@@ -32,6 +33,9 @@ class mail_message(osv.Model):
""" Override that adds specific access rights of mail.message, to remove
all internal notes if uid is a non-employee
"""
+ if uid == SUPERUSER_ID:
+ return super(mail_message, self)._search(cr, uid, args, offset=offset, limit=limit, order=order,
+ context=context, count=False, access_rights_uid=access_rights_uid)
group_ids = self.pool.get('res.users').browse(cr, uid, uid, context=context).groups_id
group_user_id = self.pool.get("ir.model.data").get_object_reference(cr, uid, 'base', 'group_user')[1]
if group_user_id not in [group.id for group in group_ids]:
@@ -45,6 +49,8 @@ class mail_message(osv.Model):
- read:
- raise if the type is comment and subtype NULL (internal note)
"""
+ if uid == SUPERUSER_ID:
+ return super(mail_message, self).check_access_rule(cr, uid, ids=ids, operation=operation, context=context)
group_ids = self.pool.get('res.users').browse(cr, uid, uid, context=context).groups_id
group_user_id = self.pool.get("ir.model.data").get_object_reference(cr, uid, 'base', 'group_user')[1]
if group_user_id not in [group.id for group in group_ids]:
diff --git a/addons/portal/portal_demo.xml b/addons/portal/portal_demo.xml
index 81118b52c73..c1c67ad9067 100644
--- a/addons/portal/portal_demo.xml
+++ b/addons/portal/portal_demo.xml
@@ -5,12 +5,16 @@
Demo Portal User
- demo@portal.example.com
+ demo.portal@yourcompany.example.comnone
+ Vivegnis
+ 4683
+
+ Rue Cesar de Paepe, 43
-
+ portalportal
diff --git a/addons/portal/static/src/css/portal.css b/addons/portal/static/src/css/portal.css
index 45c0cdd7805..e32f3b0e639 100644
--- a/addons/portal/static/src/css/portal.css
+++ b/addons/portal/static/src/css/portal.css
@@ -10,7 +10,7 @@
margin: -40px 0 -32px -24px;
position: relative;
padding: 10px 15px;
- right: -153px;
+ right: -125px; /* improved margin according bootstrap3 */
background: #729FCF;
background-image: -webkit-gradient(linear, left top, left bottom, from(#729FCF), to(#3465A4));
diff --git a/addons/portal/tests/test_portal.py b/addons/portal/tests/test_portal.py
index 938d3a6ef1f..66cb0958774 100644
--- a/addons/portal/tests/test_portal.py
+++ b/addons/portal/tests/test_portal.py
@@ -20,6 +20,7 @@
##############################################################################
from openerp.addons.mail.tests.common import TestMail
+from openerp.exceptions import AccessError
from openerp.osv.orm import except_orm
from openerp.tools.misc import mute_logger
@@ -63,7 +64,7 @@ class test_portal(TestMail):
trigger_read = chell_pigs.name
# Do: Chell posts a message on Pigs, crash because can not write on group or is not in the followers
- with self.assertRaises(except_orm):
+ with self.assertRaises(AccessError):
self.mail_group.message_post(cr, self.user_chell_id, self.group_pigs_id, body='Message')
# Do: Chell is added into Pigs followers and browse it -> ok for messages, ko for partners (no read permission)
@@ -73,6 +74,9 @@ class test_portal(TestMail):
for message in chell_pigs.message_ids:
trigger_read = message.subject
for partner in chell_pigs.message_follower_ids:
+ if partner.id == self.partner_chell_id:
+ # Chell can read her own partner record
+ continue
with self.assertRaises(except_orm):
trigger_read = partner.name
diff --git a/addons/portal_claim/i18n/ar.po b/addons/portal_claim/i18n/ar.po
new file mode 100644
index 00000000000..19ee78a12e3
--- /dev/null
+++ b/addons/portal_claim/i18n/ar.po
@@ -0,0 +1,43 @@
+# Arabic translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-11-26 19:12+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Arabic \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-27 04:37+0000\n"
+"X-Generator: Launchpad (build 16845)\n"
+
+#. module: portal_claim
+#: model:ir.actions.act_window,help:portal_claim.crm_case_categ_claim0
+msgid ""
+"
\n"
+" Click to register a new claim. \n"
+"
\n"
+" You can track your claims from this menu and the action we\n"
+" will take.\n"
+"
\n"
+" "
+msgstr ""
+"
\n"
+" اضغط هنا للتسجيل مطالبة جديدة. \n"
+"
\n"
+" يمكنك تتبع المطالبات الخاصة بك من هذه القائمة و الإجراءات\n"
+" التي سنتخذها.\n"
+"
\n"
+" "
+
+#. module: portal_claim
+#: model:ir.actions.act_window,name:portal_claim.crm_case_categ_claim0
+#: model:ir.ui.menu,name:portal_claim.portal_after_sales_claims
+msgid "Claims"
+msgstr "مطالبات"
diff --git a/addons/portal_claim/i18n/fi.po b/addons/portal_claim/i18n/fi.po
new file mode 100644
index 00000000000..fbad5bedaf0
--- /dev/null
+++ b/addons/portal_claim/i18n/fi.po
@@ -0,0 +1,36 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-12-01 22:24+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-02 05:23+0000\n"
+"X-Generator: Launchpad (build 16856)\n"
+
+#. module: portal_claim
+#: model:ir.actions.act_window,help:portal_claim.crm_case_categ_claim0
+msgid ""
+"
\n"
+" Click to register a new claim. \n"
+"
\n"
+" You can track your claims from this menu and the action we\n"
+" will take.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: portal_claim
+#: model:ir.actions.act_window,name:portal_claim.crm_case_categ_claim0
+#: model:ir.ui.menu,name:portal_claim.portal_after_sales_claims
+msgid "Claims"
+msgstr "Reklamaatiot"
diff --git a/addons/portal_claim/security/portal_security.xml b/addons/portal_claim/security/portal_security.xml
index de6d5cd9894..691d971e3e2 100644
--- a/addons/portal_claim/security/portal_security.xml
+++ b/addons/portal_claim/security/portal_security.xml
@@ -1,17 +1,15 @@
-
-
+
Portal Personal Claims
- [('message_follower_ids','in', [user.partner_id.id])]
+ ['|', ('message_follower_ids','in', [user.partner_id.id]), ('partner_id','=', user.partner_id.id)]
-
-
+
+
-
+
-
diff --git a/addons/portal_crm/i18n/fi.po b/addons/portal_crm/i18n/fi.po
new file mode 100644
index 00000000000..ed8c3a72160
--- /dev/null
+++ b/addons/portal_crm/i18n/fi.po
@@ -0,0 +1,548 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-12-01 22:26+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-02 05:23+0000\n"
+"X-Generator: Launchpad (build 16856)\n"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,type:0
+msgid "Lead"
+msgstr "Liidi"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,title:0
+msgid "Title"
+msgstr "Titteli"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,probability:0
+msgid "Success Rate (%)"
+msgstr "Onnistumistodennäköisyys (%)"
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Contact us"
+msgstr "Ota yhteyttä"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_action:0
+msgid "Next Action Date"
+msgstr "Seuraava toimenpidepäivä"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,fax:0
+msgid "Fax"
+msgstr "Faksi"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,zip:0
+msgid "Zip"
+msgstr "Postinumero"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_unread:0
+msgid "Unread Messages"
+msgstr "Lukemattomia viestejä"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,company_id:0
+msgid "Company"
+msgstr "Yritys"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,day_open:0
+msgid "Days to Open"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Thank you for your interest, we'll respond to your request shortly."
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Highest"
+msgstr "Korkein"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,mobile:0
+msgid "Mobile"
+msgstr "Matkapuhelin"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,description:0
+msgid "Notes"
+msgstr "Muistiinpanot"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_ids:0
+msgid "Messages"
+msgstr "Viestit"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,color:0
+msgid "Color Index"
+msgstr "Väri-indeksi"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_latitude:0
+msgid "Geo Latitude"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_name:0
+msgid "Customer Name"
+msgstr "Asiakkaan nimi"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "Cancelled"
+msgstr "Peruttu"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr "Jos valittu, uudet viestit vaativat huomiosi."
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,channel_id:0
+msgid "Communication channel (mail, direct, phone, ...)"
+msgstr "Kommunikointikanava (sähköposti, suora, puhelin,...)"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,type_id:0
+msgid "Campaign"
+msgstr "Kampanja"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,ref:0
+msgid "Reference"
+msgstr "Viite"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_action_next:0
+#: field:portal_crm.crm_contact_us,title_action:0
+msgid "Next Action"
+msgstr "Seuraava toimenpide"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,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 ""
+"Sisältää viestien yhteenvedon (viestien määrän,...). Tämä yhteenveto on "
+"valmiiksi html-muodossa, jotta se voidaan viedä kanban näkymään."
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_id:0
+msgid "Partner"
+msgstr "Kumppani"
+
+#. module: portal_crm
+#: model:ir.actions.act_window,name:portal_crm.action_contact_us
+msgid "Contact Us"
+msgstr "Ota yhteyttä"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,name:0
+msgid "Subject"
+msgstr "Aihe"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,opt_out:0
+msgid "Opt-Out"
+msgstr "Jätä pois"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,priority:0
+msgid "Priority"
+msgstr "Tärkeys"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,state_id:0
+msgid "State"
+msgstr "Valtio"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_follower_ids:0
+msgid "Followers"
+msgstr "Seuraajat"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,partner_id:0
+msgid "Linked partner (optional). Usually created when converting the lead."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,payment_mode:0
+msgid "Payment Mode"
+msgstr "Maksutapa"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "New"
+msgstr "Uusi"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,type:0
+msgid "Type"
+msgstr "Tyyppi"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,email_from:0
+msgid "Email"
+msgstr "Sähköposti"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,channel_id:0
+msgid "Channel"
+msgstr "Kanava"
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Name"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Lowest"
+msgstr "Alin"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,create_date:0
+msgid "Creation Date"
+msgstr "Luontipäivä"
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Close"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,type:0
+msgid "Type is used to separate Leads and Opportunities"
+msgstr "Tyyppiä käytetään erottamaan liidit ja mahdollisuudet toisistaan"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,categ_ids:0
+msgid "Categories"
+msgstr "Kategoriat"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,stage_id:0
+msgid "Stage"
+msgstr "Vaihe"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,user_login:0
+msgid "User Login"
+msgstr "Käyttäjätunnus"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,opt_out:0
+msgid ""
+"If opt-out is checked, this contact has refused to receive emails or "
+"unsubscribed to a campaign."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,contact_name:0
+msgid "Contact Name"
+msgstr "Yhteystiedon nimi"
+
+#. module: portal_crm
+#: model:ir.ui.menu,name:portal_crm.portal_company_contact
+msgid "Contact"
+msgstr "Kontakti"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_address_email:0
+msgid "Partner Contact Email"
+msgstr "Kumppanin yhteystieto, sähköposti"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,planned_revenue:0
+msgid "Expected Revenue"
+msgstr "Odotetut tulot"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,task_ids:0
+msgid "Tasks"
+msgstr "Tehtävät"
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Contact form"
+msgstr "Yhteydenottolomake"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,company_currency:0
+msgid "Currency"
+msgstr "Valuutta"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,write_date:0
+msgid "Update Date"
+msgstr "Päivityksen ajankohta"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_deadline:0
+msgid "Expected Closing"
+msgstr "Odotettu päätös"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,ref2:0
+msgid "Reference 2"
+msgstr "Viittaus 2"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,user_email:0
+msgid "User Email"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_open:0
+msgid "Opened"
+msgstr "Avattu"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "In Progress"
+msgstr "Kesken"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,partner_name:0
+msgid ""
+"The name of the future partner company that will be created while converting "
+"the lead into opportunity"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,planned_cost:0
+msgid "Planned Costs"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,date_deadline:0
+msgid "Estimate of the date on which the opportunity will be won."
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,email_cc:0
+msgid ""
+"These email addresses will be added to the CC field of all inbound and "
+"outbound emails for this record before being sent. Separate multiple email "
+"addresses with a comma"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Low"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_closed:0
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_assign:0
+msgid "Assignation Date"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,state:0
+msgid "Status"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,email_cc:0
+msgid "Global CC"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,street2:0
+msgid "Street2"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,id:0
+msgid "ID"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,phone:0
+msgid "Phone"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,active:0
+msgid "Active"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,user_id:0
+msgid "Salesperson"
+msgstr "Myyjä"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,day_close:0
+msgid "Days to Close"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,company_ids:0
+msgid "Companies"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,section_id:0
+msgid ""
+"When sending mails, the default email address is taken from the sales team."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_address_name:0
+msgid "Partner Contact Name"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_longitude:0
+msgid "Geo Longitude"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,date_assign:0
+msgid "Last date this case was forwarded/assigned to a partner"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,email_from:0
+msgid "Email address of the contact"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,city:0
+msgid "City"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Submit"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,function:0
+msgid "Function"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,referred:0
+msgid "Referred By"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_assigned_id:0
+msgid "Assigned Partner"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,type:0
+msgid "Opportunity"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,partner_assigned_id:0
+msgid "Partner this case has been forwarded/assigned to."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,country_id:0
+msgid "Country"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Thank you"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,state:0
+msgid ""
+"The Status is set to 'Draft', when a case is created. If the case is in "
+"progress the Status is set to 'Open'. When the case is over, the Status is "
+"set to 'Done'. If the case needs to be reviewed then the Status is set to "
+"'Pending'."
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,type_id:0
+msgid ""
+"From which campaign (seminar, marketing campaign, mass mailing, ...) did "
+"this contact come from?"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "High"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,section_id:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,street:0
+msgid "Street"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_action_last:0
+msgid "Last Action"
+msgstr ""
+
+#. module: portal_crm
+#: model:ir.model,name:portal_crm.model_portal_crm_crm_contact_us
+msgid "Contact form for the portal"
+msgstr ""
diff --git a/addons/portal_crm/i18n/he.po b/addons/portal_crm/i18n/he.po
new file mode 100644
index 00000000000..b14cf413812
--- /dev/null
+++ b/addons/portal_crm/i18n/he.po
@@ -0,0 +1,546 @@
+# Hebrew translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-12-30 19:12+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Hebrew \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-31 04:47+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,type:0
+msgid "Lead"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,title:0
+msgid "Title"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,probability:0
+msgid "Success Rate (%)"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Contact us"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_action:0
+msgid "Next Action Date"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,fax:0
+msgid "Fax"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,zip:0
+msgid "Zip"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,day_open:0
+msgid "Days to Open"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Thank you for your interest, we'll respond to your request shortly."
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,mobile:0
+msgid "Mobile"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,description:0
+msgid "Notes"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,color:0
+msgid "Color Index"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_latitude:0
+msgid "Geo Latitude"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_name:0
+msgid "Customer Name"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,channel_id:0
+msgid "Communication channel (mail, direct, phone, ...)"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,type_id:0
+msgid "Campaign"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,ref:0
+msgid "Reference"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_action_next:0
+#: field:portal_crm.crm_contact_us,title_action:0
+msgid "Next Action"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,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: portal_crm
+#: field:portal_crm.crm_contact_us,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: portal_crm
+#: model:ir.actions.act_window,name:portal_crm.action_contact_us
+msgid "Contact Us"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,opt_out:0
+msgid "Opt-Out"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,state_id:0
+msgid "State"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,partner_id:0
+msgid "Linked partner (optional). Usually created when converting the lead."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,payment_mode:0
+msgid "Payment Mode"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "New"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,type:0
+msgid "Type"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,channel_id:0
+msgid "Channel"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Name"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Lowest"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,create_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Close"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,type:0
+msgid "Type is used to separate Leads and Opportunities"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,categ_ids:0
+msgid "Categories"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,stage_id:0
+msgid "Stage"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,user_login:0
+msgid "User Login"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,opt_out:0
+msgid ""
+"If opt-out is checked, this contact has refused to receive emails or "
+"unsubscribed to a campaign."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,contact_name:0
+msgid "Contact Name"
+msgstr ""
+
+#. module: portal_crm
+#: model:ir.ui.menu,name:portal_crm.portal_company_contact
+msgid "Contact"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_address_email:0
+msgid "Partner Contact Email"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,planned_revenue:0
+msgid "Expected Revenue"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,task_ids:0
+msgid "Tasks"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Contact form"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,company_currency:0
+msgid "Currency"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_deadline:0
+msgid "Expected Closing"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,ref2:0
+msgid "Reference 2"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,user_email:0
+msgid "User Email"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_open:0
+msgid "Opened"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "In Progress"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,partner_name:0
+msgid ""
+"The name of the future partner company that will be created while converting "
+"the lead into opportunity"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,planned_cost:0
+msgid "Planned Costs"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,date_deadline:0
+msgid "Estimate of the date on which the opportunity will be won."
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,email_cc:0
+msgid ""
+"These email addresses will be added to the CC field of all inbound and "
+"outbound emails for this record before being sent. Separate multiple email "
+"addresses with a comma"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Low"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_closed:0
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_assign:0
+msgid "Assignation Date"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,state:0
+msgid "Status"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,email_cc:0
+msgid "Global CC"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,street2:0
+msgid "Street2"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,id:0
+msgid "ID"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,phone:0
+msgid "Phone"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,active:0
+msgid "Active"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,user_id:0
+msgid "Salesperson"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,day_close:0
+msgid "Days to Close"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,company_ids:0
+msgid "Companies"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,section_id:0
+msgid ""
+"When sending mails, the default email address is taken from the sales team."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_address_name:0
+msgid "Partner Contact Name"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_longitude:0
+msgid "Geo Longitude"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,date_assign:0
+msgid "Last date this case was forwarded/assigned to a partner"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,email_from:0
+msgid "Email address of the contact"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,city:0
+msgid "City"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Submit"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,function:0
+msgid "Function"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,referred:0
+msgid "Referred By"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_assigned_id:0
+msgid "Assigned Partner"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,type:0
+msgid "Opportunity"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,partner_assigned_id:0
+msgid "Partner this case has been forwarded/assigned to."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,country_id:0
+msgid "Country"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Thank you"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,state:0
+msgid ""
+"The Status is set to 'Draft', when a case is created. If the case is in "
+"progress the Status is set to 'Open'. When the case is over, the Status is "
+"set to 'Done'. If the case needs to be reviewed then the Status is set to "
+"'Pending'."
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,type_id:0
+msgid ""
+"From which campaign (seminar, marketing campaign, mass mailing, ...) did "
+"this contact come from?"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "High"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,section_id:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,street:0
+msgid "Street"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_action_last:0
+msgid "Last Action"
+msgstr ""
+
+#. module: portal_crm
+#: model:ir.model,name:portal_crm.model_portal_crm_crm_contact_us
+msgid "Contact form for the portal"
+msgstr ""
diff --git a/addons/portal_gamification/__init__.py b/addons/portal_gamification/__init__.py
new file mode 100644
index 00000000000..484faca7b68
--- /dev/null
+++ b/addons/portal_gamification/__init__.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 OpenERP 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 .
+#
+##############################################################################
+
diff --git a/addons/website_customer_crm_partner_assign/__openerp__.py b/addons/portal_gamification/__openerp__.py
similarity index 66%
rename from addons/website_customer_crm_partner_assign/__openerp__.py
rename to addons/portal_gamification/__openerp__.py
index 4dcddd5ea90..e20e54be6e3 100644
--- a/addons/website_customer_crm_partner_assign/__openerp__.py
+++ b/addons/portal_gamification/__openerp__.py
@@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2013-Today OpenERP S.A. ().
+# Copyright (C) 2013 OpenERP 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
@@ -19,24 +19,24 @@
#
##############################################################################
+
{
- 'name': 'Public Customer References + Partner Assign',
- 'category': 'Website',
- 'summary': 'Add Partner Assignment Info to your Customer References',
- 'version': '1.0',
+ 'name': 'Portal Gamification',
+ 'version': '1',
+ 'category': 'Tools',
+ 'complexity': 'easy',
'description': """
-OpenERP Customer References + Partner Assign
-============================================
-""",
+This module adds security rules for gamification to allow portal users to participate to challenges
+===================================================================================================
+ """,
'author': 'OpenERP SA',
- 'depends': [
- 'crm_partner_assign',
- 'website_customer'
- ],
+ 'depends': ['gamification','portal'],
'data': [
- 'views/website_customer.xml',
+ 'security/ir.model.access.csv',
+ 'security/portal_security.xml',
],
- 'qweb': [],
'installable': True,
'auto_install': True,
+ 'category': 'Hidden',
}
+
diff --git a/addons/portal_gamification/security/ir.model.access.csv b/addons/portal_gamification/security/ir.model.access.csv
new file mode 100644
index 00000000000..1a75ab2c0ad
--- /dev/null
+++ b/addons/portal_gamification/security/ir.model.access.csv
@@ -0,0 +1,7 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+goal_portal,"Goal Portal",gamification.model_gamification_goal,base.group_portal,1,1,0,0
+goal_definition_portal,"Goal Definition Portal",gamification.model_gamification_goal_definition,base.group_portal,1,0,0,0
+challenge_portal,"Goal Challenge Portal",gamification.model_gamification_challenge,base.group_portal,1,0,0,0
+challenge_line_portal,"Challenge Line Portal",gamification.model_gamification_challenge_line,base.group_portal,1,0,0,0
+badge_portal,"Badge Portal",gamification.model_gamification_badge,base.group_portal,1,0,0,0
+badge_user_portal,"Badge-user Portal",gamification.model_gamification_badge_user,base.group_portal,1,1,1,0
diff --git a/addons/portal_gamification/security/portal_security.xml b/addons/portal_gamification/security/portal_security.xml
new file mode 100644
index 00000000000..2a233bc21ef
--- /dev/null
+++ b/addons/portal_gamification/security/portal_security.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/addons/portal_hr_employees/hr_employee.py b/addons/portal_hr_employees/hr_employee.py
index a04053eec98..4f70dc75ece 100644
--- a/addons/portal_hr_employees/hr_employee.py
+++ b/addons/portal_hr_employees/hr_employee.py
@@ -24,7 +24,6 @@ from openerp.osv import fields, osv
class crm_contact_us(osv.TransientModel):
""" Add employees list to the portal's contact page """
_inherit = 'portal_crm.crm_contact_us'
- _description = 'Contact form for the portal'
_columns = {
'employee_ids' : fields.many2many('hr.employee', string='Employees', readonly=True),
}
@@ -40,7 +39,6 @@ class crm_contact_us(osv.TransientModel):
}
class hr_employee(osv.osv):
- _description = 'Portal employee'
_inherit = 'hr.employee'
"""
diff --git a/addons/portal_project/i18n/ar.po b/addons/portal_project/i18n/ar.po
new file mode 100644
index 00000000000..8246ce2dc84
--- /dev/null
+++ b/addons/portal_project/i18n/ar.po
@@ -0,0 +1,37 @@
+# Arabic translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-11-26 22:05+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Arabic \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-27 04:37+0000\n"
+"X-Generator: Launchpad (build 16845)\n"
+
+#. module: portal_project
+#: model:ir.actions.act_window,help:portal_project.open_view_project
+msgid ""
+"
\n"
+" Click to start a new project.\n"
+"
\n"
+" "
+msgstr ""
+"
\n"
+" انقر لبدء مشروع جديد.\n"
+"
\n"
+" "
+
+#. module: portal_project
+#: model:ir.actions.act_window,name:portal_project.open_view_project
+#: model:ir.ui.menu,name:portal_project.portal_services_projects
+msgid "Projects"
+msgstr "المشروعات"
diff --git a/addons/portal_project/i18n/he.po b/addons/portal_project/i18n/he.po
new file mode 100644
index 00000000000..c28dd7b4313
--- /dev/null
+++ b/addons/portal_project/i18n/he.po
@@ -0,0 +1,33 @@
+# Hebrew translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-12-30 19:39+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Hebrew \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-31 04:47+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: portal_project
+#: model:ir.actions.act_window,help:portal_project.open_view_project
+msgid ""
+"
\n"
+" "
#. module: portal_project_issue
#: model:ir.actions.act_window,name:portal_project_issue.project_issue_categ_act0
diff --git a/addons/portal_project_issue/tests/test_access_rights.py b/addons/portal_project_issue/tests/test_access_rights.py
index f5060ccc1ff..eaa06a69538 100644
--- a/addons/portal_project_issue/tests/test_access_rights.py
+++ b/addons/portal_project_issue/tests/test_access_rights.py
@@ -20,6 +20,7 @@
##############################################################################
from openerp.addons.portal_project.tests.test_access_rights import TestPortalProjectBase
+from openerp.exceptions import AccessError
from openerp.osv.orm import except_orm
from openerp.tools import mute_logger
@@ -71,11 +72,11 @@ class TestPortalIssue(TestPortalProjectBase):
# Do: Bert reads project -> crash, no group
# Test: no project issue visible
- self.assertRaises(except_orm, self.project_issue.search, cr, self.user_none_id, [('project_id', '=', pigs_id)])
+ self.assertRaises(AccessError, self.project_issue.search, cr, self.user_none_id, [('project_id', '=', pigs_id)])
# Test: no project issue readable
- self.assertRaises(except_orm, self.project_issue.read, cr, self.user_none_id, issue_ids, ['name'])
+ self.assertRaises(AccessError, self.project_issue.read, cr, self.user_none_id, issue_ids, ['name'])
# Test: no project issue writable
- self.assertRaises(except_orm, self.project_issue.write, cr, self.user_none_id, issue_ids, {'description': 'TestDescription'})
+ self.assertRaises(AccessError, self.project_issue.write, cr, self.user_none_id, issue_ids, {'description': 'TestDescription'})
# Do: Chell reads project -> ok (portal ok public)
# Test: all project issues visible
@@ -85,7 +86,7 @@ class TestPortalIssue(TestPortalProjectBase):
# Test: all project issues readable
self.project_issue.read(cr, self.user_portal_id, issue_ids, ['name'])
# Test: no project issue writable
- self.assertRaises(except_orm, self.project_issue.write, cr, self.user_portal_id, issue_ids, {'description': 'TestDescription'})
+ self.assertRaises(AccessError, self.project_issue.write, cr, self.user_portal_id, issue_ids, {'description': 'TestDescription'})
# Do: Donovan reads project -> ok (public ok public)
# Test: all project issues visible
@@ -106,7 +107,7 @@ class TestPortalIssue(TestPortalProjectBase):
# Do: Bert reads project -> crash, no group
# Test: no project issue searchable
- self.assertRaises(except_orm, self.project_issue.search, cr, self.user_none_id, [('project_id', '=', pigs_id)])
+ self.assertRaises(AccessError, self.project_issue.search, cr, self.user_none_id, [('project_id', '=', pigs_id)])
# Data: issue follower
self.project_issue.message_subscribe_users(cr, self.user_projectuser_id, [self.issue_1_id, self.issue_3_id], [self.user_portal_id])
diff --git a/addons/portal_sale/portal_sale_data.xml b/addons/portal_sale/portal_sale_data.xml
index 2cd7ca8b501..2da55bcb081 100644
--- a/addons/portal_sale/portal_sale_data.xml
+++ b/addons/portal_sale/portal_sale_data.xml
@@ -6,13 +6,14 @@
Sales Order - Send by Email (Portal)
- ${object.user_id.email or ''}
+ ${(object.user_id.email or '')|safe}${object.company_id.name} ${object.state in ('draft', 'sent') and 'Quotation' or 'Order'} (Ref ${object.name or 'n/a' })${object.partner_invoice_id.id}${(object.name or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''}
+ ${object.partner_id.lang}
@@ -95,13 +96,14 @@
Invoice - Send by Email (Portal)
- ${object.user_id.email or object.company_id.email or 'noreply@localhost'}
+ ${(object.user_id.email or object.company_id.email or 'noreply@localhost')|safe}${object.company_id.name} Invoice (Ref ${object.number or 'n/a' })${object.partner_id.id}Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''}
+ ${object.partner_id.lang}
diff --git a/addons/process/i18n/he.po b/addons/process/i18n/he.po
new file mode 100644
index 00000000000..1e06adfb373
--- /dev/null
+++ b/addons/process/i18n/he.po
@@ -0,0 +1,379 @@
+# Hebrew translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-12-30 19:15+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Hebrew \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-31 04:47+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: process
+#: model:ir.model,name:process.model_process_node
+#: view:process.node:0
+#: view:process.process:0
+msgid "Process Node"
+msgstr ""
+
+#. module: process
+#: help:process.process,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the process "
+"without removing it."
+msgstr ""
+
+#. module: process
+#: field:process.node,menu_id:0
+msgid "Related Menu"
+msgstr ""
+
+#. module: process
+#: selection:process.node,kind:0
+msgid "Status"
+msgstr ""
+
+#. module: process
+#: field:process.transition,action_ids:0
+msgid "Buttons"
+msgstr ""
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+msgid "Group By..."
+msgstr ""
+
+#. module: process
+#: view:process.node:0
+msgid "Kind Of Node"
+msgstr ""
+
+#. module: process
+#: field:process.node,help_url:0
+msgid "Help URL"
+msgstr ""
+
+#. module: process
+#: field:process.node,flow_start:0
+msgid "Starting Flow"
+msgstr ""
+
+#. module: process
+#: model:ir.actions.act_window,name:process.action_process_node_form
+#: model:ir.ui.menu,name:process.menu_process_node_form
+#: view:process.node:0
+#: view:process.process:0
+msgid "Process Nodes"
+msgstr ""
+
+#. module: process
+#: view:process.process:0
+#: field:process.process,node_ids:0
+msgid "Nodes"
+msgstr ""
+
+#. module: process
+#: field:process.node,condition_ids:0
+#: view:process.process:0
+msgid "Conditions"
+msgstr ""
+
+#. module: process
+#: view:process.transition:0
+msgid "Search Process Transition"
+msgstr ""
+
+#. module: process
+#: field:process.condition,node_id:0
+msgid "Node"
+msgstr ""
+
+#. module: process
+#: selection:process.transition.action,state:0
+msgid "Workflow Trigger"
+msgstr ""
+
+#. module: process
+#: field:process.transition,note:0
+msgid "Description"
+msgstr ""
+
+#. module: process
+#: model:ir.model,name:process.model_process_transition_action
+msgid "Process Transitions Actions"
+msgstr ""
+
+#. module: process
+#: field:process.condition,model_id:0
+#: view:process.node:0
+#: field:process.node,model_id:0
+#: view:process.process:0
+#: field:process.process,model_id:0
+msgid "Object"
+msgstr ""
+
+#. module: process
+#: field:process.transition,source_node_id:0
+msgid "Source Node"
+msgstr ""
+
+#. module: process
+#: view:process.transition:0
+#: field:process.transition,transition_ids:0
+msgid "Workflow Transitions"
+msgstr ""
+
+#. module: process
+#. openerp-web
+#: code:addons/process/static/src/xml/process.xml:39
+#, python-format
+msgid "Last modified by:"
+msgstr ""
+
+#. module: process
+#: field:process.transition.action,action:0
+msgid "Action ID"
+msgstr ""
+
+#. module: process
+#. openerp-web
+#: code:addons/process/static/src/xml/process.xml:7
+#, python-format
+msgid "Process View"
+msgstr ""
+
+#. module: process
+#: model:ir.model,name:process.model_process_transition
+#: view:process.transition:0
+msgid "Process Transition"
+msgstr ""
+
+#. module: process
+#: model:ir.model,name:process.model_process_condition
+msgid "Condition"
+msgstr ""
+
+#. module: process
+#: selection:process.transition.action,state:0
+msgid "Dummy"
+msgstr ""
+
+#. module: process
+#: model:ir.actions.act_window,name:process.action_process_form
+#: model:ir.ui.menu,name:process.menu_process_form
+msgid "Processes"
+msgstr ""
+
+#. module: process
+#: field:process.transition.action,transition_id:0
+msgid "Transition"
+msgstr ""
+
+#. module: process
+#: field:process.condition,name:0
+#: field:process.node,name:0
+#: field:process.process,name:0
+#: field:process.transition,name:0
+#: field:process.transition.action,name:0
+msgid "Name"
+msgstr ""
+
+#. module: process
+#: field:process.node,transition_in:0
+msgid "Starting Transitions"
+msgstr ""
+
+#. module: process
+#. openerp-web
+#: code:addons/process/static/src/xml/process.xml:54
+#, python-format
+msgid "Related:"
+msgstr ""
+
+#. module: process
+#: view:process.node:0
+#: field:process.node,note:0
+#: view:process.process:0
+#: field:process.process,note:0
+#: view:process.transition:0
+msgid "Notes"
+msgstr ""
+
+#. module: process
+#. openerp-web
+#: code:addons/process/static/src/xml/process.xml:88
+#, python-format
+msgid "Edit Process"
+msgstr ""
+
+#. module: process
+#. openerp-web
+#: code:addons/process/static/src/xml/process.xml:39
+#, python-format
+msgid "N/A"
+msgstr ""
+
+#. module: process
+#: view:process.process:0
+msgid "Search Process"
+msgstr ""
+
+#. module: process
+#: field:process.process,active:0
+msgid "Active"
+msgstr ""
+
+#. module: process
+#: view:process.transition:0
+msgid "Associated Groups"
+msgstr ""
+
+#. module: process
+#: field:process.node,model_states:0
+msgid "States Expression"
+msgstr ""
+
+#. module: process
+#: selection:process.transition.action,state:0
+msgid "Action"
+msgstr ""
+
+#. module: process
+#. openerp-web
+#: code:addons/process/static/src/xml/process.xml:67
+#, python-format
+msgid "Select Process"
+msgstr ""
+
+#. module: process
+#: field:process.condition,model_states:0
+msgid "Expression"
+msgstr ""
+
+#. module: process
+#: field:process.transition,group_ids:0
+msgid "Required Groups"
+msgstr ""
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+msgid "Incoming Transitions"
+msgstr ""
+
+#. module: process
+#: field:process.transition.action,state:0
+msgid "Type"
+msgstr ""
+
+#. module: process
+#: field:process.node,transition_out:0
+msgid "Ending Transitions"
+msgstr ""
+
+#. module: process
+#. openerp-web
+#: code:addons/process/static/src/js/process.js:243
+#: code:addons/process/static/src/xml/process.xml:33
+#: model:ir.model,name:process.model_process_process
+#: field:process.node,process_id:0
+#: view:process.process:0
+#, python-format
+msgid "Process"
+msgstr ""
+
+#. module: process
+#: view:process.node:0
+msgid "Search ProcessNode"
+msgstr ""
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+msgid "Other Conditions"
+msgstr ""
+
+#. module: process
+#: model:ir.ui.menu,name:process.menu_process
+msgid "Enterprise Process"
+msgstr ""
+
+#. module: process
+#: view:process.transition:0
+msgid "Actions"
+msgstr ""
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+msgid "Properties"
+msgstr ""
+
+#. module: process
+#: model:ir.actions.act_window,name:process.action_process_transition_form
+#: model:ir.ui.menu,name:process.menu_process_transition_form
+msgid "Process Transitions"
+msgstr ""
+
+#. module: process
+#: field:process.transition,target_node_id:0
+msgid "Target Node"
+msgstr ""
+
+#. module: process
+#: field:process.node,kind:0
+msgid "Kind of Node"
+msgstr ""
+
+#. module: process
+#. openerp-web
+#: code:addons/process/static/src/xml/process.xml:42
+#, python-format
+msgid "Subflows:"
+msgstr ""
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+msgid "Outgoing Transitions"
+msgstr ""
+
+#. module: process
+#. openerp-web
+#: code:addons/process/static/src/xml/process.xml:36
+#, python-format
+msgid "Notes:"
+msgstr ""
+
+#. module: process
+#: selection:process.node,kind:0
+#: field:process.node,subflow_id:0
+msgid "Subflow"
+msgstr ""
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+msgid "Transitions"
+msgstr ""
+
+#. module: process
+#: selection:process.transition.action,state:0
+msgid "Object Method"
+msgstr ""
+
+#. module: process
+#. openerp-web
+#: code:addons/process/static/src/xml/process.xml:77
+#, python-format
+msgid "Select"
+msgstr ""
diff --git a/addons/procurement/i18n/zh_TW.po b/addons/procurement/i18n/zh_TW.po
new file mode 100644
index 00000000000..dd0d842b316
--- /dev/null
+++ b/addons/procurement/i18n/zh_TW.po
@@ -0,0 +1,1005 @@
+# Chinese (Traditional) translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-12-30 08:00+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Traditional) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-31 04:47+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: procurement
+#: model:ir.ui.menu,name:procurement.menu_stock_sched
+msgid "Schedulers"
+msgstr "排程器"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_make_procurement
+msgid "Make Procurements"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order.compute.all,automatic:0
+msgid ""
+"Triggers an automatic procurement for all products that have a virtual stock "
+"under 0. You should probably not use this option, we suggest using a MTO "
+"configuration on products."
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Group By..."
+msgstr "分組..."
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,procurement_draft_ids:0
+msgid "Draft procurement of the product and location of that orderpoint"
+msgstr ""
+
+#. module: procurement
+#: view:product.product:0
+msgid ""
+"required quantities are always\n"
+" available"
+msgstr ""
+
+#. module: procurement
+#: view:product.product:0
+msgid ""
+"If there are not enough quantities available, the delivery order\n"
+" will wait for new products. To fulfill the "
+"inventory, you should\n"
+" create others rules like orderpoints."
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,procure_method:0
+#: field:product.template,procure_method:0
+msgid "Procurement Method"
+msgstr ""
+
+#. module: procurement
+#: selection:product.template,supply_method:0
+msgid "Manufacture"
+msgstr ""
+
+#. module: procurement
+#: model:process.process,name:procurement.process_process_serviceproductprocess0
+msgid "Service"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.action_procurement_compute
+msgid "Compute Stock Minimum Rules Only"
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Rules"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,company_id:0
+#: field:stock.warehouse.orderpoint,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,product_uos_qty:0
+msgid "UoS Quantity"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Reason"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order.compute:0
+msgid "Compute Procurements"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,message:0
+msgid "Latest error"
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_min_qty:0
+msgid "Minimum Quantity"
+msgstr ""
+
+#. module: procurement
+#: help:mrp.property,composition:0
+msgid "Not used in computations, for information purpose only."
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,procurement_id:0
+msgid "Latest procurement"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,help:procurement.action_orderpoint_form
+msgid ""
+"You can define your minimum stock rules, so that OpenERP will automatically "
+"create draft manufacturing orders or purchase quotations according to the "
+"stock level. Once the virtual stock of a product (= stock on hand minus all "
+"confirmed orders and reservations) is below the minimum quantity, OpenERP "
+"will generate a procurement request to increase the stock up to the maximum "
+"quantity."
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,message:0
+msgid "Exception occurred while computing procurement orders."
+msgstr ""
+
+#. module: procurement
+#: view:product.product:0
+msgid "Products"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Permanent Procurement Exceptions"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order.compute.all:0
+msgid "Scheduler Parameters"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_stock_move
+msgid "Stock Move"
+msgstr ""
+
+#. module: procurement
+#: view:product.product:0
+msgid "Stockable products"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:138
+#, python-format
+msgid "Invalid Action!"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,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: procurement
+#: selection:procurement.order,state:0
+msgid "Ready"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order.compute.all,automatic:0
+msgid "Automatic orderpoint"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,help:procurement.procurement_exceptions
+msgid ""
+"
\n"
+" Procurement Orders represent the need for a certain quantity "
+"of products, at a given time, in a given location. Sales Orders are one "
+"typical source of Procurement Orders (but these are distinct documents). "
+"Depending on the procurement parameters and the product configuration, the "
+"procurement engine will attempt to satisfy the need by reserving products "
+"from stock, ordering products from a supplier, or passing a manufacturing "
+"order, etc. A Procurement Exception occurs when the system cannot find a way "
+"to fulfill a procurement. Some exceptions will resolve themselves "
+"automatically, but others require manual intervention (those are identified "
+"by a specific error message).\n"
+"
\n"
+" Click to create a procurement order. \n"
+"
\n"
+" A procurement order is used to record a need for a specific\n"
+" product at a specific location. Procurement orders are "
+"usually\n"
+" created automatically from sales orders, pull logistic rules "
+"or\n"
+" minimum stock rules.\n"
+"
\n"
+" When the procurement order is confirmed, it automatically\n"
+" creates the necessary operations to fullfil the need: "
+"purchase\n"
+" order proposition, manufacturing order, etc.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,procure_method:0
+msgid ""
+"If you encode manually a Procurement, you probably want to use a make to "
+"order method."
+msgstr ""
+
+#. module: procurement
+#: model:ir.ui.menu,name:procurement.menu_stock_procurement
+msgid "Automatic Procurements"
+msgstr ""
+
+#. module: procurement
+#: view:product.product:0
+msgid ""
+"use the available\n"
+" inventory"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order
+#: model:process.process,name:procurement.process_process_procurementprocess0
+#: view:procurement.order:0
+msgid "Procurement"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action
+msgid "Procurement Orders"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "To Fix"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Exceptions"
+msgstr ""
+
+#. module: procurement
+#: model:process.node,note:procurement.process_node_serviceonorder0
+msgid "Assignment from Production or Purchase Order."
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_mrp_property
+msgid "Property"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.act_make_procurement
+#: view:make.procurement:0
+msgid "Procurement Request"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.orderpoint.compute:0
+msgid "Compute Stock"
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,procurement_draft_ids:0
+msgid "Related Procurement Orders"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "plus"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,state:0
+msgid ""
+"When a procurement is created the status is set to 'Draft'.\n"
+" If the procurement is confirmed, the status is set to 'Confirmed'. "
+" \n"
+"After confirming the status is set to 'Running'.\n"
+" If any exception arises in the order then the status is set to "
+"'Exception'.\n"
+" Once the exception is removed the status becomes 'Ready'.\n"
+" It is in 'Waiting'. status when the procurement is waiting for another one "
+"to finish."
+msgstr ""
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the "
+"orderpoint without removing it."
+msgstr ""
+
+#. module: procurement
+#: view:product.product:0
+msgid ""
+"When you sell this service, nothing special will be triggered\n"
+" to deliver the customer, as you set the "
+"procurement method as\n"
+" 'Make to Stock'."
+msgstr ""
+
+#. module: procurement
+#: help:procurement.orderpoint.compute,automatic:0
+msgid "If the stock of a product is under 0, it will act like an orderpoint"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,product_uom:0
+#: field:stock.warehouse.orderpoint,product_uom:0
+msgid "Product Unit of Measure"
+msgstr ""
+
+#. module: procurement
+#: constraint:stock.warehouse.orderpoint:0
+msgid ""
+"You have to select a product unit of measure in the same category than the "
+"default unit of measure of the product"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement Lines"
+msgstr ""
+
+#. module: procurement
+#: view:product.product:0
+msgid ""
+"as it's a consumable (as a result of this, the quantity\n"
+" on hand may become negative)."
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,note:0
+msgid "Note"
+msgstr ""
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,product_min_qty:0
+msgid ""
+"When the virtual stock goes below the Min Quantity specified for this field, "
+"OpenERP generates a procurement to bring the forecasted quantity to the Max "
+"Quantity."
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.action_compute_schedulers
+#: model:ir.ui.menu,name:procurement.menu_stock_proc_schedulers
+#: view:procurement.order.compute.all:0
+msgid "Run Schedulers"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order.compute:0
+msgid "This wizard will schedule procurements."
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+#: field:procurement.order,state:0
+msgid "Status"
+msgstr ""
+
+#. module: procurement
+#: selection:product.template,supply_method:0
+msgid "Buy"
+msgstr ""
+
+#. module: procurement
+#: view:product.product:0
+msgid "for the delivery order."
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: procurement
+#: help:product.template,supply_method:0
+msgid ""
+"Manufacture: When procuring the product, a manufacturing order or a task "
+"will be generated, depending on the product type. \n"
+"Buy: When procuring the product, a purchase order will be generated."
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_max_qty:0
+msgid "Maximum Quantity"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:367
+#, python-format
+msgid "Not enough stock."
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,active:0
+msgid "Active"
+msgstr ""
+
+#. module: procurement
+#: model:process.node,name:procurement.process_node_procureproducts0
+msgid "Procure Products"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:312
+#, python-format
+msgid ""
+"Please check the quantity in procurement order(s) for the product \"%s\", it "
+"should not be 0 or less!"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,date_planned:0
+msgid "Scheduled date"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Exception"
+msgstr ""
+
+#. module: procurement
+#: view:product.product:0
+msgid ""
+"When you sell this product, a delivery order will be created.\n"
+" OpenERP will consider that the"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/schedulers.py:133
+#, python-format
+msgid "Automatic OP: %s"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_orderpoint_compute
+msgid "Automatic Order Point"
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,qty_multiple:0
+msgid "Qty Multiple"
+msgstr ""
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,qty_multiple:0
+msgid "The procurement quantity will be rounded up to this multiple."
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Extra Information"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: procurement
+#: sql_constraint:stock.warehouse.orderpoint:0
+msgid "Qty Multiple must be greater than zero."
+msgstr ""
+
+#. module: procurement
+#: selection:stock.warehouse.orderpoint,logic:0
+msgid "Order to Max"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,date_close:0
+msgid "Date Closed"
+msgstr ""
+
+#. module: procurement
+#: view:res.company:0
+msgid "Logistics"
+msgstr ""
+
+#. module: procurement
+#: help:product.template,procure_method:0
+msgid ""
+"Make to Stock: When needed, the product is taken from the stock or we wait "
+"for replenishment. \n"
+"Make to Order: When needed, the product is purchased or produced."
+msgstr ""
+
+#. module: procurement
+#: field:mrp.property,composition:0
+msgid "Properties composition"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:311
+#, python-format
+msgid "Data Insufficient !"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_mrp_property_group
+#: field:mrp.property,group_id:0
+#: field:mrp.property.group,name:0
+msgid "Property Group"
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Misc"
+msgstr ""
+
+#. module: procurement
+#: field:stock.move,procurements:0
+msgid "Procurements"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Run Procurement"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Done"
+msgstr ""
+
+#. module: procurement
+#: view:make.procurement:0
+#: view:procurement.order.compute:0
+#: view:procurement.order.compute.all:0
+#: view:procurement.orderpoint.compute:0
+msgid "Cancel"
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,logic:0
+msgid "Reordering Mode"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,origin:0
+msgid "Source Document"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Not urgent"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.product_open_orderpoint
+#: view:product.product:0
+msgid "Orderpoints"
+msgstr ""
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,product_max_qty:0
+msgid ""
+"When the virtual stock goes below the Min Quantity, OpenERP generates a "
+"procurement to bring the forecasted quantity to the Quantity specified as "
+"Max Quantity."
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order_compute_all
+msgid "Compute all schedulers"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Late"
+msgstr ""
+
+#. module: procurement
+#: view:board.board:0
+msgid "Procurements in Exception"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action5
+#: model:ir.actions.act_window,name:procurement.procurement_action_board
+#: model:ir.actions.act_window,name:procurement.procurement_exceptions
+#: model:ir.ui.menu,name:procurement.menu_stock_procurement_action
+#: view:procurement.order:0
+msgid "Procurement Exceptions"
+msgstr ""
+
+#. module: procurement
+#: field:product.product,orderpoint_ids:0
+msgid "Minimum Stock Rules"
+msgstr ""
+
+#. module: procurement
+#: view:make.procurement:0
+msgid ""
+"Fill is this for to launch a procurement request for this\n"
+" product. According to the product configuration, "
+"this may\n"
+" trigger a draft purchase order, a manufacturing "
+"order or\n"
+" a new task."
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,close_move:0
+msgid "Close Move at end"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Scheduled Date"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_product_product
+#: field:make.procurement,product_id:0
+#: view:procurement.order:0
+#: field:procurement.order,product_id:0
+#: field:stock.warehouse.orderpoint,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Temporary"
+msgstr ""
+
+#. module: procurement
+#: field:mrp.property,description:0
+#: field:mrp.property.group,description:0
+#: field:procurement.order,name:0
+msgid "Description"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Urgent"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Running"
+msgstr ""
+
+#. module: procurement
+#: model:process.node,name:procurement.process_node_serviceonorder0
+#: selection:procurement.order,procure_method:0
+#: selection:product.template,procure_method:0
+msgid "Make to Order"
+msgstr ""
+
+#. module: procurement
+#: field:product.template,supply_method:0
+msgid "Supply Method"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,move_id:0
+msgid "Reservation"
+msgstr ""
+
+#. module: procurement
+#: model:process.node,note:procurement.process_node_procureproducts0
+msgid "The way to procurement depends on the product type."
+msgstr ""
+
+#. module: procurement
+#: view:product.product:0
+msgid "When you sell this product, OpenERP will"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Temporary Procurement Exceptions"
+msgstr ""
+
+#. module: procurement
+#: field:mrp.property,name:0
+#: field:stock.warehouse.orderpoint,name:0
+msgid "Name"
+msgstr ""
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "max"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.act_procurement_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.act_stock_warehouse_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.action_orderpoint_form
+#: model:ir.ui.menu,name:procurement.menu_stock_order_points
+#: view:stock.warehouse.orderpoint:0
+msgid "Reordering Rules"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:139
+#, python-format
+msgid "Cannot delete Procurement Order(s) which are in %s state."
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,product_uos:0
+msgid "Product UoS"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_product_template
+msgid "Product Template"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.orderpoint.compute:0
+msgid ""
+"Wizard checks all the stock minimum rules and generate procurement order."
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Search Procurement"
+msgstr ""
+
+#. module: procurement
+#: help:res.company,schedule_range:0
+msgid ""
+"This is the time frame analysed by the scheduler when computing "
+"procurements. All procurements that are not between today and today+range "
+"are skipped for future computation."
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Very Urgent"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.orderpoint.compute,automatic:0
+msgid "Automatic Orderpoint"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement started late"
+msgstr ""
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "min"
+msgstr ""
+
+#. module: procurement
+#: view:make.procurement:0
+#: view:procurement.order.compute:0
+#: view:procurement.order.compute.all:0
+#: view:procurement.orderpoint.compute:0
+msgid "or"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/schedulers.py:134
+#, python-format
+msgid "SCHEDULER"
+msgstr ""
+
+#. module: procurement
+#: view:product.product:0
+msgid "Request Procurement"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/schedulers.py:87
+#, python-format
+msgid "PROC %d: on order - %3.2f %-5s - %s"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:339
+#, python-format
+msgid "Products reserved from stock."
+msgstr ""
diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py
index 032952aa511..5e3f8b54752 100644
--- a/addons/procurement/procurement.py
+++ b/addons/procurement/procurement.py
@@ -24,7 +24,7 @@ import time
from openerp.osv import fields, osv
from openerp.tools.translate import _
-from openerp import netsvc
+from openerp import workflow
import openerp.addons.decimal_precision as dp
# Procurement
@@ -181,10 +181,6 @@ class procurement_order(osv.osv):
"""
return all(procurement.move_id.state == 'cancel' for procurement in self.browse(cr, uid, ids, context=context))
- #This Function is create to avoid a server side Error Like 'ERROR:tests.mrp:name 'check_move' is not defined'
- def check_move(self, cr, uid, ids, context=None):
- pass
-
def check_move_done(self, cr, uid, ids, context=None):
""" Checks if move is done or not.
@return: True or False.
@@ -297,6 +293,12 @@ class procurement_order(osv.osv):
"""
return False
+ def check_move(self, cr, uid, ids, context=None):
+ """ Check whether the given procurement can be satisfied by an internal move,
+ typically a pulled flow. By default, it's False. Overwritten by the `stock_location` module.
+ """
+ return False
+
def check_conditions_confirm2wait(self, cr, uid, ids):
""" condition on the transition to go from 'confirm' activity to 'confirm_wait' activity """
return not self.test_cancel(cr, uid, ids)
@@ -439,9 +441,8 @@ class procurement_order(osv.osv):
if len(to_assign):
move_obj.write(cr, uid, to_assign, {'state': 'assigned'})
self.write(cr, uid, ids, {'state': 'cancel'})
- wf_service = netsvc.LocalService("workflow")
for id in ids:
- wf_service.trg_trigger(uid, 'procurement.order', id, cr)
+ workflow.trg_trigger(uid, 'procurement.order', id, cr)
return True
def action_check_finished(self, cr, uid, ids):
@@ -475,9 +476,8 @@ class procurement_order(osv.osv):
if procurement.close_move and (procurement.move_id.state <> 'done'):
move_obj.action_done(cr, uid, [procurement.move_id.id])
res = self.write(cr, uid, ids, {'state': 'done', 'date_close': time.strftime('%Y-%m-%d')})
- wf_service = netsvc.LocalService("workflow")
for id in ids:
- wf_service.trg_trigger(uid, 'procurement.order', id, cr)
+ workflow.trg_trigger(uid, 'procurement.order', id, cr)
return res
class StockPicking(osv.osv):
diff --git a/addons/procurement/procurement_data.xml b/addons/procurement/procurement_data.xml
index 52503e76c44..d8bd6c37dc3 100644
--- a/addons/procurement/procurement_data.xml
+++ b/addons/procurement/procurement_data.xml
@@ -14,6 +14,18 @@
+
+ Run fast mrp scheduler (without exception)
+
+
+ 4
+ hours
+ -1
+
+
+
+
+ Stock orderpoint
diff --git a/addons/procurement/procurement_workflow.xml b/addons/procurement/procurement_workflow.xml
index 76b54370ef2..d4068a6eada 100644
--- a/addons/procurement/procurement_workflow.xml
+++ b/addons/procurement/procurement_workflow.xml
@@ -147,13 +147,15 @@
- not check_produce() and not check_buy()
+ not check_produce() and not check_buy() and not check_move()
diff --git a/addons/procurement/schedulers.py b/addons/procurement/schedulers.py
index 6f326ccf1c5..d82fa94c132 100644
--- a/addons/procurement/schedulers.py
+++ b/addons/procurement/schedulers.py
@@ -32,17 +32,17 @@ from openerp import tools
class procurement_order(osv.osv):
_inherit = 'procurement.order'
- def run_scheduler(self, cr, uid, automatic=False, use_new_cursor=False, context=None):
+ def run_scheduler(self, cr, uid, automatic=False, use_new_cursor=False, skip_exception=False, context=None):
''' Runs through scheduler.
@param use_new_cursor: False or the dbname
'''
if use_new_cursor:
use_new_cursor = cr.dbname
- self._procure_confirm(cr, uid, use_new_cursor=use_new_cursor, context=context)
+ self._procure_confirm(cr, uid, use_new_cursor=use_new_cursor, skip_exception=skip_exception, context=context)
self._procure_orderpoint_confirm(cr, uid, automatic=automatic,\
use_new_cursor=use_new_cursor, context=context)
- def _procure_confirm(self, cr, uid, ids=None, use_new_cursor=False, context=None):
+ def _procure_confirm(self, cr, uid, ids=None, use_new_cursor=False, skip_exception=False, context=None):
'''
Call the scheduler to check the procurement order
@@ -51,6 +51,7 @@ class procurement_order(osv.osv):
@param uid: The current user ID for security checks
@param ids: List of selected IDs
@param use_new_cursor: False or the dbname
+ @param skip_exception: boolean
@param context: A standard dictionary for contextual values
@return: Dictionary of values
'''
@@ -61,19 +62,15 @@ class procurement_order(osv.osv):
cr = openerp.registry(use_new_cursor).db.cursor()
procurement_obj = self.pool.get('procurement.order')
- if not ids:
- ids = procurement_obj.search(cr, uid, [('state', '=', 'exception')], order="date_planned")
- self.signal_button_restart(cr, uid, ids)
- if use_new_cursor:
- cr.commit()
+ if not skip_exception:
+ if not ids:
+ ids = procurement_obj.search(cr, uid, [('state', '=', 'exception')], order="date_planned")
+ self.signal_button_restart(cr, uid, ids)
+ if use_new_cursor:
+ cr.commit()
company = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id
maxdate = (datetime.today() + relativedelta(days=company.schedule_range)).strftime(tools.DEFAULT_SERVER_DATE_FORMAT)
- start_date = fields.datetime.now()
offset = 0
- report = []
- report_total = 0
- report_except = 0
- report_later = 0
while True:
ids = procurement_obj.search(cr, uid, [('state', '=', 'confirmed'), ('procure_method', '=', 'make_to_order')], offset=offset, limit=500, order='priority, date_planned', context=context)
for proc in procurement_obj.browse(cr, uid, ids, context=context):
@@ -81,14 +78,7 @@ class procurement_order(osv.osv):
self.signal_button_check(cr, uid, [proc.id])
else:
offset += 1
- report_later += 1
- if proc.state == 'exception':
- report.append(_('PROC %d: on order - %3.2f %-5s - %s') % \
- (proc.id, proc.product_qty, proc.product_uom.name,
- proc.product_id.name))
- report_except += 1
- report_total += 1
if use_new_cursor:
cr.commit()
if not ids:
@@ -102,22 +92,11 @@ class procurement_order(osv.osv):
if maxdate >= proc.date_planned:
self.signal_button_check(cr, uid, [proc.id])
report_ids.append(proc.id)
- else:
- report_later += 1
- report_total += 1
-
- if proc.state == 'exception':
- report.append(_('PROC %d: from stock - %3.2f %-5s - %s') % \
- (proc.id, proc.product_qty, proc.product_uom.name,
- proc.product_id.name,))
- report_except += 1
-
if use_new_cursor:
cr.commit()
offset += len(ids)
if not ids: break
- end_date = fields.datetime.now()
if use_new_cursor:
cr.commit()
diff --git a/addons/product/__openerp__.py b/addons/product/__openerp__.py
index bc08311fb80..6f9b9ab08f8 100644
--- a/addons/product/__openerp__.py
+++ b/addons/product/__openerp__.py
@@ -26,7 +26,10 @@
'author': 'OpenERP SA',
'category': 'Sales Management',
'depends': ['base', 'process', 'decimal_precision', 'mail'],
- 'demo': ['product_demo.xml', 'product_image_demo.xml'],
+ 'demo': [
+ 'product_demo.xml',
+ 'product_image_demo.xml',
+ ],
'description': """
This is the base module for managing products and pricelists in OpenERP.
========================================================================
diff --git a/addons/product/i18n/am.po b/addons/product/i18n/am.po
new file mode 100644
index 00000000000..466eca830fc
--- /dev/null
+++ b/addons/product/i18n/am.po
@@ -0,0 +1,2475 @@
+# Amharic translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-11-29 09:01+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Amharic \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-30 05:04+0000\n"
+"X-Generator: Launchpad (build 16856)\n"
+
+#. module: product
+#: field:product.packaging,rows:0
+msgid "Number of Layers"
+msgstr ""
+
+#. module: product
+#: help:product.pricelist.item,base:0
+msgid "Base price for computation."
+msgstr ""
+
+#. module: product
+#: help:product.product,seller_qty:0
+msgid "This is minimum quantity to purchase from Main Supplier."
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_34_product_template
+msgid "Webcam"
+msgstr "የዌብ ካሜራ"
+
+#. module: product
+#: field:product.product,incoming_qty:0
+msgid "Incoming"
+msgstr "የሚመጣው"
+
+#. module: product
+#: view:product.product:0
+msgid "Product Name"
+msgstr "የእቃው ስም"
+
+#. module: product
+#: view:product.template:0
+msgid "Second Unit of Measure"
+msgstr ""
+
+#. module: product
+#: help:res.partner,property_product_pricelist:0
+msgid ""
+"This pricelist will be used, instead of the default one, for sales to the "
+"current partner"
+msgstr ""
+
+#. module: product
+#: field:product.product,seller_qty:0
+msgid "Supplier Quantity"
+msgstr "ብዛት"
+
+#. module: product
+#: selection:product.template,mes_type:0
+msgid "Fixed"
+msgstr "ቛሚ"
+
+#. module: product
+#: model:product.template,name:product.product_product_10_product_template
+msgid "Mouse, Optical"
+msgstr ""
+
+#. module: product
+#: view:product.template:0
+msgid "Base Prices"
+msgstr "ዋጋ"
+
+#. module: product
+#: field:product.pricelist.item,name:0
+msgid "Rule Name"
+msgstr ""
+
+#. module: product
+#: help:product.template,list_price:0
+msgid ""
+"Base price to compute the customer price. Sometimes called the catalog price."
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_3_product_template
+msgid "PC Assemble SC234"
+msgstr ""
+
+#. module: product
+#: help:product.product,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: product
+#: code:addons/product/pricelist.py:179
+#: code:addons/product/product.py:208
+#, python-format
+msgid "Warning!"
+msgstr "ማስጠንቀቅያ!"
+
+#. module: product
+#: field:product.product,image_small:0
+msgid "Small-sized image"
+msgstr ""
+
+#. module: product
+#: code:addons/product/product.py:176
+#, python-format
+msgid ""
+"Conversion from Product UoM %s to Default UoM %s is not possible as they "
+"both belong to different Category!."
+msgstr ""
+
+#. module: product
+#: selection:product.template,cost_method:0
+msgid "Average Price"
+msgstr ""
+
+#. module: product
+#: help:product.pricelist.item,name:0
+msgid "Explicit rule name for this pricelist line."
+msgstr ""
+
+#. module: product
+#: field:product.template,uos_coeff:0
+msgid "Unit of Measure -> UOS Coeff"
+msgstr ""
+
+#. module: product
+#: field:product.price_list,price_list:0
+msgid "PriceList"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_4_product_template
+msgid "PC Assemble SC349"
+msgstr ""
+
+#. module: product
+#: help:product.product,seller_delay:0
+msgid ""
+"This is the average delay in days between the purchase order confirmation "
+"and the reception of goods for this product and for the default supplier. It "
+"is used by the scheduler to order requests based on reordering delays."
+msgstr ""
+
+#. module: product
+#: model:product.pricelist.version,name:product.ver0
+msgid "Default Public Pricelist Version"
+msgstr ""
+
+#. module: product
+#: selection:product.template,cost_method:0
+msgid "Standard Price"
+msgstr ""
+
+#. module: product
+#: model:product.pricelist.type,name:product.pricelist_type_sale
+#: field:res.partner,property_product_pricelist:0
+msgid "Sale Pricelist"
+msgstr ""
+
+#. module: product
+#: view:product.template:0
+#: field:product.template,type:0
+msgid "Product Type"
+msgstr ""
+
+#. module: product
+#: code:addons/product/product.py:412
+#, python-format
+msgid "Products: "
+msgstr ""
+
+#. module: product
+#: constraint:decimal.precision:0
+msgid ""
+"Error! You cannot define the decimal precision of 'Account' as greater than "
+"the rounding factor of the company's main currency"
+msgstr ""
+
+#. module: product
+#: field:product.category,parent_id:0
+msgid "Parent Category"
+msgstr ""
+
+#. module: product
+#: model:product.template,description:product.product_product_33_product_template
+msgid "Headset for laptop PC with USB connector."
+msgstr ""
+
+#. module: product
+#: model:product.category,name:product.product_category_all
+msgid "All products"
+msgstr ""
+
+#. module: product
+#: model:process.node,note:product.process_node_supplier0
+msgid "Supplier name, price, product code, ..."
+msgstr ""
+
+#. module: product
+#: constraint:res.currency:0
+msgid ""
+"Error! You cannot define a rounding factor for the company's main currency "
+"that is smaller than the decimal precision of 'Account'."
+msgstr ""
+
+#. module: product
+#: help:product.product,outgoing_qty:0
+msgid ""
+"Quantity of products that are planned to leave.\n"
+"In a context with a single Stock Location, this includes goods leaving this "
+"Location, or any of its children.\n"
+"In a context with a single Warehouse, this includes goods leaving the Stock "
+"Location of this Warehouse, or any of its children.\n"
+"In a context with a single Shop, this includes goods leaving the Stock "
+"Location of the Warehouse of this Shop, or any of its children.\n"
+"Otherwise, this includes goods leaving any Stock Location with 'internal' "
+"type."
+msgstr ""
+
+#. module: product
+#: model:product.template,description_sale:product.product_product_42_product_template
+msgid ""
+"Office Editing Software with word processing, spreadsheets, presentations, "
+"graphics, and databases..."
+msgstr ""
+
+#. module: product
+#: field:product.product,seller_id:0
+msgid "Main Supplier"
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_ul_form_action
+#: model:ir.model,name:product.model_product_packaging
+#: model:ir.ui.menu,name:product.menu_product_ul_form_action
+#: view:product.packaging:0
+#: view:product.product:0
+#: view:product.ul:0
+msgid "Packaging"
+msgstr ""
+
+#. module: product
+#: help:product.product,active:0
+msgid ""
+"If unchecked, it will allow you to hide the product without removing it."
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+#: field:product.template,categ_id:0
+#: field:product.uom,category_id:0
+msgid "Category"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_25_product_template
+msgid "Laptop E5023"
+msgstr ""
+
+#. module: product
+#: help:product.packaging,ul_qty:0
+msgid "The number of packages by layer"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_30_product_template
+msgid "Pen drive, SP-4"
+msgstr ""
+
+#. module: product
+#: field:product.packaging,qty:0
+msgid "Quantity by Package"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_29_product_template
+msgid "Pen drive, SP-2"
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+#: field:product.template,state:0
+msgid "Status"
+msgstr ""
+
+#. module: product
+#: help:product.template,categ_id:0
+msgid "Select category for the current product"
+msgstr ""
+
+#. module: product
+#: field:product.product,outgoing_qty:0
+msgid "Outgoing"
+msgstr ""
+
+#. module: product
+#: model:product.price.type,name:product.list_price
+#: field:product.product,lst_price:0
+msgid "Public Price"
+msgstr ""
+
+#. module: product
+#: field:product.price_list,qty5:0
+msgid "Quantity-5"
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,help:product.product_ul_form_action
+msgid ""
+"
\n"
+" Click to add a new packaging type.\n"
+"
\n"
+" The packaging type define the dimensions as well as the "
+"number\n"
+" of products per package. This will ensure salesperson sell "
+"the\n"
+" right number of products according to the package selected.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: product
+#: field:product.template,product_manager:0
+msgid "Product Manager"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_7_product_template
+msgid "17” LCD Monitor"
+msgstr ""
+
+#. module: product
+#: field:product.supplierinfo,product_name:0
+msgid "Supplier Product Name"
+msgstr ""
+
+#. module: product
+#: view:product.pricelist:0
+msgid "Products Price Search"
+msgstr ""
+
+#. module: product
+#: view:product.template:0
+#: field:product.template,description_sale:0
+msgid "Sale Description"
+msgstr ""
+
+#. module: product
+#: help:product.packaging,length:0
+msgid "The length of the package"
+msgstr ""
+
+#. module: product
+#: field:product.product,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: product
+#: help:product.template,weight_net:0
+msgid "The net weight in Kg."
+msgstr ""
+
+#. module: product
+#: field:pricelist.partnerinfo,min_quantity:0
+#: field:product.supplierinfo,qty:0
+msgid "Quantity"
+msgstr ""
+
+#. module: product
+#: view:product.price_list:0
+msgid "Calculate Product Price per Unit Based on Pricelist Version."
+msgstr ""
+
+#. module: product
+#: help:product.pricelist.item,product_id:0
+msgid ""
+"Specify a product if this rule only applies to one product. Keep empty "
+"otherwise."
+msgstr ""
+
+#. module: product
+#: model:product.uom.categ,name:product.product_uom_categ_kgm
+msgid "Weight"
+msgstr ""
+
+#. module: product
+#: help:product.product,virtual_available:0
+msgid ""
+"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n"
+"In a context with a single Stock Location, this includes goods stored in "
+"this location, or any of its children.\n"
+"In a context with a single Warehouse, this includes goods stored in the "
+"Stock Location of this Warehouse, or any of its children.\n"
+"In a context with a single Shop, this includes goods stored in the Stock "
+"Location of the Warehouse of this Shop, or any of its children.\n"
+"Otherwise, this includes goods stored in any Stock Location with 'internal' "
+"type."
+msgstr ""
+
+#. module: product
+#: field:product.packaging,height:0
+msgid "Height"
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+msgid "Procurements"
+msgstr ""
+
+#. module: product
+#: model:res.groups,name:product.group_mrp_properties
+msgid "Manage Properties of Product"
+msgstr ""
+
+#. module: product
+#: help:product.uom,factor:0
+msgid ""
+"How much bigger or smaller this unit is compared to the reference Unit of "
+"Measure for this category:\n"
+"1 * (reference unit) = ratio * (this unit)"
+msgstr ""
+
+#. module: product
+#: model:ir.model,name:product.model_pricelist_partnerinfo
+msgid "pricelist.partnerinfo"
+msgstr ""
+
+#. module: product
+#: field:product.price_list,qty2:0
+msgid "Quantity-2"
+msgstr ""
+
+#. module: product
+#: field:product.price_list,qty3:0
+msgid "Quantity-3"
+msgstr ""
+
+#. module: product
+#: field:product.price_list,qty1:0
+msgid "Quantity-1"
+msgstr ""
+
+#. module: product
+#: field:product.price_list,qty4:0
+msgid "Quantity-4"
+msgstr ""
+
+#. module: product
+#: view:res.partner:0
+msgid "Sales & Purchases"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_44_product_template
+msgid "GrapWorks Software"
+msgstr ""
+
+#. module: product
+#: model:product.uom.categ,name:product.uom_categ_wtime
+msgid "Working Time"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_42_product_template
+msgid "Office Suite"
+msgstr ""
+
+#. module: product
+#: field:product.template,mes_type:0
+msgid "Measure Type"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_32_product_template
+msgid "Headset standard"
+msgstr ""
+
+#. module: product
+#: model:product.uom,name:product.product_uom_day
+msgid "Day(s)"
+msgstr ""
+
+#. module: product
+#: help:product.product,incoming_qty:0
+msgid ""
+"Quantity of products that are planned to arrive.\n"
+"In a context with a single Stock Location, this includes goods arriving to "
+"this Location, or any of its children.\n"
+"In a context with a single Warehouse, this includes goods arriving to the "
+"Stock Location of this Warehouse, or any of its children.\n"
+"In a context with a single Shop, this includes goods arriving to the Stock "
+"Location of the Warehouse of this Shop, or any of its children.\n"
+"Otherwise, this includes goods arriving to any Stock Location with "
+"'internal' type."
+msgstr ""
+
+#. module: product
+#: constraint:product.template:0
+msgid ""
+"Error: The default Unit of Measure and the purchase Unit of Measure must be "
+"in the same category."
+msgstr ""
+
+#. module: product
+#: model:ir.model,name:product.model_product_uom_categ
+msgid "Product uom categ"
+msgstr ""
+
+#. module: product
+#: model:product.ul,name:product.product_ul_box
+msgid "Box 20x20x40"
+msgstr ""
+
+#. module: product
+#: field:product.template,warranty:0
+msgid "Warranty"
+msgstr ""
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "Price Computation"
+msgstr ""
+
+#. module: product
+#: constraint:product.product:0
+msgid ""
+"You provided an invalid \"EAN13 Barcode\" reference. You may use the "
+"\"Internal Reference\" field instead."
+msgstr ""
+
+#. module: product
+#: model:res.groups,name:product.group_purchase_pricelist
+msgid "Purchase Pricelists"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_5_product_template
+msgid "PC Assemble + Custom (PC on Demand)"
+msgstr ""
+
+#. module: product
+#: model:product.template,description:product.product_product_27_product_template
+msgid "Custom Laptop based on customer's requirement."
+msgstr ""
+
+#. module: product
+#: help:product.packaging,width:0
+msgid "The width of the package"
+msgstr ""
+
+#. module: product
+#: code:addons/product/product.py:361
+#, python-format
+msgid "Unit of Measure categories Mismatch!"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_36_product_template
+msgid "Blank DVD-RW"
+msgstr ""
+
+#. module: product
+#: selection:product.category,type:0
+msgid "View"
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_template_action_tree
+msgid "Product Templates"
+msgstr ""
+
+#. module: product
+#: field:product.category,parent_left:0
+msgid "Left Parent"
+msgstr ""
+
+#. module: product
+#: help:product.pricelist.item,price_max_margin:0
+msgid "Specify the maximum amount of margin over the base price."
+msgstr ""
+
+#. module: product
+#: constraint:product.pricelist.item:0
+msgid ""
+"Error! You cannot assign the Main Pricelist as Other Pricelist in PriceList "
+"Item!"
+msgstr ""
+
+#. module: product
+#: view:product.price_list:0
+msgid "or"
+msgstr ""
+
+#. module: product
+#: constraint:product.packaging:0
+msgid "Error: Invalid ean code"
+msgstr ""
+
+#. module: product
+#: field:product.pricelist.item,min_quantity:0
+msgid "Min. Quantity"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_12_product_template
+msgid "Mouse, Wireless"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_22_product_template
+msgid "Processor Core i5 2.70 Ghz"
+msgstr ""
+
+#. module: product
+#: model:ir.model,name:product.model_product_price_type
+msgid "Price Type"
+msgstr ""
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "Max. Margin"
+msgstr ""
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "Base Price"
+msgstr ""
+
+#. module: product
+#: help:product.supplierinfo,name:0
+msgid "Supplier of this product"
+msgstr ""
+
+#. module: product
+#: help:product.pricelist.version,active:0
+msgid ""
+"When a version is duplicated it is set to non active, so that the dates do "
+"not overlaps with original version. You should change the dates and "
+"reactivate the pricelist"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_18_product_template
+msgid "HDD SH-2"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_17_product_template
+msgid "HDD SH-1"
+msgstr ""
+
+#. module: product
+#: field:product.supplierinfo,name:0
+#: field:product.template,seller_ids:0
+msgid "Supplier"
+msgstr ""
+
+#. module: product
+#: help:product.template,cost_method:0
+msgid ""
+"Standard Price: The cost price is manually updated at the end of a specific "
+"period (usually every year). \n"
+"Average Price: The cost price is recomputed at each incoming shipment."
+msgstr ""
+
+#. module: product
+#: field:product.product,qty_available:0
+msgid "Quantity On Hand"
+msgstr ""
+
+#. module: product
+#: field:product.price.type,name:0
+msgid "Price Name"
+msgstr ""
+
+#. module: product
+#: help:product.product,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: product
+#: field:product.product,ean13:0
+msgid "EAN13 Barcode"
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,name:product.action_product_price_list
+#: model:ir.model,name:product.model_product_price_list
+#: view:product.price_list:0
+#: report:product.pricelist:0
+#: field:product.pricelist.version,pricelist_id:0
+msgid "Price List"
+msgstr ""
+
+#. module: product
+#: field:product.product,virtual_available:0
+msgid "Forecasted Quantity"
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+msgid "Purchase"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_33_product_template
+msgid "Headset USB"
+msgstr ""
+
+#. module: product
+#: view:product.template:0
+msgid "Suppliers"
+msgstr ""
+
+#. module: product
+#: model:res.groups,name:product.group_sale_pricelist
+msgid "Sales Pricelists"
+msgstr ""
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "New Price ="
+msgstr ""
+
+#. module: product
+#: model:product.category,name:product.product_category_7
+msgid "Accessories"
+msgstr ""
+
+#. module: product
+#: model:process.transition,name:product.process_transition_supplierofproduct0
+msgid "Supplier of the product"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_28_product_template
+msgid "External Hard disk"
+msgstr ""
+
+#. module: product
+#: help:product.template,standard_price:0
+msgid ""
+"Cost price of the product used for standard stock valuation in accounting "
+"and used as a base price on purchase orders."
+msgstr ""
+
+#. module: product
+#: field:product.category,child_id:0
+msgid "Child Categories"
+msgstr ""
+
+#. module: product
+#: field:product.pricelist.version,date_end:0
+msgid "End Date"
+msgstr ""
+
+#. module: product
+#: model:product.uom,name:product.product_uom_litre
+msgid "Liter(s)"
+msgstr ""
+
+#. module: product
+#: view:product.price_list:0
+msgid "Print"
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+#: field:product.ul,type:0
+#: field:product.uom,uom_type:0
+msgid "Type"
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_pricelist_action2
+#: model:ir.actions.act_window,name:product.product_pricelist_action_for_purchase
+#: model:ir.ui.menu,name:product.menu_product_pricelist_action2
+#: model:ir.ui.menu,name:product.menu_product_pricelist_main
+msgid "Pricelists"
+msgstr ""
+
+#. module: product
+#: field:product.product,partner_ref:0
+msgid "Customer ref"
+msgstr ""
+
+#. module: product
+#: field:product.pricelist.type,key:0
+msgid "Key"
+msgstr ""
+
+#. module: product
+#: model:ir.actions.report.xml,name:product.report_product_pricelist
+#: model:ir.model,name:product.model_product_pricelist
+#: field:product.product,pricelist_id:0
+#: view:product.supplierinfo:0
+msgid "Pricelist"
+msgstr ""
+
+#. module: product
+#: model:product.uom,name:product.product_uom_hour
+msgid "Hour(s)"
+msgstr ""
+
+#. module: product
+#: selection:product.template,state:0
+msgid "In Development"
+msgstr ""
+
+#. module: product
+#: model:ir.model,name:product.model_res_partner
+msgid "Partner"
+msgstr ""
+
+#. module: product
+#: model:process.transition,note:product.process_transition_supplierofproduct0
+msgid ""
+"1 or several supplier(s) can be linked to a product. All information stands "
+"in the product form."
+msgstr ""
+
+#. module: product
+#: field:product.pricelist.item,price_round:0
+msgid "Price Rounding"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_1_product_template
+msgid "On Site Monitoring"
+msgstr ""
+
+#. module: product
+#: view:product.template:0
+msgid "days"
+msgstr ""
+
+#. module: product
+#: model:process.node,name:product.process_node_supplier0
+#: view:product.supplierinfo:0
+msgid "Supplier Information"
+msgstr ""
+
+#. module: product
+#: model:ir.model,name:product.model_res_currency
+#: field:product.price.type,currency_id:0
+#: report:product.pricelist:0
+#: field:product.pricelist,currency_id:0
+msgid "Currency"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_46_product_template
+msgid "Datacard"
+msgstr ""
+
+#. module: product
+#: help:product.template,uos_coeff:0
+msgid ""
+"Coefficient to convert default Unit of Measure to Unit of Sale\n"
+" uos = uom * coeff"
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_category_action_form
+#: model:ir.ui.menu,name:product.menu_product_category_action_form
+#: view:product.category:0
+msgid "Product Categories"
+msgstr ""
+
+#. module: product
+#: view:product.template:0
+msgid "Procurement & Locations"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_20_product_template
+msgid "Motherboard I9P57"
+msgstr ""
+
+#. module: product
+#: field:product.packaging,weight:0
+msgid "Total Package Weight"
+msgstr ""
+
+#. module: product
+#: help:product.packaging,code:0
+msgid "The code of the transport unit."
+msgstr ""
+
+#. module: product
+#: view:product.price.type:0
+msgid "Products Price Type"
+msgstr ""
+
+#. module: product
+#: field:product.product,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: product
+#: field:product.product,price_extra:0
+msgid "Variant Price Extra"
+msgstr ""
+
+#. module: product
+#: model:ir.model,name:product.model_product_supplierinfo
+msgid "Information about a product supplier"
+msgstr ""
+
+#. module: product
+#: help:product.uom,factor_inv:0
+msgid ""
+"How many times this Unit of Measure is bigger than the reference Unit of "
+"Measure in this category:\n"
+"1 * (this unit) = ratio * (reference unit)"
+msgstr ""
+
+#. module: product
+#: view:product.template:0
+#: field:product.template,description_purchase:0
+msgid "Purchase Description"
+msgstr ""
+
+#. module: product
+#: constraint:product.pricelist.version:0
+msgid "You cannot have 2 pricelist versions that overlap!"
+msgstr ""
+
+#. module: product
+#: help:product.pricelist.item,min_quantity:0
+msgid ""
+"Specify the minimum quantity that needs to be bought/sold for the rule to "
+"apply."
+msgstr ""
+
+#. module: product
+#: help:product.pricelist.version,date_start:0
+msgid "First valid date for the version."
+msgstr ""
+
+#. module: product
+#: help:product.supplierinfo,delay:0
+msgid ""
+"Lead time in days between the confirmation of the purchase order and the "
+"reception of the products in your warehouse. Used by the scheduler for "
+"automatic computation of the purchase order planning."
+msgstr ""
+
+#. module: product
+#: model:product.template,description_sale:product.product_product_3_product_template
+msgid ""
+"17\" LCD Monitor\n"
+"Processor AMD 8-Core\n"
+"512MB RAM\n"
+"HDD SH-1"
+msgstr ""
+
+#. module: product
+#: selection:product.template,type:0
+msgid "Stockable Product"
+msgstr ""
+
+#. module: product
+#: field:product.packaging,code:0
+msgid "Code"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_27_product_template
+msgid "Laptop Customized"
+msgstr ""
+
+#. module: product
+#: model:ir.model,name:product.model_product_ul
+msgid "Shipping Unit"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_35_product_template
+msgid "Blank CD"
+msgstr ""
+
+#. module: product
+#: field:pricelist.partnerinfo,suppinfo_id:0
+msgid "Partner Information"
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,help:product.product_normal_action_sell
+msgid ""
+"
\n"
+" Click to define a new product.\n"
+"
\n"
+" You must define a product for everything you sell, whether "
+"it's\n"
+" a physical product, a consumable or a service you offer to\n"
+" customers.\n"
+"
\n"
+" The product form contains information to simplify the sale\n"
+" process: price, notes in the quotation, accounting data,\n"
+" procurement methods, etc.\n"
+"
\n"
+" Here is a list of all your products classified by category. "
+"You\n"
+" can click a category to get the list of all products linked "
+"to\n"
+" this category or to a child of this category.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: product
+#: code:addons/product/product.py:361
+#, python-format
+msgid ""
+"New Unit of Measure '%s' must belong to same Unit of Measure category '%s' "
+"as of old Unit of Measure '%s'. If you need to change the unit of measure, "
+"you may deactivate this product from the 'Procurements' tab and create a new "
+"one."
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_normal_action
+#: model:ir.actions.act_window,name:product.product_normal_action_puchased
+#: model:ir.actions.act_window,name:product.product_normal_action_sell
+#: model:ir.actions.act_window,name:product.product_normal_action_tree
+#: model:ir.ui.menu,name:product.menu_products
+#: model:ir.ui.menu,name:product.prod_config_main
+#: view:product.product:0
+msgid "Products"
+msgstr ""
+
+#. module: product
+#: model:product.template,description:product.product_product_32_product_template
+msgid ""
+"Hands free headset for laptop PC with in-line microphone and headphone plug."
+msgstr ""
+
+#. module: product
+#: help:product.packaging,rows:0
+msgid "The number of layers on a pallet or box"
+msgstr ""
+
+#. module: product
+#: help:product.pricelist.item,price_min_margin:0
+msgid "Specify the minimum amount of margin over the base price."
+msgstr ""
+
+#. module: product
+#: field:product.template,weight_net:0
+msgid "Net Weight"
+msgstr ""
+
+#. module: product
+#: view:product.packaging:0
+#: view:product.product:0
+msgid "Pallet Dimension"
+msgstr ""
+
+#. module: product
+#: help:product.product,image:0
+msgid ""
+"This field holds the image used as image for the product, limited to "
+"1024x1024px."
+msgstr ""
+
+#. module: product
+#: help:product.pricelist.item,categ_id:0
+msgid ""
+"Specify a product category if this rule only applies to products belonging "
+"to this category or its children categories. Keep empty otherwise."
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+msgid "Inventory"
+msgstr ""
+
+#. module: product
+#: field:product.product,seller_info_id:0
+msgid "Supplier Info"
+msgstr ""
+
+#. module: product
+#: code:addons/product/product.py:732
+#, python-format
+msgid "%s (copy)"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_2_product_template
+msgid "On Site Assistance"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_39_product_template
+msgid "Toner Cartridge"
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_uom_form_action
+#: model:ir.ui.menu,name:product.menu_product_uom_form_action
+#: model:ir.ui.menu,name:product.next_id_16
+#: view:product.uom:0
+msgid "Units of Measure"
+msgstr ""
+
+#. module: product
+#: field:product.supplierinfo,min_qty:0
+msgid "Minimal Quantity"
+msgstr ""
+
+#. module: product
+#: help:product.supplierinfo,product_code:0
+msgid ""
+"This supplier's product code will be used when printing a request for "
+"quotation. Keep empty to use the internal one."
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_43_product_template
+msgid "Zed+ Antivirus"
+msgstr ""
+
+#. module: product
+#: field:product.pricelist.item,price_version_id:0
+msgid "Price List Version"
+msgstr ""
+
+#. module: product
+#: help:product.pricelist.item,sequence:0
+msgid ""
+"Gives the order in which the pricelist items will be checked. The evaluation "
+"gives highest priority to lowest sequence and stops as soon as a matching "
+"item is found."
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+#: selection:product.template,type:0
+msgid "Consumable"
+msgstr ""
+
+#. module: product
+#: help:product.price.type,currency_id:0
+msgid "The currency the field is expressed in."
+msgstr ""
+
+#. module: product
+#: help:product.template,weight:0
+msgid "The gross weight in Kg."
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_37_product_template
+msgid "Printer, All-in-one"
+msgstr ""
+
+#. module: product
+#: view:product.template:0
+msgid "Procurement"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_23_product_template
+msgid "Processor AMD 8-Core"
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+msgid "Weights"
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+msgid "Description for Quotations"
+msgstr ""
+
+#. module: product
+#: help:pricelist.partnerinfo,price:0
+msgid ""
+"This price will be considered as a price for the supplier Unit of Measure if "
+"any or the default Unit of Measure of the product otherwise"
+msgstr ""
+
+#. module: product
+#: field:product.template,uom_po_id:0
+msgid "Purchase Unit of Measure"
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+msgid "Group by..."
+msgstr ""
+
+#. module: product
+#: field:product.product,image_medium:0
+msgid "Medium-sized image"
+msgstr ""
+
+#. module: product
+#: selection:product.ul,type:0
+#: model:product.uom.categ,name:product.product_uom_categ_unit
+msgid "Unit"
+msgstr ""
+
+#. module: product
+#: field:product.pricelist.version,date_start:0
+msgid "Start Date"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_38_product_template
+msgid "Ink Cartridge"
+msgstr ""
+
+#. module: product
+#: model:product.uom,name:product.product_uom_cm
+msgid "cm"
+msgstr ""
+
+#. module: product
+#: model:ir.model,name:product.model_product_uom
+msgid "Product Unit of Measure"
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,help:product.product_pricelist_action
+msgid ""
+"
\n"
+" Click to add a pricelist version.\n"
+"
\n"
+" There can be more than one version of a pricelist, each of\n"
+" these must be valid during a certain period of time. Some\n"
+" examples of versions: Main Prices, 2010, 2011, Summer "
+"Sales,\n"
+" etc.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: product
+#: help:product.template,uom_po_id:0
+msgid ""
+"Default Unit of Measure used for purchase orders. It must be in the same "
+"category than the default unit of measure."
+msgstr ""
+
+#. module: product
+#: view:product.pricelist:0
+msgid "Products Price"
+msgstr ""
+
+#. module: product
+#: model:product.template,description:product.product_product_26_product_template
+msgid ""
+"17\" Monitor\n"
+"6GB RAM\n"
+"Hi-Speed 234Q Processor\n"
+"QWERTY keyboard"
+msgstr ""
+
+#. module: product
+#: field:product.uom,rounding:0
+msgid "Rounding Precision"
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+msgid "Consumable products"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_21_product_template
+msgid "Motherboard A20Z7"
+msgstr ""
+
+#. module: product
+#: model:product.template,description:product.product_product_1_product_template
+#: model:product.template,description_sale:product.product_product_1_product_template
+msgid "This type of service include basic monitoring of products."
+msgstr ""
+
+#. module: product
+#: help:product.pricelist.version,date_end:0
+msgid "Last valid date for the version."
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_19_product_template
+msgid "HDD on Demand"
+msgstr ""
+
+#. module: product
+#: field:product.price.type,active:0
+#: field:product.pricelist,active:0
+#: field:product.pricelist.version,active:0
+#: field:product.product,active:0
+#: field:product.uom,active:0
+msgid "Active"
+msgstr ""
+
+#. module: product
+#: field:product.product,price_margin:0
+msgid "Variant Price Margin"
+msgstr ""
+
+#. module: product
+#: field:product.pricelist,name:0
+msgid "Pricelist Name"
+msgstr ""
+
+#. module: product
+#: model:product.category,name:product.product_category_1
+msgid "Saleable"
+msgstr ""
+
+#. module: product
+#: sql_constraint:product.uom:0
+msgid "The conversion ratio for a unit of measure cannot be 0!"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_24_product_template
+msgid "Graphics Card"
+msgstr ""
+
+#. module: product
+#: help:product.packaging,ean:0
+msgid "The EAN code of the package unit."
+msgstr ""
+
+#. module: product
+#: help:product.supplierinfo,product_uom:0
+msgid "This comes from the product form."
+msgstr ""
+
+#. module: product
+#: field:product.packaging,weight_ul:0
+msgid "Empty Package Weight"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_41_product_template
+msgid "Windows Home Server 2011"
+msgstr ""
+
+#. module: product
+#: field:product.price.type,field:0
+msgid "Product Field"
+msgstr ""
+
+#. module: product
+#: model:product.template,description:product.product_product_5_product_template
+msgid "Custom computer assembled on order based on customer's requirement."
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_price_type_action
+#: model:ir.ui.menu,name:product.menu_product_price_type
+msgid "Price Types"
+msgstr ""
+
+#. module: product
+#: help:product.template,uom_id:0
+msgid "Default Unit of Measure used for all stock operation."
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+msgid "Sales"
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,help:product.product_uom_categ_form_action
+msgid ""
+"
\n"
+" Click to add a new unit of measure category.\n"
+"
\n"
+" Units of measure belonging to the same category can be\n"
+" converted between each others. For example, in the category\n"
+" 'Time', you will have the following units of "
+"measure:\n"
+" Hours, Days.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: product
+#: help:pricelist.partnerinfo,min_quantity:0
+msgid ""
+"The minimal quantity to trigger this rule, expressed in the supplier Unit of "
+"Measure if any or in the default Unit of Measure of the product otherrwise."
+msgstr ""
+
+#. module: product
+#: selection:product.uom,uom_type:0
+msgid "Smaller than the reference Unit of Measure"
+msgstr ""
+
+#. module: product
+#: model:product.pricelist,name:product.list0
+msgid "Public Pricelist"
+msgstr ""
+
+#. module: product
+#: field:product.supplierinfo,product_code:0
+msgid "Supplier Product Code"
+msgstr ""
+
+#. module: product
+#: help:product.pricelist,active:0
+msgid ""
+"If unchecked, it will allow you to hide the pricelist without removing it."
+msgstr ""
+
+#. module: product
+#: selection:product.ul,type:0
+msgid "Pallet"
+msgstr ""
+
+#. module: product
+#: field:product.packaging,ul_qty:0
+msgid "Package by layer"
+msgstr ""
+
+#. module: product
+#: model:ir.model,name:product.model_product_product
+#: model:process.node,name:product.process_node_product0
+#: model:process.process,name:product.process_process_productprocess0
+#: field:product.packaging,product_id:0
+#: field:product.pricelist.item,product_id:0
+#: view:product.product:0
+#: field:product.supplierinfo,product_id:0
+#: model:res.request.link,name:product.req_link_product
+msgid "Product"
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+msgid "Price:"
+msgstr ""
+
+#. module: product
+#: field:product.template,weight:0
+msgid "Gross Weight"
+msgstr ""
+
+#. module: product
+#: help:product.packaging,qty:0
+msgid "The total number of products you can put by pallet or box."
+msgstr ""
+
+#. module: product
+#: field:product.product,variants:0
+msgid "Variants"
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_category_action
+#: model:ir.ui.menu,name:product.menu_products_category
+msgid "Products by Category"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_16_product_template
+msgid "Computer Case"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_9_product_template
+msgid "USB Keyboard, AZERTY"
+msgstr ""
+
+#. module: product
+#: help:product.supplierinfo,sequence:0
+msgid "Assigns the priority to the list of product supplier."
+msgstr ""
+
+#. module: product
+#: constraint:product.pricelist.item:0
+msgid "Error! The minimum margin should be lower than the maximum margin."
+msgstr ""
+
+#. module: product
+#: model:res.groups,name:product.group_uos
+msgid "Manage Secondary Unit of Measure"
+msgstr ""
+
+#. module: product
+#: help:product.uom,rounding:0
+msgid ""
+"The computed quantity will be a multiple of this value. Use 1.0 for a Unit "
+"of Measure that cannot be further split, such as a piece."
+msgstr ""
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "Rounding Method"
+msgstr ""
+
+#. module: product
+#: model:ir.actions.report.xml,name:product.report_product_label
+msgid "Products Labels"
+msgstr ""
+
+#. module: product
+#: model:product.ul,name:product.product_ul_big_box
+msgid "Box 30x40x60"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_47_product_template
+msgid "Switch, 24 ports"
+msgstr ""
+
+#. module: product
+#: selection:product.uom,uom_type:0
+msgid "Bigger than the reference Unit of Measure"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_consultant_product_template
+#: selection:product.template,type:0
+msgid "Service"
+msgstr ""
+
+#. module: product
+#: view:product.template:0
+msgid "Internal Description"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_48_product_template
+msgid "USB Adapter"
+msgstr ""
+
+#. module: product
+#: help:product.template,uos_id:0
+msgid ""
+"Sepcify a unit of measure here if invoicing is made in another unit of "
+"measure than inventory. Keep empty to use the default unit of measure."
+msgstr ""
+
+#. module: product
+#: code:addons/product/product.py:208
+#, python-format
+msgid "Cannot change the category of existing Unit of Measure '%s'."
+msgstr ""
+
+#. module: product
+#: help:product.packaging,height:0
+msgid "The height of the package"
+msgstr ""
+
+#. module: product
+#: view:product.pricelist:0
+msgid "Products Price List"
+msgstr ""
+
+#. module: product
+#: field:product.pricelist,company_id:0
+#: field:product.pricelist.item,company_id:0
+#: field:product.pricelist.version,company_id:0
+#: view:product.product:0
+#: field:product.supplierinfo,company_id:0
+#: field:product.template,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_26_product_template
+msgid "Laptop S3450"
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+msgid "Default Unit of Measure"
+msgstr ""
+
+#. module: product
+#: code:addons/product/pricelist.py:377
+#, python-format
+msgid "Partner section of the product form"
+msgstr ""
+
+#. module: product
+#: help:product.price.type,name:0
+msgid "Name of this kind of price."
+msgstr ""
+
+#. module: product
+#: model:product.category,name:product.product_category_3
+msgid "Other Products"
+msgstr ""
+
+#. module: product
+#: model:product.template,description:product.product_product_9_product_template
+msgid "This product is configured with example of push/pull flows"
+msgstr ""
+
+#. module: product
+#: field:product.product,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: product
+#: model:product.uom,name:product.product_uom_unit
+msgid "Unit(s)"
+msgstr ""
+
+#. module: product
+#: code:addons/product/product.py:176
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: product
+#: field:product.packaging,length:0
+msgid "Length"
+msgstr ""
+
+#. module: product
+#: model:product.uom.categ,name:product.uom_categ_length
+msgid "Length / Distance"
+msgstr ""
+
+#. module: product
+#: model:product.category,name:product.product_category_8
+msgid "Components"
+msgstr ""
+
+#. module: product
+#: model:ir.model,name:product.model_product_pricelist_type
+#: field:product.pricelist,type:0
+msgid "Pricelist Type"
+msgstr ""
+
+#. module: product
+#: model:product.category,name:product.product_category_6
+msgid "External Devices"
+msgstr ""
+
+#. module: product
+#: field:product.product,color:0
+msgid "Color Index"
+msgstr ""
+
+#. module: product
+#: help:product.template,sale_ok:0
+msgid "Specify if the product can be selected in a sales order line."
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+#: field:product.template,sale_ok:0
+msgid "Can be Sold"
+msgstr ""
+
+#. module: product
+#: field:product.template,produce_delay:0
+msgid "Manufacturing Lead Time"
+msgstr ""
+
+#. module: product
+#: field:product.supplierinfo,pricelist_ids:0
+msgid "Supplier Pricelist"
+msgstr ""
+
+#. module: product
+#: field:product.pricelist.item,base:0
+msgid "Based on"
+msgstr ""
+
+#. module: product
+#: model:product.category,name:product.product_category_10
+msgid "Raw Materials"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_13_product_template
+msgid "RAM SR5"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_14_product_template
+msgid "RAM SR2"
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,help:product.product_normal_action_puchased
+msgid ""
+"
\n"
+" Click to define a new product.\n"
+"
\n"
+" You must define a product for everything you purchase, "
+"whether\n"
+" it's a physical product, a consumable or services you buy "
+"to\n"
+" subcontractants.\n"
+"
\n"
+" The product form contains detailed information to improve "
+"the\n"
+" purchase process: prices, procurement logistics, accounting "
+"data,\n"
+" available suppliers, etc.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: product
+#: model:product.template,description_sale:product.product_product_44_product_template
+msgid "Full featured image editing software."
+msgstr ""
+
+#. module: product
+#: model:ir.model,name:product.model_product_pricelist_version
+#: view:product.pricelist:0
+#: view:product.pricelist.version:0
+msgid "Pricelist Version"
+msgstr ""
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "* ( 1 + "
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_31_product_template
+msgid "Multimedia Speakers"
+msgstr ""
+
+#. module: product
+#: field:product.product,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+msgid "Sale Conditions"
+msgstr ""
+
+#. module: product
+#: view:product.packaging:0
+#: view:product.product:0
+msgid "Palletization"
+msgstr ""
+
+#. module: product
+#: report:product.pricelist:0
+msgid "Price List Name"
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+msgid "Description for Suppliers"
+msgstr ""
+
+#. module: product
+#: field:product.supplierinfo,delay:0
+msgid "Delivery Lead Time"
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+msgid "months"
+msgstr ""
+
+#. module: product
+#: help:product.uom,active:0
+msgid ""
+"By unchecking the active field you can disable a unit of measure without "
+"deleting it."
+msgstr ""
+
+#. module: product
+#: field:product.product,seller_delay:0
+msgid "Supplier Lead Time"
+msgstr ""
+
+#. module: product
+#: model:ir.model,name:product.model_decimal_precision
+msgid "decimal.precision"
+msgstr ""
+
+#. module: product
+#: selection:product.ul,type:0
+msgid "Box"
+msgstr ""
+
+#. module: product
+#: help:product.pricelist.item,price_surcharge:0
+msgid ""
+"Specify the fixed amount to add or substract(if negative) to the amount "
+"calculated with the discount."
+msgstr ""
+
+#. module: product
+#: help:product.product,qty_available:0
+msgid ""
+"Current quantity of products.\n"
+"In a context with a single Stock Location, this includes goods stored at "
+"this Location, or any of its children.\n"
+"In a context with a single Warehouse, this includes goods stored in the "
+"Stock Location of this Warehouse, or any of its children.\n"
+"In a context with a single Shop, this includes goods stored in the Stock "
+"Location of the Warehouse of this Shop, or any of its children.\n"
+"Otherwise, this includes goods stored in any Stock Location with 'internal' "
+"type."
+msgstr ""
+
+#. module: product
+#: help:product.template,type:0
+msgid ""
+"Consumable: Will not imply stock management for this product. \n"
+"Stockable product: Will imply stock management for this product."
+msgstr ""
+
+#. module: product
+#: help:product.pricelist.type,key:0
+msgid ""
+"Used in the code to select specific prices based on the context. Keep "
+"unchanged."
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,help:product.product_normal_action
+msgid ""
+"
\n"
+" Click to define a new product.\n"
+"
\n"
+" You must define a product for everything you buy or sell,\n"
+" whether it's a physical product, a consumable or service.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+msgid "Context..."
+msgstr ""
+
+#. module: product
+#: field:product.packaging,ul:0
+msgid "Type of Package"
+msgstr ""
+
+#. module: product
+#: help:product.category,type:0
+msgid ""
+"A category of the view type is a virtual category that can be used as the "
+"parent of another category to create a hierarchical structure."
+msgstr ""
+
+#. module: product
+#: selection:product.ul,type:0
+msgid "Pack"
+msgstr ""
+
+#. module: product
+#: help:product.pricelist.item,product_tmpl_id:0
+msgid ""
+"Specify a template if this rule only applies to one product template. Keep "
+"empty otherwise."
+msgstr ""
+
+#. module: product
+#: model:product.template,description:product.product_product_2_product_template
+msgid ""
+"This type of service include assistance for security questions, system "
+"configuration requirements, implementation or special needs."
+msgstr ""
+
+#. module: product
+#: field:product.product,image:0
+msgid "Image"
+msgstr ""
+
+#. module: product
+#: view:product.uom.categ:0
+msgid "Units of Measure categories"
+msgstr ""
+
+#. module: product
+#: model:product.template,description_sale:product.product_product_4_product_template
+msgid ""
+"19\" LCD Monitor\n"
+"Processor Core i5 2.70 Ghz\n"
+"2GB RAM\n"
+"HDD SH-1"
+msgstr ""
+
+#. module: product
+#: view:product.template:0
+msgid "Descriptions"
+msgstr ""
+
+#. module: product
+#: model:res.groups,name:product.group_stock_packaging
+msgid "Manage Product Packaging"
+msgstr ""
+
+#. module: product
+#: model:product.category,name:product.product_category_2
+msgid "Internal"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_45_product_template
+msgid "Router R430"
+msgstr ""
+
+#. module: product
+#: help:product.packaging,sequence:0
+msgid "Gives the sequence order when displaying a list of packaging."
+msgstr ""
+
+#. module: product
+#: selection:product.category,type:0
+#: selection:product.template,state:0
+msgid "Normal"
+msgstr ""
+
+#. module: product
+#: code:addons/product/pricelist.py:179
+#, python-format
+msgid ""
+"At least one pricelist has no active version !\n"
+"Please create or activate one."
+msgstr ""
+
+#. module: product
+#: field:product.pricelist.item,price_max_margin:0
+msgid "Max. Price Margin"
+msgstr ""
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "Min. Margin"
+msgstr ""
+
+#. module: product
+#: help:product.supplierinfo,product_name:0
+msgid ""
+"This supplier's product name will be used when printing a request for "
+"quotation. Keep empty to use the internal one."
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,help:product.product_pricelist_action_for_purchase
+msgid ""
+"
\n"
+" Click to create a pricelist.\n"
+"
\n"
+" A price list contains rules to be evaluated in order to "
+"compute\n"
+" the purchase price. The default price list has only one "
+"rule; use\n"
+" the cost price defined on the product form, so that you do "
+"not have to\n"
+" worry about supplier pricelists if you have very simple "
+"needs.\n"
+"
\n"
+" But you can also import complex price lists form your "
+"supplier\n"
+" that may depends on the quantities ordered or the current\n"
+" promotions.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: product
+#: selection:product.template,mes_type:0
+msgid "Variable"
+msgstr ""
+
+#. module: product
+#: field:product.template,rental:0
+msgid "Can be Rent"
+msgstr ""
+
+#. module: product
+#: model:product.price.type,name:product.standard_price
+msgid "Cost Price"
+msgstr ""
+
+#. module: product
+#: field:product.pricelist.item,price_min_margin:0
+msgid "Min. Price Margin"
+msgstr ""
+
+#. module: product
+#: model:res.groups,name:product.group_uom
+msgid "Manage Multiple Units of Measure"
+msgstr ""
+
+#. module: product
+#: help:product.packaging,weight:0
+msgid "The weight of a full package, pallet or box."
+msgstr ""
+
+#. module: product
+#: view:product.uom:0
+msgid "e.g: 1 * (this unit) = ratio * (reference unit)"
+msgstr ""
+
+#. module: product
+#: model:product.template,description:product.product_product_25_product_template
+msgid ""
+"17\" Monitor\n"
+"4GB RAM\n"
+"Standard-1294P Processor\n"
+"QWERTY keyboard"
+msgstr ""
+
+#. module: product
+#: field:product.category,sequence:0
+#: field:product.packaging,sequence:0
+#: field:product.pricelist.item,sequence:0
+#: field:product.supplierinfo,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: product
+#: help:product.template,produce_delay:0
+msgid ""
+"Average delay in days to produce this product. In the case of multi-level "
+"BOM, the manufacturing lead times of the components will be added."
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_assembly_product_template
+msgid "Assembly Service Cost"
+msgstr ""
+
+#. module: product
+#: model:ir.model,name:product.model_product_pricelist_item
+msgid "Pricelist item"
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,help:product.product_uom_form_action
+msgid ""
+"
\n"
+" Click to add a new unit of measure.\n"
+"
\n"
+" You must define a conversion rate between several Units of\n"
+" Measure within the same category.\n"
+"
\n"
+" A price list contains rules to be evaluated in order to "
+"compute\n"
+" the sales price of the products.\n"
+"
\n"
+" Price lists may have several versions (2010, 2011, Promotion "
+"of\n"
+" February 2010, etc.) and each version may have several "
+"rules.\n"
+" (e.g. the customer price of a product category will be based "
+"on\n"
+" the supplier price multiplied by 1.80).\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: product
+#: model:ir.model,name:product.model_product_template
+#: field:product.pricelist.item,product_tmpl_id:0
+#: field:product.product,product_tmpl_id:0
+#: view:product.template:0
+msgid "Product Template"
+msgstr ""
+
+#. module: product
+#: field:product.template,cost_method:0
+#: model:res.groups,name:product.group_costing_method
+msgid "Costing Method"
+msgstr ""
+
+#. module: product
+#: model:ir.model,name:product.model_product_category
+#: field:product.pricelist.item,categ_id:0
+msgid "Product Category"
+msgstr ""
+
+#. module: product
+#: model:product.template,description:product.product_product_19_product_template
+msgid "On demand hard-disk having capacity based on requirement."
+msgstr ""
+
+#. module: product
+#: selection:product.template,state:0
+msgid "End of Lifecycle"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_15_product_template
+msgid "RAM SR3"
+msgstr ""
+
+#. module: product
+#: help:product.product,packaging:0
+msgid ""
+"Gives the different ways to package the same product. This has no impact on "
+"the picking order and is mainly used if you use the EDI module."
+msgstr ""
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_pricelist_action
+#: model:ir.ui.menu,name:product.menu_product_pricelist_action
+#: field:product.pricelist,version_id:0
+msgid "Pricelist Versions"
+msgstr ""
+
+#. module: product
+#: help:product.pricelist.item,price_round:0
+msgid ""
+"Sets the price so that it is a multiple of this value.\n"
+"Rounding is applied after the discount and before the surcharge.\n"
+"To have prices that end in 9.99, set rounding 10, surcharge -0.01"
+msgstr ""
+
+#. module: product
+#: field:product.template,list_price:0
+msgid "Sale Price"
+msgstr ""
+
+#. module: product
+#: help:product.uom,category_id:0
+msgid ""
+"Conversion between Units of Measure can only occur if they belong to the "
+"same category. The conversion will be made based on the ratios."
+msgstr ""
+
+#. module: product
+#: constraint:product.category:0
+msgid "Error ! You cannot create recursive categories."
+msgstr ""
+
+#. module: product
+#: help:product.product,image_medium:0
+msgid ""
+"Medium-sized image of the product. It is automatically resized as a "
+"128x128px image, with aspect ratio preserved, only when the image exceeds "
+"one of those sizes. Use this field in form views or some kanban views."
+msgstr ""
+
+#. module: product
+#: view:product.uom:0
+msgid "e.g: 1 * (reference unit) = ratio * (this unit)"
+msgstr ""
+
+#. module: product
+#: help:product.supplierinfo,qty:0
+msgid "This is a quantity which is converted into Default Unit of Measure."
+msgstr ""
+
+#. module: product
+#: help:product.template,volume:0
+msgid "The volume in m3."
+msgstr ""
+
+#. module: product
+#: field:product.pricelist.item,price_discount:0
+msgid "Price Discount"
+msgstr ""
diff --git a/addons/product/i18n/zh_CN.po b/addons/product/i18n/zh_CN.po
index 0cdfc9fbd42..1857ed5081f 100644
--- a/addons/product/i18n/zh_CN.po
+++ b/addons/product/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
-"PO-Revision-Date: 2013-07-28 11:18+0000\n"
-"Last-Translator: Wei \"oldrev\" Li \n"
+"PO-Revision-Date: 2013-11-19 10:25+0000\n"
+"Last-Translator: Guipo Hao \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 05:45+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-11-20 05:25+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
#. module: product
#: field:product.packaging,rows:0
@@ -2484,6 +2484,15 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" "
#. module: product
#: model:ir.model,name:product.model_product_template
diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py
index 07bc38339bd..279f921f6c9 100644
--- a/addons/product/pricelist.py
+++ b/addons/product/pricelist.py
@@ -146,7 +146,6 @@ class product_pricelist(osv.osv):
"currency_id": _get_currency
}
- #def price_get_multi(self, cr, uid, product_ids, context=None):
def price_get_multi(self, cr, uid, pricelist_ids, products_by_qty_by_partner, context=None):
"""multi products 'price_get'.
@param pricelist_ids:
@@ -156,178 +155,142 @@ class product_pricelist(osv.osv):
'date': Date of the pricelist (%Y-%m-%d),}
@return: a dict of dict with product_id as key and a dict 'price by pricelist' as value
"""
-
- def _create_parent_category_list(id, lst):
- if not id:
- return []
- parent = product_category_tree.get(id)
- if parent:
- lst.append(parent)
- return _create_parent_category_list(parent, lst)
- else:
- return lst
- # _create_parent_category_list
-
- if context is None:
- context = {}
-
- date = context.get('date') or time.strftime('%Y-%m-%d')
-
- currency_obj = self.pool.get('res.currency')
- product_obj = self.pool.get('product.product')
- product_category_obj = self.pool.get('product.category')
- product_uom_obj = self.pool.get('product.uom')
- supplierinfo_obj = self.pool.get('product.supplierinfo')
- price_type_obj = self.pool.get('product.price.type')
-
- # product.pricelist.version:
if not pricelist_ids:
pricelist_ids = self.pool.get('product.pricelist').search(cr, uid, [], context=context)
+ results = {}
+ for pricelist in self.browse(cr, uid, pricelist_ids, context=context):
+ subres = self._price_get_multi(cr, uid, pricelist, products_by_qty_by_partner, context=context)
+ for product_id,price in subres.items():
+ results.setdefault(product_id, {})
+ results[product_id][pricelist.id] = price
+ return results
- pricelist_version_ids = self.pool.get('product.pricelist.version').search(cr, uid, [
- ('pricelist_id', 'in', pricelist_ids),
- '|',
- ('date_start', '=', False),
- ('date_start', '<=', date),
- '|',
- ('date_end', '=', False),
- ('date_end', '>=', date),
- ])
- if len(pricelist_ids) != len(pricelist_version_ids):
- raise osv.except_osv(_('Warning!'), _("At least one pricelist has no active version !\nPlease create or activate one."))
+ def _price_get_multi(self, cr, uid, pricelist, products_by_qty_by_partner, context=None):
+ context = context or {}
+ date = context.get('date') or time.strftime('%Y-%m-%d')
- # product.product:
- product_ids = [i[0] for i in products_by_qty_by_partner]
- #products = dict([(item['id'], item) for item in product_obj.read(cr, uid, product_ids, ['categ_id', 'product_tmpl_id', 'uos_id', 'uom_id'])])
- products = product_obj.browse(cr, uid, product_ids, context=context)
- products_dict = dict([(item.id, item) for item in products])
+ products = map(lambda x: x[0], products_by_qty_by_partner)
+ currency_obj = self.pool.get('res.currency')
+ product_obj = self.pool.get('product.product')
+ product_uom_obj = self.pool.get('product.uom')
+ price_type_obj = self.pool.get('product.price.type')
- # product.category:
- product_category_ids = product_category_obj.search(cr, uid, [])
- product_categories = product_category_obj.read(cr, uid, product_category_ids, ['parent_id'])
- product_category_tree = dict([(item['id'], item['parent_id'][0]) for item in product_categories if item['parent_id']])
+ version = False
+ for v in pricelist.version_id:
+ if ((v.date_start is False) or (v.date_start <= date)) and ((v.date_end is False) or (v.date_end >= date)):
+ version = v
+ break
+
+ categ_ids = {}
+ for p in products:
+ categ = p.categ_id
+ while categ:
+ categ_ids[categ.id] = True
+ categ = categ.parent_id
+ categ_ids = categ_ids.keys()
+
+ prod_ids = [x.id for x in products]
+ prod_tmpl_ids = [x.product_tmpl_id.id for x in products]
+
+ # Load all rules
+ cr.execute(
+ 'SELECT i.id '
+ 'FROM product_pricelist_item AS i '
+ 'WHERE (product_tmpl_id IS NULL OR product_tmpl_id = any(%s)) '
+ 'AND (product_id IS NULL OR (product_id = any(%s))) '
+ 'AND ((categ_id IS NULL) OR (categ_id = any(%s))) '
+ 'AND (price_version_id = %s) '
+ 'ORDER BY sequence, min_quantity desc',
+ (prod_tmpl_ids, prod_ids, categ_ids, version.id))
+
+ item_ids = [x[0] for x in cr.fetchall()]
+ items = self.pool.get('product.pricelist.item').browse(cr, uid, item_ids, context=context)
+
+ price_types = {}
results = {}
- for product_id, qty, partner in products_by_qty_by_partner:
- for pricelist_id in pricelist_ids:
- price = False
-
- tmpl_id = products_dict[product_id].product_tmpl_id and products_dict[product_id].product_tmpl_id.id or False
-
- categ_id = products_dict[product_id].categ_id and products_dict[product_id].categ_id.id or False
- categ_ids = _create_parent_category_list(categ_id, [categ_id])
- if categ_ids:
- categ_where = '(categ_id IN (' + ','.join(map(str, categ_ids)) + '))'
- else:
- categ_where = '(categ_id IS NULL)'
-
- if partner:
- partner_where = 'base <> -2 OR %s IN (SELECT name FROM product_supplierinfo WHERE product_id = %s) '
- partner_args = (partner, tmpl_id)
- else:
- partner_where = 'base <> -2 '
- partner_args = ()
-
- cr.execute(
- 'SELECT i.*, pl.currency_id '
- 'FROM product_pricelist_item AS i, '
- 'product_pricelist_version AS v, product_pricelist AS pl '
- 'WHERE (product_tmpl_id IS NULL OR product_tmpl_id = %s) '
- 'AND (product_id IS NULL OR product_id = %s) '
- 'AND (' + categ_where + ' OR (categ_id IS NULL)) '
- 'AND (' + partner_where + ') '
- 'AND price_version_id = %s '
- 'AND (min_quantity IS NULL OR min_quantity <= %s) '
- 'AND i.price_version_id = v.id AND v.pricelist_id = pl.id '
- 'ORDER BY sequence',
- (tmpl_id, product_id) + partner_args + (pricelist_version_ids[0], qty))
- res1 = cr.dictfetchall()
- uom_price_already_computed = False
- for res in res1:
- if res:
- if res['base'] == -1:
- if not res['base_pricelist_id']:
- price = 0.0
- else:
- price_tmp = self.price_get(cr, uid,
- [res['base_pricelist_id']], product_id,
- qty, context=context)[res['base_pricelist_id']]
- ptype_src = self.browse(cr, uid, res['base_pricelist_id']).currency_id.id
- uom_price_already_computed = True
- price = currency_obj.compute(cr, uid,
- ptype_src, res['currency_id'],
- price_tmp, round=False,
- context=context)
- elif res['base'] == -2:
- # this section could be improved by moving the queries outside the loop:
- where = []
- if partner:
- where = [('name', '=', partner) ]
- sinfo = supplierinfo_obj.search(cr, uid,
- [('product_id', '=', tmpl_id)] + where)
- price = 0.0
- if sinfo:
- qty_in_product_uom = qty
- product_default_uom = product_obj.read(cr, uid, [product_id], ['uom_id'])[0]['uom_id'][0]
- supplier = supplierinfo_obj.browse(cr, uid, sinfo, context=context)[0]
- seller_uom = supplier.product_uom and supplier.product_uom.id or False
- if seller_uom and product_default_uom and product_default_uom != seller_uom:
- uom_price_already_computed = True
- qty_in_product_uom = product_uom_obj._compute_qty(cr, uid, product_default_uom, qty, to_uom_id=seller_uom)
- cr.execute('SELECT * ' \
- 'FROM pricelist_partnerinfo ' \
- 'WHERE suppinfo_id IN %s' \
- 'AND min_quantity <= %s ' \
- 'ORDER BY min_quantity DESC LIMIT 1', (tuple(sinfo),qty_in_product_uom,))
- res2 = cr.dictfetchone()
- if res2:
- price = res2['price']
- else:
- price_type = price_type_obj.browse(cr, uid, int(res['base']))
- uom_price_already_computed = True
- price = currency_obj.compute(cr, uid,
- price_type.currency_id.id, res['currency_id'],
- product_obj.price_get(cr, uid, [product_id],
- price_type.field, context=context)[product_id], round=False, context=context)
-
- if price is not False:
- price_limit = price
- price = price * (1.0+(res['price_discount'] or 0.0))
- price = rounding(price, res['price_round']) #TOFIX: rounding with tools.float_rouding
- price += (res['price_surcharge'] or 0.0)
- if res['price_min_margin']:
- price = max(price, price_limit+res['price_min_margin'])
- if res['price_max_margin']:
- price = min(price, price_limit+res['price_max_margin'])
+ for product, qty, partner in products_by_qty_by_partner:
+ uom_price_already_computed = False
+ results[product.id] = 0.0
+ price = False
+ for rule in items:
+ if rule.min_quantity and qtyrule.product_tmpl_id.id:
+ continue
+ if rule.product_id and product.id<>rule.product_id.id:
+ continue
+ if rule.categ_id:
+ cat = product.categ_id
+ while cat:
+ if cat.id == rule.categ_id.id:
break
+ cat = cat.parent_id
+ if not cat:
+ continue
- else:
- # False means no valid line found ! But we may not raise an
- # exception here because it breaks the search
- price = False
+ if rule.base == -1:
+ if rule.base_pricelist_id:
+ price_tmp = self._price_get_multi(cr, uid,
+ rule.base_pricelist_id, [(product,
+ qty, False)], context=context)[product.id]
+ ptype_src = rule.base_pricelist_id.currency_id.id
+ uom_price_already_computed = True
+ price = currency_obj.compute(cr, uid,
+ ptype_src, pricelist.currency_id.id,
+ price_tmp, round=False,
+ context=context)
+ elif rule.base == -2:
+ for seller in product.seller_ids:
+ if (not partner) or (seller.name.id<>partner):
+ continue
+ product_default_uom = product.uom_id.id
+ seller_uom = seller.product_uom and seller.product_uom.id or False
+ if seller_uom and product_default_uom and product_default_uom != seller_uom:
+ uom_price_already_computed = True
+ qty = product_uom_obj._compute_qty(cr, uid, product_default_uom, qty, to_uom_id=seller_uom)
+ for line in seller.pricelist_ids:
+ if line.min_quantity <= qty:
+ price = line.price
- if price:
- results['item_id'] = res['id']
- if 'uom' in context and not uom_price_already_computed:
- product = products_dict[product_id]
- uom = product.uos_id or product.uom_id
- price = product_uom_obj._compute_price(cr, uid, uom.id, price, context['uom'])
-
- if results.get(product_id):
- results[product_id][pricelist_id] = price
else:
- results[product_id] = {pricelist_id: price}
+ if rule.base not in price_types:
+ price_types[rule.base] = price_type_obj.browse(cr, uid, int(rule.base))
+ price_type = price_types[rule.base]
+ uom_price_already_computed = True
+ price = currency_obj.compute(cr, uid,
+ price_type.currency_id.id, pricelist.currency_id.id,
+ product_obj._price_get(cr, uid, [product],
+ price_type.field, context=context)[product.id], round=False, context=context)
+
+ if price is not False:
+ price_limit = price
+ price = price * (1.0+(rule.price_discount or 0.0))
+ price = rounding(price, rule.price_round) #TOFIX: rounding with tools.float_rouding
+ price += (rule.price_surcharge or 0.0)
+ if rule.price_min_margin:
+ price = max(price, price_limit+rule.price_min_margin)
+ if rule.price_max_margin:
+ price = min(price, price_limit+rule.price_max_margin)
+ break
+
+ if price:
+ if 'uom' in context and not uom_price_already_computed:
+ product = products_dict[product.id]
+ uom = product.uos_id or product.uom_id
+ price = product_uom_obj._compute_price(cr, uid, uom.id, price, context['uom'])
+
+ results[product.id] = price
return results
def price_get(self, cr, uid, ids, prod_id, qty, partner=None, context=None):
- res_multi = self.price_get_multi(cr, uid, pricelist_ids=ids, products_by_qty_by_partner=[(prod_id, qty, partner)], context=context)
+ product = self.pool.get('product.product').browse(cr, uid, prod_id, context=context)
+ res_multi = self.price_get_multi(cr, uid, pricelist_ids=ids, products_by_qty_by_partner=[(product, qty, partner)], context=context)
res = res_multi[prod_id]
- res.update({'item_id': {ids[-1]: res_multi.get('item_id', ids[-1])}})
return res
-
class product_pricelist_version(osv.osv):
_name = "product.pricelist.version"
_description = "Pricelist Version"
diff --git a/addons/product/product.py b/addons/product/product.py
index 1ec571f0e9c..af1c84c39dc 100644
--- a/addons/product/product.py
+++ b/addons/product/product.py
@@ -135,7 +135,7 @@ class product_uom(osv.osv):
'1 * (reference unit) = ratio * (this unit)'),
'factor_inv': fields.function(_factor_inv, digits=(12,12),
fnct_inv=_factor_inv_write,
- string='Ratio',
+ string='Bigger Ratio',
help='How many times this Unit of Measure is bigger than the reference Unit of Measure in this category:\n'\
'1 * (this unit) = ratio * (reference unit)', required=True),
'rounding': fields.float('Rounding Precision', digits_compute=dp.get_precision('Product Unit of Measure'), required=True,
@@ -361,6 +361,7 @@ class product_public_category(osv.osv):
#----------------------------------------------------------
class product_template(osv.osv):
_name = "product.template"
+ _inherit = ['mail.thread']
_description = "Product Template"
def _get_image(self, cr, uid, ids, name, args, context=None):
@@ -415,7 +416,7 @@ class product_template(osv.osv):
help='Coefficient to convert default Unit of Measure to Unit of Sale\n'
' uos = uom * coeff'),
'mes_type': fields.selection((('fixed', 'Fixed'), ('variable', 'Variable')), 'Measure Type'),
- 'seller_ids': fields.one2many('product.supplierinfo', 'product_id', 'Supplier'),
+ 'seller_ids': fields.one2many('product.supplierinfo', 'product_tmpl_id', 'Supplier'),
'company_id': fields.many2one('res.company', 'Company', select=1),
# image: all image fields are base64 encoded and PIL-supported
'image': fields.binary("Image",
@@ -531,6 +532,7 @@ class product_product(osv.osv):
return res
def _product_price(self, cr, uid, ids, name, arg, context=None):
+ plobj = self.pool.get('product.pricelist')
res = {}
if context is None:
context = {}
@@ -540,15 +542,16 @@ class product_product(osv.osv):
if pricelist:
# Support context pricelists specified as display_name or ID for compatibility
if isinstance(pricelist, basestring):
- pricelist_ids = self.pool.get('product.pricelist').name_search(
+ pricelist_ids = plobj.name_search(
cr, uid, pricelist, operator='=', context=context, limit=1)
pricelist = pricelist_ids[0][0] if pricelist_ids else pricelist
+
+ products = self.browse(cr, uid, ids, context=context)
+ qtys = map(lambda x: (x, quantity, partner), products)
+ pl = plobj.browse(cr, uid, pricelist, context=context)
+ price = plobj._price_get_multi(cr,uid, pl, qtys, context=context)
for id in ids:
- try:
- price = self.pool.get('product.pricelist').price_get(cr,uid,[pricelist], id, quantity, partner=partner, context=context)[pricelist]
- except:
- price = 0.0
- res[id] = price
+ res[id] = price.get(id, 0.0)
for id in ids:
res.setdefault(id, 0.0)
return res
@@ -578,6 +581,12 @@ class product_product(osv.osv):
res[product.id] = (res[product.id] + ((res[product.id] * (product.price_margin)) / 100)) + product.price_extra
return res
+ def _save_product_lst_price(self, cr, uid, product_id, field_name, field_value, arg, context=None):
+ field_value = field_value or 0.0
+ product = self.browse(cr, uid, product_id, context=context)
+ list_price = (field_value - product.price_extra) / (product.price_margin or 1.0)
+ return self.write(cr, uid, [product_id], {'list_price': list_price}, context=context)
+
def _get_partner_code_name(self, cr, uid, ids, product, partner_id, context=None):
for supinfo in product.seller_ids:
if supinfo.name.id == partner_id:
@@ -671,8 +680,8 @@ class product_product(osv.osv):
'virtual_available': fields.function(_product_virtual_available, type='float', string='Quantity Available'),
'incoming_qty': fields.function(_product_incoming_qty, type='float', string='Incoming'),
'outgoing_qty': fields.function(_product_outgoing_qty, type='float', string='Outgoing'),
- 'price': fields.function(_product_price, type='float', string='Price', digits_compute=dp.get_precision('Product Price')),
- 'lst_price' : fields.function(_product_lst_price, type='float', string='Public Price', digits_compute=dp.get_precision('Product Price')),
+ 'price': fields.function(_product_price, fnct_inv=_save_product_lst_price, type='float', string='Price', digits_compute=dp.get_precision('Product Price')),
+ 'lst_price' : fields.function(_product_lst_price, fnct_inv=_save_product_lst_price, type='float', string='Public Price', digits_compute=dp.get_precision('Product Price')),
'code': fields.function(_product_code, type='char', string='Internal Reference'),
'partner_ref' : fields.function(_product_partner_ref, type='char', string='Customer ref'),
'default_code' : fields.char('Internal Reference', size=64, select=True),
@@ -833,6 +842,10 @@ class product_product(osv.osv):
# Could be overrided for variants matrices prices
#
def price_get(self, cr, uid, ids, ptype='list_price', context=None):
+ products = self.browse(cr, uid, ids, context=context)
+ return self._price_get(cr, uid, products, ptype=ptype, context=context)
+
+ def _price_get(self, cr, uid, products, ptype='list_price', context=None):
if context is None:
context = {}
@@ -843,7 +856,7 @@ class product_product(osv.osv):
res = {}
product_uom_obj = self.pool.get('product.uom')
- for product in self.browse(cr, uid, ids, context=context):
+ for product in products:
res[product.id] = product[ptype] or 0.0
if ptype == 'list_price':
res[product.id] = (res[product.id] + ((res[product.id] * (product.price_margin)) / 100)) + \
@@ -906,9 +919,7 @@ class product_product(osv.osv):
return super(product_product, self).copy_translations(cr, uid, old_id, new_id, context=context)
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
- if context is None:
- context = {}
- if context and context.get('search_default_categ_id', False):
+ if context and context.get('search_default_categ_id'):
args.append((('categ_id', 'child_of', context['search_default_categ_id'])))
return super(product_product, self).search(cr, uid, args, offset=offset, limit=limit, order=order, context=context, count=count)
@@ -984,7 +995,6 @@ class product_supplierinfo(osv.osv):
_description = "Information about a product supplier"
def _calc_qty(self, cr, uid, ids, fields, arg, context=None):
result = {}
- product_uom_pool = self.pool.get('product.uom')
for supplier_info in self.browse(cr, uid, ids, context=context):
for field in fields:
result[supplier_info.id] = {field:False}
@@ -997,10 +1007,10 @@ class product_supplierinfo(osv.osv):
'product_name': fields.char('Supplier Product Name', size=128, help="This supplier's product name will be used when printing a request for quotation. Keep empty to use the internal one."),
'product_code': fields.char('Supplier Product Code', size=64, help="This supplier's product code will be used when printing a request for quotation. Keep empty to use the internal one."),
'sequence' : fields.integer('Sequence', help="Assigns the priority to the list of product supplier."),
- 'product_uom': fields.related('product_id', 'uom_po_id', type='many2one', relation='product.uom', string="Supplier Unit of Measure", readonly="1", help="This comes from the product form."),
+ 'product_uom': fields.related('product_tmpl_id', 'uom_po_id', type='many2one', relation='product.uom', string="Supplier Unit of Measure", readonly="1", help="This comes from the product form."),
'min_qty': fields.float('Minimal Quantity', required=True, help="The minimal quantity to purchase to this supplier, expressed in the supplier Product Unit of Measure if not empty, in the default unit of measure of the product otherwise."),
'qty': fields.function(_calc_qty, store=True, type='float', string='Quantity', multi="qty", help="This is a quantity which is converted into Default Unit of Measure."),
- 'product_id' : fields.many2one('product.template', 'Product', required=True, ondelete='cascade', select=True),
+ 'product_tmpl_id' : fields.many2one('product.template', 'Product Template', required=True, ondelete='cascade', select=True),
'delay' : fields.integer('Delivery Lead Time', required=True, help="Lead time in days between the confirmation of the purchase order and the reception of the products in your warehouse. Used by the scheduler for automatic computation of the purchase order planning."),
'pricelist_ids': fields.one2many('pricelist.partnerinfo', 'suppinfo_id', 'Supplier Pricelist'),
'company_id':fields.many2one('res.company','Company',select=1),
@@ -1026,10 +1036,11 @@ class product_supplierinfo(osv.osv):
pricelist_pool = self.pool.get('product.pricelist')
currency_pool = self.pool.get('res.currency')
currency_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.currency_id.id
+ # Compute price from standard price of product
+ product_price = product_pool.price_get(cr, uid, [product_id], 'standard_price', context=context)[product_id]
+ product = product_pool.browse(cr, uid, product_id, context=context)
for supplier in partner_pool.browse(cr, uid, supplier_ids, context=context):
- # Compute price from standard price of product
- price = product_pool.price_get(cr, uid, [product_id], 'standard_price', context=context)[product_id]
-
+ price = product_price
# Compute price from Purchase pricelist of supplier
pricelist_id = supplier.property_product_pricelist_purchase.id
if pricelist_id:
@@ -1037,7 +1048,7 @@ class product_supplierinfo(osv.osv):
price = currency_pool.compute(cr, uid, pricelist_pool.browse(cr, uid, pricelist_id).currency_id.id, currency_id, price)
# Compute price from supplier pricelist which are in Supplier Information
- supplier_info_ids = self.search(cr, uid, [('name','=',supplier.id),('product_id','=',product_id)])
+ supplier_info_ids = self.search(cr, uid, [('name','=',supplier.id),('product_tmpl_id','=',product.product_tmpl_id.id)])
if supplier_info_ids:
cr.execute('SELECT * ' \
'FROM pricelist_partnerinfo ' \
diff --git a/addons/product/product_data.xml b/addons/product/product_data.xml
index dfc9fe19c7c..915be493a1f 100644
--- a/addons/product/product_data.xml
+++ b/addons/product/product_data.xml
@@ -149,6 +149,7 @@ parameter) will see those record just disappear.
+ 1000Default Public Pricelist Line
@@ -184,7 +185,7 @@ parameter) will see those record just disappear.
Product UoS
-
+
-
+ 31
-
+ 31
-
+ 31
-
+ 31
@@ -962,224 +962,235 @@ QWERTY keyboard
-
+ 25
-
+ 41
-
+ 21
-
+ 21
-
+ 51
+
-
+ 11
-
+ 11
-
+ 31
-
+ 31
-
+ 45
+
-
+ 31
-
+ 31
-
+ 31
-
+ 81
-
+ 41
-
+ 51
-
+ 212
+
-
+ 25
-
+ 212
-
+ 25
-
+ 21
-
+ 21
-
+ 41
-
+ 41
-
+ 51
-
+ 51
-
+ 71
+
-
+ 40
-
+ 50
+
+
+
+ 4
+ 0
+
+
-
+ 100
-
+ 50
diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml
index 0d4145d14bc..3033026c665 100644
--- a/addons/product/product_view.xml
+++ b/addons/product/product_view.xml
@@ -913,6 +913,10 @@
+
+
+
+
diff --git a/addons/product/security/product_security.xml b/addons/product/security/product_security.xml
index 6b9b06e9b50..81a32967d59 100644
--- a/addons/product/security/product_security.xml
+++ b/addons/product/security/product_security.xml
@@ -51,35 +51,35 @@
Product multi-company
- ['|','|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id]),('company_id','=',False)]
+ ['|',('company_id','=',user.company_id.id),('company_id','=',False)]product pricelist company rule
- ['|','|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id]),('company_id','=',False)]
+ ['|',('company_id','=',user.company_id.id),('company_id','=',False)]product pricelist item company rule
- ['|','|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id]),('company_id','=',False)]
+ ['|',('company_id','=',user.company_id.id),('company_id','=',False)]product pricelist version company rule
- ['|','|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id]),('company_id','=',False)]
+ ['|',('company_id','=',user.company_id.id),('company_id','=',False)]product supplierinfo company rule
- ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
+ ['|',('company_id','=',False),('company_id','=',user.company_id.id)]
diff --git a/addons/product/test/product_pricelist.yml b/addons/product/test/product_pricelist.yml
index 0b4bed18a82..60a4a4bf66f 100644
--- a/addons/product/test/product_pricelist.yml
+++ b/addons/product/test/product_pricelist.yml
@@ -6,19 +6,19 @@
!python {model: product.product}: |
context.update({'pricelist': ref("customer_pricelist"), 'quantity':1})
product = self.browse(cr, uid, ref("product_product_4"), context=context)
- assert product.price == (product.lst_price-product.lst_price*(0.10)), "Sell price is not correspond."
+ assert product.price == (product.lst_price-product.lst_price*(0.10)), "Wrong sale price."
-
I check sale price of Laptop.
-
!python {model: product.product}: |
product = self.browse(cr, uid, ref("product_product_25"), context=context)
- assert product.price == product.lst_price + 1, "Sell price is not correspond."
+ assert product.price == product.lst_price + 1, "Wrong sale price."
-
I check sale price of IT component.
-
!python {model: product.product}: |
product = self.browse(cr, uid, ref("product_product_7"), context=context)
- assert product.price == product.lst_price, "Sell price is not correspond."
+ assert product.price == product.lst_price, "Wrong sale price."
-
I check sale price of IT component if more than 3 Unit.
@@ -26,14 +26,14 @@
!python {model: product.product}: |
context.update({'quantity':5})
product = self.browse(cr, uid, ref("product_product_26"), context=context)
- assert product.price == product.lst_price-product.lst_price*(0.05), "Sell price is not correspond."
+ assert product.price == product.lst_price-product.lst_price*(0.05), "Wrong sale price."
-
I check sale price of LCD Monitor.
-
!python {model: product.product}: |
context.update({'quantity':1})
product = self.browse(cr, uid, ref("product_product_6"), context=context)
- assert product.price == product.lst_price, "Sell price is not correspond."
+ assert product.price == product.lst_price, "Wrong sale price."
-
I check sale price of LCD Monitor on end of year.
@@ -41,7 +41,7 @@
!python {model: product.product}: |
context.update({'quantity':1, 'date': '2011-12-31'})
product = self.browse(cr, uid, ref("product_product_6"), context=context)
- assert product.price == product.lst_price-product.lst_price*(0.30), "Sell price is not correspond."
+ assert product.price == product.lst_price-product.lst_price*(0.30), "Wrong sale price."
-
I check cost price of LCD Monitor.
@@ -49,14 +49,14 @@
!python {model: product.product}: |
context.update({'quantity':1, 'date': False, 'partner': ref('base.res_partner_4'), 'pricelist': ref("supplier_pricelist")})
product = self.browse(cr, uid, ref("product_product_6"), context=context)
- assert product.price == 792, "cost price is not correspond."
+ assert product.price == 792, "wrong cost price."
-
I check cost price of LCD Monitor if more than 3 Unit.
-
!python {model: product.product}: |
context.update({'quantity':3})
product = self.browse(cr, uid, ref("product_product_6"), context=context)
- assert product.price == 787, "cost price is not correspond."
+ assert product.price == 787, "wrong cost price."
-
I print the sale prices report.
diff --git a/addons/product_expiry/i18n/zh_CN.po b/addons/product_expiry/i18n/zh_CN.po
index db374e6b7b2..345665e27aa 100644
--- a/addons/product_expiry/i18n/zh_CN.po
+++ b/addons/product_expiry/i18n/zh_CN.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
-"PO-Revision-Date: 2012-11-30 02:54+0000\n"
-"Last-Translator: 盈通 ccdos \n"
+"PO-Revision-Date: 2013-11-19 10:35+0000\n"
+"Last-Translator: Guipo Hao \n"
"Language-Team: Chinese (Simplified) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:11+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-11-20 05:25+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
#. module: product_expiry
#: model:product.template,name:product_expiry.product_product_from_product_template
@@ -37,14 +37,14 @@ msgstr "产品生命周期"
msgid ""
"This is the date on which the goods with this Serial Number should be "
"removed from the stock."
-msgstr ""
+msgstr "此序列号所含商品将在该日从库存移除。"
#. module: product_expiry
#: help:product.product,removal_time:0
msgid ""
"When a new a Serial Number is issued, this is the number of days before the "
"goods should be removed from the stock."
-msgstr ""
+msgstr "此处表明当新序列号生成时,商品需要提前多少天从库存移除。"
#. module: product_expiry
#: field:product.product,use_time:0
@@ -61,7 +61,7 @@ msgstr "产品"
msgid ""
"When a new a Serial Number is issued, this is the number of days before the "
"goods starts deteriorating, without being dangerous yet."
-msgstr ""
+msgstr "此处表明当新序列号生成时,商品变质前(未变危险)的天数。"
#. module: product_expiry
#: field:product.product,removal_time:0
@@ -73,7 +73,7 @@ msgstr "产品移除时间"
msgid ""
"This is the date on which an alert should be notified about the goods with "
"this Serial Number."
-msgstr ""
+msgstr "此处表明该序列号所指商品需要提醒管理员的日期。"
#. module: product_expiry
#: model:ir.model,name:product_expiry.model_stock_production_lot
@@ -85,7 +85,7 @@ msgstr "序列号"
msgid ""
"When a new a Serial Number is issued, this is the number of days before an "
"alert should be notified."
-msgstr ""
+msgstr "此处表明当新序列号生成时,商品生成提醒前的天数。"
#. module: product_expiry
#: field:stock.production.lot,removal_date:0
@@ -123,6 +123,9 @@ msgid ""
"When a new a Serial Number is issued, this is the number of days before the "
"goods may become dangerous and must not be consumed."
msgstr ""
+"此处表明当新序列号生成时,商品变危险以至于不能使用前的天数。When a new a Serial Number is issued, this is "
+"the number of days before the goods may become dangerous and must not be "
+"consumed."
#. module: product_expiry
#: field:stock.production.lot,alert_date:0
@@ -134,14 +137,14 @@ msgstr "警告日期"
msgid ""
"This is the date on which the goods with this Serial Number start "
"deteriorating, without being dangerous yet."
-msgstr ""
+msgstr "此处表明该序列号的商品开始变质的日期(未变危险)。"
#. module: product_expiry
#: help:stock.production.lot,life_date:0
msgid ""
"This is the date on which the goods with this Serial Number may become "
"dangerous and must not be consumed."
-msgstr ""
+msgstr "此处表明该序列号的商品变得危险的日期,此时该商品不能使用。"
#. module: product_expiry
#: field:product.product,alert_time:0
diff --git a/addons/product_margin/i18n/zh_CN.po b/addons/product_margin/i18n/zh_CN.po
index cc047bd10d2..a19a1b72010 100644
--- a/addons/product_margin/i18n/zh_CN.po
+++ b/addons/product_margin/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
-"PO-Revision-Date: 2012-11-27 11:58+0000\n"
-"Last-Translator: 盈通 ccdos \n"
+"PO-Revision-Date: 2013-11-19 10:43+0000\n"
+"Last-Translator: Guipo Hao \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:01+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-11-20 05:25+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
#. module: product_margin
#: view:product.product:0
@@ -51,7 +51,7 @@ msgstr "营业额-标准价格"
#. module: product_margin
#: field:product.product,total_margin_rate:0
msgid "Total Margin Rate(%)"
-msgstr ""
+msgstr "总盈利率(%)"
#. module: product_margin
#: selection:product.margin,invoice_state:0
@@ -77,7 +77,7 @@ msgstr "平均单价"
#. module: product_margin
#: field:product.product,sale_num_invoiced:0
msgid "# Invoiced in Sale"
-msgstr ""
+msgstr "# 销售开票"
#. module: product_margin
#: view:product.product:0
@@ -119,7 +119,7 @@ msgstr "供应商发票数量合计"
#. module: product_margin
#: field:product.product,date_to:0
msgid "Margin Date To"
-msgstr ""
+msgstr "盈利结束日"
#. module: product_margin
#: view:product.product:0
@@ -187,7 +187,7 @@ msgstr "总利润"
#. module: product_margin
#: field:product.product,date_from:0
msgid "Margin Date From"
-msgstr ""
+msgstr "盈利开始日"
#. module: product_margin
#: help:product.product,turnover:0
@@ -208,7 +208,7 @@ msgstr "采购"
#. module: product_margin
#: field:product.product,purchase_num_invoiced:0
msgid "# Invoiced in Purchase"
-msgstr ""
+msgstr "# 采购开票"
#. module: product_margin
#: help:product.product,expected_margin:0
diff --git a/addons/product_visible_discount/product_visible_discount.py b/addons/product_visible_discount/product_visible_discount.py
index a2f0a41847f..605a71e8b80 100644
--- a/addons/product_visible_discount/product_visible_discount.py
+++ b/addons/product_visible_discount/product_visible_discount.py
@@ -48,12 +48,6 @@ class sale_order_line(osv.osv):
product_obj = self.pool.get('product.product')
field_name = 'list_price'
- if res_dict.get('item_id',False) and res_dict['item_id'].get(pricelist,False):
- item = res_dict['item_id'].get(pricelist,False)
- item_base = item_obj.read(cr, uid, [item], ['base'])[0]['base']
- if item_base > 0:
- field_name = price_type_obj.browse(cr, uid, item_base).field
-
product = product_obj.browse(cr, uid, product_id, context)
product_read = product_obj.read(cr, uid, product_id, [field_name], context=context)
@@ -86,78 +80,13 @@ class sale_order_line(osv.osv):
pricelists = pricelist_obj.read(cr,uid,[pricelist],['visible_discount'])
new_list_price = get_real_price(list_price, product.id, qty, uom, pricelist)
- if(len(pricelists)>0 and pricelists[0]['visible_discount'] and list_price[pricelist] != 0):
+ if len(pricelists)>0 and pricelists[0]['visible_discount'] and list_price[pricelist] != 0 and new_list_price != 0:
discount = (new_list_price - price) / new_list_price * 100
- result['price_unit'] = new_list_price
- result['discount'] = discount
+ if discount > 0:
+ result['price_unit'] = new_list_price
+ result['discount'] = discount
+ else:
+ result['discount'] = 0.0
else:
result['discount'] = 0.0
return res
-
-
-class account_invoice_line(osv.osv):
- _inherit = "account.invoice.line"
-
- def product_id_change(self, cr, uid, ids, product, uom_id, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, currency_id=False, context=None, company_id=None):
- res = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom_id, qty, name, type, partner_id, fposition_id, price_unit,currency_id, context=context, company_id=company_id)
-
- def get_real_price(res_dict, product_id, qty, uom_id, pricelist):
- item_obj = self.pool.get('product.pricelist.item')
- price_type_obj = self.pool.get('product.price.type')
- product_obj = self.pool.get('product.product')
- field_name = 'list_price'
-
- if res_dict.get('item_id',False) and res_dict['item_id'].get(pricelist,False):
- item = res_dict['item_id'].get(pricelist,False)
- item_read = item_obj.read(cr, uid, [item], ['base'])
- if item_read:
- item_base = item_read[0]['base']
- if item_base > 0:
- field_name = price_type_obj.browse(cr, uid, item_base).field
-
- product = product_obj.browse(cr, uid, product_id, context)
- product_read = product_obj.read(cr, uid, product_id, [field_name], context=context)
-
- factor = 1.0
- if uom_id and uom_id != product.uom_id.id:
- product_uom_obj = self.pool.get('product.uom')
- uom_data = product_uom_obj.browse(cr, uid, product.uom_id.id)
- factor = uom_data.factor
- return product_read[field_name] * factor
-
- if product:
- pricelist_obj = self.pool.get('product.pricelist')
- partner_obj = self.pool.get('res.partner')
- product = self.pool.get('product.product').browse(cr, uid, product, context=context)
- result = res['value']
- pricelist = False
- real_price = 0.00
- if type in ('in_invoice', 'in_refund'):
- if not price_unit and partner_id:
- pricelist =partner_obj.browse(cr, uid, partner_id).property_product_pricelist_purchase.id
- if not pricelist:
- raise osv.except_osv(_('No Purchase Pricelist Found!'),_("You must first define a pricelist on the supplier form!"))
- price_unit_res = pricelist_obj.price_get(cr, uid, [pricelist], product.id, qty or 1.0, partner_id, {'uom': uom_id})
- price_unit = price_unit_res[pricelist]
- real_price = get_real_price(price_unit_res, product.id, qty, uom_id, pricelist)
- else:
- if partner_id:
- pricelist = partner_obj.browse(cr, uid, partner_id).property_product_pricelist.id
- if not pricelist:
- raise osv.except_osv(_('No Sale Pricelist Found!'),_("You must first define a pricelist on the customer form!"))
- price_unit_res = pricelist_obj.price_get(cr, uid, [pricelist], product.id, qty or 1.0, partner_id, {'uom': uom_id})
- price_unit = price_unit_res[pricelist]
-
- real_price = get_real_price(price_unit_res, product.id, qty, uom_id, pricelist)
- if pricelist:
- pricelists=pricelist_obj.read(cr,uid,[pricelist],['visible_discount'])
- if(len(pricelists)>0 and pricelists[0]['visible_discount'] and real_price != 0):
- discount=(real_price-price_unit) / real_price * 100
- result['price_unit'] = real_price
- result['discount'] = discount
- else:
- result['discount']=0.0
- return res
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project/i18n/he.po b/addons/project/i18n/he.po
new file mode 100644
index 00000000000..714693d9df4
--- /dev/null
+++ b/addons/project/i18n/he.po
@@ -0,0 +1,2109 @@
+# Hebrew translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:04+0000\n"
+"PO-Revision-Date: 2013-12-27 10:08+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Hebrew \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-28 05:19+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: project
+#: view:project.project:0
+msgid "Email Interface"
+msgstr ""
+
+#. module: project
+#: help:account.analytic.account,use_tasks:0
+msgid ""
+"If checked, this contract will be available in the project menu and you will "
+"be able to manage tasks or track issues"
+msgstr ""
+
+#. module: project
+#: field:project.project,progress_rate:0
+#: view:report.project.task.user:0
+#: field:report.project.task.user,progress:0
+msgid "Progress"
+msgstr ""
+
+#. module: project
+#: model:process.node,name:project.process_node_taskbydelegate0
+msgid "Task by delegate"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Parent"
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,name:project.dblc_proj
+msgid "Project's tasks"
+msgstr ""
+
+#. module: project
+#: field:project.task.type,name:0
+msgid "Stage Name"
+msgstr ""
+
+#. module: project
+#: model:process.transition.action,name:project.process_transition_action_openpendingtask0
+msgid "Set pending"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "New Project Based on Template"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+#: field:report.project.task.user,day:0
+msgid "Day"
+msgstr ""
+
+#. module: project
+#: model:project.task.type,name:project.project_tt_merge
+msgid "Merge"
+msgstr ""
+
+#. module: project
+#: view:res.partner:0
+msgid "Start Task"
+msgstr ""
+
+#. module: project
+#: code:addons/project/project.py:944
+#, python-format
+msgid "Warning !"
+msgstr ""
+
+#. module: project
+#: help:project.project,message_unread:0
+#: help:project.task,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: project
+#: model:process.node,name:project.process_node_donetask0
+msgid "Done task"
+msgstr ""
+
+#. module: project
+#: model:process.node,note:project.process_node_donetask0
+msgid "Task is Completed"
+msgstr ""
+
+#. module: project
+#: view:res.partner:0
+msgid "False"
+msgstr ""
+
+#. module: project
+#: model:project.task.type,name:project.project_tt_testing
+msgid "Testing"
+msgstr ""
+
+#. module: project
+#: model:ir.model,name:project.model_account_analytic_account
+msgid "Analytic Account"
+msgstr ""
+
+#. module: project
+#: field:project.config.settings,group_time_work_estimation_tasks:0
+msgid "Manage time estimation on tasks"
+msgstr ""
+
+#. module: project
+#: help:project.project,message_summary:0
+#: help:project.task,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: project
+#: code:addons/project/project.py:444
+#: code:addons/project/project.py:1332
+#, python-format
+msgid "Warning!"
+msgstr ""
+
+#. module: project
+#: model:ir.model,name:project.model_res_partner
+msgid "Partner"
+msgstr ""
+
+#. module: project
+#: field:project.config.settings,group_manage_delegation_task:0
+msgid "Allow task delegation"
+msgstr ""
+
+#. module: project
+#: field:project.task.delegate,planned_hours:0
+#: view:report.project.task.user:0
+#: field:report.project.task.user,hours_planned:0
+msgid "Planned Hours"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Reset as Project"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+msgid "In progress tasks"
+msgstr ""
+
+#. module: project
+#: help:project.project,progress_rate:0
+msgid "Percent of tasks closed according to the total of tasks todo."
+msgstr ""
+
+#. module: project
+#: model:ir.actions.client,name:project.action_client_project_menu
+msgid "Open Project Menu"
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,help:project.action_project_task_user_tree
+msgid ""
+"This report allows you to analyse the performance of your projects and "
+"users. You can analyse the quantities of tasks, the hours spent compared to "
+"the planned hours, the average number of days to open or close a task, etc."
+msgstr ""
+
+#. module: project
+#: view:project.task.delegate:0
+msgid "Validation Task Title"
+msgstr ""
+
+#. module: project
+#: model:res.groups,name:project.group_delegate_task
+msgid "Task Delegation"
+msgstr ""
+
+#. module: project
+#: field:project.project,planned_hours:0
+#: field:project.task.history,planned_hours:0
+#: field:project.task.history.cumulative,planned_hours:0
+msgid "Planned Time"
+msgstr ""
+
+#. module: project
+#: selection:project.project,privacy_visibility:0
+msgid "Public"
+msgstr ""
+
+#. module: project
+#: model:project.category,name:project.project_category_01
+msgid "Contact's suggestion"
+msgstr ""
+
+#. module: project
+#: help:project.config.settings,group_time_work_estimation_tasks:0
+msgid "Allows you to compute Time Estimation on tasks."
+msgstr ""
+
+#. module: project
+#: field:report.project.task.user,user_id:0
+msgid "Assigned To"
+msgstr ""
+
+#. module: project
+#: model:mail.message.subtype,name:project.mt_project_task_closed
+#: model:mail.message.subtype,name:project.mt_task_closed
+msgid "Task Done"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+#: view:report.project.task.user:0
+#: field:report.project.task.user,partner_id:0
+msgid "Contact"
+msgstr ""
+
+#. module: project
+#: model:process.transition,name:project.process_transition_delegate0
+#: view:project.task:0
+msgid "Delegate"
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,name:project.open_view_template_project
+#: view:project.project:0
+msgid "Templates of Projects"
+msgstr ""
+
+#. module: project
+#: field:project.project,analytic_account_id:0
+msgid "Contract/Analytic"
+msgstr ""
+
+#. module: project
+#: view:project.config.settings:0
+msgid "Project Management"
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,name:project.action_project_task_delegate
+#: view:project.task.delegate:0
+msgid "Project Task Delegate"
+msgstr ""
+
+#. module: project
+#: model:mail.message.subtype,name:project.mt_project_task_started
+#: model:mail.message.subtype,name:project.mt_task_started
+msgid "Task Started"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "Very Important"
+msgstr ""
+
+#. module: project
+#: view:project.config.settings:0
+msgid "Support"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Member"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "Cancel Task"
+msgstr ""
+
+#. module: project
+#: help:project.project,members:0
+msgid ""
+"Project's members are users who can have an access to the tasks related to "
+"this project."
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+#: field:project.task,manager_id:0
+msgid "Project Manager"
+msgstr ""
+
+#. module: project
+#: field:project.project,state:0
+#: field:project.task,state:0
+#: field:project.task.history,state:0
+#: field:project.task.history.cumulative,state:0
+#: field:report.project.task.user,state:0
+msgid "Status"
+msgstr ""
+
+#. module: project
+#: selection:report.project.task.user,month:0
+msgid "August"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+#: field:project.project,complete_name:0
+msgid "Project Name"
+msgstr ""
+
+#. module: project
+#: selection:report.project.task.user,month:0
+msgid "June"
+msgstr ""
+
+#. module: project
+#: selection:report.project.task.user,month:0
+msgid "October"
+msgstr ""
+
+#. module: project
+#: help:project.project,total_hours:0
+msgid ""
+"Sum of total hours of all tasks related to this project and its child "
+"projects."
+msgstr ""
+
+#. module: project
+#: help:project.project,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the project "
+"without removing it."
+msgstr ""
+
+#. module: project
+#: model:process.transition,note:project.process_transition_opendonetask0
+msgid "When task is completed, it will come into the done state."
+msgstr ""
+
+#. module: project
+#: field:project.project,message_summary:0
+#: field:project.task,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Append this project to another one using analytic accounts hierarchy"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: view:project.task.history.cumulative:0
+msgid "In Progress Tasks"
+msgstr ""
+
+#. module: project
+#: help:res.company,project_time_mode_id:0
+msgid ""
+"This will set the unit of measure used in projects and tasks.\n"
+"If you use the timesheet linked to projects (project_timesheet module), "
+"don't forget to setup the right unit of measure in your employees."
+msgstr ""
+
+#. module: project
+#: field:project.task,user_id:0
+#: view:report.project.task.user:0
+msgid "Assigned to"
+msgstr ""
+
+#. module: project
+#: code:addons/project/project.py:1033
+#, python-format
+msgid "Delegated User should be specified"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Project(s) Manager"
+msgstr ""
+
+#. module: project
+#: selection:project.project,state:0
+#: view:project.task:0
+#: selection:project.task,state:0
+#: selection:project.task.history,state:0
+#: selection:project.task.history.cumulative,state:0
+#: selection:project.task.type,state:0
+#: selection:report.project.task.user,state:0
+msgid "In Progress"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "Reactivate"
+msgstr ""
+
+#. module: project
+#: field:project.project,resource_calendar_id:0
+msgid "Working Time"
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,name:project.action_project_task_reevaluate
+msgid "Re-evaluate Task"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "Validate planned time"
+msgstr ""
+
+#. module: project
+#: field:project.config.settings,module_pad:0
+msgid "Use integrated collaborative note pads on task"
+msgstr ""
+
+#. module: project
+#: model:mail.message.subtype,name:project.mt_project_task_blocked
+#: model:mail.message.subtype,name:project.mt_task_blocked
+msgid "Task Blocked"
+msgstr ""
+
+#. module: project
+#: model:process.node,note:project.process_node_opentask0
+msgid "Encode your working hours."
+msgstr ""
+
+#. module: project
+#: field:project.project,alias_id:0
+msgid "Alias"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "oe_kanban_text_red"
+msgstr ""
+
+#. module: project
+#: model:mail.message.subtype,description:project.mt_task_blocked
+msgid "Task blocked"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "Delegation"
+msgstr ""
+
+#. module: project
+#: field:project.task,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: project
+#: view:res.partner:0
+msgid "For changing to open state"
+msgstr ""
+
+#. module: project
+#: view:project.config.settings:0
+msgid "Apply"
+msgstr ""
+
+#. module: project
+#: model:ir.model,name:project.model_project_task_delegate
+msgid "Task Delegate"
+msgstr ""
+
+#. module: project
+#: help:project.task.delegate,new_task_description:0
+msgid "Reinclude the description of the task in the task of the user"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Project Settings"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+msgid "My tasks"
+msgstr ""
+
+#. module: project
+#: model:process.transition,name:project.process_transition_opendonetask0
+msgid "Open Done Task"
+msgstr ""
+
+#. module: project
+#: field:project.task.delegate,planned_hours_me:0
+msgid "Hours to Validate"
+msgstr ""
+
+#. module: project
+#: help:project.task,remaining_hours:0
+msgid ""
+"Total remaining time, can be re-estimated periodically by the assignee of "
+"the task."
+msgstr ""
+
+#. module: project
+#: selection:report.project.task.user,month:0
+msgid "March"
+msgstr ""
+
+#. module: project
+#: view:board.board:0
+#: model:ir.actions.act_window,name:project.my_open_tasks_action
+#: view:project.task:0
+#: view:project.task.history.cumulative:0
+msgid "My Tasks"
+msgstr ""
+
+#. module: project
+#: constraint:project.task:0
+msgid "Error ! You cannot create recursive tasks."
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+msgid "Pending tasks"
+msgstr ""
+
+#. module: project
+#: view:project.task.reevaluate:0
+msgid "_Evaluate"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+#: field:report.project.task.user,opening_days:0
+msgid "Days to Open"
+msgstr ""
+
+#. module: project
+#: selection:report.project.task.user,priority:0
+msgid "Very urgent"
+msgstr ""
+
+#. module: project
+#: help:project.task.delegate,project_id:0
+#: help:project.task.delegate,user_id:0
+msgid "User you want to delegate this task to"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Set as Template"
+msgstr ""
+
+#. module: project
+#: model:ir.model,name:project.model_project_task
+#: view:project.config.settings:0
+#: view:project.project:0
+#: view:project.task:0
+#: field:project.task.history,task_id:0
+#: field:project.task.history.cumulative,task_id:0
+#: field:project.task.work,task_id:0
+#: view:report.project.task.user:0
+msgid "Task"
+msgstr ""
+
+#. module: project
+#: help:project.config.settings,group_tasks_work_on_tasks:0
+msgid "Allows you to compute work on tasks."
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Administration"
+msgstr ""
+
+#. module: project
+#: field:project.config.settings,group_tasks_work_on_tasks:0
+msgid "Log work activities on tasks"
+msgstr ""
+
+#. module: project
+#: model:project.task.type,name:project.project_tt_analysis
+msgid "Analysis"
+msgstr ""
+
+#. module: project
+#: field:project.task,name:0
+#: field:report.project.task.user,name:0
+msgid "Task Summary"
+msgstr ""
+
+#. module: project
+#: field:project.task,active:0
+msgid "Not a Template Task"
+msgstr ""
+
+#. module: project
+#: field:project.task,planned_hours:0
+msgid "Initially Planned Hours"
+msgstr ""
+
+#. module: project
+#: model:process.transition,note:project.process_transition_delegate0
+msgid "Delegates tasks to the other user"
+msgstr ""
+
+#. module: project
+#: help:project.task,effective_hours:0
+msgid "Computed using the sum of the task work done."
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,help:project.open_view_project_all
+msgid ""
+"
\n"
+" Click to start a new project.\n"
+"
\n"
+" Projects are used to organize your activities; plan\n"
+" tasks, track issues, invoice timesheets. You can define\n"
+" internal projects (R&D, Improve Sales Process),\n"
+" private projects (My Todos) or customer ones.\n"
+"
\n"
+" You will be able collaborate with internal users on\n"
+" projects or invite customers to share your activities.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: project
+#: view:project.config.settings:0
+msgid "Planning"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: field:project.task,date_deadline:0
+#: field:report.project.task.user,date_deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. module: project
+#: view:project.task.history.cumulative:0
+msgid "Ready"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "New Tasks"
+msgstr ""
+
+#. module: project
+#: field:project.config.settings,module_project_issue_sheet:0
+msgid "Invoice working time on issues"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+#: view:project.task:0
+#: field:project.task.history,end_date:0
+#: field:project.task.history.cumulative,end_date:0
+msgid "End Date"
+msgstr ""
+
+#. module: project
+#: model:project.task.type,name:project.project_tt_specification
+msgid "Specification"
+msgstr ""
+
+#. module: project
+#: model:process.transition,note:project.process_transition_draftopentask0
+msgid "From draft state, it will come into the open state."
+msgstr ""
+
+#. module: project
+#: view:project.task.history.cumulative:0
+msgid "Task's Analysis"
+msgstr ""
+
+#. module: project
+#: view:project.task.delegate:0
+#: field:project.task.delegate,new_task_description:0
+msgid "New Task Description"
+msgstr ""
+
+#. module: project
+#: field:report.project.task.user,delay_endings_days:0
+msgid "Overpassed Deadline"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+msgid "New tasks"
+msgstr ""
+
+#. module: project
+#: selection:project.task,priority:0
+#: selection:report.project.task.user,priority:0
+msgid "Medium"
+msgstr ""
+
+#. module: project
+#: field:project.project,total_hours:0
+msgid "Total Time"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Miscellaneous"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: field:project.task,stage_id:0
+#: field:project.task.history,type_id:0
+#: field:project.task.history.cumulative,type_id:0
+msgid "Stage"
+msgstr ""
+
+#. module: project
+#: model:process.transition,name:project.process_transition_draftopentask0
+msgid "Draft Open task"
+msgstr ""
+
+#. module: project
+#: field:project.project,alias_model:0
+msgid "Alias Model"
+msgstr ""
+
+#. module: project
+#: help:report.project.task.user,closing_days:0
+msgid "Number of Days to close the task"
+msgstr ""
+
+#. module: project
+#: view:board.board:0
+msgid "My Board"
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,name:project.open_task_type_form
+msgid "Stages"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+#: view:project.task:0
+msgid "Delete"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+msgid "In progress"
+msgstr ""
+
+#. module: project
+#: selection:report.project.task.user,month:0
+msgid "September"
+msgstr ""
+
+#. module: project
+#: selection:report.project.task.user,priority:0
+msgid "Urgent"
+msgstr ""
+
+#. module: project
+#: model:project.category,name:project.project_category_02
+msgid "Feature request"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "Delegated tasks"
+msgstr ""
+
+#. module: project
+#: model:ir.model,name:project.model_project_task_work
+msgid "Project Task Work"
+msgstr ""
+
+#. module: project
+#: code:addons/project/wizard/project_task_delegate.py:81
+#, python-format
+msgid "CHECK: %s"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Close Project"
+msgstr ""
+
+#. module: project
+#: field:project.project,tasks:0
+msgid "Task Activities"
+msgstr ""
+
+#. module: project
+#: field:project.project,effective_hours:0
+#: field:project.task.work,hours:0
+msgid "Time Spent"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+#: view:project.task:0
+msgid "í"
+msgstr ""
+
+#. module: project
+#: field:account.analytic.account,company_uom_id:0
+msgid "unknown"
+msgstr ""
+
+#. module: project
+#: field:project.project,message_is_follower:0
+#: field:project.task,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: project
+#: field:project.task,work_ids:0
+msgid "Work done"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: project
+#: model:ir.ui.menu,name:project.menu_tasks_config
+msgid "GTD"
+msgstr ""
+
+#. module: project
+#: help:project.task,state:0
+msgid ""
+"The status is set to 'Draft', when a case is created. "
+"If the case is in progress the status is set to 'Open'. "
+"When the case is over, the status is set to 'Done'. If "
+"the case needs to be reviewed then the status is set "
+"to 'Pending'."
+msgstr ""
+
+#. module: project
+#: model:ir.model,name:project.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: project
+#: field:project.task.type,fold:0
+msgid "Folded by Default"
+msgstr ""
+
+#. module: project
+#: field:project.task.history,date:0
+#: field:project.task.history.cumulative,date:0
+#: field:project.task.work,date:0
+msgid "Date"
+msgstr ""
+
+#. module: project
+#: help:project.config.settings,module_project_issue:0
+msgid ""
+"Provides management of issues/bugs in projects.\n"
+" This installs the module project_issue."
+msgstr ""
+
+#. module: project
+#: help:project.task,kanban_state:0
+msgid ""
+"A task's kanban state indicates special situations affecting it:\n"
+" * Normal is the default situation\n"
+" * Blocked indicates something is preventing the progress of this task\n"
+" * Ready for next stage indicates the task is ready to be pulled to the next "
+"stage"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "10"
+msgstr ""
+
+#. module: project
+#: help:project.project,analytic_account_id:0
+msgid ""
+"Link this project to an analytic account if you need financial management on "
+"projects. It enables you to connect projects with budgets, planning, cost "
+"and revenue analysis, timesheets on projects, etc."
+msgstr ""
+
+#. module: project
+#: model:process.transition.action,name:project.process_transition_action_draftcanceltask0
+#: model:process.transition.action,name:project.process_transition_action_opencanceltask0
+#: view:project.config.settings:0
+#: view:project.task.delegate:0
+#: view:project.task.reevaluate:0
+msgid "Cancel"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Other Info"
+msgstr ""
+
+#. module: project
+#: view:project.task.delegate:0
+msgid "_Delegate"
+msgstr ""
+
+#. module: project
+#: selection:project.task,priority:0
+#: selection:report.project.task.user,priority:0
+msgid "Very Low"
+msgstr ""
+
+#. module: project
+#: help:project.project,effective_hours:0
+msgid ""
+"Sum of spent hours of all tasks related to this project and its child "
+"projects."
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid ""
+"Follow this project to automatically track the events associated to tasks "
+"and issues of this project."
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "Users"
+msgstr ""
+
+#. module: project
+#: model:mail.message.subtype,name:project.mt_task_stage
+msgid "Stage Changed"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+#: model:res.groups,name:project.group_project_manager
+msgid "Manager"
+msgstr ""
+
+#. module: project
+#: selection:project.task,priority:0
+msgid "Important"
+msgstr ""
+
+#. module: project
+#: field:project.category,name:0
+msgid "Name"
+msgstr ""
+
+#. module: project
+#: selection:report.project.task.user,month:0
+msgid "November"
+msgstr ""
+
+#. module: project
+#: view:project.task.reevaluate:0
+msgid "Reevaluate Task"
+msgstr ""
+
+#. module: project
+#: model:ir.model,name:project.model_project_task_type
+#: view:project.task.type:0
+msgid "Task Stage"
+msgstr ""
+
+#. module: project
+#: view:project.task.type:0
+msgid "Common"
+msgstr ""
+
+#. module: project
+#: help:project.project,message_ids:0
+#: help:project.task,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid ""
+"To invoice or setup invoicing and renewal options, go to the related "
+"contract:"
+msgstr ""
+
+#. module: project
+#: field:project.task.delegate,state:0
+msgid "Validation State"
+msgstr ""
+
+#. module: project
+#: field:project.task.work,name:0
+msgid "Work summary"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+#: view:project.task:0
+#: view:report.project.task.user:0
+msgid "Group By..."
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+#: selection:project.project,state:0
+msgid "Template"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Re-open project"
+msgstr ""
+
+#. module: project
+#: help:project.project,priority:0
+msgid "Gives the sequence order when displaying the list of projects"
+msgstr ""
+
+#. module: project
+#: constraint:project.project:0
+msgid "Error! project start-date must be lower then project end-date."
+msgstr ""
+
+#. module: project
+#: field:project.project,members:0
+msgid "Project Members"
+msgstr ""
+
+#. module: project
+#: field:project.task,child_ids:0
+msgid "Delegated Tasks"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+#: field:project.project,message_unread:0
+#: view:project.task:0
+#: field:project.task,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: field:project.task,parent_ids:0
+msgid "Parent Tasks"
+msgstr ""
+
+#. module: project
+#: model:process.node,name:project.process_node_opentask0
+msgid "Open task"
+msgstr ""
+
+#. module: project
+#: view:project.task.type:0
+msgid "Stages common to all projects"
+msgstr ""
+
+#. module: project
+#: model:process.node,name:project.process_node_drafttask0
+msgid "Draft task"
+msgstr ""
+
+#. module: project
+#: field:project.task,notes:0
+msgid "Notes"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: view:project.task.history.cumulative:0
+msgid "Pending Tasks"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "Show only tasks having a deadline"
+msgstr ""
+
+#. module: project
+#: model:project.category,name:project.project_category_04
+msgid "Usability"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+#: field:report.project.task.user,hours_delay:0
+msgid "Avg. Plan.-Eff."
+msgstr ""
+
+#. module: project
+#: field:project.task.work,user_id:0
+msgid "Done by"
+msgstr ""
+
+#. module: project
+#: code:addons/project/project.py:181
+#, python-format
+msgid "Invalid Action!"
+msgstr ""
+
+#. module: project
+#: help:project.task.type,state:0
+msgid ""
+"The status of your document is automatically changed regarding the selected "
+"stage. For example, if a stage is related to the status 'Close', when your "
+"document reaches this stage, it is automatically closed."
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "Extra Info"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "Edit..."
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+#: field:report.project.task.user,nbr:0
+msgid "# of tasks"
+msgstr ""
+
+#. module: project
+#: field:project.project,doc_count:0
+msgid "Number of documents attached"
+msgstr ""
+
+#. module: project
+#: field:project.task,priority:0
+#: field:report.project.task.user,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Open Projects"
+msgstr ""
+
+#. module: project
+#: help:project.project,alias_id:0
+msgid ""
+"Internal email associated with this project. Incoming emails are "
+"automatically synchronizedwith Tasks (or optionally Issues if the Issue "
+"Tracker module is installed)."
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,help:project.open_task_type_form
+msgid ""
+"
\n"
+" Click to add a stage in the task pipeline.\n"
+"
\n"
+" Define the steps that will be used in the project from the\n"
+" creation of the task, up to the closing of the task or "
+"issue.\n"
+" You will use these stages in order to track the progress in\n"
+" solving a task or an issue.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: project
+#: help:project.task,total_hours:0
+msgid "Computed as: Time Spent + Remaining Time."
+msgstr ""
+
+#. module: project
+#: code:addons/project/project.py:368
+#: code:addons/project/project.py:389
+#: code:addons/project/project.py:721
+#, python-format
+msgid "%s (copy)"
+msgstr ""
+
+#. module: project
+#: model:mail.message.subtype,name:project.mt_project_task_stage
+msgid "Task Stage Changed"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: field:project.task.history,remaining_hours:0
+#: field:project.task.history.cumulative,remaining_hours:0
+msgid "Remaining Time"
+msgstr ""
+
+#. module: project
+#: field:project.task.delegate,name:0
+msgid "Delegated Title"
+msgstr ""
+
+#. module: project
+#: selection:report.project.task.user,month:0
+msgid "July"
+msgstr ""
+
+#. module: project
+#: model:ir.model,name:project.model_project_task_reevaluate
+msgid "project.task.reevaluate"
+msgstr ""
+
+#. module: project
+#: field:project.task,delay_hours:0
+msgid "Delay Hours"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Team"
+msgstr ""
+
+#. module: project
+#: help:project.config.settings,time_unit:0
+msgid "This will set the unit of measure used in projects and tasks."
+msgstr ""
+
+#. module: project
+#: selection:project.task,priority:0
+msgid "Very important"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+#: field:report.project.task.user,month:0
+msgid "Month"
+msgstr ""
+
+#. module: project
+#: model:project.task.type,name:project.project_tt_design
+msgid "Design"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "Start Date"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: selection:project.task,kanban_state:0
+#: selection:project.task.history,kanban_state:0
+#: view:project.task.history.cumulative:0
+#: selection:project.task.history.cumulative,kanban_state:0
+msgid "Blocked"
+msgstr ""
+
+#. module: project
+#: help:project.task,progress:0
+msgid ""
+"If the task has a progress of 99.99% you should close the task if it's "
+"finished or reevaluate the time"
+msgstr ""
+
+#. module: project
+#: field:project.task,user_email:0
+msgid "User Email"
+msgstr ""
+
+#. module: project
+#: help:project.task.delegate,prefix:0
+msgid "Title for your validation task"
+msgstr ""
+
+#. module: project
+#: field:project.config.settings,time_unit:0
+msgid "Working time unit"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Projects in which I am a member."
+msgstr ""
+
+#. module: project
+#: selection:project.task,priority:0
+#: selection:report.project.task.user,priority:0
+msgid "Low"
+msgstr ""
+
+#. module: project
+#: selection:project.project,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+#: selection:project.project,state:0
+#: view:project.task:0
+#: selection:project.task,state:0
+#: selection:project.task.delegate,state:0
+#: selection:project.task.history,state:0
+#: selection:project.task.history.cumulative,state:0
+#: selection:project.task.type,state:0
+#: view:report.project.task.user:0
+#: selection:report.project.task.user,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,name:project.project_category_action
+#: model:ir.ui.menu,name:project.menu_project_category_act
+#: view:project.category:0
+#: field:project.task,categ_ids:0
+msgid "Tags"
+msgstr ""
+
+#. module: project
+#: model:ir.model,name:project.model_project_task_history
+#: model:ir.model,name:project.model_project_task_history_cumulative
+msgid "History of Tasks"
+msgstr ""
+
+#. module: project
+#: help:project.task.delegate,state:0
+msgid ""
+"New state of your own task. Pending will be reopened automatically when the "
+"delegated task is closed"
+msgstr ""
+
+#. module: project
+#: help:project.config.settings,group_manage_delegation_task:0
+msgid "Allows you to delegate tasks to other users."
+msgstr ""
+
+#. module: project
+#: field:project.project,active:0
+msgid "Active"
+msgstr ""
+
+#. module: project
+#: model:ir.model,name:project.model_project_category
+msgid "Category of project's task, issue, ..."
+msgstr ""
+
+#. module: project
+#: help:project.project,resource_calendar_id:0
+msgid "Timetable working hours to adjust the gantt diagram report"
+msgstr ""
+
+#. module: project
+#: help:project.task,delay_hours:0
+msgid ""
+"Computed as difference between planned hours by the project manager and the "
+"total hours of the task."
+msgstr ""
+
+#. module: project
+#: view:project.config.settings:0
+msgid "Helpdesk & Support"
+msgstr ""
+
+#. module: project
+#: help:report.project.task.user,opening_days:0
+msgid "Number of Days to Open the task"
+msgstr ""
+
+#. module: project
+#: field:project.task,delegated_user_id:0
+msgid "Delegated To"
+msgstr ""
+
+#. module: project
+#: help:project.task,planned_hours:0
+msgid ""
+"Estimated time to do the task, usually set by the project manager when the "
+"task is in draft state."
+msgstr ""
+
+#. module: project
+#: code:addons/project/project.py:230
+#, python-format
+msgid "Attachments"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: selection:project.task,state:0
+#: selection:project.task.delegate,state:0
+#: selection:project.task.history,state:0
+#: selection:project.task.history.cumulative,state:0
+#: model:project.task.type,name:project.project_tt_deployment
+#: selection:project.task.type,state:0
+#: view:report.project.task.user:0
+#: selection:report.project.task.user,state:0
+#: view:res.partner:0
+msgid "Done"
+msgstr ""
+
+#. module: project
+#: code:addons/project/project.py:182
+#, python-format
+msgid ""
+"You cannot delete a project containing tasks. You can either delete all the "
+"project's tasks and then delete the project or simply deactivate the project."
+msgstr ""
+
+#. module: project
+#: model:process.transition.action,name:project.process_transition_action_draftopentask0
+#: view:project.project:0
+msgid "Open"
+msgstr ""
+
+#. module: project
+#: field:project.project,privacy_visibility:0
+msgid "Privacy / Visibility"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: field:project.task,remaining_hours:0
+#: field:project.task.reevaluate,remaining_hours:0
+#: view:report.project.task.user:0
+#: field:report.project.task.user,remaining_hours:0
+msgid "Remaining Hours"
+msgstr ""
+
+#. module: project
+#: model:mail.message.subtype,description:project.mt_task_stage
+msgid "Stage changed"
+msgstr ""
+
+#. module: project
+#: constraint:project.task:0
+msgid "Error ! Task end-date must be greater then task start-date"
+msgstr ""
+
+#. module: project
+#: field:project.task.history,user_id:0
+#: field:project.task.history.cumulative,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Search Project"
+msgstr ""
+
+#. module: project
+#: view:project.task.delegate:0
+msgid "Delegated Task"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+#: field:report.project.task.user,total_hours:0
+msgid "Total Hours"
+msgstr ""
+
+#. module: project
+#: model:ir.model,name:project.model_project_config_settings
+msgid "project.config.settings"
+msgstr ""
+
+#. module: project
+#: model:project.task.type,name:project.project_tt_development
+msgid "Development"
+msgstr ""
+
+#. module: project
+#: help:project.task,active:0
+msgid ""
+"This field is computed automatically and have the same behavior than the "
+"boolean 'active' field: if the task is linked to a template or unactivated "
+"project, it will be hidden unless specifically asked."
+msgstr ""
+
+#. module: project
+#: model:res.request.link,name:project.req_link_task
+msgid "Project task"
+msgstr ""
+
+#. module: project
+#: field:project.task,effective_hours:0
+msgid "Hours Spent"
+msgstr ""
+
+#. module: project
+#: help:project.config.settings,module_pad:0
+msgid ""
+"Lets the company customize which Pad installation should be used to link to "
+"new pads\n"
+" (by default, http://ietherpad.com/).\n"
+" This installs the module pad."
+msgstr ""
+
+#. module: project
+#: field:project.task,id:0
+msgid "ID"
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,name:project.action_view_task_overpassed_draft
+msgid "Overpassed Tasks"
+msgstr ""
+
+#. module: project
+#: code:addons/project/project.py:944
+#, python-format
+msgid ""
+"Child task still open.\n"
+"Please cancel or complete child task first."
+msgstr ""
+
+#. module: project
+#: field:project.task.delegate,user_id:0
+msgid "Assign To"
+msgstr ""
+
+#. module: project
+#: model:res.groups,name:project.group_time_work_estimation_tasks
+msgid "Time Estimation on Tasks"
+msgstr ""
+
+#. module: project
+#: field:project.task,total_hours:0
+msgid "Total"
+msgstr ""
+
+#. module: project
+#: model:process.node,note:project.process_node_taskbydelegate0
+msgid "Delegate your task to the other user"
+msgstr ""
+
+#. module: project
+#: model:mail.message.subtype,description:project.mt_task_started
+msgid "Task started"
+msgstr ""
+
+#. module: project
+#: help:project.task.reevaluate,remaining_hours:0
+msgid "Put here the remaining hours required to close the task."
+msgstr ""
+
+#. module: project
+#: help:project.task.type,fold:0
+msgid ""
+"This stage is not visible, for example in status bar or kanban view, when "
+"there are no records in that stage to display."
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "Deadlines"
+msgstr ""
+
+#. module: project
+#: code:addons/project/wizard/project_task_delegate.py:69
+#: code:addons/project/wizard/project_task_delegate.py:70
+#: code:addons/project/wizard/project_task_delegate.py:77
+#: code:addons/project/wizard/project_task_delegate.py:78
+#, python-format
+msgid "CHECK: "
+msgstr ""
+
+#. module: project
+#: code:addons/project/project.py:444
+#, python-format
+msgid "You must assign members on the project '%s' !"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Pending Projects"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "Remaining"
+msgstr ""
+
+#. module: project
+#: field:project.task,progress:0
+msgid "Progress (%)"
+msgstr ""
+
+#. module: project
+#: field:project.task,company_id:0
+#: field:project.task.work,company_id:0
+#: view:report.project.task.user:0
+#: field:report.project.task.user,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: project
+#: help:project.config.settings,module_project_timesheet:0
+msgid ""
+"This allows you to transfer the entries under tasks defined for Project "
+"Management to\n"
+" the timesheet line entries for particular date and user, "
+"with the effect of creating,\n"
+" editing and deleting either ways.\n"
+" This installs the module project_timesheet."
+msgstr ""
+
+#. module: project
+#: field:project.config.settings,module_project_issue:0
+msgid "Track issues and bugs"
+msgstr ""
+
+#. module: project
+#: field:project.config.settings,module_project_mrp:0
+msgid "Generate tasks from sale orders"
+msgstr ""
+
+#. module: project
+#: model:ir.ui.menu,name:project.menu_task_types_view
+msgid "Task Stages"
+msgstr ""
+
+#. module: project
+#: model:process.node,note:project.process_node_drafttask0
+msgid "Define the Requirements and Set Planned Hours."
+msgstr ""
+
+#. module: project
+#: field:project.project,message_ids:0
+#: field:project.task,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: project
+#: field:project.project,color:0
+#: field:project.task,color:0
+msgid "Color Index"
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,name:project.open_board_project
+#: model:ir.model,name:project.model_project_project
+#: model:ir.ui.menu,name:project.menu_project_dashboard
+#: model:ir.ui.menu,name:project.menu_project_management
+#: view:project.project:0
+#: view:project.task:0
+#: field:project.task,project_id:0
+#: field:project.task.delegate,project_id:0
+#: field:project.task.history.cumulative,project_id:0
+#: view:report.project.task.user:0
+#: field:report.project.task.user,project_id:0
+#: model:res.request.link,name:project.req_link_project
+msgid "Project"
+msgstr ""
+
+#. module: project
+#: selection:project.project,state:0
+#: selection:project.task,state:0
+#: selection:project.task.history,state:0
+#: selection:project.task.history.cumulative,state:0
+#: model:project.task.type,name:project.project_tt_cancel
+#: selection:project.task.type,state:0
+#: selection:report.project.task.user,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,help:project.act_project_project_2_project_task_all
+#: model:ir.actions.act_window,help:project.action_view_task
+msgid ""
+"
\n"
+" Click to create a new task.\n"
+"
\n"
+" OpenERP's project management allows you to manage the "
+"pipeline\n"
+" of tasks in order to get things done efficiently. You can\n"
+" track progress, discuss on tasks, attach documents, etc.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: project
+#: field:project.task,date_end:0
+#: field:report.project.task.user,date_end:0
+msgid "Ending Date"
+msgstr ""
+
+#. module: project
+#: field:project.task.type,state:0
+msgid "Related Status"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Documents"
+msgstr ""
+
+#. module: project
+#: model:mail.message.subtype,description:project.mt_task_new
+msgid "Task created"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+#: field:report.project.task.user,no_of_days:0
+msgid "# of Days"
+msgstr ""
+
+#. module: project
+#: field:project.project,message_follower_ids:0
+#: field:project.task,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: project
+#: selection:project.project,state:0
+#: view:project.task:0
+#: selection:project.task,state:0
+#: selection:project.task.history,state:0
+#: selection:project.task.history.cumulative,state:0
+#: selection:project.task.type,state:0
+#: view:report.project.task.user:0
+msgid "New"
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,name:project.action_view_task_history_cumulative
+#: model:ir.ui.menu,name:project.menu_action_view_task_history_cumulative
+msgid "Cumulative Flow"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+#: field:report.project.task.user,hours_effective:0
+msgid "Effective Hours"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+msgid "OverPass delay"
+msgstr ""
+
+#. module: project
+#: view:project.task.delegate:0
+msgid "Validation Task"
+msgstr ""
+
+#. module: project
+#: field:project.config.settings,module_project_long_term:0
+msgid "Manage resources planning on gantt view"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: view:project.task.history.cumulative:0
+msgid "Unassigned Tasks"
+msgstr ""
+
+#. module: project
+#: help:project.project,planned_hours:0
+msgid ""
+"Sum of planned hours of all tasks related to this project and its child "
+"projects."
+msgstr ""
+
+#. module: project
+#: view:res.partner:0
+msgid "For changing to done state"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+msgid "My Task"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: view:project.task.history.cumulative:0
+#: view:report.project.task.user:0
+msgid "My Projects"
+msgstr ""
+
+#. module: project
+#: help:project.task,sequence:0
+msgid "Gives the sequence order when displaying a list of tasks."
+msgstr ""
+
+#. module: project
+#: field:project.task,date_start:0
+#: field:report.project.task.user,date_start:0
+msgid "Starting Date"
+msgstr ""
+
+#. module: project
+#: code:addons/project/project.py:410
+#: model:ir.actions.act_window,name:project.open_view_project_all
+#: model:ir.ui.menu,name:project.menu_projects
+#: view:project.project:0
+#: field:project.task.type,project_ids:0
+#: view:res.company:0
+#, python-format
+msgid "Projects"
+msgstr ""
+
+#. module: project
+#: model:res.groups,name:project.group_tasks_work_on_tasks
+msgid "Task's Work on Tasks"
+msgstr ""
+
+#. module: project
+#: help:project.task.delegate,name:0
+msgid "New title of the task delegated to the user"
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,name:project.action_project_task_user_tree
+#: model:ir.ui.menu,name:project.menu_project_task_user_tree
+#: view:report.project.task.user:0
+msgid "Tasks Analysis"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: view:project.task.history.cumulative:0
+msgid "Project Tasks"
+msgstr ""
+
+#. module: project
+#: field:account.analytic.account,use_tasks:0
+#: model:ir.actions.act_window,name:project.act_project_project_2_project_task_all
+#: model:ir.actions.act_window,name:project.action_view_task
+#: model:ir.ui.menu,name:project.menu_action_view_task
+#: model:process.process,name:project.process_process_tasksprocess0
+#: view:project.project:0
+#: view:project.task:0
+#: view:res.partner:0
+#: field:res.partner,task_ids:0
+msgid "Tasks"
+msgstr ""
+
+#. module: project
+#: selection:report.project.task.user,month:0
+msgid "December"
+msgstr ""
+
+#. module: project
+#: view:project.config.settings:0
+#: view:project.task.delegate:0
+#: view:project.task.reevaluate:0
+msgid "or"
+msgstr ""
+
+#. module: project
+#: help:project.config.settings,module_project_mrp:0
+msgid ""
+"This feature automatically creates project tasks from service products in "
+"sale orders.\n"
+" More precisely, tasks are created for procurement lines with "
+"product of type 'Service',\n"
+" procurement method 'Make to Order', and supply method "
+"'Manufacture'.\n"
+" This installs the module project_mrp."
+msgstr ""
+
+#. module: project
+#: help:project.task.delegate,planned_hours:0
+msgid "Estimated time to close this task by the delegated user"
+msgstr ""
+
+#. module: project
+#: model:project.category,name:project.project_category_03
+msgid "Experiment"
+msgstr ""
+
+#. module: project
+#: model:process.transition.action,name:project.process_transition_action_opendrafttask0
+#: selection:report.project.task.user,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: project
+#: field:project.task,kanban_state:0
+#: field:project.task.history,kanban_state:0
+#: field:project.task.history.cumulative,kanban_state:0
+msgid "Kanban State"
+msgstr ""
+
+#. module: project
+#: field:project.config.settings,module_project_timesheet:0
+msgid "Record timesheet lines per tasks"
+msgstr ""
+
+#. module: project
+#: model:ir.model,name:project.model_report_project_task_user
+msgid "Tasks by user and project"
+msgstr ""
+
+#. module: project
+#: field:res.company,project_time_mode_id:0
+msgid "Project Time Unit"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: selection:project.task,kanban_state:0
+#: selection:project.task.history,kanban_state:0
+#: selection:project.task.history.cumulative,kanban_state:0
+msgid "Normal"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+#: field:report.project.task.user,closing_days:0
+msgid "Days to Close"
+msgstr ""
+
+#. module: project
+#: model:res.groups,name:project.group_project_user
+msgid "User"
+msgstr ""
+
+#. module: project
+#: help:project.project,alias_model:0
+msgid ""
+"The kind of document created when an email is received on this project's "
+"email alias"
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,name:project.action_config_settings
+#: view:project.config.settings:0
+msgid "Configure Project"
+msgstr ""
+
+#. module: project
+#: view:project.task.history.cumulative:0
+msgid "Tasks's Cumulative Flow"
+msgstr ""
+
+#. module: project
+#: selection:report.project.task.user,month:0
+msgid "January"
+msgstr ""
+
+#. module: project
+#: field:project.task.delegate,prefix:0
+msgid "Your Task Title"
+msgstr ""
+
+#. module: project
+#: view:project.task.reevaluate:0
+msgid "Reevaluation Task"
+msgstr ""
+
+#. module: project
+#: code:addons/project/project.py:1332
+#, python-format
+msgid "Please delete the project linked with this account first."
+msgstr ""
+
+#. module: project
+#: model:mail.message.subtype,name:project.mt_project_task_new
+#: model:mail.message.subtype,name:project.mt_task_new
+msgid "Task Created"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+msgid "Non Assigned Tasks to users"
+msgstr ""
+
+#. module: project
+#: view:project.project:0
+msgid "Projects in which I am a manager"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: selection:project.task,kanban_state:0
+#: selection:project.task.history,kanban_state:0
+#: selection:project.task.history.cumulative,kanban_state:0
+msgid "Ready for next stage"
+msgstr ""
+
+#. module: project
+#: field:project.task.type,case_default:0
+msgid "Default for New Projects"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: field:project.task,description:0
+#: field:project.task.type,description:0
+msgid "Description"
+msgstr ""
+
+#. module: project
+#: selection:report.project.task.user,month:0
+msgid "May"
+msgstr ""
+
+#. module: project
+#: help:project.task.type,case_default:0
+msgid ""
+"If you check this field, this stage will be proposed by default on each new "
+"project. It will not assign this stage to existing projects."
+msgstr ""
+
+#. module: project
+#: field:project.task,partner_id:0
+msgid "Customer"
+msgstr ""
+
+#. module: project
+#: selection:report.project.task.user,month:0
+msgid "February"
+msgstr ""
+
+#. module: project
+#: help:project.config.settings,module_project_long_term:0
+msgid ""
+"A long term project management module that tracks planning, scheduling, and "
+"resource allocation.\n"
+" This installs the module project_long_term."
+msgstr ""
+
+#. module: project
+#: model:mail.message.subtype,description:project.mt_task_closed
+msgid "Task closed"
+msgstr ""
+
+#. module: project
+#: selection:report.project.task.user,month:0
+msgid "April"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+msgid "Spent Hours"
+msgstr ""
+
+#. module: project
+#: help:project.project,sequence:0
+msgid "Gives the sequence order when displaying a list of Projects."
+msgstr ""
+
+#. module: project
+#: model:ir.actions.act_window,name:project.act_res_users_2_project_task_opened
+msgid "Assigned Tasks"
+msgstr ""
+
+#. module: project
+#: help:project.config.settings,module_project_issue_sheet:0
+msgid ""
+"Provides timesheet support for the issues/bugs management in project.\n"
+" This installs the module project_issue_sheet."
+msgstr ""
+
+#. module: project
+#: selection:project.project,privacy_visibility:0
+msgid "Followers Only"
+msgstr ""
+
+#. module: project
+#: view:board.board:0
+#: field:project.project,task_count:0
+msgid "Open Tasks"
+msgstr ""
+
+#. module: project
+#: field:project.project,priority:0
+#: field:project.project,sequence:0
+#: field:project.task,sequence:0
+#: field:project.task.type,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: project
+#: view:project.task:0
+#: view:project.task.work:0
+msgid "Task Work"
+msgstr ""
+
+#. module: project
+#: help:project.task.delegate,planned_hours_me:0
+msgid ""
+"Estimated time for you to validate the work done by the user to whom you "
+"delegate this task"
+msgstr ""
+
+#. module: project
+#: view:report.project.task.user:0
+#: field:report.project.task.user,year:0
+msgid "Year"
+msgstr ""
+
+#. module: project
+#: field:project.project,type_ids:0
+#: view:project.task.type:0
+msgid "Tasks Stages"
+msgstr ""
diff --git a/addons/project/project.py b/addons/project/project.py
index a8f198cac3d..e42cd8d7247 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -41,14 +41,13 @@ class project_task_type(osv.osv):
'case_default': fields.boolean('Default for New Projects',
help="If you check this field, this stage will be proposed by default on each new project. It will not assign this stage to existing projects."),
'project_ids': fields.many2many('project.project', 'project_task_type_rel', 'type_id', 'project_id', 'Projects'),
- 'fold': fields.boolean('Folded by Default',
- help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."),
+ 'fold': fields.boolean('Folded in Kanban View',
+ help='This stage is folded in the kanban view when'
+ 'there are no records in that stage to display.'),
}
_defaults = {
'sequence': 1,
- 'fold': False,
- 'case_default': False,
'project_ids': lambda self, cr, uid, ctx=None: self.pool['project.task']._get_default_project_id(cr, uid, context=ctx),
}
_order = 'sequence'
@@ -189,6 +188,8 @@ class project(osv.osv):
return res
def _task_count(self, cr, uid, ids, field_name, arg, context=None):
+ """ :deprecated: this method will be removed with OpenERP v8. Use task_ids
+ fields instead. """
if context is None:
context = {}
res = dict.fromkeys(ids, 0)
@@ -237,7 +238,9 @@ class project(osv.osv):
'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the project without removing it."),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of Projects."),
'analytic_account_id': fields.many2one('account.analytic.account', 'Contract/Analytic', help="Link this project to an analytic account if you need financial management on projects. It enables you to connect projects with budgets, planning, cost and revenue analysis, timesheets on projects, etc.", ondelete="cascade", required=True),
- 'priority': fields.integer('Sequence', help="Gives the sequence order when displaying the list of projects"),
+ 'priority': fields.integer('Sequence (deprecated)',
+ deprecated='Will be removed with OpenERP v8; use sequence field instead',
+ help="Gives the sequence order when displaying the list of projects"),
'members': fields.many2many('res.users', 'project_user_rel', 'project_id', 'uid', 'Project Members',
help="Project's members are users who can have an access to the tasks related to this project.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
'tasks': fields.one2many('project.task', 'project_id', "Task Activities"),
@@ -263,7 +266,10 @@ class project(osv.osv):
}),
'resource_calendar_id': fields.many2one('resource.calendar', 'Working Time', help="Timetable working hours to adjust the gantt diagram report", states={'close':[('readonly',True)]} ),
'type_ids': fields.many2many('project.task.type', 'project_task_type_rel', 'project_id', 'type_id', 'Tasks Stages', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
- 'task_count': fields.function(_task_count, type='integer', string="Open Tasks"),
+ 'task_count': fields.function(_task_count, type='integer', string="Open Tasks",
+ deprecated="This field will be removed in OpenERP v8. Use task_ids one2many field instead."),
+ 'task_ids': fields.one2many('project.task', 'project_id',
+ domain=[('stage_id.fold', '=', False)]),
'color': fields.integer('Color Index'),
'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="restrict", required=True,
help="Internal email associated with this project. Incoming emails are automatically synchronized"
@@ -294,7 +300,6 @@ class project(osv.osv):
'active': True,
'type': 'contract',
'state': 'open',
- 'priority': 1,
'sequence': 10,
'type_ids': _get_type_common,
'alias_model': 'project.task',
@@ -474,7 +479,7 @@ def Project():
""" % (
project.id,
project.date_start or time.strftime('%Y-%m-%d'), working_days,
- '|'.join(['User_'+str(x) for x in puids])
+ '|'.join(['User_'+str(x) for x in puids]) or 'None'
)
vacation = calendar_id and tuple(resource_pool.compute_vacation(cr, uid, calendar_id, context=context)) or False
if vacation:
@@ -555,8 +560,9 @@ class task(osv.osv):
_mail_post_access = 'read'
_track = {
'stage_id': {
- 'project.mt_task_new': lambda self, cr, uid, obj, ctx=None: obj.stage_id and obj.stage_id.sequence == 1,
- 'project.mt_task_stage': lambda self, cr, uid, obj, ctx=None: obj.stage_id.sequence != 1,
+ # this is only an heuristics; depending on your particular stage configuration it may not match all 'new' stages
+ 'project.mt_task_new': lambda self, cr, uid, obj, ctx=None: obj.stage_id and obj.stage_id.sequence <= 1,
+ 'project.mt_task_stage': lambda self, cr, uid, obj, ctx=None: obj.stage_id.sequence > 1,
},
'user_id': {
'project.mt_task_assigned': lambda self, cr, uid, obj, ctx=None: obj.user_id and obj.user_id.id,
@@ -581,7 +587,7 @@ class task(osv.osv):
def _get_default_stage_id(self, cr, uid, context=None):
""" Gives default stage_id """
project_id = self._get_default_project_id(cr, uid, context=context)
- return self.stage_find(cr, uid, [], project_id, [('sequence', '=', '1')], context=context)
+ return self.stage_find(cr, uid, [], project_id, [('fold', '=', False)], context=context)
def _resolve_project_id_from_context(self, cr, uid, context=None):
""" Returns ID of project based on the value of 'default_project_id'
@@ -783,7 +789,7 @@ class task(osv.osv):
}),
'progress': fields.function(_hours_get, string='Working Time Progress (%)', multi='hours', group_operator="avg", help="If the task has a progress of 99.99% you should close the task if it's finished or reevaluate the time",
store = {
- 'project.task': (lambda self, cr, uid, ids, c={}: ids, ['work_ids', 'remaining_hours', 'planned_hours','state'], 10),
+ 'project.task': (lambda self, cr, uid, ids, c={}: ids, ['work_ids', 'remaining_hours', 'planned_hours', 'state', 'stage_id'], 10),
'project.task.work': (_get_task, ['hours'], 10),
}),
'delay_hours': fields.function(_hours_get, string='Delay Hours', multi='hours', help="Computed as difference between planned hours by the project manager and the total hours of the task.",
@@ -993,7 +999,7 @@ class task(osv.osv):
def set_remaining_time(self, cr, uid, ids, remaining_time=1.0, context=None):
for task in self.browse(cr, uid, ids, context=context):
- if (task.stage_id and task.stage_id.sequence == 1) or (task.planned_hours == 0.0):
+ if (task.stage_id and task.stage_id.sequence <= 1) or (task.planned_hours == 0.0):
self.write(cr, uid, [task.id], {'planned_hours': remaining_time}, context=context)
self.write(cr, uid, ids, {'remaining_hours': remaining_time}, context=context)
return True
@@ -1126,7 +1132,8 @@ class task(osv.osv):
def message_new(self, cr, uid, msg, custom_values=None, context=None):
""" Override to updates the document according to the email. """
- if custom_values is None: custom_values = {}
+ if custom_values is None:
+ custom_values = {}
defaults = {
'name': msg.get('subject'),
'planned_hours': 0.0,
@@ -1136,10 +1143,10 @@ class task(osv.osv):
def message_update(self, cr, uid, ids, msg, update_vals=None, context=None):
""" Override to update the task according to the email. """
- if update_vals is None: update_vals = {}
- act = False
+ if update_vals is None:
+ update_vals = {}
maps = {
- 'cost':'planned_hours',
+ 'cost': 'planned_hours',
}
for line in msg['body'].split('\n'):
line = line.strip()
@@ -1152,9 +1159,7 @@ class task(osv.osv):
update_vals[field] = float(res.group(2).lower())
except (ValueError, TypeError):
pass
- if act:
- getattr(self,act)(cr, uid, ids, context=context)
- return super(task,self).message_update(cr, uid, ids, msg, update_vals=update_vals, context=context)
+ return super(task, self).message_update(cr, uid, ids, msg, update_vals=update_vals, context=context)
class project_work(osv.osv):
_name = "project.task.work"
@@ -1242,6 +1247,8 @@ class account_analytic_account(osv.osv):
return analytic_account_id
def write(self, cr, uid, ids, vals, context=None):
+ if isinstance(ids, (int, long)):
+ ids = [ids]
vals_for_project = vals.copy()
for account in self.browse(cr, uid, ids, context=context):
if not vals.get('name'):
diff --git a/addons/project/project_data.xml b/addons/project/project_data.xml
index 0f48dfe9a2b..93e3ea51285 100644
--- a/addons/project/project_data.xml
+++ b/addons/project/project_data.xml
@@ -1,6 +1,6 @@
-
+
@@ -70,7 +70,9 @@
+
+
Task Created
diff --git a/addons/project/project_demo.xml b/addons/project/project_demo.xml
index 12e373642fd..ff225c46e10 100644
--- a/addons/project/project_demo.xml
+++ b/addons/project/project_demo.xml
@@ -4,7 +4,7 @@
-
+
@@ -60,7 +60,7 @@
- 10
+ 10E-Learning Integration
@@ -74,7 +74,7 @@
- 20
+ 20Website Design Templates
@@ -89,7 +89,7 @@
- 2
+ 2Data Import/Export Plugin
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index d86f635d749..38e8fc9fdef 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -19,7 +19,7 @@
-
+
@@ -158,7 +158,7 @@
-
+
@@ -239,6 +239,7 @@
+
@@ -258,9 +259,8 @@
%%
@@ -683,10 +684,10 @@
-
+
-
+
diff --git a/addons/project/report/project_report.py b/addons/project/report/project_report.py
index 15b26507ff3..ed086b4318d 100644
--- a/addons/project/report/project_report.py
+++ b/addons/project/report/project_report.py
@@ -75,7 +75,7 @@ class report_project_task_user(osv.osv):
date_trunc('day',t.date_last_stage_update) as date_last_stage_update,
to_date(to_char(t.date_deadline, 'dd-MM-YYYY'),'dd-MM-YYYY') as date_deadline,
-- sum(cast(to_char(date_trunc('day',t.date_end) - date_trunc('day',t.date_start),'DD') as int)) as no_of_days,
- abs((extract('epoch' from (t.date_end-t.date_start)))/(3600*24)) as no_of_days,
+ abs((extract('epoch' from (t.write_date-t.date_start)))/(3600*24)) as no_of_days,
t.user_id,
progress as progress,
t.project_id,
@@ -89,9 +89,9 @@ class report_project_task_user(osv.osv):
total_hours as total_hours,
t.delay_hours as hours_delay,
planned_hours as hours_planned,
- (extract('epoch' from (t.date_end-t.create_date)))/(3600*24) as closing_days,
+ (extract('epoch' from (t.write_date-t.create_date)))/(3600*24) as closing_days,
(extract('epoch' from (t.date_start-t.create_date)))/(3600*24) as opening_days,
- abs((extract('epoch' from (t.date_deadline-t.date_end)))/(3600*24)) as delay_endings_days
+ abs((extract('epoch' from (t.date_deadline-t.write_date)))/(3600*24)) as delay_endings_days
FROM project_task t
WHERE t.active = 'true'
GROUP BY
@@ -106,6 +106,7 @@ class report_project_task_user(osv.osv):
month,
day,
create_date,
+ write_date,
date_start,
date_end,
date_deadline,
diff --git a/addons/project/report/project_report.xml b/addons/project/report/project_report.xml
index 59d0fd28220..4ff7e852620 100644
--- a/addons/project/report/project_report.xml
+++ b/addons/project/report/project_report.xml
@@ -17,7 +17,6 @@
-
diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js
index ce8be146e54..a4e899a8714 100644
--- a/addons/project/static/src/js/project.js
+++ b/addons/project/static/src/js/project.js
@@ -32,12 +32,6 @@ openerp.project = function(openerp) {
if (self.dataset.model === 'project.project') {
self.project_display_members_names();
}
- },
- on_record_moved: function(record, old_group, old_index, new_group, new_index){
- var self = this;
- this._super.apply(this, arguments);
- if(new_group.state.folded)
- new_group.do_action_toggle_fold();
}
});
diff --git a/addons/project/tests/test_project_flow.py b/addons/project/tests/test_project_flow.py
index a037c92d2ae..ecbe66a0cea 100644
--- a/addons/project/tests/test_project_flow.py
+++ b/addons/project/tests/test_project_flow.py
@@ -20,7 +20,7 @@
##############################################################################
from openerp.addons.project.tests.test_project_base import TestProjectBase
-from openerp.osv.orm import except_orm
+from openerp.exceptions import AccessError
from openerp.tools import mute_logger
@@ -57,7 +57,7 @@ class TestProjectFlow(TestProjectBase):
cr, uid, user_projectuser_id, user_projectmanager_id, project_pigs_id = self.cr, self.uid, self.user_projectuser_id, self.user_projectmanager_id, self.project_pigs_id
# ProjectUser: set project as template -> raise
- self.assertRaises(except_orm, self.project_project.set_template, cr, user_projectuser_id, [project_pigs_id])
+ self.assertRaises(AccessError, self.project_project.set_template, cr, user_projectuser_id, [project_pigs_id])
# Other tests are done using a ProjectManager
project = self.project_project.browse(cr, user_projectmanager_id, project_pigs_id)
diff --git a/addons/project_issue/i18n/he.po b/addons/project_issue/i18n/he.po
new file mode 100644
index 00000000000..a371ffffa71
--- /dev/null
+++ b/addons/project_issue/i18n/he.po
@@ -0,0 +1,984 @@
+# Hebrew translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:04+0000\n"
+"PO-Revision-Date: 2013-12-26 23:15+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Hebrew \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-27 05:22+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: project_issue
+#: model:project.category,name:project_issue.project_issue_category_03
+msgid "Deadly bug"
+msgstr ""
+
+#. module: project_issue
+#: help:project.config.settings,fetchmail_issue:0
+msgid ""
+"Allows you to configure your incoming mail server, and create issues from "
+"incoming emails."
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,delay_open:0
+msgid "Avg. Delay to Open"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,working_hours_open:0
+msgid "Working Hours to Open the Issue"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,description:project_issue.mt_issue_started
+msgid "Issue started"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_open:0
+msgid "Opened"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,opening_date:0
+msgid "Date of Opening"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,progress:0
+msgid "Progress (%)"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,company_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,email_cc:0
+msgid "Watchers Emails"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,kanban_state:0
+msgid ""
+"A Issue's kanban state indicates special situations affecting it:\n"
+" * Normal is the default situation\n"
+" * Blocked indicates something is preventing the progress of this issue\n"
+" * Ready for next stage indicates the issue is ready to be pulled to the "
+"next stage"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: project_issue
+#: help:account.analytic.account,use_issues:0
+msgid "Check this field if this project manages issues"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,day_open:0
+msgid "Days to Open"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:479
+#, python-format
+msgid ""
+"You cannot escalate this issue.\n"
+"The relevant Project has not configured the Escalation Project!"
+msgstr ""
+
+#. module: project_issue
+#: constraint:project.project:0
+msgid "Error! You cannot assign escalation to the same project!"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,inactivity_days:0
+msgid "Difference in days between last action and current date"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,days_since_creation:0
+msgid "Days since creation date"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,task_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,task_id:0
+msgid "Task"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,name:project_issue.mt_project_issue_stage
+msgid "Issue Stage Changed"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,inactivity_days:0
+msgid "Days since last action"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_project
+#: view:project.issue:0
+#: field:project.issue,project_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,project_id:0
+msgid "Project"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,help:project_issue.project_issue_categ_act0
+msgid ""
+"
\n"
+" Click to report a new issue.\n"
+"
\n"
+" The OpenERP issues tacker allows you to efficiantly manage "
+"things\n"
+" like internal requests, software development bugs, customer\n"
+" complaints, project troubles, material breakdowns, etc.\n"
+"
\n"
+" Define here the different versions of your products on "
+"which\n"
+" you can work on issues.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,section_id:0
+msgid ""
+"Sales team to which Case belongs to. Define "
+"Responsible user and Email account for mail gateway."
+msgstr ""
+
+#. module: project_issue
+#: view:board.board:0
+msgid "My Issues"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue.report,delay_open:0
+msgid "Number of Days to open the project issue."
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "⇒ Escalate"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "References"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,description:project_issue.mt_issue_new
+msgid "Issue created"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,working_hours_close:0
+msgid "Working Hours to Close the Issue"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,id:0
+msgid "ID"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,description:project_issue.mt_issue_blocked
+msgid "Issue blocked"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_issue_report
+msgid "project.issue.report"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue.report,delay_close:0
+msgid "Number of Days to close the project issue"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,working_hours_close:0
+msgid "Avg. Working Hours to Close"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,name:project_issue.mt_issue_stage
+msgid "Stage Changed"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "High"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_action_last:0
+msgid "Last Action"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,name:0
+msgid "Year"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,duration:0
+msgid "Duration"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,name:project_issue.mt_issue_started
+#: model:mail.message.subtype,name:project_issue.mt_project_issue_started
+msgid "Issue Started"
+msgstr ""
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index 351b55fdcfc..f787ed1544e 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -306,8 +306,6 @@ class project_issue(osv.Model):
}
def set_priority(self, cr, uid, ids, priority, *args):
- """Set lead priority
- """
return self.write(cr, uid, ids, {'priority' : priority})
def set_high_priority(self, cr, uid, ids, *args):
@@ -320,56 +318,6 @@ class project_issue(osv.Model):
"""
return self.set_priority(cr, uid, ids, '3')
- def convert_issue_task(self, cr, uid, ids, context=None):
- if context is None:
- context = {}
-
- case_obj = self.pool.get('project.issue')
- data_obj = self.pool.get('ir.model.data')
- task_obj = self.pool.get('project.task')
-
- result = data_obj._get_id(cr, uid, 'project', 'view_task_search_form')
- res = data_obj.read(cr, uid, result, ['res_id'])
- id2 = data_obj._get_id(cr, uid, 'project', 'view_task_form2')
- id3 = data_obj._get_id(cr, uid, 'project', 'view_task_tree2')
- if id2:
- id2 = data_obj.browse(cr, uid, id2, context=context).res_id
- if id3:
- id3 = data_obj.browse(cr, uid, id3, context=context).res_id
-
- for bug in case_obj.browse(cr, uid, ids, context=context):
- new_task_id = task_obj.create(cr, uid, {
- 'name': bug.name,
- 'partner_id': bug.partner_id.id,
- 'description':bug.description,
- 'date_deadline': bug.date,
- 'project_id': bug.project_id.id,
- # priority must be in ['0','1','2','3','4'], while bug.priority is in ['1','2','3','4','5']
- 'priority': str(int(bug.priority) - 1),
- 'user_id': bug.user_id.id,
- 'planned_hours': 0.0,
- })
- vals = {
- 'task_id': new_task_id,
- 'stage_id': self.stage_find(cr, uid, [bug], bug.project_id.id, [('sequence', '=', 1)], context=context),
- }
- message = _("Project issue converted to task.")
- self.message_post(cr, uid, [bug.id], body=message, context=context)
- case_obj.write(cr, uid, [bug.id], vals, context=context)
-
- return {
- 'name': _('Tasks'),
- 'view_type': 'form',
- 'view_mode': 'form,tree',
- 'res_model': 'project.task',
- 'res_id': int(new_task_id),
- 'view_id': False,
- 'views': [(id2,'form'),(id3,'tree'),(False,'calendar'),(False,'graph')],
- 'type': 'ir.actions.act_window',
- 'search_view_id': res['res_id'],
- 'nodestroy': True
- }
-
def copy(self, cr, uid, id, default=None, context=None):
issue = self.read(cr, uid, id, ['name'], context=context)
if not default:
@@ -465,18 +413,20 @@ class project_issue(osv.Model):
return stage_ids[0]
return False
- def case_escalate(self, cr, uid, ids, context=None):
- cases = self.browse(cr, uid, ids)
- for case in cases:
+ def case_escalate(self, cr, uid, ids, context=None): # FIXME rename this method to issue_escalate
+ for issue in self.browse(cr, uid, ids, context=context):
data = {}
- if case.project_id.project_escalation_id:
- data['project_id'] = case.project_id.project_escalation_id.id
- if case.project_id.project_escalation_id.user_id:
- data['user_id'] = case.project_id.project_escalation_id.user_id.id
- if case.task_id:
- self.pool.get('project.task').write(cr, uid, [case.task_id.id], {'project_id': data['project_id'], 'user_id': False})
- else:
+ esc_proj = issue.project_id.project_escalation_id
+ if not esc_proj:
raise osv.except_osv(_('Warning!'), _('You cannot escalate this issue.\nThe relevant Project has not configured the Escalation Project!'))
+
+ data['project_id'] = esc_proj.id
+ if esc_proj.user_id:
+ data['user_id'] = esc_proj.user_id.id
+ issue.write(data)
+
+ if issue.task_id:
+ issue.task_id.write({'project_id': esc_proj.id, 'user_id': False})
return True
# -------------------------------------------------------
@@ -517,40 +467,10 @@ class project_issue(osv.Model):
'partner_id': msg.get('author_id', False),
'user_id': False,
}
- if msg.get('priority'):
- defaults['priority'] = msg.get('priority')
-
defaults.update(custom_values)
res_id = super(project_issue, self).message_new(cr, uid, msg, custom_values=defaults, context=context)
return res_id
- def message_update(self, cr, uid, ids, msg, update_vals=None, context=None):
- """ Overrides mail_thread message_update that is called by the mailgateway
- through message_process.
- This method updates the document according to the email.
- """
- if isinstance(ids, (str, int, long)):
- ids = [ids]
- if update_vals is None: update_vals = {}
-
- # Update doc values according to the message
- if msg.get('priority'):
- update_vals['priority'] = msg.get('priority')
- # Parse 'body' to find values to update
- maps = {
- 'cost': 'planned_cost',
- 'revenue': 'planned_revenue',
- 'probability': 'probability',
- }
- for line in msg.get('body', '').split('\n'):
- line = line.strip()
- res = tools.command_re.match(line)
- if res and maps.get(res.group(1).lower(), False):
- key = maps.get(res.group(1).lower())
- update_vals[key] = res.group(2).lower()
-
- return super(project_issue, self).message_update(cr, uid, ids, msg, update_vals=update_vals, context=context)
-
def message_post(self, cr, uid, thread_id, body='', subject=None, type='notification', subtype=None, parent_id=False, attachments=None, context=None, content_subtype='html', **kwargs):
""" Overrides mail_thread message_post so that we can set the date of last action field when
a new message is posted on the issue.
@@ -570,6 +490,8 @@ class project(osv.Model):
return [('project.task', "Tasks"), ("project.issue", "Issues")]
def _issue_count(self, cr, uid, ids, field_name, arg, context=None):
+ """ :deprecated: this method will be removed with OpenERP v8. Use issue_ids
+ fields instead. """
res = dict.fromkeys(ids, 0)
issue_ids = self.pool.get('project.issue').search(cr, uid, [('project_id', 'in', ids)])
for issue in self.pool.get('project.issue').browse(cr, uid, issue_ids, context):
@@ -581,7 +503,10 @@ class project(osv.Model):
'project_escalation_id': fields.many2one('project.project', 'Project Escalation',
help='If any issue is escalated from the current Project, it will be listed under the project selected here.',
states={'close': [('readonly', True)], 'cancelled': [('readonly', True)]}),
- 'issue_count': fields.function(_issue_count, type='integer', string="Unclosed Issues"),
+ 'issue_count': fields.function(_issue_count, type='integer', string="Unclosed Issues",
+ deprecated="This field will be removed in OpenERP v8. Use issue_ids one2many field instead."),
+ 'issue_ids': fields.one2many('project.issue', 'project_id',
+ domain=[('stage_id.fold', '=', False)])
}
def _check_escalation(self, cr, uid, ids, context=None):
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 3e90a2a43d6..68c6712f530 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -48,7 +48,8 @@
-
+
@@ -312,7 +313,7 @@
{'on_change': 'on_change_use_tasks_or_issues(use_tasks, use_issues)'}
-
+
@@ -325,13 +326,14 @@
-
+
- Issues
- Issue
+
+ Issue
+ Issues
diff --git a/addons/project_issue/test/issue_process.yml b/addons/project_issue/test/issue_process.yml
index 61ebe2e646c..1bc1633688c 100644
--- a/addons/project_issue/test/issue_process.yml
+++ b/addons/project_issue/test/issue_process.yml
@@ -10,13 +10,3 @@
self.send_mail(cr, uid, [new_id], context=ctx)
except Exception, e:
pass
--
- Only project manager can create Task for Issue, so let's check data with giving the access rights of manager.
--
- !context
- uid: 'res_users_project_issue_manager'
--
- I create Task for Issue.
--
- !python {model: project.issue}: |
- self.convert_issue_task(cr, uid, [ref("crm_case_buginaccountsmodule0")])
diff --git a/addons/project_issue_sheet/project_issue_sheet_view.xml b/addons/project_issue_sheet/project_issue_sheet_view.xml
index 4911cac8f25..6d813b44239 100644
--- a/addons/project_issue_sheet/project_issue_sheet_view.xml
+++ b/addons/project_issue_sheet/project_issue_sheet_view.xml
@@ -19,7 +19,7 @@
-
diff --git a/addons/project_mrp/process/project_mrp_process.xml b/addons/project_mrp/process/project_mrp_process.xml
index b147740758a..ab0de03eee0 100644
--- a/addons/project_mrp/process/project_mrp_process.xml
+++ b/addons/project_mrp/process/project_mrp_process.xml
@@ -46,14 +46,15 @@
Process Transition
-->
-
-
+ subflow
@@ -68,7 +69,7 @@
-
+
diff --git a/addons/project_mrp/project_mrp.py b/addons/project_mrp/project_mrp.py
index d7880ba90cd..2a25a1b1ea0 100644
--- a/addons/project_mrp/project_mrp.py
+++ b/addons/project_mrp/project_mrp.py
@@ -20,7 +20,7 @@
##############################################################################
from openerp.osv import fields, osv
-from openerp import netsvc
+from openerp import workflow
class ProjectTaskStageMrp(osv.Model):
@@ -48,10 +48,9 @@ class project_task(osv.osv):
}
def _validate_subflows(self, cr, uid, ids, context=None):
- wf_service = netsvc.LocalService("workflow")
for task in self.browse(cr, uid, ids):
if task.procurement_id:
- wf_service.trg_write(uid, 'procurement.order', task.procurement_id.id, cr)
+ workflow.trg_write(uid, 'procurement.order', task.procurement_id.id, cr)
def write(self, cr, uid, ids, values, context=None):
""" When closing tasks, validate subflows. """
diff --git a/addons/purchase/edi/purchase_order_action_data.xml b/addons/purchase/edi/purchase_order_action_data.xml
index b9c3c3ab95d..5bb56e8ab15 100644
--- a/addons/purchase/edi/purchase_order_action_data.xml
+++ b/addons/purchase/edi/purchase_order_action_data.xml
@@ -19,7 +19,7 @@
Purchase Order - Send by mail
- ${object.validator.email or ''}
+ ${(object.validator.email or '')|safe}${object.company_id.name} Order (Ref ${object.name or 'n/a' })${object.partner_id.id}
diff --git a/addons/purchase/i18n/es_PE.po b/addons/purchase/i18n/es_PE.po
new file mode 100644
index 00000000000..53ede6a0748
--- /dev/null
+++ b/addons/purchase/i18n/es_PE.po
@@ -0,0 +1,2203 @@
+# Spanish (Peru) translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:04+0000\n"
+"PO-Revision-Date: 2013-12-09 19:10+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Spanish (Peru) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
+"X-Generator: Launchpad (build 16869)\n"
+
+#. module: purchase
+#: model:res.groups,name:purchase.group_analytic_accounting
+msgid "Analytic Accounting for Purchases"
+msgstr ""
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_account_config_settings
+msgid "account.config.settings"
+msgstr ""
+
+#. module: purchase
+#: view:board.board:0
+msgid "Monthly Purchases by Category"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.config.settings,module_warning:0
+msgid ""
+"Allow to configure notification on products and trigger them when a user "
+"wants to purchase a given product or a given supplier.\n"
+"Example: Product: this product is deprecated, do not purchase more than 5.\n"
+" Supplier: don't forget to ask for an express delivery."
+msgstr ""
+
+#. module: purchase
+#: model:product.pricelist,name:purchase.list0
+msgid "Default Purchase Pricelist"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.order:0
+msgid "Tel :"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.order,pricelist_id:0
+msgid ""
+"The pricelist sets the currency used for this purchase order. It also "
+"computes the supplier price for the selected products/quantities."
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+#: field:purchase.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+msgid "Order of Day"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.order,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: purchase
+#: model:ir.ui.menu,name:purchase.menu_procurement_management_inventory
+#: model:process.node,name:purchase.process_node_packinglist0
+#: model:process.node,name:purchase.process_node_productrecept0
+msgid "Incoming Products"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Reference"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order.line,account_analytic_id:0
+msgid "Analytic Account"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.order,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: purchase
+#: code:addons/purchase/purchase.py:1050
+#, python-format
+msgid "Configuration Error!"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:589
+#, python-format
+msgid "You must first cancel all receptions related to this purchase order."
+msgstr ""
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_res_partner
+#: field:purchase.order.line,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.report,negociation:0
+msgid "Purchase-Standard Price"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:1037
+#, python-format
+msgid "No supplier defined for this product !"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,help:purchase.action_picking_tree4_picking_to_invoice
+msgid ""
+"
\n"
+" Here you can track all the product receptions of purchase\n"
+" orders where the invoicing is \"Based on Incoming "
+"Shipments\",\n"
+" and for which you have not received a supplier invoice yet.\n"
+" You can generate a supplier invoice based on those "
+"receptions.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+#: field:purchase.report,price_average:0
+msgid "Average Price"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Purchase order which are in the exception state"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.action_view_purchase_order_group
+msgid "Merge Purchase orders"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+#: field:purchase.report,price_total:0
+msgid "Total Price"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+#: field:purchase.order,minimum_planned_date:0
+#: report:purchase.quotation:0
+#: field:purchase.report,expected_date:0
+msgid "Expected Date"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.order:0
+msgid "Shipping address :"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Confirm Order"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.config.settings,module_warning:0
+msgid "Alerts by products or supplier"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,name:0
+#: view:purchase.order.line:0
+#: field:purchase.order.line,order_id:0
+msgid "Order Reference"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.config.settings:0
+msgid "Invoicing Process"
+msgstr ""
+
+#. module: purchase
+#: model:process.transition,name:purchase.process_transition_approvingpurchaseorder0
+msgid "Approbation"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.config.settings,group_uom:0
+msgid ""
+"Allows you to select and maintain different units of measure for products."
+msgstr ""
+
+#. module: purchase
+#: help:purchase.order,minimum_planned_date:0
+msgid ""
+"This is computed as the minimum scheduled date of all purchase order lines' "
+"products."
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:262
+#, python-format
+msgid "In order to delete a purchase order, you must cancel it first."
+msgstr ""
+
+#. module: purchase
+#: view:product.product:0
+msgid "When you sell this product, OpenERP will trigger"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Approved purchase orders"
+msgstr ""
+
+#. module: purchase
+#: model:email.template,subject:purchase.email_template_edi_purchase
+msgid "${object.company_id.name} Order (Ref ${object.name or 'n/a' })"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Total Untaxed amount"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+#: field:purchase.report,category_id:0
+msgid "Category"
+msgstr ""
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_purchaseinvoice0
+msgid ""
+"A purchase order generates a supplier invoice, as soon as it is confirmed by "
+"the buyer. Depending on the Invoicing control of the purchase order, the "
+"invoice is based on received or on ordered quantities."
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+#: field:purchase.order,state:0
+#: view:purchase.order.line:0
+#: field:purchase.order.line,state:0
+#: view:purchase.report:0
+msgid "Status"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: purchase
+#: view:product.product:0
+msgid "to"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_purchase_report
+msgid "Purchases Orders"
+msgstr ""
+
+#. module: purchase
+#: help:account.config.settings,group_analytic_account_for_purchases:0
+#: help:purchase.config.settings,group_analytic_account_for_purchases:0
+msgid "Allows you to specify an analytic account on purchase orders."
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,help:purchase.action_invoice_pending
+msgid ""
+"
\n"
+" Click to create a draft invoice.\n"
+"
\n"
+" Use this menu to control the invoices to be received from your\n"
+" supplier. OpenERP generates draft invoices from your purchase\n"
+" orders or receptions, according to your settings.\n"
+"
\n"
+" Once you receive a supplier invoice, you can match it with the\n"
+" draft invoice and validate it.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:1050
+#, python-format
+msgid ""
+"The product \"%s\" has been defined with your company as reseller which "
+"seems to be a configuration error!"
+msgstr ""
+
+#. module: purchase
+#: view:product.product:0
+msgid "When you sell this service to a customer,"
+msgstr ""
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_createpackinglist0
+msgid "A pick list is generated to track the incoming products."
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.purchase_rfq
+#: model:ir.ui.menu,name:purchase.menu_purchase_rfq
+#: view:purchase.order:0
+#: view:purchase.report:0
+msgid "Quotations"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order.line_invoice:0
+msgid "Do you want to generate the supplier invoices?"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order.line,product_qty:0
+#: view:purchase.report:0
+#: field:purchase.report,quantity:0
+msgid "Quantity"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,fiscal_position:0
+msgid "Fiscal Position"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.config.settings,default_invoice_method:0
+msgid "Default invoicing control method"
+msgstr ""
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_stock_picking_in
+#: model:ir.ui.menu,name:purchase.menu_action_picking_tree4
+#: view:purchase.order:0
+msgid "Incoming Shipments"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,help:purchase.act_res_partner_2_supplier_invoices
+msgid ""
+"
\n"
+" Click here to record a supplier invoice.\n"
+"
\n"
+" Supplier invoices can be pre-generated based on "
+"purchase\n"
+" orders or receptions. This allows you to control "
+"invoices\n"
+" you receive from your supplier according to the draft\n"
+" document in OpenERP.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+#: view:purchase.order.line:0
+msgid "Search Purchase Order"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.order:0
+msgid "Date Req."
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+#: view:purchase.order.line:0
+msgid "Purchase Order Lines"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.order,dest_address_id:0
+msgid ""
+"Put an address if you want to deliver directly from the supplier to the "
+"customer. Otherwise, keep empty to deliver to your own company."
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,help:purchase.purchase_line_form_action2
+msgid ""
+"
\n"
+" Here you can track all the lines of purchase orders where "
+"the\n"
+" invoicing is \"Based on Purchase Order Lines\", and for "
+"which you\n"
+" have not received a supplier invoice yet. You can generate "
+"a\n"
+" draft supplier invoice based on the lines from this list.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order.line,date_planned:0
+msgid "Scheduled Date"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,currency_id:0
+msgid "Currency"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,journal_id:0
+msgid "Journal"
+msgstr ""
+
+#. module: purchase
+#: view:board.board:0
+#: model:ir.actions.act_window,name:purchase.purchase_draft
+msgid "Request for Quotations"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order.line,move_ids:0
+msgid "Reservation"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Purchase orders that include lines not invoiced."
+msgstr ""
+
+#. module: purchase
+#: view:product.product:0
+#: field:product.template,purchase_ok:0
+msgid "Can be Purchased"
+msgstr ""
+
+#. module: purchase
+#: model:ir.ui.menu,name:purchase.menu_action_picking_tree_in_move
+msgid "Incoming Products"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Request for Quotation "
+msgstr ""
+
+#. module: purchase
+#: help:purchase.order,partner_ref:0
+msgid ""
+"Reference of the sales order or quotation sent by your supplier. It's mainly "
+"used to do the matching when you receive the products as this reference is "
+"usually written on the delivery order sent by your supplier."
+msgstr ""
+
+#. module: purchase
+#: view:purchase.config.settings:0
+#: view:purchase.order.group:0
+#: view:purchase.order.line_invoice:0
+msgid "or"
+msgstr ""
+
+#. module: purchase
+#: field:res.company,po_lead:0
+msgid "Purchase Lead Time"
+msgstr ""
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_invoicefrompurchase0
+msgid ""
+"The invoice is created automatically if the Invoice control of the purchase "
+"order is 'On order'. The invoice can also be generated manually by the "
+"accountant (Invoice control = Manual)."
+msgstr ""
+
+#. module: purchase
+#: model:mail.message.subtype,name:purchase.mt_rfq_approved
+msgid "RFQ Approved"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.config.settings:0
+msgid "Apply"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,amount_untaxed:0
+msgid "Untaxed Amount"
+msgstr ""
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder0
+msgid ""
+"The buyer has to approve the RFQ before being sent to the supplier. The RFQ "
+"becomes a confirmed Purchase Order."
+msgstr ""
+
+#. module: purchase
+#: model:mail.message.subtype,name:purchase.mt_rfq_confirmed
+msgid "RFQ Confirmed"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Customer Address"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.order,state:0
+msgid "RFQ Sent"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Not Invoiced"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+#: field:purchase.order,partner_id:0
+#: view:purchase.order.line:0
+#: view:purchase.report:0
+#: field:purchase.report,partner_id:0
+msgid "Supplier"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:527
+#, python-format
+msgid "Define expense account for this company: \"%s\" (id:%d)."
+msgstr ""
+
+#. module: purchase
+#: model:process.transition,name:purchase.process_transition_packinginvoice0
+#: model:process.transition,name:purchase.process_transition_productrecept0
+msgid "From a Pick list"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.action_purchase_order_monthly_categ_graph
+#: view:purchase.report:0
+msgid "Monthly Purchase by Category"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order.line,price_subtotal:0
+msgid "Subtotal"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,shipped:0
+msgid "Received"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Purchase order which are in draft state"
+msgstr ""
+
+#. module: purchase
+#: view:product.product:0
+msgid "Suppliers"
+msgstr ""
+
+#. module: purchase
+#: view:product.product:0
+msgid "To Purchase"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,help:purchase.purchase_form_action
+msgid ""
+"
\n"
+" Click to create a quotation that will be converted into a "
+"purchase order. \n"
+"
\n"
+" Use this menu to search within your purchase orders by\n"
+" references, supplier, products, etc. For each purchase "
+"order,\n"
+" you can track the related discussion with the supplier, "
+"control\n"
+" the products received and control the supplier invoices.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+msgid "Order of Year"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.act_res_partner_2_purchase_order
+msgid "RFQs and Purchases"
+msgstr ""
+
+#. module: purchase
+#: field:account.config.settings,group_analytic_account_for_purchases:0
+#: field:purchase.config.settings,group_analytic_account_for_purchases:0
+msgid "Analytic accounting for purchases"
+msgstr ""
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder1
+msgid ""
+"In case there is no supplier for this product, the buyer can fill the form "
+"manually and confirm it. The RFQ becomes a confirmed Purchase Order."
+msgstr ""
+
+#. module: purchase
+#: help:purchase.config.settings,group_purchase_pricelist:0
+msgid ""
+"Allows to manage different prices based on rules per category of Supplier.\n"
+" Example: 10% for retailers, promotion of 5 EUR on this "
+"product, etc."
+msgstr ""
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:458
+#, python-format
+msgid "You cannot confirm a purchase order without any purchase order line."
+msgstr ""
+
+#. module: purchase
+#: help:purchase.order,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,warehouse_id:0
+#: field:stock.picking.in,warehouse_id:0
+msgid "Destination Warehouse"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:967
+#, python-format
+msgid ""
+"Selected Unit of Measure does not belong to the same category as the product "
+"Unit of Measure."
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order.line_invoice:0
+msgid "Select an Open Sales Order"
+msgstr ""
+
+#. module: purchase
+#: model:ir.ui.menu,name:purchase.menu_purchase_unit_measure_purchase
+#: model:ir.ui.menu,name:purchase.menu_purchase_uom_form_action
+msgid "Units of Measure"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.config.settings,group_purchase_pricelist:0
+msgid "Manage pricelist per supplier"
+msgstr ""
+
+#. module: purchase
+#: view:board.board:0
+msgid "Purchase Dashboard"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:582
+#, python-format
+msgid "First cancel all receptions related to this purchase order."
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Approve Order"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.report,date:0
+msgid "Date on which this document has been created"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+#: view:purchase.order.line:0
+#: view:purchase.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Approved purchase order"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+msgid "Purchase Orders Statistics"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+#: field:purchase.order,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: purchase
+#: model:ir.ui.menu,name:purchase.menu_purchase_uom_categ_form_action
+msgid "Unit of Measure Categories"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.order,origin:0
+msgid ""
+"Reference of the document that generated this purchase order request; a "
+"sales order or an internal procurement request."
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order.line:0
+msgid "Notes"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.config.settings,module_purchase_requisition:0
+msgid "Manage purchase requisitions"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.order:0
+#: field:purchase.order,amount_tax:0
+#: field:purchase.order.line,taxes_id:0
+msgid "Taxes"
+msgstr ""
+
+#. module: purchase
+#: model:ir.ui.menu,name:purchase.menu_procurement_management_product
+#: model:ir.ui.menu,name:purchase.menu_procurement_partner_contact_form
+#: model:ir.ui.menu,name:purchase.menu_product_in_config_purchase
+msgid "Products"
+msgstr ""
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_stock_move
+msgid "Stock Move"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:262
+#, python-format
+msgid "Invalid Action!"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,validator:0
+#: view:purchase.report:0
+msgid "Validated by"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+#: field:purchase.report,price_standard:0
+msgid "Products Value"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Purchase orders which are in exception state"
+msgstr ""
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_draftpurchaseorder0
+#: model:process.node,note:purchase.process_node_draftpurchaseorder1
+msgid "Request for Quotations."
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Source"
+msgstr ""
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_stock_picking
+#: field:purchase.order,picking_ids:0
+msgid "Picking List"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.quotation:0
+msgid "Fax:"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.order,invoice_ids:0
+msgid "Invoices generated for a purchase order"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.config.settings,default_invoice_method:0
+msgid "Pre-generate draft invoices based on purchase orders"
+msgstr ""
+
+#. module: purchase
+#: help:product.template,purchase_ok:0
+msgid "Specify if the product can be selected in a purchase order line."
+msgstr ""
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_invoicefrompackinglist0
+msgid ""
+"The invoice is created automatically if the Invoice control of the purchase "
+"order is 'On picking'. The invoice can also be generated manually by the "
+"accountant (Invoice control = Manual)."
+msgstr ""
+"La factura se crea de forma automática si el control de factura del pedido "
+"de compra es 'Desde Guías'. La factura también puede ser generada "
+"manualmente por el contable (control de factura = Manual)."
+
+#. module: purchase
+#: report:purchase.quotation:0
+msgid "Regards,"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: purchase
+#: model:process.node,name:purchase.process_node_packinginvoice0
+msgid "Outgoing Products"
+msgstr ""
+
+#. module: purchase
+#: view:product.product:0
+msgid ""
+"to buy the required quantities to the supplier.\n"
+" The delivery order will be ready after having "
+"received the\n"
+" products."
+msgstr ""
+
+#. module: purchase
+#: view:product.product:0
+msgid ""
+"a draft\n"
+" purchase order"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:322
+#, python-format
+msgid "Please create Invoices."
+msgstr ""
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_procurement_order
+msgid "Procurement"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.order,state:0
+#: selection:purchase.report,state:0
+msgid "Shipping Exception"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Receive Invoice"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Receive Products"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+#: field:purchase.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: purchase
+#: help:res.company,po_lead:0
+msgid "This is the leads/security time for each purchase order."
+msgstr ""
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_invoiceafterpacking0
+#: model:process.node,note:purchase.process_node_invoicecontrol0
+msgid "To be reviewed by the accountant."
+msgstr ""
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_purchase_config_settings
+msgid "purchase.config.settings"
+msgstr ""
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_approvepurchaseorder0
+#: model:process.node,note:purchase.process_node_confirmpurchaseorder0
+msgid "State of the Purchase Order."
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order.line,product_uom:0
+msgid "Product Unit of Measure"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,help:purchase.purchase_pricelist_version_action
+msgid ""
+"
\n"
+" Click to add a pricelist version.\n"
+"
\n"
+" There can be more than one version of a pricelist, each of\n"
+" these must be valid during a certain period of time. Some\n"
+" examples of versions: Main Prices, 2010, 2011, Summer "
+"Sales,\n"
+" etc.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.action_view_purchase_line_invoice
+msgid "Create invoices"
+msgstr ""
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_purchase_order_line_invoice
+msgid "Purchase Order Line Make Invoice"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:1167
+#, python-format
+msgid "PO: %s"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Send by EMail"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:517
+#, python-format
+msgid "Define purchase journal for this company: \"%s\" (id:%d)."
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Purchase Order "
+msgstr ""
+
+#. module: purchase
+#: help:purchase.config.settings,group_costing_method:0
+msgid "Allows you to compute product cost price based on average cost."
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.action_purchase_configuration
+#: view:purchase.config.settings:0
+msgid "Configure Purchases"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Untaxed"
+msgstr ""
+
+#. module: purchase
+#: model:process.transition,name:purchase.process_transition_createpackinglist0
+msgid "Pick list generated"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.purchase_line_form_action2
+#: model:ir.ui.menu,name:purchase.menu_purchase_line_order_draft
+msgid "On Purchase Order Lines"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.quotation:0
+msgid "TVA:"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.order,picking_ids:0
+msgid ""
+"This is the list of incoming shipments that have been generated for this "
+"purchase order."
+msgstr ""
+
+#. module: purchase
+#: field:purchase.config.settings,module_purchase_double_validation:0
+msgid "Force two levels of approvals"
+msgstr ""
+
+#. module: purchase
+#: model:ir.ui.menu,name:purchase.menu_product_pricelist_action2_purchase_type
+msgid "Price Types"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.order,date_approve:0
+msgid "Date on which purchase order has been approved"
+msgstr ""
+
+#. module: purchase
+#: model:process.node,name:purchase.process_node_approvepurchaseorder0
+#: view:purchase.order:0
+#: selection:purchase.report,state:0
+msgid "Approved"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.order,state:0
+#: selection:purchase.order.line,state:0
+#: selection:purchase.report,state:0
+msgid "Done"
+msgstr ""
+
+#. module: purchase
+#: model:process.transition,name:purchase.process_transition_invoicefrompackinglist0
+#: model:process.transition,name:purchase.process_transition_invoicefrompurchase0
+msgid "Invoice"
+msgstr ""
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_purchaseorder0
+msgid "Confirmed purchase order to invoice"
+msgstr ""
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_productrecept0
+msgid "Incoming products to control"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,help:purchase.purchase_rfq
+msgid ""
+"
\n"
+" Click to create a request for quotation.\n"
+"
\n"
+" The quotation contains the history of the "
+"discussion/negociation\n"
+" you had with your supplier. Once confirmed, a request for\n"
+" quotation is converted into a purchase order.\n"
+"
\n"
+" Most propositions of purchase orders are created "
+"automatically\n"
+" by OpenERP based on inventory needs.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_approvingpurchaseorder0
+msgid "The supplier approves the Purchase Order."
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/wizard/purchase_order_group.py:80
+#: model:ir.actions.act_window,name:purchase.purchase_form_action
+#: model:ir.ui.menu,name:purchase.menu_purchase_form_action
+#: view:purchase.order:0
+#: view:purchase.report:0
+#: view:res.partner:0
+#, python-format
+msgid "Purchase Orders"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,origin:0
+msgid "Source Document"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order.group:0
+msgid "Merge orders"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.config.settings,module_purchase_analytic_plans:0
+msgid "Use multiple analytic accounts on purchase orders"
+msgstr ""
+
+#. module: purchase
+#: model:ir.ui.menu,name:purchase.menu_procurement_management
+#: model:process.process,name:purchase.process_process_purchaseprocess0
+msgid "Purchase"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,create_uid:0
+#: view:purchase.report:0
+#: field:purchase.report,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Manually Corrected"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.config.settings,group_costing_method:0
+msgid "Compute product cost price based on average cost"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:352
+#: code:addons/purchase/wizard/purchase_line_invoice.py:137
+#: model:ir.actions.act_window,name:purchase.act_res_partner_2_supplier_invoices
+#: view:res.partner:0
+#, python-format
+msgid "Supplier Invoices"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,product_id:0
+#: view:purchase.order.line:0
+#: field:purchase.order.line,product_id:0
+#: view:purchase.report:0
+#: field:purchase.report,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: purchase
+#: model:process.transition,name:purchase.process_transition_confirmingpurchaseorder0
+#: model:process.transition,name:purchase.process_transition_confirmingpurchaseorder1
+msgid "Confirmation"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.order:0
+msgid "TIN :"
+msgstr ""
+
+#. module: purchase
+#: model:ir.ui.menu,name:purchase.menu_product_by_category_purchase_form
+msgid "Products by Category"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.order.line,state:0
+msgid ""
+" * The 'Draft' status is set automatically when purchase order in draft "
+"status. \n"
+"* The 'Confirmed' status is set automatically as confirm when purchase order "
+"in confirm status. \n"
+"* The 'Done' status is set automatically when purchase order is set as done. "
+" \n"
+"* The 'Cancelled' status is set automatically when user cancel purchase "
+"order."
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,invoiced:0
+msgid "Invoice Received"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,invoice_method:0
+msgid "Invoicing Control"
+msgstr ""
+
+#. module: purchase
+#: model:process.transition.action,name:purchase.process_transition_action_approvingpurchaseorder0
+msgid "Approve"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+msgid "Reference UOM"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: purchase
+#: model:res.groups,name:purchase.group_purchase_manager
+msgid "Manager"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.order,invoice_method:0
+msgid "Based on Purchase Order lines"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,amount_total:0
+msgid "Total"
+msgstr ""
+
+#. module: purchase
+#: help:account.config.settings,module_purchase_analytic_plans:0
+#: help:purchase.config.settings,module_purchase_analytic_plans:0
+msgid ""
+"Allows the user to maintain several analysis plans. These let you split "
+"lines on a purchase order between several accounts and analytic plans.\n"
+" This installs the module purchase_analytic_plans."
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,location_id:0
+#: view:purchase.report:0
+#: field:purchase.report,location_id:0
+msgid "Destination"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,dest_address_id:0
+msgid "Customer Address (Direct Delivery)"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.client,name:purchase.action_client_purchase_menu
+msgid "Open Purchase Menu"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:1054
+#, python-format
+msgid "No address defined for the supplier"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,company_id:0
+#: field:purchase.order.line,company_id:0
+#: view:purchase.report:0
+#: field:purchase.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.order,state:0
+#: selection:purchase.report,state:0
+msgid "Invoice Exception"
+msgstr ""
+
+#. module: purchase
+#: help:res.partner,property_product_pricelist_purchase:0
+msgid ""
+"This pricelist will be used, instead of the default one, for purchases from "
+"the current partner"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.order:0
+msgid "Fax :"
+msgstr ""
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_stock_partial_picking
+msgid "Partial Picking Processing Wizard"
+msgstr ""
+
+#. module: purchase
+#: model:product.pricelist.version,name:purchase.ver0
+msgid "Default Purchase Pricelist Version"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.order,invoice_method:0
+msgid "Based on generated draft invoice"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.action_stock_move_report_po
+#: model:ir.ui.menu,name:purchase.menu_action_stock_move_report_po
+msgid "Receptions Analysis"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.report.xml,name:purchase.report_purchase_order
+#: model:ir.model,name:purchase.model_purchase_order
+#: model:process.node,name:purchase.process_node_purchaseorder0
+#: field:procurement.order,purchase_id:0
+#: view:purchase.config.settings:0
+#: view:purchase.order:0
+#: selection:purchase.order,state:0
+#: field:res.partner,purchase_order_ids:0
+#: model:res.request.link,name:purchase.req_link_purchase_order
+#: field:stock.picking,purchase_id:0
+#: field:stock.picking.in,purchase_id:0
+msgid "Purchase Order"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:322
+#: code:addons/purchase/purchase.py:458
+#: code:addons/purchase/purchase.py:516
+#: code:addons/purchase/purchase.py:527
+#: code:addons/purchase/wizard/purchase_line_invoice.py:105
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.order:0
+msgid "Net Total :"
+msgstr "Sub-Total"
+
+#. module: purchase
+#: help:purchase.order,state:0
+msgid ""
+"The status of the purchase order or the quotation request. A quotation is a "
+"purchase order in a 'Draft' status. Then the order has to be confirmed by "
+"the user, the status switch to 'Confirmed'. Then the supplier must confirm "
+"the order to change the status to 'Approved'. When the purchase order is "
+"paid and received, the status becomes 'Done'. If a cancel action occurs in "
+"the invoice or in the reception of goods, the status becomes in exception."
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.order,state:0
+#: selection:purchase.order.line,state:0
+#: selection:purchase.report,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: purchase
+#: field:res.partner,purchase_order_count:0
+msgid "# of Purchase Order"
+msgstr ""
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_mail_compose_message
+msgid "Email composition wizard"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.quotation:0
+msgid "Tel.:"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Resend Purchase Order"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.order:0
+msgid "Net Price"
+msgstr ""
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_purchase_order_line
+#: view:purchase.order.line:0
+#: field:stock.move,purchase_line_id:0
+msgid "Purchase Order Line"
+msgstr ""
+
+#. module: purchase
+#: model:process.transition.action,name:purchase.process_transition_action_confirmpurchaseorder0
+#: view:purchase.order.line_invoice:0
+msgid "Confirm"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.config.settings,default_invoice_method:0
+msgid "Based on receptions"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,partner_ref:0
+msgid "Supplier Reference"
+msgstr ""
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_productrecept0
+msgid ""
+"A Pick list generates a supplier invoice. Depending on the Invoicing control "
+"of the purchase order, the invoice is based on received or on ordered "
+"quantities."
+msgstr ""
+"Una Guía genera una factura de proveedor. Según el control de facturación "
+"del pedido de compra, la factura se basa en las cantidades recibidas o las "
+"pedidas."
+
+#. module: purchase
+#: field:purchase.order,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.config.settings,module_purchase_requisition:0
+msgid ""
+"Purchase Requisitions are used when you want to request quotations from "
+"several suppliers for a given set of products.\n"
+" You can configure per product if you directly do a Request for "
+"Quotation\n"
+" to one supplier or if you want a purchase requisition to "
+"negotiate with several suppliers."
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order.line,invoice_lines:0
+msgid "Invoice Lines"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,help:purchase.action_purchase_order_report_all
+msgid ""
+"Purchase Analysis allows you to easily check and analyse your company "
+"purchase history and performance. From this menu you can track your "
+"negotiation performance, the delivery performance of your suppliers, etc."
+msgstr ""
+
+#. module: purchase
+#: model:email.template,report_name:purchase.email_template_edi_purchase
+msgid "RFQ_${(object.name or '').replace('/','_')}"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:982
+#, python-format
+msgid "The selected supplier only sells this product by %s"
+msgstr ""
+
+#. module: purchase
+#: model:process.transition.action,name:purchase.process_transition_action_invoicefrompurchaseorder0
+msgid "Create invoice"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order.line,move_dest_id:0
+msgid "Reservation Destination"
+msgstr ""
+
+#. module: purchase
+#: model:ir.ui.menu,name:purchase.menu_purchase_config_purchase
+msgid "Configuration"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.config.settings,module_purchase_double_validation:0
+msgid ""
+"Provide a double validation mechanism for purchases exceeding minimum "
+"amount.\n"
+" This installs the module purchase_double_validation."
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/edi/purchase_order.py:132
+#, python-format
+msgid "EDI Pricelist (%s)"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+#: field:purchase.report,product_uom:0
+msgid "Reference Unit of Measure"
+msgstr ""
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_packinginvoice0
+msgid "Outgoing products to invoice"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.order:0
+#: field:purchase.report,validator:0
+msgid "Validated By"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+#: field:purchase.report,delay_pass:0
+msgid "Days to Deliver"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+#: field:purchase.order,invoice_ids:0
+msgid "Invoices"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+msgid "Total Orders Lines by User per month"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.order,amount_untaxed:0
+msgid "The amount without tax"
+msgstr ""
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_packinglist0
+msgid "List of ordered products."
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Incoming Shipments & Invoices"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.order,state:0
+msgid "Waiting Approval"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.order,amount_total:0
+msgid "The total amount"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,invoiced_rate:0
+#: field:purchase.order.line,invoiced:0
+msgid "Invoiced"
+msgstr ""
+
+#. module: purchase
+#: model:process.node,name:purchase.process_node_confirmpurchaseorder0
+#: selection:purchase.order.line,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.order.line,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_purchase_order_group
+msgid "Purchase Order Merge"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.action_email_templates
+msgid "Email Templates"
+msgstr ""
+
+#. module: purchase
+#: model:res.groups,name:purchase.group_purchase_user
+msgid "User"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order.line:0
+msgid "Manual Invoices"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.order:0
+msgid "Our Order Reference"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: purchase
+#: help:purchase.order,invoice_method:0
+msgid ""
+"Based on Purchase Order lines: place individual lines in 'Invoice Control > "
+"Based on P.O. lines' from where you can selectively create an invoice.\n"
+"Based on generated invoice: create a draft invoice you can validate later.\n"
+"Bases on incoming shipments: let you create an invoice when receptions are "
+"validated."
+msgstr ""
+
+#. module: purchase
+#: model:ir.ui.menu,name:purchase.menu_partner_categories_in_form
+msgid "Partner Categories"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.report,state:0
+msgid "Order Status"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.order:0
+msgid "Request for Quotation N°"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.config.settings:0
+msgid "Invoicing Settings"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.action_purchase_order_by_user_all
+msgid "Total Orders by User per month"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.order,invoice_method:0
+msgid "Based on incoming shipments"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:1044
+#, python-format
+msgid "No default supplier defined for this product"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+#: field:purchase.report,warehouse_id:0
+msgid "Warehouse"
+msgstr ""
+
+#. module: purchase
+#: code:addons/purchase/purchase.py:986
+#, python-format
+msgid ""
+"The selected supplier has a minimal quantity set to %s %s, you should not "
+"purchase less."
+msgstr ""
+
+#. module: purchase
+#: report:purchase.order:0
+#: field:purchase.order.line,name:0
+#: report:purchase.quotation:0
+msgid "Description"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.quotation:0
+msgid "Expected Delivery address:"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.action_invoice_pending
+#: model:ir.ui.menu,name:purchase.menu_procurement_management_pending_invoice
+msgid "On Draft Invoices"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.action_purchase_order_report_all
+#: model:ir.ui.menu,name:purchase.menu_action_purchase_order_report_all
+msgid "Purchase Analysis"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.order:0
+msgid "Your Order Reference"
+msgstr ""
+
+#. module: purchase
+#: report:purchase.order:0
+msgid "Purchase Order Confirmation N°"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Total amount"
+msgstr ""
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_product_template
+msgid "Product Template"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order.group:0
+msgid ""
+" Please note that: \n"
+" \n"
+" Orders will only be merged if: \n"
+" * Purchase Orders are in draft \n"
+" * Purchase Orders belong to the same supplier \n"
+" * Purchase Orders are have same stock location, same pricelist \n"
+" \n"
+" Lines will only be merged if: \n"
+" * Order lines are exactly the same except for the product,quantity and unit "
+"\n"
+" "
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.purchase_pricelist_version_action
+#: model:ir.ui.menu,name:purchase.menu_purchase_pricelist_version_action
+msgid "Pricelist Versions"
+msgstr ""
+
+#. module: purchase
+#: field:purchase.order,payment_term_id:0
+msgid "Payment Term"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Purchase orders which are in draft state"
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+#: field:purchase.report,name:0
+msgid "Year"
+msgstr ""
+
+#. module: purchase
+#: selection:purchase.config.settings,default_invoice_method:0
+msgid "Based on purchase order lines"
+msgstr ""
+
+#. module: purchase
+#: model:ir.actions.act_window,help:purchase.act_res_partner_2_purchase_order
+msgid ""
+"
\n"
+" This supplier has no purchase order. Click to create a "
+"new RfQ.\n"
+"
\n"
+" The request for quotation is the first step of the "
+"purchases flow. Once\n"
+" converted into a purchase order, you will be able to "
+"control the reception\n"
+" of the products and the supplier invoice.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: purchase
+#: view:purchase.report:0
+msgid "Orders"
+msgstr ""
diff --git a/addons/purchase/i18n/hu.po b/addons/purchase/i18n/hu.po
index 5c01086b33d..9a887b3d101 100644
--- a/addons/purchase/i18n/hu.po
+++ b/addons/purchase/i18n/hu.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2013-01-24 15:32+0000\n"
+"PO-Revision-Date: 2013-11-24 14:14+0000\n"
"Last-Translator: krnkris \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 05:07+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-11-25 05:32+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
#. module: purchase
#: model:res.groups,name:purchase.group_analytic_accounting
@@ -172,7 +172,7 @@ msgstr "Átlagár"
#. module: purchase
#: view:purchase.order:0
msgid "Purchase order which are in the exception state"
-msgstr "Megrendelés mej várható állapotban van"
+msgstr "Megrendelés mely várható állapotban van"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.action_view_purchase_order_group
@@ -743,7 +743,7 @@ msgstr "Jelzi, hogy a kiszedést végrehajtották."
#: code:addons/purchase/purchase.py:588
#, python-format
msgid "Unable to cancel this purchase order."
-msgstr "Nem tlehet visszavonni ezt a beszerzési megrendelést."
+msgstr "Nem lehet visszavonni ezt a beszerzési megrendelést."
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_procurement_management_invoice
@@ -1115,6 +1115,82 @@ msgid ""
"
\n"
" "
msgstr ""
+"\n"
+"
\n"
+"\n"
+"
Tisztelt$ ${object.partner_id.name},
\n"
+" \n"
+"
Ez egy ${object.state in ('draft', 'sent') and 'árajánlatkérés' or "
+"'beszerzés visszaigazolás'} ${object.company_id.name} vállalattól:
\n"
+" \n"
+"
\n"
+" REFERENCES \n"
+" Megrendelés száma: ${object.name} \n"
+" Megrendelés összesen: ${object.amount_total} "
+"${object.pricelist_id.currency_id.name} \n"
+" Megrendelés dátuma: ${object.date_order} \n"
+" % if object.origin:\n"
+" Megrendelés hivatkozási száma: ${object.origin} \n"
+" % endif\n"
+" % if object.partner_ref:\n"
+" Ön hivatkozási száma: ${object.partner_ref} \n"
+" % endif\n"
+" % if object.validator:\n"
+" Kapcsolattartó az Ön részéről: ${object.validator.name}\n"
+" % endif\n"
+"
\n"
+"\n"
+" \n"
+"
További felmerülő kérdésekben állunk szíves rendelkezésükre.
\n"
+"
Köszönjük!
\n"
+" \n"
+" \n"
+"
\n"
+"
\n"
+" ${object.company_id.name}
\n"
+"
\n"
+"
\n"
+" \n"
+" % if object.company_id.street:\n"
+" ${object.company_id.street} \n"
+" % endif\n"
+" % if object.company_id.street2:\n"
+" ${object.company_id.street2} \n"
+" % endif\n"
+" % if object.company_id.city or object.company_id.zip:\n"
+" ${object.company_id.zip} ${object.company_id.city} \n"
+" % endif\n"
+" % if object.company_id.country_id:\n"
+" ${object.company_id.state_id and ('%s, ' % "
+"object.company_id.state_id.name) or ''} ${object.company_id.country_id.name "
+"or ''} \n"
+" % endif\n"
+" \n"
+" % if object.company_id.phone:\n"
+"
\n"
+" Phone: ${object.company_id.phone}\n"
+"
\n"
+" % endif\n"
+" % if object.company_id.website:\n"
+"
\n"
+" "
#. module: purchase
#: view:purchase.report:0
@@ -1165,7 +1241,7 @@ msgstr "Kimenő levelek"
msgid "You cannot confirm a purchase order without any purchase order line."
msgstr ""
"Nem tud visszaigazolni olyan beszerzési megrendelést, melynek nincsenek "
-"sorai."
+"tételei."
#. module: purchase
#: help:purchase.order,message_ids:0
@@ -1241,7 +1317,7 @@ msgstr "Jóváhagyott beszerzési megrendelések"
#. module: purchase
#: view:purchase.report:0
msgid "Purchase Orders Statistics"
-msgstr "Szállítói megrendelés statisztika"
+msgstr "Beszerzési megrendelés statisztikák"
#. module: purchase
#: view:purchase.order:0
@@ -1345,7 +1421,7 @@ msgstr "Fax:"
#. module: purchase
#: help:purchase.order,invoice_ids:0
msgid "Invoices generated for a purchase order"
-msgstr "A szállítói megrendelés alapján készített számlák"
+msgstr "A beszerzési megrendelés alapján készített számlák"
#. module: purchase
#: selection:purchase.config.settings,default_invoice_method:0
@@ -1365,7 +1441,7 @@ msgid ""
"order is 'On picking'. The invoice can also be generated manually by the "
"accountant (Invoice control = Manual)."
msgstr ""
-"A rendszer automatikusan készíti a számlát, ha a szállítói megrendelés "
+"A rendszer automatikusan készíti a számlát, ha a beszerzési megrendelés "
"számlaellenőrzése \"Kiszedés alapján\"-ra van állítva. A könyvelő manuálisan "
"is készíthet számlát (számlaellenőrzés = manuális)."
@@ -1462,7 +1538,7 @@ msgstr "purchase.config.settings"
#: model:process.node,note:purchase.process_node_approvepurchaseorder0
#: model:process.node,note:purchase.process_node_confirmpurchaseorder0
msgid "State of the Purchase Order."
-msgstr "Szállítói megrendelés állapota."
+msgstr "Beszerzési megrendelés állapota."
#. module: purchase
#: field:purchase.order.line,product_uom:0
@@ -1501,7 +1577,7 @@ msgstr "Számlák készítése"
#. module: purchase
#: model:ir.model,name:purchase.model_purchase_order_line_invoice
msgid "Purchase Order Line Make Invoice"
-msgstr "Szállítói megrendelési sorokból számla készítése"
+msgstr "Beszerzési megrendelési tételekből számla készítése"
#. module: purchase
#: code:addons/purchase/purchase.py:1167
@@ -1550,7 +1626,7 @@ msgstr "Kiválasztott elemek listája létrehozva"
#: model:ir.actions.act_window,name:purchase.purchase_line_form_action2
#: model:ir.ui.menu,name:purchase.menu_purchase_line_order_draft
msgid "On Purchase Order Lines"
-msgstr "a beszerzési megrendelések sorain"
+msgstr "a beszerzési megrendelések tételei"
#. module: purchase
#: report:purchase.quotation:0
@@ -1578,7 +1654,7 @@ msgstr "Ártípusok"
#. module: purchase
#: help:purchase.order,date_approve:0
msgid "Date on which purchase order has been approved"
-msgstr "A szállítói megrendelés jóváhagyásának dátuma"
+msgstr "A beszerzési megrendelés jóváhagyásának dátuma"
#. module: purchase
#: model:process.node,name:purchase.process_node_approvepurchaseorder0
@@ -1603,7 +1679,7 @@ msgstr "Számla"
#. module: purchase
#: model:process.node,note:purchase.process_node_purchaseorder0
msgid "Confirmed purchase order to invoice"
-msgstr "Számlázandó jóváhagyott szállítói megrendelés"
+msgstr "Számlázandó jóváhagyott beszerzési megrendelés"
#. module: purchase
#: model:process.node,note:purchase.process_node_productrecept0
@@ -1644,7 +1720,7 @@ msgstr ""
#. module: purchase
#: model:process.transition,note:purchase.process_transition_approvingpurchaseorder0
msgid "The supplier approves the Purchase Order."
-msgstr "A szállító jóváhagyja a szállítói megrendelést."
+msgstr "A szállító jóváhagyja a beszerzési megrendelést."
#. module: purchase
#: code:addons/purchase/wizard/purchase_order_group.py:80
@@ -1655,7 +1731,7 @@ msgstr "A szállító jóváhagyja a szállítói megrendelést."
#: view:res.partner:0
#, python-format
msgid "Purchase Orders"
-msgstr "Szállítói megrendelések"
+msgstr "Beszerzési megrendelések"
#. module: purchase
#: field:purchase.order,origin:0
@@ -1800,7 +1876,7 @@ msgid ""
" This installs the module purchase_analytic_plans."
msgstr ""
"Lehetővé teszi a felhasználó számára különböző elemzési terv karbantartását. "
-"Ez lehetővé teszi a beszerzési megrendelés sorainak több számlán és "
+"Ez lehetővé teszi a beszerzési megrendelés tételeinek több számlán és "
"gyüjtő/elemző számlán való szétválasztását.\n"
" Ez a purchase_analytic_plans modult telepíti."
@@ -1923,12 +1999,12 @@ msgid ""
msgstr ""
"A beszerzési megrendelés vagy az árajánlat kérés állapota. A beszerzési "
"megrendelés 'Tervezet' állapota egy árajánlat. Ezután egy felhasználónak "
-"jóvá kell hagynia, az állapot kapcsolóval 'Jóváhagyott'. Ezután egy "
-"felhasználónak vissza kell igazolnia a megrendelést ahhoz, hogy az állapot "
-"kapcsoló a következő állapotba kerüljön 'Jóváhagyott'. Ha a beszerzési "
+"jóvá kell hagynia, az állapot kapcsolóval 'Jóváhagyott'-ra. Ezután a "
+"beszállítónak vissza kell igazolnia a megrendelést ahhoz, hogy az állapot "
+"kapcsoló a következő 'Elfogadott' állapotba kerüljön . Ha a beszerzési "
"megrendelés beérkezett és fizetett akkor az állapot 'Elvégezve' lesz. Ha a "
"visszavonás gombot megnyomták a számlázásnál vagy a termékek beérkezésénél, "
-"akkor az állapot 'várható' állába kerül."
+"akkor az kifogásolt állapotba kerül."
#. module: purchase
#: selection:purchase.order,state:0
@@ -1967,7 +2043,7 @@ msgstr "Nettó ár"
#: view:purchase.order.line:0
#: field:stock.move,purchase_line_id:0
msgid "Purchase Order Line"
-msgstr "Szállítói megrendelési sor"
+msgstr "Beszerzési megrendelési tételsor"
#. module: purchase
#: model:process.transition.action,name:purchase.process_transition_action_confirmpurchaseorder0
@@ -1992,7 +2068,7 @@ msgid ""
"of the purchase order, the invoice is based on received or on ordered "
"quantities."
msgstr ""
-"A kiszedési lista előállít egy bejövő számlát. A szállítói megrendelés "
+"A kiszedési lista előállít egy bejövő számlát. A beszerzési megrendelés "
"számlaellenőrzésétől függően a számla az érkeztetett vagy a megrendelt "
"mennyiségen alapul."
@@ -2167,7 +2243,7 @@ msgstr "Tervezet"
#. module: purchase
#: model:ir.model,name:purchase.model_purchase_order_group
msgid "Purchase Order Merge"
-msgstr "Szállítói megrendelések összevonása"
+msgstr "Beszerzési megrendelések összevonása"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.action_email_templates
@@ -2208,9 +2284,9 @@ msgid ""
"Bases on incoming shipments: let you create an invoice when receptions are "
"validated."
msgstr ""
-"Beszerzési megrendelés sorain alapszik: különálló sorokat hozzon létre a "
-"'Számla vezérlés > Beszerzési megrendelés sorain alapszik' ahol elkülönítve "
-"hozhat létre számlákat.\n"
+"Beszerzési megrendelés tételsorain alapszik: különálló tétel sorokat hozzon "
+"létre a 'Számla vezérlés > Beszerzési megrendelés tételsorain alapszik' ahol "
+"elkülönítve hozhat létre számlákat.\n"
"Tervezet számla alapján: tervezet számlát hoz létre amit később "
"jóváhagyhat.\n"
"A bejövő szállítások alapján: Számlát hozhat létre, ha a beérkezés jóvá lett "
@@ -2305,7 +2381,7 @@ msgstr "Szállítói megrendelés hivatkozása"
#. module: purchase
#: report:purchase.order:0
msgid "Purchase Order Confirmation N°"
-msgstr "Szállítói megrendelés jóváhagyásának száma"
+msgstr "Beszerzési megrendelés jóváhagyásának száma"
#. module: purchase
#: view:purchase.order:0
@@ -2339,8 +2415,8 @@ msgstr ""
" * ugyanahhoz a szállítóhoz tartoznak \n"
" * ugyanaz a raktári helyük és az árlistájuk \n"
" \n"
-" A rendszer a megrendelési sorokat csak akkor vonja össze, ha: \n"
-" * a sorok a termék, a mennyiség és az egységár kivételével teljesen "
+" A rendszer a megrendelési tételsorokat csak akkor vonja össze, ha: \n"
+" * a tételsorok a termék, a mennyiség és az egységár kivételével teljesen "
"megegyeznek \n"
" "
@@ -2374,7 +2450,7 @@ msgstr "Év"
#. module: purchase
#: selection:purchase.config.settings,default_invoice_method:0
msgid "Based on purchase order lines"
-msgstr "A beszerzési megrendelés sorai alapján"
+msgstr "A beszerzési megrendelés tételsorai alapján"
#. module: purchase
#: model:ir.actions.act_window,help:purchase.act_res_partner_2_purchase_order
@@ -2392,7 +2468,7 @@ msgid ""
" "
msgstr ""
"
\n"
-" Ennek a beszállítónak nincs beszerzési megrendelése. "
+" Ehhez a Beszállítóhoz nincs beszerzési megrendelés. "
"Kattintson ide árajánlat kérés készítéséhez.\n"
"
\n"
" Az árajánlat kérés a beszerzési folyamat első lépése. "
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index e551eb40396..67dac96eb32 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -478,7 +478,7 @@ class purchase_order(osv.osv):
if not acc_id:
raise osv.except_osv(_('Error!'), _('Define expense account for this company: "%s" (id:%d).') % (po_line.product_id.name, po_line.product_id.id,))
else:
- acc_id = property_obj.get(cr, uid, 'property_account_expense_categ', 'product.category').id
+ acc_id = property_obj.get(cr, uid, 'property_account_expense_categ', 'product.category', context=context).id
fpos = po_line.order_id.fiscal_position or False
return fiscal_obj.map_account(cr, uid, fpos, acc_id)
@@ -518,15 +518,23 @@ class purchase_order(osv.osv):
:return: ID of created invoice.
:rtype: int
"""
- res = False
-
+ if context is None:
+ context = {}
journal_obj = self.pool.get('account.journal')
inv_obj = self.pool.get('account.invoice')
inv_line_obj = self.pool.get('account.invoice.line')
+ res = False
+ uid_company_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id
for order in self.browse(cr, uid, ids, context=context):
+ context.pop('force_company', None)
+ if order.company_id.id != uid_company_id:
+ #if the company of the document is different than the current user company, force the company in the context
+ #then re-do a browse to read the property fields for the good company.
+ context['force_company'] = order.company_id.id
+ order = self.browse(cr, uid, order.id, context=context)
pay_acc_id = order.partner_id.property_account_payable.id
- journal_ids = journal_obj.search(cr, uid, [('type', '=','purchase'),('company_id', '=', order.company_id.id)], limit=1)
+ journal_ids = journal_obj.search(cr, uid, [('type', '=', 'purchase'), ('company_id', '=', order.company_id.id)], limit=1)
if not journal_ids:
raise osv.except_osv(_('Error!'),
_('Define purchase journal for this company: "%s" (id:%d).') % (order.company_id.name, order.company_id.id))
@@ -539,7 +547,7 @@ class purchase_order(osv.osv):
inv_line_id = inv_line_obj.create(cr, uid, inv_line_data, context=context)
inv_lines.append(inv_line_id)
- po_line.write({'invoiced':True, 'invoice_lines': [(4, inv_line_id)]}, context=context)
+ po_line.write({'invoiced': True, 'invoice_lines': [(4, inv_line_id)]}, context=context)
# get invoice data and create invoice
inv_data = {
@@ -720,6 +728,7 @@ class purchase_order(osv.osv):
'invoiced':False,
'invoice_ids': [],
'picking_ids': [],
+ 'partner_ref': '',
'name': self.pool.get('ir.sequence').get(cr, uid, 'purchase.order'),
})
return super(purchase_order, self).copy(cr, uid, id, default, context)
@@ -851,6 +860,14 @@ class purchase_order_line(osv.osv):
res[line.id] = cur_obj.round(cr, uid, cur, taxes['total'])
return res
+ def _get_uom_id(self, cr, uid, context=None):
+ try:
+ proxy = self.pool.get('ir.model.data')
+ result = proxy.get_object_reference(cr, uid, 'product', 'product_uom_unit')
+ return result[1]
+ except Exception, ex:
+ return False
+
_columns = {
'name': fields.text('Description', required=True),
'product_qty': fields.float('Quantity', digits_compute=dp.get_precision('Product Unit of Measure'), required=True),
@@ -877,6 +894,7 @@ class purchase_order_line(osv.osv):
}
_defaults = {
+ 'product_uom' : _get_uom_id,
'product_qty': lambda *a: 1.0,
'state': lambda *args: 'draft',
'invoiced': lambda *a: 0,
@@ -897,8 +915,11 @@ class purchase_order_line(osv.osv):
"""
onchange handler of product_uom.
"""
+ if context is None:
+ context = {}
if not uom_id:
return {'value': {'price_unit': price_unit or 0.0, 'name': name or '', 'product_uom' : uom_id or False}}
+ context = dict(context, purchase_uom_check=True)
return self.onchange_product_id(cr, uid, ids, pricelist_id, product_id, qty, uom_id,
partner_id, date_order=date_order, fiscal_position_id=fiscal_position_id, date_planned=date_planned,
name=name, price_unit=price_unit, context=context)
@@ -940,7 +961,6 @@ class purchase_order_line(osv.osv):
product_product = self.pool.get('product.product')
product_uom = self.pool.get('product.uom')
res_partner = self.pool.get('res.partner')
- product_supplierinfo = self.pool.get('product.supplierinfo')
product_pricelist = self.pool.get('product.pricelist')
account_fiscal_position = self.pool.get('account.fiscal.position')
account_tax = self.pool.get('account.tax')
@@ -972,7 +992,7 @@ class purchase_order_line(osv.osv):
uom_id = product_uom_po_id
if product.uom_id.category_id.id != product_uom.browse(cr, uid, uom_id, context=context).category_id.id:
- if self._check_product_uom_group(cr, uid, context=context):
+ if context.get('purchase_uom_check') and self._check_product_uom_group(cr, uid, context=context):
res['warning'] = {'title': _('Warning!'), 'message': _('Selected Unit of Measure does not belong to the same category as the product Unit of Measure.')}
uom_id = product_uom_po_id
@@ -1114,6 +1134,35 @@ class procurement_order(osv.osv):
seller_delay = int(procurement.product_id.seller_delay)
return schedule_date - relativedelta(days=seller_delay)
+ def _get_warehouse(self, procurement, user_company):
+ """
+ Return the warehouse containing the procurment stock location (or one of it ancestors)
+ If none match, returns then first warehouse of the company
+ """
+ # TODO refactor the domain once we implement the "parent_of" domain operator
+ # NOTE This method has been copied in the `purchase_requisition` module to ensure
+ # retro-compatibility. This code duplication will be deleted in next stable version.
+ # Do not forget to update both version in case of modification.
+ company_id = (procurement.company_id or user_company).id
+ domains = [
+ [
+ '&', ('company_id', '=', company_id),
+ '|', '&', ('lot_stock_id.parent_left', '<', procurement.location_id.parent_left),
+ ('lot_stock_id.parent_right', '>', procurement.location_id.parent_right),
+ ('lot_stock_id', '=', procurement.location_id.id)
+ ],
+ [('company_id', '=', company_id)]
+ ]
+
+ cr, uid = procurement._cr, procurement._uid
+ context = procurement._context
+ Warehouse = self.pool['stock.warehouse']
+ for domain in domains:
+ ids = Warehouse.search(cr, uid, domain, context=context)
+ if ids:
+ return ids[0]
+ return False
+
def make_po(self, cr, uid, ids, context=None):
""" Make purchase order from procurement
@return: New created Purchase Orders procurement wise
@@ -1128,7 +1177,6 @@ class procurement_order(osv.osv):
prod_obj = self.pool.get('product.product')
acc_pos_obj = self.pool.get('account.fiscal.position')
seq_obj = self.pool.get('ir.sequence')
- warehouse_obj = self.pool.get('stock.warehouse')
for procurement in self.browse(cr, uid, ids, context=context):
res_id = procurement.move_id.id
partner = procurement.product_id.seller_id # Taken Main Supplier of Product of Procurement.
@@ -1136,7 +1184,6 @@ class procurement_order(osv.osv):
partner_id = partner.id
address_id = partner_obj.address_get(cr, uid, [partner_id], ['delivery'])['delivery']
pricelist_id = partner.property_product_pricelist_purchase.id
- warehouse_id = warehouse_obj.search(cr, uid, [('company_id', '=', procurement.company_id.id or company.id)], context=context)
uom_id = procurement.product_id.uom_po_id.id
qty = uom_obj._compute_qty(cr, uid, procurement.product_uom.id, procurement.product_qty, uom_id)
@@ -1175,7 +1222,7 @@ class procurement_order(osv.osv):
'origin': procurement.origin,
'partner_id': partner_id,
'location_id': procurement.location_id.id,
- 'warehouse_id': warehouse_id and warehouse_id[0] or False,
+ 'warehouse_id': self._get_warehouse(procurement, company),
'pricelist_id': pricelist_id,
'date_order': purchase_date.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
'company_id': procurement.company_id.id,
@@ -1234,17 +1281,27 @@ class account_invoice(osv.Model):
def invoice_validate(self, cr, uid, ids, context=None):
res = super(account_invoice, self).invoice_validate(cr, uid, ids, context=context)
purchase_order_obj = self.pool.get('purchase.order')
- po_ids = purchase_order_obj.search(cr, uid, [('invoice_ids', 'in', ids)], context=context)
+ # read access on purchase.order object is not required
+ if not purchase_order_obj.check_access_rights(cr, uid, 'read', raise_exception=False):
+ user_id = SUPERUSER_ID
+ else:
+ user_id = uid
+ po_ids = purchase_order_obj.search(cr, user_id, [('invoice_ids', 'in', ids)], context=context)
for po_id in po_ids:
- purchase_order_obj.message_post(cr, uid, po_id, body=_("Invoice received"), context=context)
+ purchase_order_obj.message_post(cr, user_id, po_id, body=_("Invoice received"), context=context)
return res
def confirm_paid(self, cr, uid, ids, context=None):
res = super(account_invoice, self).confirm_paid(cr, uid, ids, context=context)
purchase_order_obj = self.pool.get('purchase.order')
- po_ids = purchase_order_obj.search(cr, uid, [('invoice_ids', 'in', ids)], context=context)
- if po_ids:
- purchase_order_obj.message_post(cr, uid, po_ids, body=_("Invoice paid"), context=context)
+ # read access on purchase.order object is not required
+ if not purchase_order_obj.check_access_rights(cr, uid, 'read', raise_exception=False):
+ user_id = SUPERUSER_ID
+ else:
+ user_id = uid
+ po_ids = purchase_order_obj.search(cr, user_id, [('invoice_ids', 'in', ids)], context=context)
+ for po_id in po_ids:
+ purchase_order_obj.message_post(cr, user_id, po_id, body=_("Invoice paid"), context=context)
return res
class account_invoice_line(osv.Model):
diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml
index 27b01a245c2..fca1ee3c7d2 100644
--- a/addons/purchase/purchase_view.xml
+++ b/addons/purchase/purchase_view.xml
@@ -36,6 +36,9 @@
+
Define an invoicing target in the sales team settings to see the period's achievement and forecast at a glance.
diff --git a/addons/sale_crm/wizard/crm_make_sale.py b/addons/sale_crm/wizard/crm_make_sale.py
index 829468e684f..0a7a59fb9e8 100644
--- a/addons/sale_crm/wizard/crm_make_sale.py
+++ b/addons/sale_crm/wizard/crm_make_sale.py
@@ -46,8 +46,8 @@ class crm_make_sale(osv.osv_memory):
if not active_id:
return False
- lead = lead_obj.read(cr, uid, active_id, ['partner_id'])
- return lead['partner_id']
+ lead = lead_obj.read(cr, uid, active_id, ['partner_id'], context=context)
+ return lead['partner_id'][0] if lead['partner_id'] else False
def view_init(self, cr, uid, fields_list, context=None):
return super(crm_make_sale, self).view_init(cr, uid, fields_list, context=context)
diff --git a/addons/sale_journal/i18n/es_PE.po b/addons/sale_journal/i18n/es_PE.po
new file mode 100644
index 00000000000..7d0312be3fd
--- /dev/null
+++ b/addons/sale_journal/i18n/es_PE.po
@@ -0,0 +1,139 @@
+# Spanish (Peru) translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-12-09 18:37+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Spanish (Peru) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
+"X-Generator: Launchpad (build 16869)\n"
+
+#. module: sale_journal
+#: field:sale_journal.invoice.type,note:0
+msgid "Note"
+msgstr ""
+
+#. module: sale_journal
+#: field:res.partner,property_invoice_type:0
+msgid "Invoicing Type"
+msgstr ""
+
+#. module: sale_journal
+#: help:res.partner,property_invoice_type:0
+msgid ""
+"This invoicing type will be used, by default, to invoice the current partner."
+msgstr ""
+
+#. module: sale_journal
+#: view:res.partner:0
+msgid "Sales & Purchases"
+msgstr ""
+
+#. module: sale_journal
+#: view:res.partner:0
+msgid "Invoicing"
+msgstr ""
+
+#. module: sale_journal
+#: model:ir.model,name:sale_journal.model_stock_picking_in
+msgid "Incoming Shipments"
+msgstr "Entregas a Recibir"
+
+#. module: sale_journal
+#: help:sale_journal.invoice.type,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the invoice "
+"type without removing it."
+msgstr ""
+
+#. module: sale_journal
+#: view:sale_journal.invoice.type:0
+msgid "Notes"
+msgstr ""
+
+#. module: sale_journal
+#: field:sale_journal.invoice.type,invoicing_method:0
+msgid "Invoicing method"
+msgstr ""
+
+#. module: sale_journal
+#: model:ir.model,name:sale_journal.model_stock_picking
+msgid "Picking List"
+msgstr "Guía"
+
+#. module: sale_journal
+#: model:ir.actions.act_window,name:sale_journal.action_definition_journal_invoice_type
+#: model:ir.model,name:sale_journal.model_sale_journal_invoice_type
+#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_invoice_type
+msgid "Invoice Types"
+msgstr ""
+
+#. module: sale_journal
+#: selection:sale_journal.invoice.type,invoicing_method:0
+msgid "Non grouped"
+msgstr ""
+
+#. module: sale_journal
+#: selection:sale_journal.invoice.type,invoicing_method:0
+msgid "Grouped"
+msgstr ""
+
+#. module: sale_journal
+#: model:ir.actions.act_window,help:sale_journal.action_definition_journal_invoice_type
+msgid ""
+"Invoice types are used for partners, sales orders and delivery orders. You "
+"can create a specific invoicing journal to group your invoicing according to "
+"your customer's needs: daily, each Wednesday, monthly, etc."
+msgstr ""
+"Los tipos de facturas son utilizados por las Empresas, Pedidos de Venta y "
+"Órdenes de Entrega. Puede crear un diario de facturación específico para "
+"agrupar su facturación en función de las necesidades de sus clientes: "
+"diaria, cada miércoles, mensual, etc."
+
+#. module: sale_journal
+#: help:sale.order,invoice_type_id:0
+msgid "Generate invoice based on the selected option."
+msgstr ""
+
+#. module: sale_journal
+#: view:sale.order:0
+#: field:sale.order,invoice_type_id:0
+#: view:sale_journal.invoice.type:0
+#: field:sale_journal.invoice.type,name:0
+#: view:stock.picking:0
+#: field:stock.picking,invoice_type_id:0
+#: view:stock.picking.in:0
+#: field:stock.picking.in,invoice_type_id:0
+#: view:stock.picking.out:0
+#: field:stock.picking.out,invoice_type_id:0
+msgid "Invoice Type"
+msgstr ""
+
+#. module: sale_journal
+#: field:sale_journal.invoice.type,active:0
+msgid "Active"
+msgstr ""
+
+#. module: sale_journal
+#: model:ir.model,name:sale_journal.model_res_partner
+msgid "Partner"
+msgstr ""
+
+#. module: sale_journal
+#: model:ir.model,name:sale_journal.model_sale_order
+msgid "Sales Order"
+msgstr ""
+
+#. module: sale_journal
+#: model:ir.model,name:sale_journal.model_stock_picking_out
+msgid "Delivery Orders"
+msgstr ""
diff --git a/addons/sale_margin/i18n/hu.po b/addons/sale_margin/i18n/hu.po
index 6d121aba441..52129c136a6 100644
--- a/addons/sale_margin/i18n/hu.po
+++ b/addons/sale_margin/i18n/hu.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
-"PO-Revision-Date: 2011-02-01 22:09+0000\n"
-"Last-Translator: Krisztian Eyssen \n"
+"PO-Revision-Date: 2013-12-09 16:03+0000\n"
+"Last-Translator: krnkris \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:13+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
+"X-Generator: Launchpad (build 16869)\n"
#. module: sale_margin
#: field:sale.order.line,purchase_price:0
@@ -35,7 +35,7 @@ msgstr "Árrés"
#. module: sale_margin
#: model:ir.model,name:sale_margin.model_sale_order_line
msgid "Sales Order Line"
-msgstr "Vevői megrendelés sor"
+msgstr "Vevői megrendelési tétel sor"
#. module: sale_margin
#: help:sale.order,margin:0
diff --git a/addons/sale_margin/i18n/zh_TW.po b/addons/sale_margin/i18n/zh_TW.po
new file mode 100644
index 00000000000..fde65360a95
--- /dev/null
+++ b/addons/sale_margin/i18n/zh_TW.po
@@ -0,0 +1,46 @@
+# Chinese (Traditional) translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-12-29 16:03+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Traditional) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-30 04:39+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: sale_margin
+#: field:sale.order.line,purchase_price:0
+msgid "Cost Price"
+msgstr "成本價"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_sale_order
+msgid "Sales Order"
+msgstr "銷售訂單"
+
+#. module: sale_margin
+#: field:sale.order,margin:0
+#: field:sale.order.line,margin:0
+msgid "Margin"
+msgstr "毛利"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_sale_order_line
+msgid "Sales Order Line"
+msgstr "銷售訂單細項"
+
+#. module: sale_margin
+#: help:sale.order,margin:0
+msgid ""
+"It gives profitability by calculating the difference between the Unit Price "
+"and the cost price."
+msgstr "獲利由計算單價與成本價的差異得之"
diff --git a/addons/sale_mrp/i18n/hu.po b/addons/sale_mrp/i18n/hu.po
index 3a56aa6dc63..088ca8c8616 100644
--- a/addons/sale_mrp/i18n/hu.po
+++ b/addons/sale_mrp/i18n/hu.po
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
-"PO-Revision-Date: 2011-02-01 22:23+0000\n"
-"Last-Translator: Krisztian Eyssen \n"
+"PO-Revision-Date: 2013-12-09 16:06+0000\n"
+"Last-Translator: krnkris \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:14+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
+"X-Generator: Launchpad (build 16869)\n"
#. module: sale_mrp
#: model:ir.model,name:sale_mrp.model_mrp_production
msgid "Manufacturing Order"
-msgstr "Gyártási utasítás"
+msgstr "Gyártási rendelés"
#. module: sale_mrp
#: help:mrp.production,sale_name:0
@@ -34,7 +34,7 @@ msgstr "A vevői megrendelés vevő hivatkozására utal."
#. module: sale_mrp
#: field:mrp.production,sale_ref:0
msgid "Sale Reference"
-msgstr "Értékesítési referencia"
+msgstr "Vevői megrendelési referencia"
#. module: sale_mrp
#: field:mrp.production,sale_name:0
diff --git a/addons/sale_mrp/i18n/th.po b/addons/sale_mrp/i18n/th.po
new file mode 100644
index 00000000000..d055e4b93c8
--- /dev/null
+++ b/addons/sale_mrp/i18n/th.po
@@ -0,0 +1,43 @@
+# Thai translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-12-12 11:19+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Thai
\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-13 05:52+0000\n"
+"X-Generator: Launchpad (build 16869)\n"
+
+#. module: sale_mrp
+#: model:ir.model,name:sale_mrp.model_mrp_production
+msgid "Manufacturing Order"
+msgstr ""
+
+#. module: sale_mrp
+#: help:mrp.production,sale_name:0
+msgid "Indicate the name of sales order."
+msgstr ""
+
+#. module: sale_mrp
+#: help:mrp.production,sale_ref:0
+msgid "Indicate the Customer Reference from sales order."
+msgstr ""
+
+#. module: sale_mrp
+#: field:mrp.production,sale_ref:0
+msgid "Sale Reference"
+msgstr ""
+
+#. module: sale_mrp
+#: field:mrp.production,sale_name:0
+msgid "Sale Name"
+msgstr ""
diff --git a/addons/sale_mrp/i18n/zh_TW.po b/addons/sale_mrp/i18n/zh_TW.po
new file mode 100644
index 00000000000..389235ec9fd
--- /dev/null
+++ b/addons/sale_mrp/i18n/zh_TW.po
@@ -0,0 +1,43 @@
+# Chinese (Traditional) translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-12-29 16:52+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Traditional) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-30 04:39+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: sale_mrp
+#: model:ir.model,name:sale_mrp.model_mrp_production
+msgid "Manufacturing Order"
+msgstr "生產單"
+
+#. module: sale_mrp
+#: help:mrp.production,sale_name:0
+msgid "Indicate the name of sales order."
+msgstr "指出銷售訂單名稱。"
+
+#. module: sale_mrp
+#: help:mrp.production,sale_ref:0
+msgid "Indicate the Customer Reference from sales order."
+msgstr "指出銷售訂單中的客戶參考。"
+
+#. module: sale_mrp
+#: field:mrp.production,sale_ref:0
+msgid "Sale Reference"
+msgstr "銷售參考"
+
+#. module: sale_mrp
+#: field:mrp.production,sale_name:0
+msgid "Sale Name"
+msgstr "銷售名稱"
diff --git a/addons/sale_order_dates/i18n/es_PE.po b/addons/sale_order_dates/i18n/es_PE.po
new file mode 100644
index 00000000000..038b0f9b51a
--- /dev/null
+++ b/addons/sale_order_dates/i18n/es_PE.po
@@ -0,0 +1,58 @@
+# Spanish (Peru) translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-12-09 18:32+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Spanish (Peru) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
+"X-Generator: Launchpad (build 16869)\n"
+
+#. module: sale_order_dates
+#: view:sale.order:0
+msgid "Dates"
+msgstr ""
+
+#. module: sale_order_dates
+#: field:sale.order,commitment_date:0
+msgid "Commitment Date"
+msgstr "Fecha Prometida"
+
+#. module: sale_order_dates
+#: field:sale.order,effective_date:0
+msgid "Effective Date"
+msgstr ""
+
+#. module: sale_order_dates
+#: help:sale.order,effective_date:0
+msgid "Date on which picking is created."
+msgstr "Fecha en que la Guía fue creada."
+
+#. module: sale_order_dates
+#: help:sale.order,requested_date:0
+msgid "Date requested by the customer for the sale."
+msgstr ""
+
+#. module: sale_order_dates
+#: field:sale.order,requested_date:0
+msgid "Requested Date"
+msgstr ""
+
+#. module: sale_order_dates
+#: model:ir.model,name:sale_order_dates.model_sale_order
+msgid "Sales Order"
+msgstr ""
+
+#. module: sale_order_dates
+#: help:sale.order,commitment_date:0
+msgid "Committed date for delivery."
+msgstr ""
diff --git a/addons/sale_order_dates/i18n/zh_TW.po b/addons/sale_order_dates/i18n/zh_TW.po
new file mode 100644
index 00000000000..273ad1ff532
--- /dev/null
+++ b/addons/sale_order_dates/i18n/zh_TW.po
@@ -0,0 +1,58 @@
+# Chinese (Traditional) translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-12-29 16:17+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Traditional) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-30 04:39+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: sale_order_dates
+#: view:sale.order:0
+msgid "Dates"
+msgstr "日期"
+
+#. module: sale_order_dates
+#: field:sale.order,commitment_date:0
+msgid "Commitment Date"
+msgstr "承諾日期"
+
+#. module: sale_order_dates
+#: field:sale.order,effective_date:0
+msgid "Effective Date"
+msgstr "有效日期"
+
+#. module: sale_order_dates
+#: help:sale.order,effective_date:0
+msgid "Date on which picking is created."
+msgstr "提貨單建立日期。"
+
+#. module: sale_order_dates
+#: help:sale.order,requested_date:0
+msgid "Date requested by the customer for the sale."
+msgstr "由訂單客戶所要求的日期。"
+
+#. module: sale_order_dates
+#: field:sale.order,requested_date:0
+msgid "Requested Date"
+msgstr "要求日期"
+
+#. module: sale_order_dates
+#: model:ir.model,name:sale_order_dates.model_sale_order
+msgid "Sales Order"
+msgstr "銷售訂單"
+
+#. module: sale_order_dates
+#: help:sale.order,commitment_date:0
+msgid "Committed date for delivery."
+msgstr "承諾交貨日期"
diff --git a/addons/sale_order_dates/sale_order_dates_view.xml b/addons/sale_order_dates/sale_order_dates_view.xml
index b2863f644e0..68419cd29bb 100644
--- a/addons/sale_order_dates/sale_order_dates_view.xml
+++ b/addons/sale_order_dates/sale_order_dates_view.xml
@@ -8,7 +8,7 @@
-
+
diff --git a/addons/sale_stock/i18n/es_PE.po b/addons/sale_stock/i18n/es_PE.po
new file mode 100644
index 00000000000..a87a3eefa8f
--- /dev/null
+++ b/addons/sale_stock/i18n/es_PE.po
@@ -0,0 +1,609 @@
+# Spanish (Peru) translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-12-09 18:14+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Spanish (Peru) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
+"X-Generator: Launchpad (build 16869)\n"
+
+#. module: sale_stock
+#: help:sale.config.settings,group_invoice_deli_orders:0
+msgid ""
+"To allow your salesman to make invoices for Delivery Orders using the menu "
+"'Deliveries to Invoice'."
+msgstr ""
+
+#. module: sale_stock
+#: model:process.node,name:sale_stock.process_node_deliveryorder0
+msgid "Delivery Order"
+msgstr ""
+
+#. module: sale_stock
+#: model:ir.actions.act_window,name:sale_stock.outgoing_picking_list_to_invoice
+#: model:ir.ui.menu,name:sale_stock.menu_action_picking_list_to_invoice
+msgid "Deliveries to Invoice"
+msgstr "Entregas a facturar"
+
+#. module: sale_stock
+#: code:addons/sale_stock/sale_stock.py:570
+#, python-format
+msgid "Picking Information ! : "
+msgstr "Información de la Guía! "
+
+#. module: sale_stock
+#: model:process.node,name:sale_stock.process_node_packinglist0
+msgid "Pick List"
+msgstr "Guía"
+
+#. module: sale_stock
+#: code:addons/sale_stock/sale_stock.py:565
+#, python-format
+msgid ""
+"You selected a quantity of %d Units.\n"
+"But it's not compatible with the selected packaging.\n"
+"Here is a proposition of quantities according to the packaging:\n"
+"EAN: %s Quantity: %s Type of ul: %s"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.node,note:sale_stock.process_node_packinglist0
+msgid "Document of the move to the output or to the customer."
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.config.settings,group_multiple_shops:0
+msgid "Manage multiple shops"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.transition.action,name:sale_stock.process_transition_action_validate0
+msgid "Validate"
+msgstr ""
+
+#. module: sale_stock
+#: code:addons/sale_stock/sale_stock.py:209
+#, python-format
+msgid ""
+"You must first cancel all delivery order(s) attached to this sales order."
+msgstr ""
+
+#. module: sale_stock
+#: model:process.transition,name:sale_stock.process_transition_saleprocurement0
+msgid "Create Procurement Order"
+msgstr ""
+
+#. module: sale_stock
+#: field:stock.picking.out,sale_id:0
+msgid "Sale Order"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.transition,note:sale_stock.process_transition_saleorderprocurement0
+msgid ""
+"For every sales order line, a procurement order is created to supply the "
+"sold product."
+msgstr ""
+
+#. module: sale_stock
+#: code:addons/sale_stock/sale_stock.py:615
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.order,picking_policy:0
+msgid "Shipping Policy"
+msgstr ""
+
+#. module: sale_stock
+#: code:addons/sale_stock/sale_stock.py:616
+#, python-format
+msgid ""
+"You cannot make an advance on a sales order that is "
+"defined as 'Automatic Invoice after delivery'."
+msgstr ""
+
+#. module: sale_stock
+#: model:ir.ui.menu,name:sale_stock.menu_action_shop_form
+msgid "Shop"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.node,note:sale_stock.process_node_saleorderprocurement0
+msgid "Drives procurement orders for every sales order line."
+msgstr ""
+
+#. module: sale_stock
+#: model:ir.model,name:sale_stock.model_stock_move
+msgid "Stock Move"
+msgstr ""
+
+#. module: sale_stock
+#: code:addons/sale_stock/sale_stock.py:163
+#, python-format
+msgid "Invalid Action!"
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.config.settings,module_project_timesheet:0
+msgid "Project Timesheet"
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.config.settings,group_sale_delivery_address:0
+msgid "Allow a different address for delivery and invoicing "
+msgstr ""
+
+#. module: sale_stock
+#: code:addons/sale_stock/sale_stock.py:572
+#: code:addons/sale_stock/sale_stock.py:623
+#, python-format
+msgid "Configuration Error!"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.node,name:sale_stock.process_node_saleprocurement0
+msgid "Procurement Order"
+msgstr ""
+
+#. module: sale_stock
+#: selection:sale.config.settings,default_order_policy:0
+msgid "Invoice based on deliveries"
+msgstr "Facturar desde entregas"
+
+#. module: sale_stock
+#: model:ir.model,name:sale_stock.model_sale_order
+#: field:stock.picking,sale_id:0
+msgid "Sales Order"
+msgstr ""
+
+#. module: sale_stock
+#: model:ir.model,name:sale_stock.model_stock_picking_out
+msgid "Delivery Orders"
+msgstr ""
+
+#. module: sale_stock
+#: model:ir.model,name:sale_stock.model_sale_order_line
+#: field:stock.move,sale_line_id:0
+msgid "Sales Order Line"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.transition,note:sale_stock.process_transition_packing0
+msgid ""
+"The Pick List form is created as soon as the sales order is confirmed, in "
+"the same time as the procurement order. It represents the assignment of "
+"parts to the sales order. There is 1 pick list by sales order line which "
+"evolves with the availability of parts."
+msgstr ""
+"El Guía se crea tan pronto como se confirma el pedido de venta, a la vez que "
+"la orden de abastecimiento. Representa la asignación de los componentes del "
+"pedido de venta. Hay una Guía por línea del pedido de venta que evoluciona "
+"según la disponibilidad de los componentes."
+
+#. module: sale_stock
+#: help:res.company,security_lead:0
+msgid ""
+"This is the days added to what you promise to customers for security purpose"
+msgstr ""
+
+#. module: sale_stock
+#: model:ir.model,name:sale_stock.model_stock_picking
+msgid "Picking List"
+msgstr "Guía"
+
+#. module: sale_stock
+#: field:sale.shop,warehouse_id:0
+msgid "Warehouse"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.transition.action,name:sale_stock.process_transition_action_forceassignation0
+msgid "Force Assignation"
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.config.settings,default_order_policy:0
+msgid "The default invoicing method is"
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.order.line,delay:0
+msgid "Delivery Lead Time"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.node,note:sale_stock.process_node_deliveryorder0
+msgid "Document of the move to the customer."
+msgstr ""
+
+#. module: sale_stock
+#: view:sale.order:0
+msgid "View Delivery Order"
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.order.line,move_ids:0
+msgid "Inventory Moves"
+msgstr ""
+
+#. module: sale_stock
+#: view:sale.config.settings:0
+msgid "Default Options"
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.config.settings,module_project_mrp:0
+msgid "Project MRP"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.transition,note:sale_stock.process_transition_invoiceafterdelivery0
+msgid ""
+"The invoice is created automatically if the shipping policy is 'Invoice from "
+"pick' or 'Invoice on order after delivery'."
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.order.line,procurement_id:0
+msgid "Procurement"
+msgstr ""
+
+#. module: sale_stock
+#: view:sale.report:0
+#: field:sale.report,shipped:0
+#: field:sale.report,shipped_qty_1:0
+msgid "Shipped"
+msgstr ""
+
+#. module: sale_stock
+#: code:addons/sale_stock/sale_stock.py:265
+#, python-format
+msgid "invalid mode for test_state"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.transition,note:sale_stock.process_transition_saleprocurement0
+msgid ""
+"A procurement order is automatically created as soon as a sales order is "
+"confirmed or as the invoice is paid. It drives the purchasing and the "
+"production of products regarding to the rules and to the sales order's "
+"parameters. "
+msgstr ""
+
+#. module: sale_stock
+#: help:sale.config.settings,group_mrp_properties:0
+msgid "Allows you to tag sales order lines with properties."
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.config.settings,group_invoice_deli_orders:0
+msgid "Generate invoices after and based on delivery orders"
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.config.settings,module_delivery:0
+msgid "Allow adding shipping costs"
+msgstr ""
+
+#. module: sale_stock
+#: view:sale.order:0
+msgid "days"
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.order.line,product_packaging:0
+msgid "Packaging"
+msgstr ""
+
+#. module: sale_stock
+#: help:sale.order,incoterm:0
+msgid ""
+"International Commercial Terms are a series of predefined commercial terms "
+"used in international transactions."
+msgstr ""
+
+#. module: sale_stock
+#: help:sale.config.settings,module_delivery:0
+msgid ""
+"Allows you to add delivery methods in sales orders and delivery orders.\n"
+" You can define your own carrier and delivery grids for "
+"prices.\n"
+" This installs the module delivery."
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.config.settings,default_picking_policy:0
+msgid "Deliver all at once when all products are available."
+msgstr ""
+
+#. module: sale_stock
+#: model:res.groups,name:sale_stock.group_invoice_deli_orders
+msgid "Enable Invoicing Delivery orders"
+msgstr ""
+
+#. module: sale_stock
+#: field:res.company,security_lead:0
+msgid "Security Days"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.transition,name:sale_stock.process_transition_saleorderprocurement0
+msgid "Procurement of sold material"
+msgstr ""
+
+#. module: sale_stock
+#: help:sale.order,picking_policy:0
+msgid ""
+"Pick 'Deliver each product when available' if you allow partial delivery."
+msgstr ""
+
+#. module: sale_stock
+#: code:addons/sale_stock/sale_stock.py:208
+#, python-format
+msgid "Cannot cancel sales order!"
+msgstr ""
+
+#. module: sale_stock
+#: model:ir.model,name:sale_stock.model_sale_shop
+msgid "Sales Shop"
+msgstr "Tiendas"
+
+#. module: sale_stock
+#: help:sale.order,shipped:0
+msgid ""
+"It indicates that the sales order has been delivered. This field is updated "
+"only after the scheduler(s) have been launched."
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.order.line,property_ids:0
+msgid "Properties"
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.config.settings,group_mrp_properties:0
+msgid "Product properties on order lines"
+msgstr ""
+
+#. module: sale_stock
+#: help:sale.config.settings,default_order_policy:0
+msgid ""
+"You can generate invoices based on sales orders or based on shippings."
+msgstr ""
+
+#. module: sale_stock
+#: model:ir.model,name:sale_stock.model_sale_report
+msgid "Sales Orders Statistics"
+msgstr ""
+
+#. module: sale_stock
+#: model:ir.model,name:sale_stock.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: sale_stock
+#: help:sale.config.settings,task_work:0
+msgid ""
+"Lets you transfer the entries under tasks defined for Project Management to\n"
+" the Timesheet line entries for particular date and "
+"particular user with the effect of creating, editing and deleting either "
+"ways\n"
+" and to automatically creates project tasks from procurement "
+"lines.\n"
+" This installs the modules project_timesheet and project_mrp."
+msgstr ""
+
+#. module: sale_stock
+#: help:sale.config.settings,group_sale_delivery_address:0
+msgid ""
+"Allows you to specify different delivery and invoice addresses on a sales "
+"order."
+msgstr ""
+
+#. module: sale_stock
+#: model:process.node,note:sale_stock.process_node_saleprocurement0
+msgid ""
+"One Procurement order for each sales order line and for each of the "
+"components."
+msgstr ""
+
+#. module: sale_stock
+#: model:process.transition.action,name:sale_stock.process_transition_action_assign0
+msgid "Assign"
+msgstr ""
+
+#. module: sale_stock
+#: code:addons/sale_stock/sale_stock.py:618
+#, python-format
+msgid "Not enough stock ! : "
+msgstr ""
+
+#. module: sale_stock
+#: help:sale.order.line,delay:0
+msgid ""
+"Number of days between the order confirmation and the shipping of the "
+"products to the customer"
+msgstr ""
+
+#. module: sale_stock
+#: help:sale.config.settings,default_picking_policy:0
+msgid ""
+"Sales order by default will be configured to deliver all products at once "
+"instead of delivering each product when it is available. This may have an "
+"impact on the shipping price."
+msgstr ""
+
+#. module: sale_stock
+#: selection:sale.config.settings,default_order_policy:0
+msgid "Invoice based on sales orders"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.node,name:sale_stock.process_node_invoiceafterdelivery0
+msgid "Invoice"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.transition.action,name:sale_stock.process_transition_action_cancel1
+#: model:process.transition.action,name:sale_stock.process_transition_action_cancel2
+msgid "Cancel"
+msgstr ""
+
+#. module: sale_stock
+#: code:addons/sale_stock/sale_stock.py:163
+#, python-format
+msgid ""
+"In order to delete a confirmed sales order, you must cancel it.\n"
+"To do so, you must first cancel related picking for delivery orders."
+msgstr ""
+"Para borrar un pedido de venta confirmado, debe cancelarlo.\n"
+"Para hacerlo, debe cancelar primero las guías relacionadas para sus órdenes "
+"de entrega."
+
+#. module: sale_stock
+#: field:sale.order.line,number_packages:0
+msgid "Number Packages"
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.order,shipped:0
+msgid "Delivered"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.transition,name:sale_stock.process_transition_invoiceafterdelivery0
+msgid "Create Invoice"
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.config.settings,task_work:0
+msgid "Prepare invoices based on task's activities"
+msgstr ""
+
+#. module: sale_stock
+#: model:ir.model,name:sale_stock.model_sale_advance_payment_inv
+msgid "Sales Advance Payment Invoice"
+msgstr ""
+
+#. module: sale_stock
+#: code:addons/sale_stock/sale_stock.py:523
+#, python-format
+msgid "You must first cancel stock moves attached to this sales order line."
+msgstr ""
+
+#. module: sale_stock
+#: code:addons/sale_stock/sale_stock.py:561
+#, python-format
+msgid "(n/a)"
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.order,incoterm:0
+msgid "Incoterm"
+msgstr ""
+
+#. module: sale_stock
+#: code:addons/sale_stock/sale_stock.py:522
+#, python-format
+msgid "Cannot cancel sales order line!"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.transition.action,name:sale_stock.process_transition_action_cancelassignation0
+msgid "Cancel Assignation"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.node,note:sale_stock.process_node_invoiceafterdelivery0
+msgid "Based on the shipped or on the ordered quantities."
+msgstr ""
+
+#. module: sale_stock
+#: selection:sale.order,picking_policy:0
+msgid "Deliver all products at once"
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.order,picking_ids:0
+msgid "Related Picking"
+msgstr "Guía relacionada"
+
+#. module: sale_stock
+#: model:ir.model,name:sale_stock.model_sale_config_settings
+msgid "sale.config.settings"
+msgstr ""
+
+#. module: sale_stock
+#: help:sale.order,picking_ids:0
+msgid ""
+"This is a list of delivery orders that has been generated for this sales "
+"order."
+msgstr ""
+
+#. module: sale_stock
+#: model:process.node,name:sale_stock.process_node_saleorderprocurement0
+msgid "Sales Order Requisition"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.transition,name:sale_stock.process_transition_deliver0
+msgid "Create Delivery Order"
+msgstr ""
+
+#. module: sale_stock
+#: view:sale.order:0
+msgid "Ignore Exception"
+msgstr ""
+
+#. module: sale_stock
+#: code:addons/sale_stock/sale_stock.py:614
+#, python-format
+msgid ""
+"You plan to sell %.2f %s but you only have %.2f %s available !\n"
+"The real stock is %.2f %s. (without reservations)"
+msgstr ""
+
+#. module: sale_stock
+#: view:sale.order:0
+msgid "Recreate Delivery Order"
+msgstr ""
+
+#. module: sale_stock
+#: help:sale.config.settings,group_multiple_shops:0
+msgid "This allows to configure and use multiple shops."
+msgstr ""
+
+#. module: sale_stock
+#: field:sale.order,picked_rate:0
+msgid "Picked"
+msgstr ""
+
+#. module: sale_stock
+#: selection:sale.order,picking_policy:0
+msgid "Deliver each product when available"
+msgstr ""
+
+#. module: sale_stock
+#: model:process.transition,name:sale_stock.process_transition_packing0
+msgid "Create Pick List"
+msgstr "Crear Guía"
+
+#. module: sale_stock
+#: model:process.transition,note:sale_stock.process_transition_deliver0
+msgid ""
+"Depending on the configuration of the location Output, the move between the "
+"output area and the customer is done through the Delivery Order manually or "
+"automatically."
+msgstr ""
diff --git a/addons/sale_stock/i18n/hu.po b/addons/sale_stock/i18n/hu.po
index 679ffa0220d..db534b92e40 100644
--- a/addons/sale_stock/i18n/hu.po
+++ b/addons/sale_stock/i18n/hu.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
-"PO-Revision-Date: 2013-01-10 12:41+0000\n"
+"PO-Revision-Date: 2013-12-09 19:30+0000\n"
"Last-Translator: krnkris \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:36+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
+"X-Generator: Launchpad (build 16869)\n"
#. module: sale_stock
#: help:sale.config.settings,group_invoice_deli_orders:0
@@ -94,7 +94,7 @@ msgstr "Beszerzési megbízás létrehozása"
#. module: sale_stock
#: field:stock.picking.out,sale_id:0
msgid "Sale Order"
-msgstr "Rendelés"
+msgstr "Vevői megrendelés"
#. module: sale_stock
#: model:process.transition,note:sale_stock.process_transition_saleorderprocurement0
@@ -102,7 +102,7 @@ msgid ""
"For every sales order line, a procurement order is created to supply the "
"sold product."
msgstr ""
-"Minden értékesítési megbízási sorhoz létrejön egy beszerzési megbízás is az "
+"Minden vásárlói megrendelés tételhez, létrehoz egy beszerzési megbízás is az "
"eladott termék előteremtésére."
#. module: sale_stock
@@ -123,8 +123,8 @@ msgid ""
"You cannot make an advance on a sales order that is "
"defined as 'Automatic Invoice after delivery'."
msgstr ""
-"Nem végezhet előrelépést egy megrendelésen ami úgy van meghatározva, hogy "
-"'Szállítás után automatikus számlázás'."
+"Nem végezhet díjbekérést egy olyan vásárlói megrendelésen ami úgy van "
+"meghatározva, hogy 'Szállítás után automatikus számlázás'."
#. module: sale_stock
#: model:ir.ui.menu,name:sale_stock.menu_action_shop_form
@@ -134,7 +134,8 @@ msgstr "Üzlet"
#. module: sale_stock
#: model:process.node,note:sale_stock.process_node_saleorderprocurement0
msgid "Drives procurement orders for every sales order line."
-msgstr "Beszerzési megbízást generál minden értékesítési megbízási sorhoz."
+msgstr ""
+"Beszerzési megbízást generál minden vásárlói megrendelési tétel sorhoz."
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_stock_move
@@ -150,12 +151,12 @@ msgstr "Érvénytelen lépés!"
#. module: sale_stock
#: field:sale.config.settings,module_project_timesheet:0
msgid "Project Timesheet"
-msgstr "Projekt munkaidő-kimutatása"
+msgstr "Projekt időbeosztás-kimutatása"
#. module: sale_stock
#: field:sale.config.settings,group_sale_delivery_address:0
msgid "Allow a different address for delivery and invoicing "
-msgstr "Engedélyezze akülönböző címeket a szállításhoz és a számlázáshoz "
+msgstr "Engedélyezze a szállításhoz és a számlázáshoz a különböző címeket "
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:572
@@ -178,7 +179,7 @@ msgstr "Számla a szállítások alapján"
#: model:ir.model,name:sale_stock.model_sale_order
#: field:stock.picking,sale_id:0
msgid "Sales Order"
-msgstr "Értékesítési megbízás"
+msgstr "Vevői megrendelés"
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_stock_picking_out
@@ -189,7 +190,7 @@ msgstr "Kiszállítások kézbesítési bizonylatai"
#: model:ir.model,name:sale_stock.model_sale_order_line
#: field:stock.move,sale_line_id:0
msgid "Sales Order Line"
-msgstr "Értékesítési megbízási sor"
+msgstr "Vevői megrendelési tétel sor"
#. module: sale_stock
#: model:process.transition,note:sale_stock.process_transition_packing0
@@ -199,21 +200,22 @@ msgid ""
"parts to the sales order. There is 1 pick list by sales order line which "
"evolves with the availability of parts."
msgstr ""
-"The Pick List form is created as soon as the sales order is confirmed, in "
-"the same time as the procurement order. It represents the assignment of "
-"parts to the sales order. There is 1 pick list by sales order line which "
-"evolves with the availability of parts."
+"A kiválogatási lista adatlapját a vevői megrendelés visszaigazolásakor "
+"azonnal létrehozza, ugyanakkor amikor a beszerzési megbízást. Ez képviseli a "
+"vevői megrendelés tételeit. Itt a vevői megrendelés tételekként 1 "
+"kiválogatási lista van, ami mindjárt megmutatja a tételek hozzáférhetőségét "
+"is."
#. module: sale_stock
#: help:res.company,security_lead:0
msgid ""
"This is the days added to what you promise to customers for security purpose"
-msgstr "A vevőknek ígért, biztonsági okokból hozzáadott napok száma."
+msgstr "A vevőknek megígért, biztonsági okokból hozzáadott, napok száma."
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_stock_picking
msgid "Picking List"
-msgstr "Kiszedési lista"
+msgstr "Kiválogatási lista"
#. module: sale_stock
#: field:sale.shop,warehouse_id:0
@@ -238,7 +240,7 @@ msgstr "Kiszállítás átfutási idő"
#. module: sale_stock
#: model:process.node,note:sale_stock.process_node_deliveryorder0
msgid "Document of the move to the customer."
-msgstr "Dokumentum a vevőnek történő mozgásról."
+msgstr "Dokumentum a vevőhöz történő mozgatásról."
#. module: sale_stock
#: view:sale.order:0
@@ -248,12 +250,12 @@ msgstr "Kiszállítási kézbesítési bizonylatok áttekintése"
#. module: sale_stock
#: field:sale.order.line,move_ids:0
msgid "Inventory Moves"
-msgstr "Leltármozgás"
+msgstr "Leltárkészlet mozgás"
#. module: sale_stock
#: view:sale.config.settings:0
msgid "Default Options"
-msgstr "Alapértelmezett lehetőség"
+msgstr "Alapértelmezett lehetőségek"
#. module: sale_stock
#: field:sale.config.settings,module_project_mrp:0
@@ -266,8 +268,8 @@ msgid ""
"The invoice is created automatically if the shipping policy is 'Invoice from "
"pick' or 'Invoice on order after delivery'."
msgstr ""
-"A számla automatikusan létrejön, ha a kiszállítási szabály: számlázás "
-"kiszedésből vagy számlázás kiszállítás után."
+"A számla automatikusan létrejön, ha a kiszállítási szabály: 'számlázás "
+"kiszedésből' vagy 'számlázás kiszállítás után'."
#. module: sale_stock
#: field:sale.order.line,procurement_id:0
@@ -285,7 +287,7 @@ msgstr "Kiszállított"
#: code:addons/sale_stock/sale_stock.py:265
#, python-format
msgid "invalid mode for test_state"
-msgstr "érvénytelen mód a tesztállapotban"
+msgstr "érvénytelen mód a teszt_állapotban"
#. module: sale_stock
#: model:process.transition,note:sale_stock.process_transition_saleprocurement0
@@ -296,21 +298,23 @@ msgid ""
"parameters. "
msgstr ""
"A rendszer automatikusan egy beszerzési megbízást hoz létre, amint "
-"megerősítettük az értékesítési megbízást, vagy a számlát kifizették. A "
-"rendszer az értékesítési megbízásokon keresztül irányítja a szállítói "
-"megrendeléseket és a termékek gyártását is a beállított szabályoknak és az "
-"értékesítési megbízás paramétereinek megfelelően. "
+"megerősítettük a vevői megrendelést, vagy a számlát kifizették. A rendszer "
+"az értékesítési megbízásokon keresztül irányítja a szállítói megrendeléseket "
+"és a termékek gyártását is a beállított szabályoknak és a vevői megrendelés "
+"paramétereinek megfelelően. "
#. module: sale_stock
#: help:sale.config.settings,group_mrp_properties:0
msgid "Allows you to tag sales order lines with properties."
-msgstr "Lehetővé teszi a megrendelési sorok tulajdonságokal való kijelölését"
+msgstr ""
+"Lehetővé teszi a vásárlói megrendelési tételek tulajdonságokkal való "
+"címkézését"
#. module: sale_stock
#: field:sale.config.settings,group_invoice_deli_orders:0
msgid "Generate invoices after and based on delivery orders"
msgstr ""
-"Számla generálása később és a kiszállítási kézbesítési bizonylatok alapján"
+"Számla generálása a kiszállítási kézbesítési bizonylatok alapján és után"
#. module: sale_stock
#: field:sale.config.settings,module_delivery:0
@@ -346,14 +350,14 @@ msgid ""
msgstr ""
"Lehetővé teszi szállítási mód hozzáadását a megrendelésekhez és a "
"kiszállítási kézbesítési bizonylatokhoz.\n"
-" Meghatározhatja a saját szállítóját és szállítási hálózatát "
-"külön árárt.\n"
-" Ez a delivery modult telepíti."
+" Meghatározhatja a saját szállítóját és szállítási hálózat "
+"külön árát.\n"
+" Ez a delivery (szállítás) modult telepíti."
#. module: sale_stock
#: field:sale.config.settings,default_picking_policy:0
msgid "Deliver all at once when all products are available."
-msgstr "Egyszerre történő szállítás, ha az összes termék rendelkezésre áll."
+msgstr "Egyszerre szállítsa, ha az összes termék rendelkezésre áll."
#. module: sale_stock
#: model:res.groups,name:sale_stock.group_invoice_deli_orders
@@ -375,7 +379,7 @@ msgstr "Az eladott anyagok beszerzése"
msgid ""
"Pick 'Deliver each product when available' if you allow partial delivery."
msgstr ""
-"Válasszon ki 'Szállítson ki egyesével terméket, amint az elérhető' ha rés "
+"Válasszon ki 'Szállítson ki egyesével terméket, amint az elérhető' ha rész "
"szállítmányt akar megengedni."
#. module: sale_stock
@@ -395,7 +399,7 @@ msgid ""
"It indicates that the sales order has been delivered. This field is updated "
"only after the scheduler(s) have been launched."
msgstr ""
-"Jelzi, hogy az értékesítési megbízás kiszállításra került. Ez a mező csak "
+"Jelzi, hogy a vásárlói megrendelés kiszállításra került. Ez a mező csak "
"akkor frissül, ha az ütemező(k) elindult(ak)."
#. module: sale_stock
@@ -406,19 +410,18 @@ msgstr "Tulajdonságok"
#. module: sale_stock
#: field:sale.config.settings,group_mrp_properties:0
msgid "Product properties on order lines"
-msgstr "Termék tulajdonságok a megrendelés sorain"
+msgstr "Termék tulajdonságok a megrendelés tétel sorain"
#. module: sale_stock
#: help:sale.config.settings,default_order_policy:0
msgid ""
"You can generate invoices based on sales orders or based on shippings."
-msgstr ""
-"Létrehozhat számlát értékesítési megbízások vagy kiszállítások alapján."
+msgstr "Létrehozhat számlát vásárlói megrendelés vagy kiszállítások alapján."
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_sale_report
msgid "Sales Orders Statistics"
-msgstr "Értékesítési megbízási statisztikák"
+msgstr "Vevői megrendelési statisztikák"
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_res_company
@@ -441,8 +444,8 @@ msgstr ""
" kiválasztott felhasználó és kiválasztott dátum időkimutatás "
"sor tételeibe, ennek értelmében bármilyen módon létrehozhat, szerkeszthet "
"és törölhet \n"
-" és automatikusan létrehoz terv feladatokat a beszerzés "
-"soraiból.\n"
+" és automatikusan létrehozhat terv feladatokat a beszerzés "
+"tétel soraiból.\n"
" Ez a project_timesheet és project_mrp modult telepíti."
#. module: sale_stock
@@ -452,7 +455,7 @@ msgid ""
"order."
msgstr ""
"Lehetővé teszi különböző szállítási és számlázási cím meghatározását a "
-"megrendelésekhez."
+"vásárlói megrendelésekhez."
#. module: sale_stock
#: model:process.node,note:sale_stock.process_node_saleprocurement0
@@ -460,8 +463,8 @@ msgid ""
"One Procurement order for each sales order line and for each of the "
"components."
msgstr ""
-"Egy beszerzési megbízás minden egyes értékesítési megbízási sorhoz és minden "
-"egyes alkotóelemhez."
+"Egy beszerzési megbízás minden egyes vásárlói megrendelés tétel sorhoz és "
+"minden egyes alkotóelemhez."
#. module: sale_stock
#: model:process.transition.action,name:sale_stock.process_transition_action_assign0
@@ -490,14 +493,14 @@ msgid ""
"instead of delivering each product when it is available. This may have an "
"impact on the shipping price."
msgstr ""
-"A megrendelések alapértelmezetten az összes termék egyszerre történő "
-"kiszállítására van beállítva, nem pedig az egyes termékek elérhetőségétől "
-"függően. Ez befolyással lehet a szállítási árra."
+"A vásárlói megrendelések alapértelmezetten az összes termék egyszerre "
+"történő kiszállítására van beállítva, nem pedig az egyes termékek "
+"elérhetőségétől függően. Ez befolyással lehet a szállítási árra."
#. module: sale_stock
#: selection:sale.config.settings,default_order_policy:0
msgid "Invoice based on sales orders"
-msgstr "Megrendeléseken alapuló számla"
+msgstr "Vásárlói megrendeléseken alapuló számla"
#. module: sale_stock
#: model:process.node,name:sale_stock.process_node_invoiceafterdelivery0
@@ -517,7 +520,8 @@ msgid ""
"In order to delete a confirmed sales order, you must cancel it.\n"
"To do so, you must first cancel related picking for delivery orders."
msgstr ""
-"Egy visszaigazolt megrendelés törléséhez, először vissza kell azt vonni.\n"
+"Egy visszaigazolt vásárlói megrendelés törléséhez, először vissza kell azt "
+"vonni.\n"
"Ehhez, először az ide tartozó megrendelési kiválogatási listákat kell "
"törölni."
@@ -534,7 +538,7 @@ msgstr "Kiszállított"
#. module: sale_stock
#: model:process.transition,name:sale_stock.process_transition_invoiceafterdelivery0
msgid "Create Invoice"
-msgstr "Számla készítése"
+msgstr "Számla létrehozás"
#. module: sale_stock
#: field:sale.config.settings,task_work:0
@@ -544,14 +548,14 @@ msgstr "Számlák készítése a feladat tevékenységek alapján"
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
-msgstr "Értékesítési Fizetési számla"
+msgstr "Vevői díjbekérő előlegszámla"
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:523
#, python-format
msgid "You must first cancel stock moves attached to this sales order line."
msgstr ""
-"Először érvénytelenítenie kell az ehhez az értékesítési megbízási sorhoz "
+"Először érvénytelenítenie kell az ehhez a vásárlói megrendelési tétel sorhoz "
"tartozó készletmozgásokat."
#. module: sale_stock
@@ -569,12 +573,12 @@ msgstr "Nemzetközi Kereskedelmi Feltételek"
#: code:addons/sale_stock/sale_stock.py:522
#, python-format
msgid "Cannot cancel sales order line!"
-msgstr "A megrendelés sorát nem tudja visszavonni!"
+msgstr "A vásárlói megrendelés tétel sorát nem tudja visszavonni!"
#. module: sale_stock
#: model:process.transition.action,name:sale_stock.process_transition_action_cancelassignation0
msgid "Cancel Assignation"
-msgstr "Számla sztornó"
+msgstr "Hozzárendelés megszüntetése"
#. module: sale_stock
#: model:process.node,note:sale_stock.process_node_invoiceafterdelivery0
@@ -608,7 +612,7 @@ msgstr ""
#. module: sale_stock
#: model:process.node,name:sale_stock.process_node_saleorderprocurement0
msgid "Sales Order Requisition"
-msgstr "Értékesítési megbízás igénylés"
+msgstr "Vásárlói megrendelés igény"
#. module: sale_stock
#: model:process.transition,name:sale_stock.process_transition_deliver0
diff --git a/addons/sale_stock/process/sale_stock_process.xml b/addons/sale_stock/process/sale_stock_process.xml
index 1ebebec7809..45979fa9b70 100644
--- a/addons/sale_stock/process/sale_stock_process.xml
+++ b/addons/sale_stock/process/sale_stock_process.xml
@@ -15,7 +15,8 @@
-
+
+
@@ -72,7 +73,7 @@
-
+
@@ -81,7 +82,7 @@
-
+
diff --git a/addons/sale_stock/report/sale_report.py b/addons/sale_stock/report/sale_report.py
index 0feb3ee2392..7a8234fa7fa 100644
--- a/addons/sale_stock/report/sale_report.py
+++ b/addons/sale_stock/report/sale_report.py
@@ -39,58 +39,11 @@ class sale_report(osv.osv):
('cancel', 'Cancelled')
], 'Order Status', readonly=True),
}
-
- def init(self, cr):
- tools.drop_view_if_exists(cr, 'sale_report')
- cr.execute("""
- create or replace view sale_report as (
- select
- min(l.id) as id,
- l.product_id as product_id,
- t.uom_id as product_uom,
- sum(l.product_uom_qty / u.factor * u2.factor) as product_uom_qty,
- sum(l.product_uom_qty * l.price_unit * (100.0-l.discount) / 100.0) as price_total,
- 1 as nbr,
- s.date_order as date,
- s.date_confirm as date_confirm,
- to_char(s.date_order, 'YYYY') as year,
- to_char(s.date_order, 'MM') as month,
- to_char(s.date_order, 'YYYY-MM-DD') as day,
- s.partner_id as partner_id,
- s.user_id as user_id,
- s.company_id as company_id,
- s.warehouse_id as warehouse_id,
- extract(epoch from avg(date_trunc('day',s.date_confirm)-date_trunc('day',s.create_date)))/(24*60*60)::decimal(16,2) as delay,
- s.state,
- t.categ_id as categ_id,
- s.shipped,
- s.shipped::integer as shipped_qty_1,
- s.pricelist_id as pricelist_id,
- s.project_id as analytic_account_id
- from
- sale_order s
- join sale_order_line l on (s.id=l.order_id)
- left join product_product p on (l.product_id=p.id)
- left join product_template t on (p.product_tmpl_id=t.id)
- left join product_uom u on (u.id=l.product_uom)
- left join product_uom u2 on (u2.id=t.uom_id)
- group by
- l.product_id,
- l.product_uom_qty,
- l.order_id,
- t.uom_id,
- t.categ_id,
- s.date_order,
- s.date_confirm,
- s.partner_id,
- s.user_id,
- s.warehouse_id,
- s.company_id,
- s.state,
- s.shipped,
- s.pricelist_id,
- s.project_id
- )
- """)
+
+ def _select(self):
+ return super(sale_report, self)._select() + ", s.warehouse_id as warehouse_id, s.shipped, s.shipped::integer as shipped_qty_1"
+
+ def _group_by(self):
+ return super(sale_report, self)._group_by() + ", s.warehouse_id, s.shipped"
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale_stock/report/sale_report_view.xml b/addons/sale_stock/report/sale_report_view.xml
index 6642bffcede..486cf3a7b11 100644
--- a/addons/sale_stock/report/sale_report_view.xml
+++ b/addons/sale_stock/report/sale_report_view.xml
@@ -17,6 +17,10 @@
sale.report
+
+
+
+
diff --git a/addons/sale_stock/res_config.py b/addons/sale_stock/res_config.py
index f52dcf89659..5023d3b8eea 100644
--- a/addons/sale_stock/res_config.py
+++ b/addons/sale_stock/res_config.py
@@ -19,6 +19,8 @@
#
##############################################################################
+import openerp
+from openerp import SUPERUSER_ID
from openerp.osv import fields, osv
from openerp.tools.translate import _
@@ -72,12 +74,13 @@ class sale_configuration(osv.osv_memory):
}
def set_sale_defaults(self, cr, uid, ids, context=None):
+ if uid != SUPERUSER_ID and not self.pool['res.users'].has_group(cr, uid, 'base.group_erp_manager'):
+ raise openerp.exceptions.AccessError(_("Only administrators can change the settings"))
ir_values = self.pool.get('ir.values')
- ir_model_data = self.pool.get('ir.model.data')
wizard = self.browse(cr, uid, ids)[0]
default_picking_policy = 'one' if wizard.default_picking_policy else 'direct'
- ir_values.set_default(cr, uid, 'sale.order', 'picking_policy', default_picking_policy)
+ ir_values.set_default(cr, SUPERUSER_ID, 'sale.order', 'picking_policy', default_picking_policy)
res = super(sale_configuration, self).set_sale_defaults(cr, uid, ids, context)
return res
diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py
index b8f6249d744..26d9d80f13e 100644
--- a/addons/sale_stock/sale_stock.py
+++ b/addons/sale_stock/sale_stock.py
@@ -70,7 +70,7 @@ class sale_order(osv.osv):
company_id = self.pool.get('res.users')._get_company(cr, uid, context=context)
warehouse_ids = self.pool.get('stock.warehouse').search(cr, uid, [('company_id', '=', company_id)], context=context)
if not warehouse_ids:
- raise osv.except_osv(_('Error!'), _('There is no warehouse defined for current company.'))
+ return False
return warehouse_ids[0]
# This is False
@@ -312,7 +312,6 @@ class sale_order(osv.osv):
'move_id': move_id,
'company_id': order.company_id.id,
'note': line.name,
- 'property_ids': [(6, 0, [x.id for x in line.property_ids])],
}
def _prepare_order_line_move(self, cr, uid, order, line, picking_id, date_planned, context=None):
@@ -605,7 +604,7 @@ class sale_order_line(osv.osv):
#check if product is available, and if not: raise an error
uom2 = False
if uom:
- uom2 = product_uom_obj.browse(cr, uid, uom)
+ uom2 = product_uom_obj.browse(cr, uid, uom, context=context)
if product_obj.uom_id.category_id.id != uom2.category_id.id:
uom = False
if not uom2:
diff --git a/addons/sale_stock/stock.py b/addons/sale_stock/stock.py
index ad19684c4cf..ccece846390 100644
--- a/addons/sale_stock/stock.py
+++ b/addons/sale_stock/stock.py
@@ -62,6 +62,15 @@ class stock_picking(osv.osv):
return picking.note or picking.sale_id.note
return super(stock_picking, self)._get_comment_invoice(cursor, user, picking)
+ def _prepare_invoice_group(self, cr, uid, picking, partner, invoice, context=None):
+ """ Inherit the original function of the 'stock' module in order to override name field
+ to pass the customer reference form the sales order
+ """
+ invoice_vals = super(stock_picking, self)._prepare_invoice_group(cr, uid, picking, partner, invoice, context)
+ if picking.sale_id:
+ invoice_vals['name'] = (invoice.name or '') + ', ' + (picking.sale_id.client_order_ref or '')
+ return invoice_vals
+
def _prepare_invoice(self, cr, uid, picking, partner, inv_type, journal_id, context=None):
""" Inherit the original function of the 'stock' module in order to override some
values if the picking has been generated by a sales order
diff --git a/addons/sale_stock/stock_view.xml b/addons/sale_stock/stock_view.xml
index 0f5b9c4f1e6..165673e348a 100644
--- a/addons/sale_stock/stock_view.xml
+++ b/addons/sale_stock/stock_view.xml
@@ -53,7 +53,7 @@
Deliveries to Invoice
- stock.picking
+ stock.picking.outir.actions.act_windowformtree,form,calendar
diff --git a/addons/share/i18n/he.po b/addons/share/i18n/he.po
new file mode 100644
index 00000000000..479447d50cf
--- /dev/null
+++ b/addons/share/i18n/he.po
@@ -0,0 +1,617 @@
+# Hebrew translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-12-30 19:36+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Hebrew \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-31 04:47+0000\n"
+"X-Generator: Launchpad (build 16877)\n"
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:842
+#, python-format
+msgid "Invitation to collaborate about %s"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:780
+#, python-format
+msgid ""
+"The share engine has not been able to fetch a record_id for your invitation."
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid "Include an Optional Personal Message"
+msgstr ""
+
+#. module: share
+#: field:share.wizard,embed_option_title:0
+msgid "Display title"
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid "Access granted!"
+msgstr ""
+
+#. module: share
+#: field:share.wizard,record_name:0
+msgid "Record name"
+msgstr ""
+
+#. module: share
+#: help:share.wizard,message:0
+msgid ""
+"An optional personal message, to be included in the email notification."
+msgstr ""
+
+#. module: share
+#: field:share.wizard,user_type:0
+msgid "Sharing method"
+msgstr ""
+
+#. module: share
+#: field:share.wizard,name:0
+msgid "Share Title"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:848
+#: code:addons/share/wizard/share_wizard.py:877
+#, python-format
+msgid ""
+"The documents are not attached, you can view them online directly on my "
+"OpenERP server at:\n"
+" %s\n"
+"\n"
+msgstr ""
+
+#. module: share
+#: model:ir.module.category,name:share.module_category_share
+msgid "Sharing"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:843
+#: code:addons/share/wizard/share_wizard.py:875
+#, python-format
+msgid ""
+"Hello,\n"
+"\n"
+msgstr ""
+
+#. module: share
+#: field:share.wizard,share_root_url:0
+msgid "Share Access URL"
+msgstr ""
+
+#. module: share
+#: field:share.wizard,email_1:0
+#: field:share.wizard,email_2:0
+#: field:share.wizard,email_3:0
+msgid "New user email"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:887
+#, python-format
+msgid "You may use your current login (%s) and password to view them.\n"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:621
+#, python-format
+msgid "(Modified)"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:665
+#, python-format
+msgid "You must be a member of the Share/User group to use the share wizard."
+msgstr ""
+
+#. module: share
+#. openerp-web
+#: code:addons/share/static/src/js/share.js:63
+#, python-format
+msgid "Embed"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:599
+#, python-format
+msgid "Sharing filter created by user %s (%s) for group %s"
+msgstr ""
+
+#. module: share
+#: field:share.wizard,embed_url:0
+#: field:share.wizard.result.line,share_url:0
+msgid "Share URL"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:849
+#: code:addons/share/wizard/share_wizard.py:881
+#, python-format
+msgid "These are your credentials to access this protected area:\n"
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid "Access info"
+msgstr ""
+
+#. module: share
+#. openerp-web
+#: code:addons/share/static/src/js/share.js:60
+#: view:share.wizard:0
+#, python-format
+msgid "Share"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:571
+#, python-format
+msgid "(Duplicated for modified sharing permissions)"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:669
+#, python-format
+msgid ""
+"Please indicate the emails of the persons to share with, one per line."
+msgstr ""
+
+#. module: share
+#: help:share.wizard,domain:0
+msgid "Optional domain for further data filtering"
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid "Next"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:662
+#, python-format
+msgid "Action and Access Mode are required to create a shared access."
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:850
+#: code:addons/share/wizard/share_wizard.py:882
+#, python-format
+msgid "Username"
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid "Sharing Options"
+msgstr ""
+
+#. module: share
+#. openerp-web
+#: code:addons/share/static/src/xml/share.xml:9
+#, python-format
+msgid "Invite"
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid "Embedded code options"
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid "Configuration"
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid ""
+"Please select the action that opens the screen containing the data you want "
+"to share."
+msgstr ""
+
+#. module: share
+#: field:res.groups,share:0
+msgid "Share Group"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:835
+#: code:addons/share/wizard/share_wizard.py:866
+#, python-format
+msgid "Email required"
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid ""
+"Optionally, you may specify an additional domain restriction that will be "
+"applied to the shared data."
+msgstr ""
+
+#. module: share
+#: view:res.groups:0
+msgid "Non-Share Groups"
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid ""
+"An email notification with instructions has been sent to the following "
+"people:"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:77
+#, python-format
+msgid "Direct link or embed code"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:856
+#: code:addons/share/wizard/share_wizard.py:890
+#, python-format
+msgid ""
+"OpenERP is a powerful and user-friendly suite of Business Applications (CRM, "
+"Sales, HR, etc.)\n"
+"It is open source and can be found on http://www.openerp.com."
+msgstr ""
+
+#. module: share
+#: field:share.wizard,action_id:0
+msgid "Action to share"
+msgstr ""
+
+#. module: share
+#: help:share.wizard,record_name:0
+msgid "Name of the shared record, if sharing a precise record"
+msgstr ""
+
+#. module: share
+#: field:res.users,share:0
+msgid "Share User"
+msgstr ""
+
+#. module: share
+#: field:share.wizard.result.line,user_id:0
+msgid "unknown"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:61
+#: code:addons/share/wizard/share_wizard.py:657
+#, python-format
+msgid "Sharing access cannot be created."
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:780
+#, python-format
+msgid "Record id not found"
+msgstr ""
+
+#. module: share
+#: help:res.groups,share:0
+msgid "Group created to set access rights for sharing data with some users."
+msgstr ""
+
+#. module: share
+#: view:res.groups:0
+msgid "Share Groups"
+msgstr ""
+
+#. module: share
+#: help:share.wizard,action_id:0
+msgid ""
+"The action that opens the screen containing the data you wish to share."
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:546
+#, python-format
+msgid "(Copy for sharing)"
+msgstr ""
+
+#. module: share
+#: field:share.wizard.result.line,newly_created:0
+msgid "Newly created"
+msgstr ""
+
+#. module: share
+#: help:share.wizard,name:0
+msgid "Title for the share (displayed to users as menu and shortcut name)"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:636
+#, python-format
+msgid "Indirect sharing filter created by user %s (%s) for group %s"
+msgstr ""
+
+#. module: share
+#: help:share.wizard,share_root_url:0
+msgid "Main access page for users that are granted shared access"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:206
+#, python-format
+msgid ""
+"You must configure your email address in the user preferences before using "
+"the Share button."
+msgstr ""
+
+#. module: share
+#: model:res.groups,name:share.group_share_user
+msgid "User"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:658
+#, python-format
+msgid ""
+"Sorry, the current screen and filter you are trying to share are not "
+"supported at the moment.\n"
+"You may want to try a simpler filter."
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid "Use this link"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:852
+#: code:addons/share/wizard/share_wizard.py:884
+#, python-format
+msgid "Database"
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid "Share with these People (one email per line)"
+msgstr ""
+
+#. module: share
+#: field:share.wizard,domain:0
+msgid "Domain"
+msgstr ""
+
+#. module: share
+#: view:res.groups:0
+msgid "{'search_default_no_share':1}"
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+#: field:share.wizard,result_line_ids:0
+msgid "Summary"
+msgstr ""
+
+#. module: share
+#: help:share.wizard,embed_code:0
+msgid ""
+"Embed this code in your documents to provide a link to the shared document."
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:513
+#, python-format
+msgid "Copied access for sharing"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:817
+#, python-format
+msgid "Invitation"
+msgstr ""
+
+#. module: share
+#: model:ir.actions.act_window,name:share.action_share_wizard_step1
+msgid "Share your documents"
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid "Or insert the following code where you want to embed your documents"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:886
+#, python-format
+msgid ""
+"The documents have been automatically added to your current OpenERP "
+"documents.\n"
+msgstr ""
+
+#. module: share
+#: model:ir.model,name:share.model_share_wizard_result_line
+msgid "share.wizard.result.line"
+msgstr ""
+
+#. module: share
+#: field:share.wizard,embed_code:0
+msgid "Code"
+msgstr ""
+
+#. module: share
+#: help:share.wizard,user_type:0
+msgid "Select the type of user(s) you would like to share data with."
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:844
+#, python-format
+msgid ""
+"I have shared %s (%s) with you!\n"
+"\n"
+msgstr ""
+
+#. module: share
+#: field:share.wizard,view_type:0
+msgid "Current View Type"
+msgstr ""
+
+#. module: share
+#: selection:share.wizard,access_mode:0
+msgid "Can view"
+msgstr ""
+
+#. module: share
+#: selection:share.wizard,access_mode:0
+msgid "Can edit"
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid "Cancel"
+msgstr ""
+
+#. module: share
+#: help:res.users,share:0
+msgid ""
+"External user with limited access, created only for the purpose of sharing "
+"data."
+msgstr ""
+
+#. module: share
+#: model:ir.actions.act_window,name:share.action_share_wizard
+#: model:ir.model,name:share.model_share_wizard
+#: field:share.wizard.result.line,share_wizard_id:0
+msgid "Share Wizard"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:793
+#, python-format
+msgid "Shared access created!"
+msgstr ""
+
+#. module: share
+#: model:res.groups,comment:share.group_share_user
+msgid ""
+"\n"
+"Members of this groups have access to the sharing wizard, which allows them "
+"to invite external users to view or edit some of their documents."
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:853
+#, python-format
+msgid ""
+"The documents have been automatically added to your subscriptions.\n"
+"\n"
+msgstr ""
+
+#. module: share
+#: model:ir.model,name:share.model_res_users
+msgid "Users"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:876
+#, python-format
+msgid ""
+"I've shared %s with you!\n"
+"\n"
+msgstr ""
+
+#. module: share
+#: model:ir.model,name:share.model_res_groups
+msgid "Access Groups"
+msgstr ""
+
+#. module: share
+#: field:share.wizard,invite:0
+msgid "Invite users to OpenSocial record"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:851
+#: code:addons/share/wizard/share_wizard.py:883
+#: field:share.wizard.result.line,password:0
+#, python-format
+msgid "Password"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:77
+#: field:share.wizard,new_users:0
+#, python-format
+msgid "Emails"
+msgstr ""
+
+#. module: share
+#: field:share.wizard,embed_option_search:0
+msgid "Display search view"
+msgstr ""
+
+#. module: share
+#: field:share.wizard,message:0
+msgid "Personal Message"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:835
+#: code:addons/share/wizard/share_wizard.py:866
+#, python-format
+msgid ""
+"The current user must have an email address configured in User Preferences "
+"to be able to send outgoing emails."
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:205
+#, python-format
+msgid "No email address configured"
+msgstr ""
+
+#. module: share
+#: field:share.wizard.result.line,login:0
+msgid "Login"
+msgstr ""
+
+#. module: share
+#: view:res.users:0
+msgid "Regular users only (no share user)"
+msgstr ""
+
+#. module: share
+#: field:share.wizard,access_mode:0
+msgid "Access Mode"
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid "Sharing: preparation"
+msgstr ""
+
+#. module: share
+#: model:ir.model,name:share.model_ir_model_access
+msgid "ir.model.access"
+msgstr ""
+
+#. module: share
+#: view:share.wizard:0
+msgid "or"
+msgstr ""
+
+#. module: share
+#: help:share.wizard,access_mode:0
+msgid "Access rights to be granted on the shared documents."
+msgstr ""
diff --git a/addons/share/i18n/th.po b/addons/share/i18n/th.po
index 814e8d84343..d18f5db8e81 100644
--- a/addons/share/i18n/th.po
+++ b/addons/share/i18n/th.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-11-15 05:47+0000\n"
+"X-Launchpad-Export-Date: 2013-11-16 05:45+0000\n"
"X-Generator: Launchpad (build 16831)\n"
#. module: share
diff --git a/addons/stock/i18n/es_PE.po b/addons/stock/i18n/es_PE.po
new file mode 100644
index 00000000000..a0dfeb7baeb
--- /dev/null
+++ b/addons/stock/i18n/es_PE.po
@@ -0,0 +1,4781 @@
+# Spanish (Peru) translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:04+0000\n"
+"PO-Revision-Date: 2013-12-09 19:30+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Spanish (Peru) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
+"X-Generator: Launchpad (build 16869)\n"
+
+#. module: stock
+#: field:stock.inventory.line.split,line_exist_ids:0
+#: field:stock.inventory.line.split,line_ids:0
+#: view:stock.move.split:0
+#: field:stock.move.split,line_exist_ids:0
+#: field:stock.move.split,line_ids:0
+msgid "Serial Numbers"
+msgstr ""
+
+#. module: stock
+#: help:stock.config.settings,group_product_variant:0
+msgid ""
+"Allow to manage several variants per product. As an example, if you sell T-"
+"Shirts, for the same \"Linux T-Shirt\", you may have variants on sizes or "
+"colors; S, M, L, XL, XXL."
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_move_split_lines
+msgid "Stock move Split lines"
+msgstr ""
+
+#. module: stock
+#: help:product.category,property_stock_account_input_categ:0
+msgid ""
+"When doing real-time inventory valuation, counterpart journal items for all "
+"incoming stock moves will be posted in this account, unless there is a "
+"specific valuation account set on the source location. This is the default "
+"value for all products in this category. It can also directly be set on each "
+"product"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking.out:0
+msgid "Confirm & Deliver"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_view_change_product_quantity
+#: view:stock.change.product.qty:0
+msgid "Update Product Quantity"
+msgstr ""
+
+#. module: stock
+#: field:stock.location,chained_location_id:0
+msgid "Chained Location If Fixed"
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory:0
+#: view:stock.move:0
+msgid "Put in a new pack"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_traceability.py:54
+#: view:stock.production.lot:0
+#: view:stock.tracking:0
+#, python-format
+msgid "Upstream Traceability"
+msgstr ""
+
+#. module: stock
+#: field:stock.picking,date_done:0
+#: field:stock.picking.in,date_done:0
+#: field:stock.picking.out,date_done:0
+msgid "Date of Transfer"
+msgstr ""
+
+#. module: stock
+#: field:product.product,track_outgoing:0
+msgid "Track Outgoing Lots"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_stock_line_date
+#: model:ir.ui.menu,name:stock.menu_report_stock_line_date
+msgid "Last Product Inventories"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Today"
+msgstr ""
+
+#. module: stock
+#: field:stock.production.lot.revision,indice:0
+msgid "Revision Number"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Orders processed Today or planned for Today"
+msgstr ""
+
+#. module: stock
+#: view:stock.partial.move.line:0
+#: view:stock.partial.picking:0
+#: field:stock.partial.picking,move_ids:0
+#: view:stock.partial.picking.line:0
+#: view:stock.return.picking.memory:0
+msgid "Product Moves"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:2524
+#: code:addons/stock/stock.py:2585
+#, python-format
+msgid "Please provide proper quantity."
+msgstr ""
+
+#. module: stock
+#: model:ir.ui.menu,name:stock.menu_stock_inventory_control
+msgid "Inventory Control"
+msgstr ""
+
+#. module: stock
+#: help:stock.production.lot,ref:0
+msgid ""
+"Internal reference number in case it differs from the manufacturer's serial "
+"number"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_fill_inventory.py:59
+#, python-format
+msgid "You cannot perform this operation on more than one Stock Inventories."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_change_product_qty.py:91
+#, python-format
+msgid "Quantity cannot be negative."
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+#: view:stock.picking.in:0
+msgid "Picking list"
+msgstr "Guía"
+
+#. module: stock
+#: report:lot.stock.overview:0
+#: report:lot.stock.overview_all:0
+#: field:report.stock.inventory,product_qty:0
+#: field:report.stock.move,product_qty:0
+#: field:stock.inventory.line,product_qty:0
+#: field:stock.inventory.line.split,qty:0
+#: field:stock.inventory.line.split.lines,quantity:0
+#: report:stock.inventory.move:0
+#: field:stock.move,product_qty:0
+#: field:stock.move.consume,product_qty:0
+#: field:stock.move.scrap,product_qty:0
+#: field:stock.move.split,qty:0
+#: field:stock.move.split.lines,quantity:0
+#: field:stock.partial.move.line,quantity:0
+#: field:stock.partial.picking.line,quantity:0
+#: report:stock.picking.list:0
+#: field:stock.report.prodlots,qty:0
+#: field:stock.report.tracklots,name:0
+#: field:stock.return.picking.memory,quantity:0
+#: field:stock.split.into,quantity:0
+msgid "Quantity"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.move:0
+#: field:report.stock.move,day:0
+msgid "Day"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_inventory_form
+#: model:ir.ui.menu,name:stock.menu_action_inventory_form
+msgid "Physical Inventories"
+msgstr ""
+
+#. module: stock
+#: selection:stock.location.product,type:0
+msgid "Analyse a Period"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.move:0
+#: field:stock.change.standard.price,stock_journal:0
+msgid "Stock journal"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.move:0
+msgid "Incoming"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_move.py:223
+#, python-format
+msgid "Unable to assign all lots to this move!"
+msgstr ""
+
+#. module: stock
+#: help:stock.move,partner_id:0
+msgid ""
+"Optional address where goods are to be delivered, specifically used for "
+"allotment"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.server,name:stock.action_partial_move_server
+msgid "Deliver/Receive Products"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/report/report_stock.py:78
+#: code:addons/stock/report/report_stock.py:134
+#, python-format
+msgid "You cannot delete any record!"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+msgid "Delivery orders to invoice"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+msgid "Assigned Delivery Orders"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_change_standard_price.py:107
+#, python-format
+msgid "Active ID is not set in Context."
+msgstr ""
+
+#. module: stock
+#: selection:stock.picking,invoice_state:0
+#: selection:stock.picking.in,invoice_state:0
+#: selection:stock.picking.out,invoice_state:0
+msgid "Not Applicable"
+msgstr ""
+
+#. module: stock
+#: help:stock.picking,message_unread:0
+#: help:stock.picking.in,message_unread:0
+#: help:stock.picking.out,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: stock
+#: help:stock.tracking,serial:0
+msgid "Other reference or serial number"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+#: view:stock.picking:0
+msgid "Origin"
+msgstr ""
+
+#. module: stock
+#: view:board.board:0
+#: model:ir.actions.act_window,name:stock.action_stock_incoming_product_delay
+msgid "Incoming Products"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.lines.date:0
+msgid "Non Inv"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_traceability.py:54
+#: view:stock.production.lot:0
+#: view:stock.tracking:0
+#, python-format
+msgid "Downstream Traceability"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+#: field:stock.move,picking_id:0
+#: field:stock.picking,name:0
+#: field:stock.picking.in,name:0
+#: field:stock.picking.out,name:0
+#: view:stock.production.lot:0
+msgid "Reference"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:1548
+#, python-format
+msgid "Products to Process"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "New Pack"
+msgstr ""
+
+#. module: stock
+#: help:stock.fill.inventory,set_stock_zero:0
+msgid ""
+"If checked, all product quantities will be set to zero to help ensure a real "
+"physical inventory is done"
+msgstr ""
+
+#. module: stock
+#: view:product.product:0
+msgid "Forecasted:"
+msgstr ""
+
+#. module: stock
+#: view:stock.partial.move:0
+msgid "_Validate"
+msgstr ""
+
+#. module: stock
+#: help:stock.picking,message_summary:0
+#: help:stock.picking.in,message_summary:0
+#: help:stock.picking.out,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: stock
+#: code:addons/stock/stock.py:768
+#: code:addons/stock/stock.py:2473
+#: code:addons/stock/stock.py:2524
+#: code:addons/stock/stock.py:2585
+#: code:addons/stock/wizard/stock_change_product_qty.py:91
+#: code:addons/stock/wizard/stock_fill_inventory.py:124
+#: code:addons/stock/wizard/stock_inventory_merge.py:43
+#: code:addons/stock/wizard/stock_inventory_merge.py:63
+#: code:addons/stock/wizard/stock_invoice_onshipping.py:96
+#: code:addons/stock/wizard/stock_invoice_onshipping.py:98
+#: code:addons/stock/wizard/stock_partial_picking.py:174
+#: code:addons/stock/wizard/stock_partial_picking.py:181
+#: code:addons/stock/wizard/stock_partial_picking.py:192
+#: code:addons/stock/wizard/stock_return_picking.py:102
+#: code:addons/stock/wizard/stock_return_picking.py:109
+#: code:addons/stock/wizard/stock_return_picking.py:208
+#, python-format
+msgid "Warning!"
+msgstr ""
+
+#. module: stock
+#: field:stock.invoice.onshipping,group:0
+msgid "Group by partner"
+msgstr ""
+
+#. module: stock
+#: help:stock.picking,move_type:0
+#: help:stock.picking.in,move_type:0
+#: help:stock.picking.out,move_type:0
+msgid "It specifies goods to be deliver partially or all at once"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_res_partner
+#: view:report.stock.inventory:0
+#: field:report.stock.inventory,partner_id:0
+#: view:report.stock.move:0
+#: field:report.stock.move,partner_id:0
+#: view:stock.move:0
+#: field:stock.picking,partner_id:0
+#: field:stock.picking.in,partner_id:0
+#: field:stock.picking.out,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: stock
+#: field:stock.config.settings,module_claim_from_delivery:0
+msgid "Allow claim on deliveries"
+msgstr ""
+
+#. module: stock
+#: selection:stock.return.picking,invoice_state:0
+msgid "No invoicing"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Stock moves that have been processed"
+msgstr ""
+
+#. module: stock
+#: field:stock.inventory.line.split,use_exist:0
+#: field:stock.move.split,use_exist:0
+msgid "Existing Serial Numbers"
+msgstr ""
+
+#. module: stock
+#: model:res.groups,name:stock.group_inventory_valuation
+msgid "Manage Inventory valuation"
+msgstr ""
+
+#. module: stock
+#: model:stock.location,name:stock.stock_location_suppliers
+msgid "Suppliers"
+msgstr ""
+
+#. module: stock
+#: help:stock.incoterms,code:0
+msgid "Code for Incoterms"
+msgstr ""
+
+#. module: stock
+#: field:stock.tracking,move_ids:0
+msgid "Moves for this pack"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking.in:0
+msgid "Incoming Shipments Available"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,location_type:0
+#: selection:stock.location,usage:0
+msgid "Internal Location"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Split in Serial Number"
+msgstr ""
+
+#. module: stock
+#: view:stock.location:0
+msgid "Accounting Information"
+msgstr ""
+
+#. module: stock
+#: field:stock.location,stock_real_value:0
+msgid "Real Stock Value"
+msgstr ""
+
+#. module: stock
+#: field:report.stock.move,day_diff2:0
+msgid "Lag (Days)"
+msgstr ""
+
+#. module: stock
+#: selection:stock.picking.out,state:0
+msgid "Ready to Deliver"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_action_traceability
+msgid "Action traceability "
+msgstr ""
+
+#. module: stock
+#: selection:stock.move,state:0
+#: selection:stock.picking,state:0
+#: selection:stock.picking.in,state:0
+#: report:stock.picking.list:0
+#: selection:stock.picking.out,state:0
+msgid "Waiting Availability"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,state:0
+#: selection:report.stock.move,state:0
+#: selection:stock.move,state:0
+#: report:stock.picking.list:0
+#: view:stock.production.lot:0
+#: field:stock.production.lot,stock_available:0
+msgid "Available"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+#: view:stock.picking.in:0
+msgid "Expected Date"
+msgstr ""
+
+#. module: stock
+#: field:report.stock.move,product_qty_in:0
+msgid "In Qty"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.client,name:stock.action_client_warehouse_menu
+msgid "Open Warehouse Menu"
+msgstr ""
+
+#. module: stock
+#: field:stock.warehouse,lot_output_id:0
+msgid "Location Output"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.split_into
+#: model:ir.model,name:stock.model_stock_split_into
+msgid "Split into"
+msgstr ""
+
+#. module: stock
+#: field:stock.config.settings,module_product_expiry:0
+msgid "Expiry date on serial numbers"
+msgstr ""
+
+#. module: stock
+#: field:stock.move,price_currency_id:0
+msgid "Currency for average price"
+msgstr ""
+
+#. module: stock
+#: view:product.product:0
+msgid "Stock and Expected Variations"
+msgstr ""
+
+#. module: stock
+#: help:product.category,property_stock_valuation_account_id:0
+msgid ""
+"When real-time inventory valuation is enabled on a product, this account "
+"will hold the current value of the products."
+msgstr ""
+
+#. module: stock
+#: field:stock.config.settings,group_stock_tracking_lot:0
+msgid "Track serial number on logistic units (pallets)"
+msgstr ""
+
+#. module: stock
+#: help:product.template,sale_delay:0
+msgid ""
+"The average delay in days between the confirmation of the customer order and "
+"the delivery of the finished products. It's the time you promise to your "
+"customers."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:196
+#, python-format
+msgid "Products: "
+msgstr ""
+
+#. module: stock
+#: field:report.stock.inventory,location_type:0
+#: field:stock.location,usage:0
+msgid "Location Type"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_inventory_form_draft
+msgid "Draft Physical Inventories"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:1777
+#, python-format
+msgid ""
+"Quantities, Units of Measure, Products and Locations cannot be modified on "
+"stock moves that have already been processed (except by the Administrator)."
+msgstr ""
+
+#. module: stock
+#: help:report.stock.move,type:0
+#: help:stock.picking,type:0
+#: help:stock.picking.in,type:0
+#: help:stock.picking.out,type:0
+msgid "Shipping type specify, goods coming in or going out."
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,help:stock.action_picking_tree6
+msgid ""
+"
\n"
+" Click to create an internal move request. \n"
+"
\n"
+" Most operations are prepared automatically by OpenERP "
+"according\n"
+" to your preconfigured logistics rules, but you can also "
+"record\n"
+" manual stock movements.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.report.xml,name:stock.report_move_labels
+msgid "Item Labels"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:1356
+#, python-format
+msgid "Back order %s has been created."
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_report_stock_move
+msgid "Moves Statistics"
+msgstr ""
+
+#. module: stock
+#: help:stock.config.settings,group_uom:0
+msgid ""
+"Allows you to select and maintain different units of measure for products."
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_report_tracklots
+msgid "Stock report by logistic serial number"
+msgstr ""
+
+#. module: stock
+#: help:product.product,track_outgoing:0
+msgid ""
+"Forces to specify a Serial Number for all moves containing this product and "
+"going to a Customer Location"
+msgstr ""
+
+#. module: stock
+#: model:ir.ui.menu,name:stock.menu_stock_products_moves
+msgid "Receive/Deliver Products"
+msgstr ""
+
+#. module: stock
+#: field:stock.move,move_history_ids:0
+msgid "Move History (child moves)"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_picking_tree6
+#: model:ir.ui.menu,name:stock.menu_action_picking_tree6
+#: field:stock.picking,move_lines:0
+#: field:stock.picking.in,move_lines:0
+#: field:stock.picking.out,move_lines:0
+msgid "Internal Moves"
+msgstr ""
+
+#. module: stock
+#: field:stock.move,location_dest_id:0
+msgid "Destination Location"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_partial_move_line
+msgid "stock.partial.move.line"
+msgstr ""
+
+#. module: stock
+#: model:ir.ui.menu,name:stock.menu_product_packaging_stock_action
+#: field:stock.move,product_packaging:0
+msgid "Packaging"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.report.xml,name:stock.report_picking_list_in
+msgid "Receipt Slip"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_move.py:214
+#, python-format
+msgid ""
+"Serial number quantity %d of %s is larger than available quantity (%d)!"
+msgstr ""
+
+#. module: stock
+#: report:stock.picking.list:0
+msgid "Order(Origin)"
+msgstr ""
+
+#. module: stock
+#: model:ir.ui.menu,name:stock.menu_stock_uom_categ_form_action
+msgid "Unit of Measure Categories"
+msgstr ""
+
+#. module: stock
+#: report:lot.stock.overview:0
+#: report:lot.stock.overview_all:0
+msgid "Grand Total:"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_stock_move_report
+#: model:ir.ui.menu,name:stock.menu_action_stock_move_report
+#: view:report.stock.move:0
+msgid "Moves Analysis"
+msgstr ""
+
+#. module: stock
+#: view:stock.location:0
+#: field:stock.location,comment:0
+msgid "Additional Information"
+msgstr ""
+
+#. module: stock
+#: report:lot.stock.overview:0
+#: report:lot.stock.overview_all:0
+msgid "Location / Product"
+msgstr ""
+
+#. module: stock
+#: field:stock.move,partner_id:0
+msgid "Destination Address "
+msgstr ""
+
+#. module: stock
+#: field:product.product,reception_count:0
+msgid "Reception"
+msgstr ""
+
+#. module: stock
+#: field:stock.tracking,serial:0
+msgid "Additional Reference"
+msgstr ""
+
+#. module: stock
+#: view:stock.partial.picking.line:0
+msgid "Stock Picking Line"
+msgstr "Línea de Guía"
+
+#. module: stock
+#: field:stock.location,complete_name:0
+#: field:stock.location,name:0
+msgid "Location Name"
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory:0
+msgid "Posted Inventory"
+msgstr ""
+
+#. module: stock
+#: field:stock.move.split.lines,wizard_exist_id:0
+msgid "Parent Wizard (for existing lines)"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.move:0
+msgid "Year Planned"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.inventory:0
+#: field:report.stock.inventory,state:0
+#: view:report.stock.move:0
+#: field:report.stock.move,state:0
+#: view:stock.inventory:0
+#: field:stock.inventory,state:0
+#: field:stock.inventory.line,state:0
+#: view:stock.move:0
+#: field:stock.move,state:0
+#: view:stock.picking:0
+#: field:stock.picking,state:0
+#: view:stock.picking.in:0
+#: field:stock.picking.in,state:0
+#: report:stock.picking.list:0
+#: field:stock.picking.out,state:0
+msgid "Status"
+msgstr ""
+
+#. module: stock
+#: model:stock.location,name:stock.stock_location_customers
+msgid "Customers"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,month:0
+#: selection:report.stock.move,month:0
+msgid "August"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_tracking_form
+#: model:ir.model,name:stock.model_stock_tracking
+#: model:ir.ui.menu,name:stock.menu_action_tracking_form
+#: view:stock.tracking:0
+msgid "Packs"
+msgstr ""
+
+#. module: stock
+#: selection:stock.location.product,type:0
+msgid "Analyse Current Inventory"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "To Do"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,month:0
+#: selection:report.stock.move,month:0
+msgid "June"
+msgstr ""
+
+#. module: stock
+#: help:product.product,track_incoming:0
+msgid ""
+"Forces to specify a Serial Number for all moves containing this product and "
+"coming from a Supplier Location"
+msgstr ""
+
+#. module: stock
+#: help:stock.config.settings,group_uos:0
+msgid ""
+"Allows you to sell units of a product, but invoice based on a different unit "
+"of measure.\n"
+" For instance, you can sell pieces of meat that you invoice "
+"based on their weight."
+msgstr ""
+
+#. module: stock
+#: field:product.template,property_stock_procurement:0
+msgid "Procurement Location"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_location_tree
+#: model:ir.ui.menu,name:stock.menu_action_location_tree
+msgid "Location Structure"
+msgstr ""
+
+#. module: stock
+#: field:stock.location,child_ids:0
+msgid "Contains"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_inventory_line
+msgid "Inventory Line"
+msgstr ""
+
+#. module: stock
+#: help:product.category,property_stock_journal:0
+msgid ""
+"When doing real-time inventory valuation, this is the Accounting Journal in "
+"which entries will be automatically posted when stock moves are processed."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:2252
+#, python-format
+msgid ""
+"Please define stock output account for this product or its category: \"%s\" "
+"(id: %d)"
+msgstr ""
+
+#. module: stock
+#: field:stock.picking,message_summary:0
+#: field:stock.picking.in,message_summary:0
+#: field:stock.picking.out,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: stock
+#: view:product.category:0
+msgid "Account Stock Properties"
+msgstr ""
+
+#. module: stock
+#: sql_constraint:stock.picking:0
+#: sql_constraint:stock.picking.in:0
+#: sql_constraint:stock.picking.out:0
+msgid "Reference must be unique per Company!"
+msgstr ""
+
+#. module: stock
+#: field:stock.picking,date:0
+#: field:stock.picking.in,date:0
+#: field:stock.picking.out,date:0
+msgid "Time"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:449
+#, python-format
+msgid "Future Receptions"
+msgstr ""
+
+#. module: stock
+#: selection:stock.move,priority:0
+msgid "Urgent"
+msgstr ""
+
+#. module: stock
+#: selection:stock.picking.out,state:0
+msgid "Delivered"
+msgstr ""
+
+#. module: stock
+#: field:stock.move,move_dest_id:0
+msgid "Destination Move"
+msgstr ""
+
+#. module: stock
+#: field:stock.location,partner_id:0
+msgid "Location Address"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_move_scrap
+#: view:stock.move:0
+#: view:stock.move.scrap:0
+msgid "Scrap Products"
+msgstr ""
+
+#. module: stock
+#: view:product.product:0
+msgid "- update"
+msgstr ""
+
+#. module: stock
+#: report:stock.picking.list:0
+msgid "Weight"
+msgstr ""
+
+#. module: stock
+#: field:stock.warehouse,lot_input_id:0
+msgid "Location Input"
+msgstr ""
+
+#. module: stock
+#: help:stock.partial.move,hide_tracking:0
+#: help:stock.partial.picking,hide_tracking:0
+msgid ""
+"This field is for internal purpose. It is used to decide if the column "
+"production lot has to be shown on the moves or not."
+msgstr ""
+
+#. module: stock
+#: selection:product.product,valuation:0
+msgid "Periodical (manual)"
+msgstr ""
+
+#. module: stock
+#: model:stock.location,name:stock.location_procurement
+msgid "Procurements"
+msgstr ""
+
+#. module: stock
+#: model:stock.location,name:stock.stock_location_3
+msgid "IT Suppliers"
+msgstr ""
+
+#. module: stock
+#: view:stock.config.settings:0
+msgid "Location & Warehouse"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,location_type:0
+#: selection:stock.location,usage:0
+msgid "Transit Location for Inter-Companies Transfers"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:1190
+#, python-format
+msgid ""
+"You cannot cancel the picking as some moves have been done. You should "
+"cancel the picking lines."
+msgstr ""
+"No puede cancelar una Guía que tiene algún movimiento realizado. Debe "
+"cancelar las líneas de la Guía."
+
+#. module: stock
+#: field:stock.config.settings,decimal_precision:0
+msgid "Decimal precision on weight"
+msgstr ""
+
+#. module: stock
+#: view:stock.production.lot:0
+msgid "Available Product Lots"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_change_product_qty
+msgid "Change Product Quantity"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:465
+#, python-format
+msgid "Future P&L"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_picking_tree4
+#: model:ir.model,name:stock.model_stock_picking_in
+#: model:ir.ui.menu,name:stock.menu_action_picking_tree4
+#: view:stock.picking.in:0
+msgid "Incoming Shipments"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.inventory:0
+#: view:stock.move:0
+msgid "Scrap"
+msgstr ""
+
+#. module: stock
+#: field:product.template,property_stock_inventory:0
+msgid "Inventory Location"
+msgstr ""
+
+#. module: stock
+#: constraint:stock.move:0
+msgid "You must assign a serial number for this product."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:2255
+#, python-format
+msgid "Please define journal on the product category: \"%s\" (id: %d)"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Details"
+msgstr ""
+
+#. module: stock
+#: selection:stock.picking,state:0
+msgid "Ready to Transfer"
+msgstr ""
+
+#. module: stock
+#: report:lot.stock.overview:0
+#: report:lot.stock.overview_all:0
+#: field:stock.move,price_unit:0
+msgid "Unit Price"
+msgstr ""
+
+#. module: stock
+#: field:stock.move,date_expected:0
+msgid "Scheduled Date"
+msgstr ""
+
+#. module: stock
+#: view:stock.tracking:0
+msgid "Pack Search"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+msgid "Pickings already processed"
+msgstr "Guías ya procesadas"
+
+#. module: stock
+#: field:stock.partial.move.line,currency:0
+#: field:stock.partial.picking.line,currency:0
+msgid "Currency"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+#: view:stock.picking.in:0
+#: report:stock.picking.list:0
+msgid "Journal"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_stock_invoice_onshipping
+msgid "Create Draft Invoices"
+msgstr ""
+
+#. module: stock
+#: help:stock.picking,location_id:0
+#: help:stock.picking.in,location_id:0
+#: help:stock.picking.out,location_id:0
+msgid ""
+"Keep empty if you produce at the location where the finished products are "
+"needed.Set a location if you produce at a fixed location. This can be a "
+"partner location if you subcontract the manufacturing operations."
+msgstr ""
+
+#. module: stock
+#: selection:stock.picking.in,state:0
+msgid "Ready to Receive"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+#: view:stock.picking:0
+msgid "_Cancel"
+msgstr ""
+
+#. module: stock
+#: field:report.stock.move,day_diff:0
+msgid "Execution Lead Time (Days)"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_partial_move
+msgid "Partial Move Processing Wizard"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.act_stock_product_location_open
+msgid "Stock by Location"
+msgstr ""
+
+#. module: stock
+#: model:ir.ui.menu,name:stock.menu_stock_warehouse_mgmt
+msgid "Receive/Deliver By Orders"
+msgstr ""
+
+#. module: stock
+#: view:stock.production.lot:0
+msgid "Product Lots"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+msgid "Reverse Transfer"
+msgstr ""
+
+#. module: stock
+#: field:stock.config.settings,group_uos:0
+msgid "Invoice products in a different unit of measure than the sales order"
+msgstr ""
+
+#. module: stock
+#: help:stock.location,active:0
+msgid ""
+"By unchecking the active field, you may hide a location without deleting it."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_inventory_merge.py:44
+#, python-format
+msgid ""
+"Please select multiple physical inventories to merge in the list view."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_return_picking.py:109
+#, python-format
+msgid ""
+"No products to return (only lines in Done state and not fully returned yet "
+"can be returned)!"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+#: view:stock.picking.in:0
+msgid "Back Orders"
+msgstr ""
+
+#. module: stock
+#: field:stock.location,stock_virtual:0
+msgid "Virtual Stock"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,location_type:0
+#: selection:stock.location,usage:0
+msgid "View"
+msgstr ""
+
+#. module: stock
+#: field:stock.location,parent_left:0
+msgid "Left Parent"
+msgstr ""
+
+#. module: stock
+#: field:product.category,property_stock_valuation_account_id:0
+msgid "Stock Valuation Account"
+msgstr ""
+
+#. module: stock
+#: view:stock.config.settings:0
+msgid "Apply"
+msgstr ""
+
+#. module: stock
+#: field:product.template,loc_row:0
+msgid "Row"
+msgstr ""
+
+#. module: stock
+#: field:product.template,property_stock_production:0
+msgid "Production Location"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:121
+#, python-format
+msgid "Please define journal on the product category: \"%s\" (id: %d)."
+msgstr ""
+
+#. module: stock
+#: field:report.stock.lines.date,date:0
+msgid "Latest Inventory Date"
+msgstr ""
+
+#. module: stock
+#: help:stock.location,usage:0
+msgid ""
+"* Supplier Location: Virtual location representing the source location for "
+"products coming from your suppliers\n"
+" \n"
+"* View: Virtual location used to create a hierarchical structures for your "
+"warehouse, aggregating its child locations ; can't directly contain "
+"products\n"
+" \n"
+"* Internal Location: Physical locations inside your own warehouses,\n"
+" \n"
+"* Customer Location: Virtual location representing the destination location "
+"for products sent to your customers\n"
+" \n"
+"* Inventory: Virtual location serving as counterpart for inventory "
+"operations used to correct stock levels (Physical inventories)\n"
+" \n"
+"* Procurement: Virtual location serving as temporary counterpart for "
+"procurement operations when the source (supplier or production) is not known "
+"yet. This location should be empty when the procurement scheduler has "
+"finished running.\n"
+" \n"
+"* Production: Virtual counterpart location for production operations: this "
+"location consumes the raw material and produces finished products\n"
+" "
+msgstr ""
+
+#. module: stock
+#: field:stock.partial.move.line,update_cost:0
+#: field:stock.partial.picking.line,update_cost:0
+msgid "Need cost update"
+msgstr ""
+
+#. module: stock
+#: field:stock.production.lot.revision,author_id:0
+msgid "Author"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:1822
+#, python-format
+msgid ""
+"You are moving %.2f %s but only %.2f %s available for this serial number."
+msgstr ""
+
+#. module: stock
+#: report:stock.picking.list:0
+msgid "Internal Shipment :"
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory.line:0
+msgid "Split Inventory Line"
+msgstr ""
+
+#. module: stock
+#: selection:stock.location,chained_auto_packing:0
+msgid "Manual Operation"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.move:0
+#: field:report.stock.move,picking_id:0
+msgid "Shipment"
+msgstr ""
+
+#. module: stock
+#: view:stock.location:0
+#: view:stock.move:0
+#: view:stock.picking.in:0
+msgid "Supplier"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:2864
+#, python-format
+msgid ""
+"In order to cancel this inventory, you must first unpost related journal "
+"entries."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:113
+#, python-format
+msgid "Please specify company in Location."
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Stock moves that are Available (Ready to process)"
+msgstr ""
+
+#. module: stock
+#: help:stock.config.settings,group_stock_packaging:0
+msgid ""
+"Allows you to create and manage your packaging dimensions and types you want "
+"to be maintained in your system."
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,month:0
+#: selection:report.stock.move,month:0
+msgid "March"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_view_stock_inventory_line_split
+#: model:ir.model,name:stock.model_stock_inventory_line_split
+#: view:stock.inventory:0
+#: view:stock.inventory.line:0
+msgid "Split inventory lines"
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory:0
+msgid "Physical Inventory"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_move.py:214
+#, python-format
+msgid "Processing Error!"
+msgstr ""
+
+#. module: stock
+#: help:stock.location,chained_company_id:0
+msgid ""
+"The company the Picking List containing the chained move will belong to "
+"(leave empty to use the default company determination rules"
+msgstr ""
+"La compañía a la que pertenece la Guía que contiene el movimiento encadenado "
+"(dejarlo vacío para utilizar las reglas por defecto para determinar la "
+"compañía)."
+
+#. module: stock
+#: help:stock.move,state:0
+msgid ""
+"* New: When the stock move is created and not yet confirmed.\n"
+"* Waiting Another Move: This state can be seen when a move is waiting for "
+"another one, for example in a chained flow.\n"
+"* Waiting Availability: This state is reached when the procurement "
+"resolution is not straight forward. It may need the scheduler to run, a "
+"component to me manufactured...\n"
+"* Available: When products are reserved, it is set to 'Available'.\n"
+"* Done: When the shipment is processed, the state is 'Done'."
+msgstr ""
+
+#. module: stock
+#: model:stock.location,name:stock.stock_location_locations_partner
+msgid "Partner Locations"
+msgstr ""
+
+#. module: stock
+#: selection:stock.picking.in,state:0
+msgid "Received"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.inventory:0
+#: view:report.stock.move:0
+msgid "Total quantity"
+msgstr ""
+
+#. module: stock
+#: field:stock.picking,min_date:0
+#: field:stock.picking.in,min_date:0
+#: field:stock.picking.out,min_date:0
+msgid "Scheduled Time"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.move_consume
+#: view:stock.move.consume:0
+msgid "Consume Move"
+msgstr ""
+
+#. module: stock
+#: report:stock.picking.list:0
+msgid "Delivery Order :"
+msgstr ""
+
+#. module: stock
+#: help:stock.location,chained_delay:0
+msgid "Delay between original move and chained move in days"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,help:stock.action_stock_journal_form
+msgid ""
+"
\n"
+" Click to create a new journal. \n"
+"
\n"
+" The stock journal system allows you to assign each stock\n"
+" operation to a specific journal according to the type of\n"
+" operation to perform or the worker/team that should perform "
+"the\n"
+" operation. Examples of stock journals may be: quality "
+"control,\n"
+" pick lists, packing, etc.\n"
+"
\n"
+" "
+msgstr ""
+"
\n"
+"Pulse para crear un nuevo diario.\n"
+"
\n"
+"El sistema de diario de stock permite asignar cada operación de existencias "
+"a un diario específico de acuerdo con el tipo de operación a realizar o el "
+"trabajador/equipo que debe realizar la operación. Ejemplo de diarios de "
+"existencias pueden ser: control de calidad, Guías, empaquetado, etc.\n"
+"
\n"
+" "
+
+#. module: stock
+#: help:stock.location,chained_auto_packing:0
+msgid ""
+"This is used only if you select a chained location type.\n"
+"The 'Automatic Move' value will create a stock move after the current one "
+"that will be validated automatically. With 'Manual Operation', the stock "
+"move has to be validated by a worker. With 'Automatic No Step Added', the "
+"location is replaced in the original move."
+msgstr ""
+
+#. module: stock
+#: view:stock.split.into:0
+msgid "Quantity to Leave in the Current Pack"
+msgstr ""
+
+#. module: stock
+#: view:stock.tracking:0
+msgid "Pack Identification"
+msgstr ""
+
+#. module: stock
+#: field:product.product,track_production:0
+msgid "Track Manufacturing Lots"
+msgstr ""
+
+#. module: stock
+#: selection:stock.move,state:0
+msgid "Waiting Another Move"
+msgstr ""
+
+#. module: stock
+#: help:stock.change.product.qty,new_quantity:0
+msgid ""
+"This quantity is expressed in the Default Unit of Measure of the product."
+msgstr ""
+
+#. module: stock
+#: help:stock.move,price_unit:0
+msgid ""
+"Technical field used to record the product cost set by the user during a "
+"picking confirmation (when average price costing method is used)"
+msgstr ""
+"Campo técnico utilizado para registrar el coste del producto indicado por el "
+"usuario durante una confirmación de una Guía (cuando se utiliza el método "
+"del precio medio de coste)."
+
+#. module: stock
+#: code:addons/stock/stock.py:1890
+#, python-format
+msgid "Warning: No Back Order"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_move
+#: view:stock.partial.move:0
+msgid "Stock Move"
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory.merge:0
+msgid "Merge Inventories"
+msgstr ""
+
+#. module: stock
+#: selection:stock.return.picking,invoice_state:0
+msgid "To be refunded/invoiced"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:2448
+#, python-format
+msgid "You can only delete draft moves."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:1665
+#, python-format
+msgid "You cannot move product %s to a location of type view %s."
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory:0
+msgid "Split in serial numbers"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+#: view:stock.picking:0
+msgid "Ready"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,state:0
+#: selection:report.stock.move,state:0
+#: selection:stock.inventory,state:0
+#: selection:stock.picking,state:0
+#: selection:stock.picking.in,state:0
+#: selection:stock.picking.out,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: stock
+#: field:product.template,sale_delay:0
+msgid "Customer Lead Time"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+msgid "Additional Info"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:2653
+#, python-format
+msgid "Missing partial picking data for move #%s."
+msgstr "Datos incompletos para la Guía parcial para el movimiento #%s."
+
+#. module: stock
+#: field:stock.location.product,from_date:0
+msgid "From"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking.in:0
+msgid "Incoming Shipments already processed"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_return_picking.py:102
+#, python-format
+msgid "You may only return pickings that are Confirmed, Available or Done!"
+msgstr ""
+"¡Sólo puede devolver Guías que estén confirmadas, reservadas o realizadas!"
+
+#. module: stock
+#: view:stock.location:0
+msgid "Stock Locations"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+#: field:stock.picking,invoice_state:0
+#: field:stock.picking.in,invoice_state:0
+#: field:stock.picking.out,invoice_state:0
+msgid "Invoice Control"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+msgid "Internal Picking List"
+msgstr "Guía Interna"
+
+#. module: stock
+#: selection:report.stock.inventory,state:0
+#: selection:report.stock.move,state:0
+#: view:stock.picking:0
+msgid "Waiting"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+#: view:stock.move.split:0
+msgid "Split"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.report.xml,name:stock.report_picking_list_out
+msgid "Delivery Slip"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.open_board_warehouse
+#: model:ir.model,name:stock.model_stock_warehouse
+#: model:ir.ui.menu,name:stock.menu_board_warehouse
+#: model:ir.ui.menu,name:stock.menu_stock_config_settings
+#: model:ir.ui.menu,name:stock.menu_stock_root
+#: model:ir.ui.menu,name:stock.next_id_61
+#: field:product.product,warehouse_id:0
+#: view:stock.warehouse:0
+msgid "Warehouse"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.move:0
+msgid "Type"
+msgstr ""
+
+#. module: stock
+#: model:stock.location,name:stock.stock_location_5
+msgid "Generic IT Suppliers"
+msgstr ""
+
+#. module: stock
+#: help:stock.location,valuation_out_account_id:0
+msgid ""
+"Used for real-time inventory valuation. When set on a virtual location (non "
+"internal type), this account will be used to hold the value of products "
+"being moved out of this location and into an internal location, instead of "
+"the generic Stock Output Account set on the product. This has no effect for "
+"internal locations."
+msgstr ""
+
+#. module: stock
+#: field:stock.inventory,date:0
+#: field:stock.move,create_date:0
+#: field:stock.picking,date:0
+#: field:stock.picking.in,date:0
+#: field:stock.picking.out,date:0
+#: field:stock.production.lot,date:0
+#: field:stock.tracking,date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: stock
+#: field:report.stock.lines.date,id:0
+msgid "Inventory Line Id"
+msgstr ""
+
+#. module: stock
+#: help:stock.location,partner_id:0
+msgid "Address of customer or supplier."
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,location_type:0
+#: field:res.partner,property_stock_customer:0
+#: selection:stock.location,usage:0
+msgid "Customer Location"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_inventory_line_split_lines
+msgid "Inventory Split lines"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.report.xml,name:stock.report_location_overview
+#: report:lot.stock.overview:0
+msgid "Location Inventory Overview"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.inventory:0
+msgid "Analysis including future moves (similar to virtual stock)"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action3
+msgid "Downstream traceability"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking.in:0
+msgid "Receive"
+msgstr ""
+
+#. module: stock
+#: model:res.company,overdue_msg:stock.res_company_1
+#: model:res.company,overdue_msg:stock.res_company_2
+msgid ""
+"Dear Sir/Madam,\n"
+"\n"
+"Our records indicate that some payments on your account are still due. "
+"Please find details below.\n"
+"If the amount has already been paid, please disregard this notice. "
+"Otherwise, please forward us the total amount stated below.\n"
+"If you have any queries regarding your account, Please contact us.\n"
+"\n"
+"Thank you in advance for your cooperation.\n"
+"Best Regards,"
+msgstr ""
+
+#. module: stock
+#: help:stock.incoterms,active:0
+msgid ""
+"By unchecking the active field, you may hide an INCOTERM without deleting it."
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+#: view:stock.picking.in:0
+msgid "Order Date"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_change_product_qty.py:92
+#, python-format
+msgid "INV: %s"
+msgstr ""
+
+#. module: stock
+#: view:stock.location:0
+#: field:stock.location,location_id:0
+msgid "Parent Location"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:168
+#, python-format
+msgid "Please define stock output account for this product: \"%s\" (id: %d)."
+msgstr ""
+
+#. module: stock
+#: help:stock.location,company_id:0
+msgid "Let this field empty if this location is shared between all companies"
+msgstr ""
+
+#. module: stock
+#: field:stock.location,chained_delay:0
+msgid "Chaining Lead Time"
+msgstr ""
+
+#. module: stock
+#: field:stock.config.settings,group_uom:0
+msgid "Manage different units of measure for products"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_invoice_onshipping
+msgid "Stock Invoice Onshipping"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:2473
+#, python-format
+msgid "Please provide a positive quantity to scrap."
+msgstr ""
+
+#. module: stock
+#: model:stock.location,name:stock.stock_location_shop1
+msgid "Your Company, Birmingham shop"
+msgstr ""
+
+#. module: stock
+#: view:product.product:0
+#: view:product.template:0
+msgid "Storage Location"
+msgstr ""
+
+#. module: stock
+#: help:stock.partial.move.line,currency:0
+#: help:stock.partial.picking.line,currency:0
+msgid "Currency in which Unit cost is expressed"
+msgstr ""
+
+#. module: stock
+#: selection:stock.picking,move_type:0
+#: selection:stock.picking.in,move_type:0
+#: selection:stock.picking.out,move_type:0
+msgid "Partial"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,month:0
+#: selection:report.stock.move,month:0
+msgid "September"
+msgstr ""
+
+#. module: stock
+#: view:product.product:0
+msgid "days"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_report_stock_inventory
+msgid "Stock Statistics"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.move:0
+msgid "Month Planned"
+msgstr ""
+
+#. module: stock
+#: help:stock.picking,origin:0
+#: help:stock.picking.in,origin:0
+#: help:stock.picking.out,origin:0
+msgid "Reference of the document"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+#: view:stock.picking.in:0
+msgid "Is a Back Order"
+msgstr ""
+
+#. module: stock
+#: report:stock.picking.list:0
+msgid "Incoming Shipment :"
+msgstr ""
+
+#. module: stock
+#: field:stock.location,valuation_out_account_id:0
+msgid "Stock Valuation Account (Outgoing)"
+msgstr ""
+
+#. module: stock
+#: view:stock.return.picking.memory:0
+msgid "Return Picking Memory"
+msgstr "Memoría de Guía de Devolución"
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_move_form2
+#: model:ir.ui.menu,name:stock.menu_action_move_form2
+#: view:stock.inventory:0
+#: view:stock.move:0
+#: view:stock.production.lot:0
+msgid "Stock Moves"
+msgstr ""
+
+#. module: stock
+#: help:stock.inventory.line.split,use_exist:0
+#: help:stock.move.split,use_exist:0
+msgid ""
+"Check this option to select existing serial numbers in the list below, "
+"otherwise you should enter new ones line by line."
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.move,type:0
+#: selection:stock.location,chained_picking_type:0
+#: selection:stock.move,type:0
+#: selection:stock.picking,type:0
+#: selection:stock.picking.in,type:0
+#: selection:stock.picking.out,type:0
+msgid "Sending Goods"
+msgstr ""
+
+#. module: stock
+#: model:ir.ui.menu,name:stock.menu_product_category_config_stock
+msgid "Product Categories"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Cancel Availability"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_location_product.py:49
+#, python-format
+msgid "Current Inventory"
+msgstr ""
+
+#. module: stock
+#: help:product.template,property_stock_production:0
+msgid ""
+"This stock location will be used, instead of the default one, as the source "
+"location for stock moves generated by manufacturing orders."
+msgstr ""
+
+#. module: stock
+#: help:stock.move,date_expected:0
+msgid "Scheduled date for the processing of this move"
+msgstr ""
+
+#. module: stock
+#: field:stock.inventory,move_ids:0
+msgid "Created Moves"
+msgstr ""
+
+#. module: stock
+#: field:stock.location,valuation_in_account_id:0
+msgid "Stock Valuation Account (Incoming)"
+msgstr ""
+
+#. module: stock
+#: model:stock.location,name:stock.stock_location_14
+msgid "Shelf 2"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:528
+#, python-format
+msgid "You cannot remove a lot line."
+msgstr ""
+
+#. module: stock
+#: help:stock.location,posx:0
+#: help:stock.location,posy:0
+#: help:stock.location,posz:0
+msgid "Optional localization details, for information purpose only"
+msgstr ""
+
+#. module: stock
+#: view:product.product:0
+#: view:product.template:0
+msgid "Counter-Part Locations Properties"
+msgstr ""
+
+#. module: stock
+#: view:stock.location:0
+msgid "Localization"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:461
+#, python-format
+msgid "Delivered Qty"
+msgstr ""
+
+#. module: stock
+#: view:stock.partial.picking:0
+msgid "Transfer Products"
+msgstr ""
+
+#. module: stock
+#: help:product.template,property_stock_inventory:0
+msgid ""
+"This stock location will be used, instead of the default one, as the source "
+"location for stock moves generated when you do an inventory."
+msgstr ""
+
+#. module: stock
+#: help:product.template,property_stock_account_output:0
+msgid ""
+"When doing real-time inventory valuation, counterpart journal items for all "
+"outgoing stock moves will be posted in this account, unless there is a "
+"specific valuation account set on the destination location. When not set on "
+"the product, the one from the product category is used."
+msgstr ""
+
+#. module: stock
+#: view:report.stock.move:0
+msgid "Day Planned"
+msgstr ""
+
+#. module: stock
+#: help:stock.picking,state:0
+msgid ""
+"\n"
+" * Draft: not confirmed yet and will not be scheduled until "
+"confirmed\n"
+"\n"
+" * Waiting Another Operation: waiting for another move to proceed "
+"before it becomes automatically available (e.g. in Make-To-Order flows)\n"
+"\n"
+" * Waiting Availability: still waiting for the availability of "
+"products\n"
+"\n"
+" * Ready to Transfer: products reserved, simply waiting for "
+"confirmation.\n"
+"\n"
+" * Transferred: has been processed, can't be modified or "
+"cancelled anymore\n"
+"\n"
+" * Cancelled: has been cancelled, can't be confirmed anymore"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.inventory:0
+#: field:report.stock.inventory,date:0
+#: field:report.stock.move,date:0
+#: view:stock.inventory:0
+#: report:stock.inventory.move:0
+#: view:stock.move:0
+#: field:stock.move,date:0
+#: field:stock.partial.move,date:0
+#: field:stock.partial.picking,date:0
+msgid "Date"
+msgstr ""
+
+#. module: stock
+#: field:stock.picking,message_is_follower:0
+#: field:stock.picking.in,message_is_follower:0
+#: field:stock.picking.out,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.inventory:0
+#: view:report.stock.move:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: stock
+#: field:stock.warehouse,lot_stock_id:0
+msgid "Location Stock"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_partial_picking.py:97
+#, python-format
+msgid "_Deliver"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_inventory_merge.py:64
+#, python-format
+msgid "Merging is only allowed on draft inventories."
+msgstr ""
+
+#. module: stock
+#: help:stock.picking.out,state:0
+msgid ""
+"* Draft: not confirmed yet and will not be scheduled until confirmed\n"
+"\n"
+" * Waiting Another Operation: waiting for another move to "
+"proceed before it becomes automatically available (e.g. in Make-To-Order "
+"flows)\n"
+"\n"
+" * Waiting Availability: still waiting for the availability "
+"of products\n"
+"\n"
+" * Ready to Deliver: products reserved, simply waiting for "
+"confirmation.\n"
+"\n"
+" * Delivered: has been processed, can't be modified or "
+"cancelled anymore\n"
+"\n"
+" * Cancelled: has been cancelled, can't be confirmed anymore"
+msgstr ""
+
+#. module: stock
+#: field:stock.incoterms,code:0
+msgid "Code"
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory.line.split:0
+msgid "Lots Number"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_deliver_move
+#: view:product.product:0
+msgid "Deliveries"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,help:stock.action_reception_picking_move
+msgid ""
+"
\n"
+" Click to register a product reception. \n"
+"
\n"
+" Here you can receive individual products, no matter what\n"
+" purchase order or picking order they come from. You will "
+"find\n"
+" the list of all products you are waiting for. Once you "
+"receive\n"
+" an order, you can filter based on the name of the supplier "
+"or\n"
+" the purchase order reference. Then you can confirm all "
+"products\n"
+" received using the buttons on the right of each line.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: stock
+#: view:stock.change.product.qty:0
+#: view:stock.change.standard.price:0
+#: view:stock.config.settings:0
+#: view:stock.fill.inventory:0
+#: view:stock.inventory.line.split:0
+#: view:stock.inventory.merge:0
+#: view:stock.invoice.onshipping:0
+#: view:stock.location.product:0
+#: view:stock.move.consume:0
+#: view:stock.move.scrap:0
+#: view:stock.move.split:0
+#: view:stock.partial.move:0
+#: view:stock.partial.picking:0
+#: view:stock.return.picking:0
+#: view:stock.split.into:0
+msgid "Cancel"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_return_picking
+msgid "Return Picking"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.act_stock_return_picking
+#: model:ir.actions.act_window,name:stock.act_stock_return_picking_in
+#: model:ir.actions.act_window,name:stock.act_stock_return_picking_out
+msgid "Return Shipment"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_inventory_merge
+msgid "Merge Inventory"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_view_stock_fill_inventory
+#: view:stock.fill.inventory:0
+#: view:stock.inventory:0
+msgid "Fill Inventory"
+msgstr ""
+
+#. module: stock
+#: view:stock.return.picking:0
+msgid "Provide the quantities of the returned products."
+msgstr ""
+
+#. module: stock
+#: view:product.product:0
+#: view:stock.change.standard.price:0
+msgid "Cost Price"
+msgstr ""
+
+#. module: stock
+#: view:product.product:0
+#: field:product.product,valuation:0
+msgid "Inventory Valuation"
+msgstr ""
+
+#. module: stock
+#: view:stock.invoice.onshipping:0
+msgid "Create Invoice"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Process Later"
+msgstr ""
+
+#. module: stock
+#: help:res.partner,property_stock_supplier:0
+msgid ""
+"This stock location will be used, instead of the default one, as the source "
+"location for goods you receive from the current partner"
+msgstr ""
+
+#. module: stock
+#: sql_constraint:stock.production.lot:0
+msgid ""
+"The combination of Serial Number and internal reference must be unique !"
+msgstr ""
+
+#. module: stock
+#: field:stock.warehouse,partner_id:0
+msgid "Owner Address"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,help:stock.action_stock_move_report
+msgid ""
+"Moves Analysis allows you to easily check and analyse your company stock "
+"moves. Use this report when you want to analyse the different routes taken "
+"by your products and inventory management performance."
+msgstr ""
+
+#. module: stock
+#: constraint:stock.move:0
+msgid "You try to assign a lot which is not from the same product."
+msgstr ""
+
+#. module: stock
+#: field:report.stock.move,day_diff1:0
+msgid "Planned Lead Time (Days)"
+msgstr ""
+
+#. module: stock
+#: field:stock.change.standard.price,new_price:0
+msgid "Price"
+msgstr ""
+
+#. module: stock
+#: field:stock.config.settings,module_stock_invoice_directly:0
+msgid "Create and open the invoice when the user finish a delivery order"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_return_picking_memory
+msgid "stock.return.picking.memory"
+msgstr ""
+
+#. module: stock
+#: field:stock.config.settings,group_stock_inventory_valuation:0
+msgid "Generate accounting entries per stock movement"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:451
+#, python-format
+msgid "Received Qty"
+msgstr ""
+
+#. module: stock
+#: field:stock.production.lot,ref:0
+msgid "Internal Reference"
+msgstr ""
+
+#. module: stock
+#: help:stock.production.lot,prefix:0
+msgid ""
+"Optional prefix to prepend when displaying this serial number: PREFIX/SERIAL "
+"[INT_REF]"
+msgstr ""
+
+#. module: stock
+#: help:product.product,track_production:0
+msgid ""
+"Forces to specify a Serial Number for all moves containing this product and "
+"generated by a Manufacturing Order"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_fill_inventory
+#: view:stock.fill.inventory:0
+msgid "Import Inventory"
+msgstr ""
+
+#. module: stock
+#: field:stock.incoterms,name:0
+#: field:stock.warehouse,name:0
+msgid "Name"
+msgstr ""
+
+#. module: stock
+#: report:stock.picking.list:0
+msgid "Supplier Address :"
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory.line:0
+msgid "Stock Inventory Lines"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.lines.date:0
+msgid "Stockable"
+msgstr ""
+
+#. module: stock
+#: selection:product.product,valuation:0
+msgid "Real Time (automated)"
+msgstr ""
+
+#. module: stock
+#: help:stock.move,tracking_id:0
+msgid "Logistical shipping unit: pallet, box, pack ..."
+msgstr ""
+
+#. module: stock
+#: view:stock.location:0
+msgid "Customer Locations"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:2448
+#: code:addons/stock/stock.py:2863
+#, python-format
+msgid "User Error!"
+msgstr ""
+
+#. module: stock
+#: view:stock.partial.picking:0
+msgid "Stock partial Picking"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+msgid "Create Invoice/Refund"
+msgstr ""
+
+#. module: stock
+#: help:stock.picking,message_ids:0
+#: help:stock.picking.in,message_ids:0
+#: help:stock.picking.out,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.inventory:0
+#: view:report.stock.move:0
+msgid "Total value"
+msgstr ""
+
+#. module: stock
+#: help:stock.location,chained_journal_id:0
+msgid ""
+"Inventory Journal in which the chained move will be written, if the Chaining "
+"Type is not Transparent (no journal is used if left empty)"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,location_type:0
+#: field:res.partner,property_stock_supplier:0
+#: selection:stock.location,usage:0
+msgid "Supplier Location"
+msgstr ""
+
+#. module: stock
+#: view:stock.location.product:0
+msgid "View Products Inventory"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Creation"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:1776
+#, python-format
+msgid "Operation forbidden !"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.inventory:0
+msgid ""
+"Analysis of current inventory (only moves that have already been processed)"
+msgstr ""
+
+#. module: stock
+#: field:stock.partial.move.line,cost:0
+#: field:stock.partial.picking.line,cost:0
+msgid "Cost"
+msgstr ""
+
+#. module: stock
+#: field:product.category,property_stock_account_input_categ:0
+#: field:product.template,property_stock_account_input:0
+#: field:stock.change.standard.price,stock_account_input:0
+msgid "Stock Input Account"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.move:0
+msgid "Shipping type specify, goods coming in or going out"
+msgstr ""
+
+#. module: stock
+#: view:stock.config.settings:0
+msgid "Accounting"
+msgstr ""
+
+#. module: stock
+#: model:ir.ui.menu,name:stock.menu_warehouse_config
+msgid "Warehouse Management"
+msgstr ""
+
+#. module: stock
+#: selection:stock.location,chained_auto_packing:0
+msgid "Automatic No Step Added"
+msgstr ""
+
+#. module: stock
+#: help:stock.move,date:0
+msgid ""
+"Move date: scheduled date until move is done, then date of actual move "
+"processing"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.inventory:0
+#: view:report.stock.move:0
+#: view:stock.inventory:0
+#: view:stock.move:0
+#: view:stock.picking:0
+#: view:stock.picking.in:0
+#: view:stock.production.lot:0
+msgid "Group By..."
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,help:stock.action_move_form2
+msgid ""
+"
\n"
+" Click to create a stock movement.\n"
+"
\n"
+" This menu gives you the full traceability of inventory\n"
+" operations on a specific product. You can filter on the "
+"product\n"
+" to see all the past or future movements for the product.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: stock
+#: view:stock.location:0
+msgid "Chained Locations"
+msgstr ""
+
+#. module: stock
+#: model:stock.location,name:stock.location_inventory
+msgid "Inventory loss"
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory:0
+#: field:stock.inventory.line.split,product_uom:0
+#: view:stock.move:0
+#: field:stock.move,product_uom:0
+#: field:stock.move.split,product_uom:0
+#: field:stock.partial.move.line,product_uom:0
+#: field:stock.partial.picking.line,product_uom:0
+#: view:stock.production.lot:0
+msgid "Unit of Measure"
+msgstr ""
+
+#. module: stock
+#: field:stock.config.settings,group_stock_multiple_locations:0
+msgid "Manage multiple locations and warehouses"
+msgstr ""
+
+#. module: stock
+#: field:stock.config.settings,group_stock_production_lot:0
+msgid "Track serial number on products"
+msgstr ""
+
+#. module: stock
+#: field:stock.picking,message_unread:0
+#: field:stock.picking.in,message_unread:0
+#: field:stock.picking.out,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: stock
+#: help:stock.production.lot,stock_available:0
+msgid ""
+"Current quantity of products with this Serial Number available in company "
+"warehouses"
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_stock_journal_form
+#: model:ir.ui.menu,name:stock.menu_action_stock_journal_form
+msgid "Stock Journals"
+msgstr ""
+
+#. module: stock
+#: view:product.product:0
+#: view:stock.inventory.line.split:0
+msgid "Lots"
+msgstr ""
+
+#. module: stock
+#: view:stock.partial.picking:0
+msgid "_Transfer"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.move,type:0
+msgid "Others"
+msgstr ""
+
+#. module: stock
+#: model:stock.location,name:stock.stock_location_scrapped
+#: field:stock.move,scrapped:0
+msgid "Scrapped"
+msgstr ""
+
+#. module: stock
+#: field:product.product,track_incoming:0
+msgid "Track Incoming Lots"
+msgstr ""
+
+#. module: stock
+#: view:stock.location:0
+msgid "Internal Locations"
+msgstr ""
+
+#. module: stock
+#: view:board.board:0
+msgid "Warehouse board"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:471
+#, python-format
+msgid "Future Qty"
+msgstr ""
+
+#. module: stock
+#: model:res.groups,name:stock.group_production_lot
+msgid "Manage Serial Numbers"
+msgstr ""
+
+#. module: stock
+#: field:stock.move,note:0
+#: field:stock.picking,note:0
+#: field:stock.picking.in,note:0
+#: field:stock.picking.out,note:0
+msgid "Notes"
+msgstr ""
+
+#. module: stock
+#: selection:stock.picking,state:0
+msgid "Transferred"
+msgstr ""
+
+#. module: stock
+#: report:lot.stock.overview:0
+#: report:lot.stock.overview_all:0
+msgid "Value"
+msgstr ""
+
+#. module: stock
+#: field:report.stock.move,type:0
+#: field:stock.location,chained_picking_type:0
+#: field:stock.move,type:0
+#: field:stock.picking,type:0
+#: field:stock.picking.in,type:0
+#: field:stock.picking.out,type:0
+msgid "Shipping Type"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Process Partially"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Stock moves that are Confirmed, Available or Waiting"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.act_product_location_open
+#: model:ir.ui.menu,name:stock.menu_product_in_config_stock
+#: model:ir.ui.menu,name:stock.menu_stock_product
+#: model:ir.ui.menu,name:stock.menu_stock_products_menu
+#: view:stock.config.settings:0
+#: view:stock.inventory:0
+#: view:stock.partial.move:0
+#: view:stock.picking:0
+msgid "Products"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:2243
+#, python-format
+msgid ""
+"Cannot create Journal Entry, Output Account of this product and Valuation "
+"account on category of this product are same."
+msgstr ""
+
+#. module: stock
+#: selection:stock.location,chained_location_type:0
+msgid "None"
+msgstr ""
+
+#. module: stock
+#: view:stock.change.standard.price:0
+msgid "Change Price"
+msgstr ""
+
+#. module: stock
+#: field:stock.picking,move_type:0
+#: field:stock.picking.in,move_type:0
+#: field:stock.picking.out,move_type:0
+msgid "Delivery Method"
+msgstr ""
+
+#. module: stock
+#: help:report.stock.move,location_dest_id:0
+#: help:stock.move,location_dest_id:0
+#: help:stock.picking,location_dest_id:0
+#: help:stock.picking.in,location_dest_id:0
+#: help:stock.picking.out,location_dest_id:0
+msgid "Location where the system will stock the finished products."
+msgstr ""
+
+#. module: stock
+#: view:board.board:0
+#: model:ir.actions.act_window,name:stock.action_stock_outgoing_product_delay
+msgid "Outgoing Products"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:2249
+#, python-format
+msgid ""
+"Please define stock input account for this product or its category: \"%s\" "
+"(id: %d)"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.move:0
+msgid "Delay(Days)"
+msgstr ""
+
+#. module: stock
+#: field:stock.partial.move.line,move_id:0
+#: field:stock.partial.picking.line,move_id:0
+#: field:stock.return.picking.memory,move_id:0
+msgid "Move"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:467
+#, python-format
+msgid "P&L Qty"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_config_settings
+msgid "stock.config.settings"
+msgstr ""
+
+#. module: stock
+#: view:stock.production.lot:0
+#: field:stock.production.lot,revisions:0
+msgid "Revisions"
+msgstr ""
+
+#. module: stock
+#: help:product.product,valuation:0
+msgid ""
+"If real-time valuation is enabled for a product, the system will "
+"automatically write journal entries corresponding to stock moves.The "
+"inventory variation account set on the product category will represent the "
+"current inventory value, and the stock input and stock output account will "
+"hold the counterpart moves for incoming and outgoing products."
+msgstr ""
+
+#. module: stock
+#: model:stock.location,name:stock.stock_location_4
+msgid "Big Suppliers"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,help:stock.action_stock_inventory_report
+msgid ""
+"Inventory Analysis allows you to easily check and analyse your company stock "
+"levels. Sort and group by selection criteria in order to better analyse and "
+"manage your company activities."
+msgstr ""
+
+#. module: stock
+#: help:report.stock.move,location_id:0
+#: help:stock.move,location_id:0
+msgid ""
+"Sets a location if you produce at a fixed location. This can be a partner "
+"location if you subcontract the manufacturing operations."
+msgstr ""
+
+#. module: stock
+#: view:stock.invoice.onshipping:0
+msgid "Create"
+msgstr ""
+
+#. module: stock
+#: field:stock.change.product.qty,new_quantity:0
+msgid "New Quantity on Hand"
+msgstr ""
+
+#. module: stock
+#: field:stock.move,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+#: field:stock.move,origin:0
+msgid "Source"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_location
+#: field:product.product,location_id:0
+#: view:report.stock.inventory:0
+#: field:report.stock.inventory,location_id:0
+#: field:stock.change.product.qty,location_id:0
+#: field:stock.fill.inventory,location_id:0
+#: field:stock.inventory.line,location_id:0
+#: report:stock.inventory.move:0
+#: view:stock.move:0
+#: field:stock.move.consume,location_id:0
+#: field:stock.move.scrap,location_id:0
+#: field:stock.partial.move.line,location_id:0
+#: field:stock.partial.picking.line,location_id:0
+#: field:stock.picking,location_id:0
+#: field:stock.picking.in,location_id:0
+#: report:stock.picking.list:0
+#: field:stock.picking.out,location_id:0
+#: field:stock.report.prodlots,location_id:0
+#: field:stock.report.tracklots,location_id:0
+msgid "Location"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_picking
+#: view:stock.picking:0
+msgid "Picking List"
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory:0
+msgid "Cancel Inventory"
+msgstr ""
+
+#. module: stock
+#: field:stock.config.settings,group_product_variant:0
+msgid "Support multiple variants per products "
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:2246
+#, python-format
+msgid ""
+"Cannot create Journal Entry, Input Account of this product and Valuation "
+"account on category of this product are same."
+msgstr ""
+
+#. module: stock
+#: model:ir.ui.menu,name:stock.menu_stock_unit_measure_stock
+#: model:ir.ui.menu,name:stock.menu_stock_uom_form_action
+msgid "Units of Measure"
+msgstr ""
+
+#. module: stock
+#: selection:stock.location,chained_location_type:0
+msgid "Fixed Location"
+msgstr ""
+
+#. module: stock
+#: field:report.stock.inventory,scrap_location:0
+msgid "scrap"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:1891
+#, python-format
+msgid ""
+"By changing the quantity here, you accept the new quantity as complete: "
+"OpenERP will not automatically generate a Back Order."
+msgstr ""
+
+#. module: stock
+#: report:stock.inventory.move:0
+msgid "Manual Quantity"
+msgstr ""
+
+#. module: stock
+#: view:product.product:0
+msgid "On hand:"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_report_prodlots
+msgid "Stock report by serial number"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,month:0
+#: selection:report.stock.move,month:0
+msgid "July"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.lines.date:0
+msgid "Consumable"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,help:stock.action_stock_line_date
+msgid ""
+"Display the last inventories done on your products and easily sort them with "
+"specific filtering criteria. If you do frequent and partial inventories, you "
+"need this report in order to ensure that the stock of each product is "
+"controlled at least once a year."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_invoice_onshipping.py:112
+#, python-format
+msgid "Please create Invoices."
+msgstr ""
+
+#. module: stock
+#: help:stock.config.settings,module_product_expiry:0
+msgid ""
+"Track different dates on products and serial numbers.\n"
+"The following dates can be tracked:\n"
+" - end of life\n"
+" - best before date\n"
+" - removal date\n"
+" - alert date.\n"
+"This installs the module product_expiry."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_partial_picking.py:174
+#, python-format
+msgid "Please provide proper Quantity."
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.report.xml,name:stock.report_product_history
+msgid "Stock Level Forecast"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_journal
+#: field:product.category,property_stock_journal:0
+#: field:report.stock.move,stock_journal:0
+#: view:stock.journal:0
+#: field:stock.journal,name:0
+#: field:stock.picking,stock_journal_id:0
+#: field:stock.picking.in,stock_journal_id:0
+#: field:stock.picking.out,stock_journal_id:0
+msgid "Stock Journal"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_return_picking.py:174
+#, python-format
+msgid "%s-%s-return"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_change_product_qty.py:82
+#, python-format
+msgid "Active ID is not set in Context"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+#: view:stock.picking:0
+msgid "Force Availability"
+msgstr ""
+
+#. module: stock
+#: field:product.template,loc_rack:0
+msgid "Rack"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.move_scrap
+#: view:stock.move.scrap:0
+msgid "Scrap Move"
+msgstr ""
+
+#. module: stock
+#: help:stock.move,prodlot_id:0
+msgid "Serial number is used to put a serial number on the production"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_partial_picking.py:100
+#, python-format
+msgid "Receive Products"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,location_type:0
+#: selection:stock.location,usage:0
+msgid "Procurement"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_partial_picking.py:102
+#: model:ir.actions.act_window,name:stock.action_out_picking_move
+#: model:ir.ui.menu,name:stock.menu_action_pdct_out
+#, python-format
+msgid "Deliver Products"
+msgstr ""
+
+#. module: stock
+#: view:stock.location.product:0
+msgid "View Stock of Products"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.inventory:0
+#: field:report.stock.inventory,month:0
+#: view:report.stock.move:0
+#: field:report.stock.move,month:0
+msgid "Month"
+msgstr ""
+
+#. module: stock
+#: help:stock.picking,date_done:0
+#: help:stock.picking.in,date_done:0
+#: help:stock.picking.out,date_done:0
+msgid "Date of Completion"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:1663
+#, python-format
+msgid "You cannot move product %s from a location of type view %s."
+msgstr ""
+
+#. module: stock
+#: model:stock.location,name:stock.stock_location_company
+msgid "Your Company"
+msgstr ""
+
+#. module: stock
+#: help:stock.tracking,active:0
+msgid ""
+"By unchecking the active field, you may hide a pack without deleting it."
+msgstr ""
+
+#. module: stock
+#: view:stock.production.lot:0
+msgid "Product Lots Filter"
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory.merge:0
+msgid "Yes"
+msgstr ""
+
+#. module: stock
+#: field:stock.inventory,inventory_line_id:0
+msgid "Inventories"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.move:0
+msgid "Todo"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Unit Of Measure"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,help:stock.action_location_tree
+msgid ""
+"
\n"
+" Click to add a location.\n"
+"
\n"
+" This is the structure of your company's warehouses and\n"
+" locations. You can click on a location to get the list of "
+"the\n"
+" products and their stock level in this particular location "
+"and\n"
+" all its children.\n"
+"
\n"
+" Click to register a reception for this product. \n"
+"
\n"
+" Here you will find the history of all receptions related to\n"
+" this product, as well as all future receptions you are "
+"waiting\n"
+" from your suppliers.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: stock
+#: help:stock.fill.inventory,recursive:0
+msgid ""
+"If checked, products contained in child locations of selected location will "
+"be included as well."
+msgstr ""
+
+#. module: stock
+#: help:stock.config.settings,group_stock_inventory_valuation:0
+msgid ""
+"Allows to configure inventory valuations on products and product categories."
+msgstr ""
+
+#. module: stock
+#: help:stock.config.settings,module_stock_location:0
+msgid ""
+"Provide push and pull inventory flows. Typical uses of this feature are:\n"
+" manage product manufacturing chains, manage default "
+"locations per product,\n"
+" define routes within your warehouse according to business "
+"needs, etc.\n"
+" This installs the module stock_location."
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory:0
+#: field:stock.inventory,name:0
+msgid "Inventory Reference"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,help:stock.action_out_picking_move
+msgid ""
+"
\n"
+" Click to register a product delivery.\n"
+"
\n"
+"
\n"
+" You will find in this list all products you have to deliver "
+"to\n"
+" your customers. You can process the deliveries directly "
+"from\n"
+" this list using the buttons on the right of each line. You "
+"can\n"
+" filter the products to deliver by customer, products or "
+"sale\n"
+" order (using the Origin field).\n"
+"
\n"
+" This is the list of all your packs. When you select a Pack, "
+"you\n"
+" can get the upstream or downstream traceability of the "
+"products\n"
+" contained in the pack.\n"
+"
\n"
+" Periodical Inventories are used to count the number of "
+"products\n"
+" available per location. You can use it once a year when you "
+"do\n"
+" the general inventory or whenever you need it, to adapt the\n"
+" current inventory level of a product.\n"
+"
\n"
+" Define your locations to reflect your warehouse structure "
+"and\n"
+" organization. OpenERP is able to manage physical locations\n"
+" (warehouses, shelves, bin, etc), partner locations "
+"(customers,\n"
+" suppliers) and virtual locations which are the counterpart "
+"of\n"
+" the stock operations like the manufacturing orders\n"
+" consumptions, inventories, etc.\n"
+"
\n"
+" Every stock operation in OpenERP moves the products from "
+"one\n"
+" location to another one. For instance, if you receive "
+"products\n"
+" from a supplier, OpenERP will move products from the "
+"Supplier\n"
+" location to the Stock location. Each report can be performed "
+"on\n"
+" physical, partner or virtual locations.\n"
+"
\n"
+" Click to create an incoming shipment. \n"
+"
\n"
+" The Incoming Shipments is the list of all orders you will\n"
+" receive from your suppliers. An incoming shipment contains "
+"a\n"
+" list of products to be received according to the original\n"
+" purchase order.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Destination"
+msgstr ""
+
+#. module: stock
+#: selection:stock.picking,move_type:0
+#: selection:stock.picking.in,move_type:0
+#: selection:stock.picking.out,move_type:0
+msgid "All at once"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.act_product_stock_move_open
+msgid "Inventory Move"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:477
+#, python-format
+msgid "Future Productions"
+msgstr ""
+
+#. module: stock
+#: help:stock.picking.in,state:0
+msgid ""
+"* Draft: not confirmed yet and will not be scheduled until confirmed\n"
+"\n"
+" * Waiting Another Operation: waiting for another move to "
+"proceed before it becomes automatically available (e.g. in Make-To-Order "
+"flows)\n"
+"\n"
+" * Waiting Availability: still waiting for the availability "
+"of products\n"
+"\n"
+" * Ready to Receive: products reserved, simply waiting for "
+"confirmation.\n"
+"\n"
+" * Received: has been processed, can't be modified or "
+"cancelled anymore\n"
+"\n"
+" * Cancelled: has been cancelled, can't be confirmed anymore"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_stock_config_settings
+#: view:stock.config.settings:0
+msgid "Configure Warehouse"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+#: view:stock.picking.in:0
+msgid "To Invoice"
+msgstr ""
+
+#. module: stock
+#: view:stock.return.picking:0
+msgid "Return lines"
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory:0
+msgid "Search Inventory"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_report_stock_lines_date
+#: view:report.stock.lines.date:0
+msgid "Dates of Inventories"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_receive_move
+#: view:product.product:0
+msgid "Receptions"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.move:0
+msgid "Total incoming quantity"
+msgstr ""
+
+#. module: stock
+#: field:report.stock.move,product_qty_out:0
+msgid "Out Qty"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.inventory:0
+#: field:report.stock.inventory,company_id:0
+#: view:report.stock.move:0
+#: field:report.stock.move,company_id:0
+#: field:stock.inventory,company_id:0
+#: field:stock.inventory.line,company_id:0
+#: field:stock.location,company_id:0
+#: field:stock.move,company_id:0
+#: field:stock.picking,company_id:0
+#: field:stock.picking.in,company_id:0
+#: field:stock.picking.out,company_id:0
+#: field:stock.production.lot,company_id:0
+#: field:stock.production.lot.revision,company_id:0
+#: field:stock.warehouse,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: stock
+#: field:stock.inventory.line,product_uom:0
+#: field:stock.move.consume,product_uom:0
+#: field:stock.move.scrap,product_uom:0
+msgid "Product Unit of Measure"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Put in current pack"
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory:0
+msgid "Lot Inventory"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_production_lot_form
+#: model:ir.model,name:stock.model_stock_production_lot
+#: model:ir.ui.menu,name:stock.menu_action_production_lot_form
+#: model:res.request.link,name:stock.req_link_tracking
+#: field:stock.change.product.qty,prodlot_id:0
+#: field:stock.inventory.line,prod_lot_id:0
+#: field:stock.inventory.line.split.lines,name:0
+#: field:stock.inventory.line.split.lines,prodlot_id:0
+#: field:stock.move,prodlot_id:0
+#: view:stock.move.split:0
+#: field:stock.move.split.lines,name:0
+#: field:stock.move.split.lines,prodlot_id:0
+#: field:stock.partial.move.line,prodlot_id:0
+#: field:stock.partial.picking.line,prodlot_id:0
+#: report:stock.picking.list:0
+#: view:stock.production.lot:0
+#: field:stock.production.lot,name:0
+#: field:stock.production.lot.revision,lot_id:0
+#: field:stock.report.prodlots,prodlot_id:0
+#: field:stock.return.picking.memory,prodlot_id:0
+msgid "Serial Number"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_partial_picking
+msgid "Partial Picking Processing Wizard"
+msgstr ""
+
+#. module: stock
+#: field:stock.location,icon:0
+msgid "Icon"
+msgstr ""
+
+#. module: stock
+#: field:stock.partial.move,hide_tracking:0
+#: field:stock.partial.move.line,tracking:0
+#: field:stock.partial.picking,hide_tracking:0
+#: field:stock.partial.picking.line,tracking:0
+msgid "Tracking"
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory.line.split:0
+#: view:stock.move.consume:0
+#: view:stock.move.scrap:0
+#: view:stock.split.into:0
+msgid "Ok"
+msgstr ""
+
+#. module: stock
+#: help:product.category,property_stock_account_output_categ:0
+msgid ""
+"When doing real-time inventory valuation, counterpart journal items for all "
+"outgoing stock moves will be posted in this account, unless there is a "
+"specific valuation account set on the destination location. This is the "
+"default value for all products in this category. It can also directly be set "
+"on each product"
+msgstr ""
+
+#. module: stock
+#: field:stock.picking,message_ids:0
+#: field:stock.picking.in,message_ids:0
+#: field:stock.picking.out,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: stock
+#: model:stock.location,name:stock.stock_location_8
+msgid "Non European Customers"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:96
+#: code:addons/stock/product.py:110
+#: code:addons/stock/product.py:113
+#: code:addons/stock/product.py:120
+#: code:addons/stock/product.py:141
+#: code:addons/stock/product.py:167
+#: code:addons/stock/report/report_stock.py:78
+#: code:addons/stock/report/report_stock.py:134
+#: code:addons/stock/stock.py:528
+#: code:addons/stock/stock.py:790
+#: code:addons/stock/stock.py:1190
+#: code:addons/stock/stock.py:1199
+#: code:addons/stock/stock.py:2243
+#: code:addons/stock/stock.py:2246
+#: code:addons/stock/stock.py:2249
+#: code:addons/stock/stock.py:2252
+#: code:addons/stock/stock.py:2255
+#: code:addons/stock/stock.py:2258
+#: code:addons/stock/stock.py:2481
+#: code:addons/stock/stock.py:2590
+#: code:addons/stock/wizard/stock_fill_inventory.py:59
+#: code:addons/stock/wizard/stock_invoice_onshipping.py:112
+#: code:addons/stock/wizard/stock_splitinto.py:53
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,help:stock.action_warehouse_form
+msgid ""
+"
\n"
+" Click to define a new warehouse.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,state:0
+#: selection:report.stock.move,state:0
+#: selection:stock.inventory,state:0
+#: selection:stock.move,state:0
+#: selection:stock.picking,state:0
+#: selection:stock.picking.in,state:0
+#: selection:stock.picking.out,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+msgid "Confirmed Delivery Orders"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+#: field:stock.partial.move,picking_id:0
+#: field:stock.partial.picking,picking_id:0
+msgid "Picking"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_invoice_onshipping.py:96
+#, python-format
+msgid "This picking list does not require invoicing."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_partial_picking.py:181
+#, python-format
+msgid ""
+"The unit of measure rounding does not allow you to ship \"%s %s\", only "
+"roundings of \"%s %s\" is accepted by the Unit of Measure."
+msgstr ""
+
+#. module: stock
+#: model:stock.location,name:stock.stock_location_shop0
+msgid "Your Company, Chicago shop"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.move,type:0
+#: selection:stock.location,chained_picking_type:0
+#: selection:stock.move,type:0
+#: selection:stock.picking,type:0
+#: selection:stock.picking.in,type:0
+#: selection:stock.picking.out,type:0
+msgid "Getting Goods"
+msgstr ""
+
+#. module: stock
+#: help:stock.location,chained_location_type:0
+msgid ""
+"Determines whether this location is chained to another location, i.e. any "
+"incoming product in this location \n"
+"should next go to the chained location. The chained location is determined "
+"according to the type :\n"
+"* None: No chaining at all\n"
+"* Customer: The chained location will be taken from the Customer Location "
+"field on the Partner form of the Partner that is specified in the Picking "
+"list of the incoming products.\n"
+"* Fixed Location: The chained location is taken from the next field: Chained "
+"Location if Fixed."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:1853
+#, python-format
+msgid ""
+"By changing this quantity here, you accept the new quantity as complete: "
+"OpenERP will not automatically generate a back order."
+msgstr ""
+
+#. module: stock
+#: view:stock.production.lot.revision:0
+msgid "Serial Number Revisions"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_picking_tree
+#: model:ir.model,name:stock.model_stock_picking_out
+#: model:ir.ui.menu,name:stock.menu_action_picking_tree
+#: view:stock.picking.out:0
+msgid "Delivery Orders"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+msgid "Delivery orders already processed"
+msgstr ""
+
+#. module: stock
+#: field:product.template,loc_case:0
+msgid "Case"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,state:0
+#: selection:report.stock.move,state:0
+#: selection:stock.inventory,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+#: view:stock.picking:0
+msgid "Confirm"
+msgstr ""
+
+#. module: stock
+#: help:stock.location,icon:0
+msgid "Icon show in hierarchical tree view"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_view_stock_merge_inventories
+msgid "Merge inventories"
+msgstr ""
+
+#. module: stock
+#: view:stock.location:0
+msgid "Stock Location"
+msgstr ""
+
+#. module: stock
+#: help:stock.location,scrap_location:0
+msgid ""
+"Check this box to allow using this location to put scrapped/damaged goods."
+msgstr ""
+
+#. module: stock
+#: field:stock.picking,message_follower_ids:0
+#: field:stock.picking.in,message_follower_ids:0
+#: field:stock.picking.out,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:2590
+#, python-format
+msgid "Cannot consume a move with negative or zero quantity."
+msgstr ""
+
+#. module: stock
+#: help:stock.config.settings,decimal_precision:0
+msgid ""
+"As an example, a decimal precision of 2 will allow weights like: 9.99 kg, "
+"whereas a decimal precision of 4 will allow weights like: 0.0231 kg."
+msgstr ""
+
+#. module: stock
+#: view:report.stock.move:0
+msgid "Total outgoing quantity"
+msgstr ""
+
+#. module: stock
+#: field:stock.move,backorder_id:0
+#: field:stock.picking,backorder_id:0
+#: field:stock.picking.in,backorder_id:0
+#: field:stock.picking.out,backorder_id:0
+msgid "Back Order of"
+msgstr ""
+
+#. module: stock
+#: help:stock.partial.move.line,cost:0
+#: help:stock.partial.picking.line,cost:0
+msgid "Unit Cost for this product line"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_product_category
+#: view:report.stock.inventory:0
+#: field:report.stock.inventory,product_categ_id:0
+#: view:report.stock.move:0
+#: field:report.stock.move,categ_id:0
+msgid "Product Category"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Serial Number"
+msgstr ""
+
+#. module: stock
+#: view:stock.invoice.onshipping:0
+msgid "Create invoice"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+msgid "Confirmed Internal Moves"
+msgstr ""
+
+#. module: stock
+#: model:ir.ui.menu,name:stock.menu_stock_configuration
+msgid "Configuration"
+msgstr ""
+
+#. module: stock
+#: model:res.groups,name:stock.group_locations
+msgid "Manage Multiple Locations and Warehouses"
+msgstr ""
+
+#. module: stock
+#: help:stock.change.standard.price,new_price:0
+msgid ""
+"If cost price is increased, stock variation account will be debited and "
+"stock output account will be credited with the value = (difference of amount "
+"* quantity available).\n"
+"If cost price is decreased, stock variation account will be creadited and "
+"stock input account will be debited."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:2816
+#, python-format
+msgid "INV:"
+msgstr ""
+
+#. module: stock
+#: help:stock.config.settings,module_stock_invoice_directly:0
+msgid ""
+"This allows to automatically launch the invoicing wizard if the delivery is\n"
+" to be invoiced when you send or deliver goods.\n"
+" This installs the module stock_invoice_directly."
+msgstr ""
+
+#. module: stock
+#: field:stock.location,chained_journal_id:0
+msgid "Chaining Journal"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:768
+#, python-format
+msgid "Not enough stock, unable to reserve the products."
+msgstr ""
+
+#. module: stock
+#: view:report.stock.move:0
+msgid "Outgoing"
+msgstr ""
+
+#. module: stock
+#: help:stock.move,product_qty:0
+msgid ""
+"This is the quantity of products from an inventory point of view. For moves "
+"in the state 'done', this is the quantity of products that were actually "
+"moved. For other moves, this is the quantity of product that is planned to "
+"be moved. Lowering this quantity does not generate a backorder. Changing "
+"this quantity on assigned moves affects the product reservation, and should "
+"be done with care."
+msgstr ""
+
+#. module: stock
+#: help:stock.location,valuation_in_account_id:0
+msgid ""
+"Used for real-time inventory valuation. When set on a virtual location (non "
+"internal type), this account will be used to hold the value of products "
+"being moved from an internal location into this location, instead of the "
+"generic Stock Output Account set on the product. This has no effect for "
+"internal locations."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:459
+#, python-format
+msgid "Future Deliveries"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+#: field:stock.move,tracking_id:0
+#: view:stock.tracking:0
+msgid "Pack"
+msgstr ""
+
+#. module: stock
+#: view:stock.move:0
+msgid "Date Expected"
+msgstr ""
+
+#. module: stock
+#: field:stock.move,auto_validate:0
+msgid "Auto Validate"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:1821
+#, python-format
+msgid "Insufficient Stock for Serial Number !"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_product_template
+msgid "Product Template"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,month:0
+#: selection:report.stock.move,month:0
+msgid "December"
+msgstr ""
+
+#. module: stock
+#: selection:stock.location,chained_auto_packing:0
+msgid "Automatic Move"
+msgstr ""
+
+#. module: stock
+#: field:stock.location,stock_virtual_value:0
+msgid "Virtual Stock Value"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking.in:0
+#: view:stock.picking.out:0
+msgid "Return Products"
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory:0
+msgid "Validate Inventory"
+msgstr ""
+
+#. module: stock
+#: help:stock.move,price_currency_id:0
+msgid ""
+"Technical field used to record the currency chosen by the user during a "
+"picking confirmation (when average price costing method is used)"
+msgstr ""
+
+#. module: stock
+#: help:stock.production.lot,name:0
+msgid "Unique Serial Number, will be displayed as: PREFIX/SERIAL [INT_REF]"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:142
+#, python-format
+msgid "Please define stock input account for this product: \"%s\" (id: %d)."
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.action_reception_picking_move
+#: model:ir.ui.menu,name:stock.menu_action_pdct_in
+msgid "Incoming Products"
+msgstr ""
+
+#. module: stock
+#: view:product.product:0
+msgid "update"
+msgstr ""
+
+#. module: stock
+#: view:stock.change.product.qty:0
+#: view:stock.change.standard.price:0
+#: view:stock.config.settings:0
+#: view:stock.fill.inventory:0
+#: view:stock.inventory.line.split:0
+#: view:stock.inventory.merge:0
+#: view:stock.invoice.onshipping:0
+#: view:stock.location.product:0
+#: view:stock.move.consume:0
+#: view:stock.move.scrap:0
+#: view:stock.move.split:0
+#: view:stock.partial.move:0
+#: view:stock.partial.picking:0
+#: view:stock.return.picking:0
+#: view:stock.split.into:0
+msgid "or"
+msgstr ""
+
+#. module: stock
+#: selection:stock.picking,invoice_state:0
+#: selection:stock.picking.in,invoice_state:0
+#: selection:stock.picking.out,invoice_state:0
+msgid "Invoiced"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:1852
+#: view:product.template:0
+#, python-format
+msgid "Information"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:1199
+#, python-format
+msgid "You cannot remove the picking which is in %s state!"
+msgstr ""
+
+#. module: stock
+#: help:res.partner,property_stock_customer:0
+msgid ""
+"This stock location will be used, instead of the default one, as the "
+"destination location for goods you send to this partner"
+msgstr ""
+
+#. module: stock
+#: view:stock.change.product.qty:0
+#: view:stock.change.standard.price:0
+msgid "_Apply"
+msgstr ""
+
+#. module: stock
+#: field:stock.picking,max_date:0
+#: field:stock.picking.in,max_date:0
+#: field:stock.picking.out,max_date:0
+msgid "Max. Expected Date"
+msgstr ""
+
+#. module: stock
+#: field:stock.picking,auto_picking:0
+#: field:stock.picking.in,auto_picking:0
+#: field:stock.picking.out,auto_picking:0
+msgid "Auto-Picking"
+msgstr ""
+
+#. module: stock
+#: report:stock.picking.list:0
+msgid "Customer Address :"
+msgstr ""
+
+#. module: stock
+#: field:stock.location,chained_auto_packing:0
+msgid "Chaining Type"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.inventory:0
+#: view:report.stock.move:0
+#: selection:report.stock.move,type:0
+#: view:stock.location:0
+#: selection:stock.location,chained_picking_type:0
+#: selection:stock.move,type:0
+#: selection:stock.picking,type:0
+#: selection:stock.picking.in,type:0
+#: selection:stock.picking.out,type:0
+msgid "Internal"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking:0
+#: view:stock.picking.in:0
+#: view:stock.picking.out:0
+msgid "Calendar View"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.report.xml,name:stock.report_stock_inventory_move
+#: report:stock.inventory.move:0
+msgid "Stock Inventory"
+msgstr ""
+
+#. module: stock
+#: help:report.stock.inventory,state:0
+msgid ""
+"When the stock move is created it is in the 'Draft' state.\n"
+" After that it is set to 'Confirmed' state.\n"
+" If stock is available state is set to 'Avaiable'.\n"
+" When the picking it done the state is 'Done'. \n"
+"The state is 'Waiting' if the move is waiting for another one."
+msgstr ""
+
+#. module: stock
+#: view:stock.inventory.merge:0
+msgid "Do you want to merge theses inventories?"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking.out:0
+msgid "Date of Delivery"
+msgstr ""
+
+#. module: stock
+#: field:stock.location,posy:0
+msgid "Shelves (Y)"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:2258
+#, python-format
+msgid ""
+"Please define inventory valuation account on the product category: \"%s\" "
+"(id: %d)"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_production_lot_revision
+msgid "Serial Number Revision"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:96
+#, python-format
+msgid "Specify valuation Account for Product Category: %s."
+msgstr ""
+
+#. module: stock
+#: help:stock.config.settings,module_claim_from_delivery:0
+msgid ""
+"Adds a Claim link to the delivery order.\n"
+" This installs the module claim_from_delivery."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_return_picking.py:208
+#, python-format
+msgid "Please specify at least one non-zero quantity."
+msgstr ""
+
+#. module: stock
+#: field:stock.fill.inventory,set_stock_zero:0
+msgid "Set to zero"
+msgstr ""
+
+#. module: stock
+#: model:res.groups,name:stock.group_stock_user
+msgid "User"
+msgstr ""
+
+#. module: stock
+#: field:stock.config.settings,module_stock_location:0
+msgid "Create push/pull logistic rules"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_invoice_onshipping.py:98
+#, python-format
+msgid "None of these picking lists require invoicing."
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,month:0
+#: selection:report.stock.move,month:0
+msgid "November"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:473
+#, python-format
+msgid "Unplanned Qty"
+msgstr ""
+
+#. module: stock
+#: field:stock.location,chained_company_id:0
+msgid "Chained Company"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking.out:0
+msgid "Check Availability"
+msgstr ""
+
+#. module: stock
+#: selection:report.stock.inventory,month:0
+#: selection:report.stock.move,month:0
+msgid "January"
+msgstr ""
+
+#. module: stock
+#: constraint:stock.move:0
+msgid "You cannot move products from or to a location of the type view."
+msgstr ""
+
+#. module: stock
+#: help:stock.config.settings,group_stock_production_lot:0
+msgid ""
+"This allows you to manage products by using serial numbers. When you select "
+"a serial number on product moves, you can get the upstream or downstream "
+"traceability of that product."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_fill_inventory.py:124
+#, python-format
+msgid ""
+"No product in this location. Please select a location in the product form."
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,name:stock.act_product_stock_move_futur_open
+msgid "Future Stock Moves"
+msgstr ""
+
+#. module: stock
+#: field:stock.move,move_history_ids2:0
+msgid "Move History (parent moves)"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/product.py:455
+#, python-format
+msgid "Future Stock"
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/stock.py:1663
+#: code:addons/stock/stock.py:1665
+#, python-format
+msgid "Error"
+msgstr ""
+
+#. module: stock
+#: report:stock.inventory.move:0
+msgid "Production Lot"
+msgstr ""
+
+#. module: stock
+#: model:ir.ui.menu,name:stock.menu_traceability
+#: view:stock.config.settings:0
+#: view:stock.move:0
+#: view:stock.tracking:0
+msgid "Traceability"
+msgstr ""
+
+#. module: stock
+#: model:ir.actions.act_window,help:stock.action_deliver_move
+msgid ""
+"
\n"
+" Click to add a delivery order for this product.\n"
+"
\n"
+" Here you will find the history of all past deliveries "
+"related to\n"
+" this product, as well as all the products you must deliver "
+"to\n"
+" customers.\n"
+"
\n"
+" This is the list of all the production lots you recorded. "
+"When\n"
+" you select a lot, you can get the upstream or downstream\n"
+" traceability of the products contained in lot. By default, "
+"the\n"
+" list is filtred on the serial numbers that are available in\n"
+" your warehouse but you can uncheck the 'Available' button "
+"to\n"
+" get all the lots you produced, received or delivered to\n"
+" customers.\n"
+"
\n"
+" This is the list of all delivery orders that have to be\n"
+" prepared, according to your different sales orders and your\n"
+" logistics rules.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: stock
+#: help:stock.tracking,name:0
+msgid ""
+"By default, the pack reference is generated following the sscc standard. "
+"(Serial number + 1 check digit)"
+msgstr ""
+
+#. module: stock
+#: model:ir.model,name:stock.model_stock_inventory
+#: selection:report.stock.inventory,location_type:0
+#: field:stock.inventory.line,inventory_id:0
+#: report:stock.inventory.move:0
+#: selection:stock.location,usage:0
+msgid "Inventory"
+msgstr ""
+
+#. module: stock
+#: help:stock.location,chained_picking_type:0
+msgid ""
+"Shipping Type of the Picking List that will contain the chained move (leave "
+"empty to automatically detect the type based on the source and destination "
+"locations)."
+msgstr ""
+
+#. module: stock
+#: code:addons/stock/wizard/stock_partial_picking.py:192
+#, python-format
+msgid ""
+"The rounding of the initial uom does not allow you to ship \"%s %s\", as it "
+"would let a quantity of \"%s %s\" to ship and only roundings of \"%s %s\" is "
+"accepted by the uom."
+msgstr ""
+
+#. module: stock
+#: help:stock.move,move_dest_id:0
+msgid "Optional: next stock move when chaining them"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking.out:0
+msgid "Print Delivery Slip"
+msgstr ""
+
+#. module: stock
+#: view:report.stock.inventory:0
+#: field:report.stock.inventory,year:0
+#: view:report.stock.move:0
+#: field:report.stock.move,year:0
+msgid "Year"
+msgstr ""
+
+#. module: stock
+#: model:stock.location,name:stock.stock_location_locations
+msgid "Physical Locations"
+msgstr ""
+
+#. module: stock
+#: view:stock.picking.in:0
+msgid "Ready to Process"
+msgstr ""
+
+#. module: stock
+#: report:stock.picking.list:0
+msgid "Warehouse Address :"
+msgstr ""
diff --git a/addons/stock/product_view.xml b/addons/stock/product_view.xml
index 22015f75346..cff43b8f7ba 100644
--- a/addons/stock/product_view.xml
+++ b/addons/stock/product_view.xml
@@ -225,12 +225,18 @@
-
+ Receptions
-
+
+ Reception
+
+ Deliveries
+
+ Delivery
+
On hand:
diff --git a/addons/stock/report/picking.rml b/addons/stock/report/picking.rml
index 0a17f56fc71..381b7eb4c28 100644
--- a/addons/stock/report/picking.rml
+++ b/addons/stock/report/picking.rml
@@ -285,9 +285,9 @@
[[ (move_lines.prodlot_id and move_lines.prodlot_id.name) or '' ]]
- [[ (picking.type == 'in' or removeParentNode('para')) ]][[ move_lines.state == 'done' and 'Received' or move_lines.state]]
- [[ (picking.type == 'out' or removeParentNode('para')) ]][[ move_lines.state == 'done' and 'Delivered' or move_lines.state]]
- [[ (picking.type == 'internal' or removeParentNode('para')) ]][[ move_lines.state == 'done' and 'Transferred' or move_lines.state]]
+ [[ (picking.type == 'in' or removeParentNode('para')) and '' ]][[ move_lines.state == 'done' and 'Received' or move_lines.state]]
+ [[ (picking.type == 'out' or removeParentNode('para')) and '']][[ move_lines.state == 'done' and 'Delivered' or move_lines.state]]
+ [[ (picking.type == 'internal' or removeParentNode('para')) and '' ]][[ move_lines.state == 'done' and 'Transferred' or move_lines.state]]
[[ (move_lines.location_id and move_lines.location_id.name) or '' ]]
diff --git a/addons/stock/report/report_stock_move.py b/addons/stock/report/report_stock_move.py
index b8c22062fa5..db9ea187260 100644
--- a/addons/stock/report/report_stock_move.py
+++ b/addons/stock/report/report_stock_move.py
@@ -61,66 +61,49 @@ class report_stock_move(osv.osv):
cr.execute("""
CREATE OR REPLACE view report_stock_move AS (
SELECT
- min(sm_id) as id,
- date_trunc('day',al.dp) as date,
- al.curr_year as year,
- al.curr_month as month,
- al.curr_day as day,
- al.curr_day_diff as day_diff,
- al.curr_day_diff1 as day_diff1,
- al.curr_day_diff2 as day_diff2,
- al.location_id as location_id,
- al.picking_id as picking_id,
- al.company_id as company_id,
- al.location_dest_id as location_dest_id,
- al.product_qty,
- al.out_qty as product_qty_out,
- al.in_qty as product_qty_in,
- al.partner_id as partner_id,
- al.product_id as product_id,
- al.state as state ,
- al.product_uom as product_uom,
- al.categ_id as categ_id,
- coalesce(al.type, 'other') as type,
- al.stock_journal as stock_journal,
- sum(al.in_value - al.out_value) as value
- FROM (SELECT
- CASE WHEN sp.type in ('out') THEN
- sum(sm.product_qty * pu.factor / pu2.factor)
- ELSE 0.0
- END AS out_qty,
- CASE WHEN sp.type in ('in') THEN
- sum(sm.product_qty * pu.factor / pu2.factor)
- ELSE 0.0
- END AS in_qty,
- CASE WHEN sp.type in ('out') THEN
- sum(sm.product_qty * pu.factor / pu2.factor) * pt.standard_price
- ELSE 0.0
- END AS out_value,
- CASE WHEN sp.type in ('in') THEN
- sum(sm.product_qty * pu.factor / pu2.factor) * pt.standard_price
- ELSE 0.0
- END AS in_value,
- min(sm.id) as sm_id,
- sm.date as dp,
- to_char(date_trunc('day',sm.date), 'YYYY') as curr_year,
- to_char(date_trunc('day',sm.date), 'MM') as curr_month,
- to_char(date_trunc('day',sm.date), 'YYYY-MM-DD') as curr_day,
- avg(date(sm.date)-date(sm.create_date)) as curr_day_diff,
- avg(date(sm.date_expected)-date(sm.create_date)) as curr_day_diff1,
- avg(date(sm.date)-date(sm.date_expected)) as curr_day_diff2,
+ min(sm.id) as id,
+ date_trunc('day', sm.date) as date,
+ to_char(date_trunc('day',sm.date), 'YYYY') as year,
+ to_char(date_trunc('day',sm.date), 'MM') as month,
+ to_char(date_trunc('day',sm.date), 'YYYY-MM-DD') as day,
+ avg(date(sm.date)-date(sm.create_date)) as day_diff,
+ avg(date(sm.date_expected)-date(sm.create_date)) as day_diff1,
+ avg(date(sm.date)-date(sm.date_expected)) as day_diff2,
sm.location_id as location_id,
+ sm.picking_id as picking_id,
+ sm.company_id as company_id,
sm.location_dest_id as location_dest_id,
sum(sm.product_qty) as product_qty,
- pt.categ_id as categ_id ,
+ sum(
+ (CASE WHEN sp.type in ('out') THEN
+ (sm.product_qty * pu.factor / pu2.factor)
+ ELSE 0.0
+ END)
+ ) as product_qty_out,
+ sum(
+ (CASE WHEN sp.type in ('in') THEN
+ (sm.product_qty * pu.factor / pu2.factor)
+ ELSE 0.0
+ END)
+ ) as product_qty_in,
sm.partner_id as partner_id,
sm.product_id as product_id,
- sm.picking_id as picking_id,
- sm.company_id as company_id,
- sm.state as state,
- sm.product_uom as product_uom,
- sp.type as type,
- sp.stock_journal_id AS stock_journal
+ sm.state as state,
+ sm.product_uom as product_uom,
+ pt.categ_id as categ_id ,
+ coalesce(sp.type, 'other') as type,
+ sp.stock_journal_id AS stock_journal,
+ sum(
+ (CASE WHEN sp.type in ('in') THEN
+ (sm.product_qty * pu.factor / pu2.factor) * pt.standard_price
+ ELSE 0.0
+ END)
+ -
+ (CASE WHEN sp.type in ('out') THEN
+ (sm.product_qty * pu.factor / pu2.factor) * pt.standard_price
+ ELSE 0.0
+ END)
+ ) as value
FROM
stock_move sm
LEFT JOIN stock_picking sp ON (sm.picking_id=sp.id)
@@ -129,16 +112,11 @@ class report_stock_move(osv.osv):
LEFT JOIN product_uom pu2 ON (sm.product_uom=pu2.id)
LEFT JOIN product_template pt ON (pp.product_tmpl_id=pt.id)
GROUP BY
- sm.id,sp.type, sm.date,sm.partner_id,
- sm.product_id,sm.state,sm.product_uom,sm.date_expected,
- sm.product_id,pt.standard_price, sm.picking_id, sm.product_qty,
- sm.company_id,sm.product_qty, sm.location_id,sm.location_dest_id,pu.factor,pt.categ_id, sp.stock_journal_id)
- AS al
- GROUP BY
- al.out_qty,al.in_qty,al.curr_year,al.curr_month,
- al.curr_day,al.curr_day_diff,al.curr_day_diff1,al.curr_day_diff2,al.dp,al.location_id,al.location_dest_id,
- al.partner_id,al.product_id,al.state,al.product_uom,
- al.picking_id,al.company_id,al.type,al.product_qty, al.categ_id, al.stock_journal
+ coalesce(sp.type, 'other'), date_trunc('day', sm.date), sm.partner_id,
+ sm.state, sm.product_uom, sm.date_expected,
+ sm.product_id, pt.standard_price, sm.picking_id,
+ sm.company_id, sm.location_id, sm.location_dest_id, pu.factor, pt.categ_id, sp.stock_journal_id,
+ year, month, day
)
""")
diff --git a/addons/stock/security/stock_security.xml b/addons/stock/security/stock_security.xml
index e51f20c67c9..aaf4333ece7 100644
--- a/addons/stock/security/stock_security.xml
+++ b/addons/stock/security/stock_security.xml
@@ -10,7 +10,7 @@
Manager
-
+
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index d818ca794d5..1484397b5a8 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -27,7 +27,7 @@ from itertools import groupby
from openerp.osv import fields, osv, orm
from openerp.tools.translate import _
-from openerp import netsvc
+from openerp import workflow
from openerp import tools
from openerp.tools import float_compare, DEFAULT_SERVER_DATETIME_FORMAT
import openerp.addons.decimal_precision as dp
@@ -159,6 +159,10 @@ class stock_location(osv.osv):
\n* Production: Virtual counterpart location for production operations: this location consumes the raw material and produces finished products
""", select = True),
# temporarily removed, as it's unused: 'allocation_method': fields.selection([('fifo', 'FIFO'), ('lifo', 'LIFO'), ('nearest', 'Nearest')], 'Allocation Method', required=True),
+
+ # as discussed on bug 765559, the main purpose of this field is to allow sorting the list of locations
+ # according to the displayed names, and reversing that sort by clicking on a column. It does not work for
+ # translated values though - so it needs fixing.
'complete_name': fields.function(_complete_name, type='char', size=256, string="Location Name",
store={'stock.location': (_get_sublocations, ['name', 'location_id'], 10)}),
@@ -239,6 +243,9 @@ class stock_location(osv.osv):
if location.chained_location_type == 'customer':
if partner:
result = partner.property_stock_customer
+ else:
+ loc_id = self.pool['res.partner'].default_get(cr, uid, ['property_stock_customer'], context=context)['property_stock_customer']
+ result = self.pool['stock.location'].browse(cr, uid, loc_id, context=context)
elif location.chained_location_type == 'fixed':
result = location.chained_location_id
if result:
@@ -779,11 +786,10 @@ class stock_picking(osv.osv):
""" Changes state of picking to available if moves are confirmed or waiting.
@return: True
"""
- wf_service = netsvc.LocalService("workflow")
for pick in self.browse(cr, uid, ids):
move_ids = [x.id for x in pick.move_lines if x.state in ['confirmed','waiting']]
self.pool.get('stock.move').force_assign(cr, uid, move_ids)
- wf_service.trg_write(uid, 'stock.picking', pick.id, cr)
+ workflow.trg_write(uid, 'stock.picking', pick.id, cr)
return True
def draft_force_assign(self, cr, uid, ids, *args):
@@ -800,23 +806,21 @@ class stock_picking(osv.osv):
""" Validates picking directly from draft state.
@return: True
"""
- wf_service = netsvc.LocalService("workflow")
self.draft_force_assign(cr, uid, ids)
for pick in self.browse(cr, uid, ids, context=context):
move_ids = [x.id for x in pick.move_lines]
self.pool.get('stock.move').force_assign(cr, uid, move_ids)
- wf_service.trg_write(uid, 'stock.picking', pick.id, cr)
+ workflow.trg_write(uid, 'stock.picking', pick.id, cr)
return self.action_process(
cr, uid, ids, context=context)
def cancel_assign(self, cr, uid, ids, *args):
""" Cancels picking and moves.
@return: True
"""
- wf_service = netsvc.LocalService("workflow")
for pick in self.browse(cr, uid, ids):
move_ids = [x.id for x in pick.move_lines]
self.pool.get('stock.move').cancel_assign(cr, uid, move_ids)
- wf_service.trg_write(uid, 'stock.picking', pick.id, cr)
+ workflow.trg_write(uid, 'stock.picking', pick.id, cr)
return True
def action_assign_wkf(self, cr, uid, ids, context=None):
@@ -1231,7 +1235,6 @@ class stock_picking(osv.osv):
currency_obj = self.pool.get('res.currency')
uom_obj = self.pool.get('product.uom')
sequence_obj = self.pool.get('ir.sequence')
- wf_service = netsvc.LocalService("workflow")
for pick in self.browse(cr, uid, ids, context=context):
new_picking = None
complete, too_many, too_few = [], [], []
@@ -1263,17 +1266,17 @@ class stock_picking(osv.osv):
context['currency_id'] = move_currency_id
qty = uom_obj._compute_qty(cr, uid, product_uom, product_qty, product.uom_id.id)
- if product.id in product_avail:
- product_avail[product.id] += qty
- else:
+ if product.id not in product_avail:
+ # keep track of stock on hand including processed lines not yet marked as done
product_avail[product.id] = product.qty_available
if qty > 0:
new_price = currency_obj.compute(cr, uid, product_currency,
- move_currency_id, product_price)
+ move_currency_id, product_price, round=False)
new_price = uom_obj._compute_price(cr, uid, product_uom, new_price,
product.uom_id.id)
- if product.qty_available <= 0:
+ if product_avail[product.id] <= 0:
+ product_avail[product.id] = 0
new_std_price = new_price
else:
# Get the standard price
@@ -1289,6 +1292,9 @@ class stock_picking(osv.osv):
{'price_unit': product_price,
'price_currency_id': product_currency})
+ product_avail[product.id] += qty
+
+
for move in too_few:
product_qty = move_product_qty[move.id]
@@ -1354,10 +1360,10 @@ class stock_picking(osv.osv):
self.write(cr, uid, [pick.id], {'backorder_id': new_picking})
self.action_move(cr, uid, [new_picking], context=context)
self.signal_button_done(cr, uid, [new_picking])
- wf_service.trg_write(uid, 'stock.picking', pick.id, cr)
- delivered_pack_id = new_picking
+ workflow.trg_write(uid, 'stock.picking', pick.id, cr)
+ delivered_pack_id = pick.id
back_order_name = self.browse(cr, uid, delivered_pack_id, context=context).name
- self.message_post(cr, uid, ids, body=_("Back order %s has been created.") % (back_order_name), context=context)
+ self.message_post(cr, uid, new_picking, body=_("Back order %s has been created.") % (back_order_name), context=context)
else:
self.action_move(cr, uid, [pick.id], context=context)
self.signal_button_done(cr, uid, [pick.id])
@@ -1705,7 +1711,8 @@ class stock_move(osv.osv):
if location_xml_id:
try:
location_model, location_id = mod_obj.get_object_reference(cr, uid, 'stock', location_xml_id)
- self.pool.get('stock.location').check_access_rule(cr, uid, [location_id], 'read', context=context)
+ with tools.mute_logger('openerp.osv.orm'):
+ self.pool.get('stock.location').check_access_rule(cr, uid, [location_id], 'read', context=context)
except (orm.except_orm, ValueError):
location_id = False
@@ -1739,7 +1746,8 @@ class stock_move(osv.osv):
if location_xml_id:
try:
location_model, location_id = mod_obj.get_object_reference(cr, uid, 'stock', location_xml_id)
- self.pool.get('stock.location').check_access_rule(cr, uid, [location_id], 'read', context=context)
+ with tools.mute_logger('openerp.osv.orm'):
+ self.pool.get('stock.location').check_access_rule(cr, uid, [location_id], 'read', context=context)
except (orm.except_orm, ValueError):
location_id = False
@@ -1963,12 +1971,14 @@ class stock_move(osv.osv):
location_dest_id = 'stock_location_customers'
try:
source_location = mod_obj.get_object_reference(cr, uid, 'stock', location_source_id)
- self.pool.get('stock.location').check_access_rule(cr, uid, [source_location[1]], 'read', context=context)
+ with tools.mute_logger('openerp.osv.orm'):
+ self.pool.get('stock.location').check_access_rule(cr, uid, [source_location[1]], 'read', context=context)
except (orm.except_orm, ValueError):
source_location = False
try:
dest_location = mod_obj.get_object_reference(cr, uid, 'stock', location_dest_id)
- self.pool.get('stock.location').check_access_rule(cr, uid, [dest_location[1]], 'read', context=context)
+ with tools.mute_logger('openerp.osv.orm'):
+ self.pool.get('stock.location').check_access_rule(cr, uid, [dest_location[1]], 'read', context=context)
except (orm.except_orm, ValueError):
dest_location = False
return {'value':{'location_id': source_location and source_location[1] or False, 'location_dest_id': dest_location and dest_location[1] or False}}
@@ -2096,7 +2106,7 @@ class stock_move(osv.osv):
})
new_moves.append(self.browse(cr, uid, [new_id])[0])
if pickid:
- self.signal_button_confirm(cr, uid, [pickid])
+ self.pool.get('stock.picking').signal_button_confirm(cr, uid, [pickid])
if new_moves:
new_moves += self.create_chained_picking(cr, uid, new_moves, context)
return new_moves
@@ -2126,10 +2136,9 @@ class stock_move(osv.osv):
@return: True
"""
self.write(cr, uid, ids, {'state': 'assigned'})
- wf_service = netsvc.LocalService('workflow')
for move in self.browse(cr, uid, ids, context):
if move.picking_id:
- wf_service.trg_write(uid, 'stock.picking', move.picking_id.id, cr)
+ workflow.trg_write(uid, 'stock.picking', move.picking_id.id, cr)
return True
def cancel_assign(self, cr, uid, ids, context=None):
@@ -2141,10 +2150,9 @@ class stock_move(osv.osv):
# fix for bug lp:707031
# called write of related picking because changing move availability does
# not trigger workflow of picking in order to change the state of picking
- wf_service = netsvc.LocalService('workflow')
for move in self.browse(cr, uid, ids, context):
if move.picking_id:
- wf_service.trg_write(uid, 'stock.picking', move.picking_id.id, cr)
+ workflow.trg_write(uid, 'stock.picking', move.picking_id.id, cr)
return True
#
@@ -2182,6 +2190,7 @@ class stock_move(osv.osv):
while res:
r = res.pop(0)
+ product_uos_qty = self.pool.get('stock.move').onchange_quantity(cr, uid, ids, move.product_id.id, r[0], move.product_id.uom_id.id, move.product_id.uos_id.id)['value']['product_uos_qty']
move_id = self.copy(cr, uid, move.id, {'product_uos_qty': product_uos_qty, 'product_qty': r[0], 'location_id': r[1]})
done.append(move_id)
if done:
@@ -2190,8 +2199,7 @@ class stock_move(osv.osv):
if count:
for pick_id in pickings:
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_write(uid, 'stock.picking', pick_id, cr)
+ workflow.trg_write(uid, 'stock.picking', pick_id, cr)
return count
def setlast_tracking(self, cr, uid, ids, context=None):
@@ -2218,7 +2226,6 @@ class stock_move(osv.osv):
return True
if context is None:
context = {}
- wf_service = netsvc.LocalService("workflow")
pickings = set()
for move in self.browse(cr, uid, ids, context=context):
if move.state in ('confirmed', 'waiting', 'assigned', 'draft'):
@@ -2227,7 +2234,7 @@ class stock_move(osv.osv):
if move.move_dest_id and move.move_dest_id.state == 'waiting':
self.write(cr, uid, [move.move_dest_id.id], {'state': 'confirmed'})
if context.get('call_unlink',False) and move.move_dest_id.picking_id:
- wf_service.trg_write(uid, 'stock.picking', move.move_dest_id.picking_id.id, cr)
+ workflow.trg_write(uid, 'stock.picking', move.move_dest_id.picking_id.id, cr)
self.write(cr, uid, ids, {'state': 'cancel', 'move_dest_id': False})
if not context.get('call_unlink',False):
for pick in self.pool.get('stock.picking').browse(cr, uid, list(pickings), context=context):
@@ -2235,7 +2242,7 @@ class stock_move(osv.osv):
self.pool.get('stock.picking').write(cr, uid, [pick.id], {'state': 'cancel'})
for id in ids:
- wf_service.trg_trigger(uid, 'stock.move', id, cr)
+ workflow.trg_trigger(uid, 'stock.move', id, cr)
return True
def _get_accounting_data_for_valuation(self, cr, uid, move, context=None):
@@ -2355,7 +2362,7 @@ class stock_move(osv.osv):
{
'journal_id': j_id,
'line_id': move_lines,
- 'ref': move.picking_id and move.picking_id.name})
+ 'ref': move.picking_id and move.picking_id.name}, context=context)
def action_done(self, cr, uid, ids, context=None):
""" Makes the move done and if all moves are done, it will finish the picking.
@@ -2363,7 +2370,6 @@ class stock_move(osv.osv):
"""
picking_ids = []
move_ids = []
- wf_service = netsvc.LocalService("workflow")
if context is None:
context = {}
@@ -2391,7 +2397,7 @@ class stock_move(osv.osv):
if move.move_dest_id.state in ('waiting', 'confirmed'):
self.force_assign(cr, uid, [move.move_dest_id.id], context=context)
if move.move_dest_id.picking_id:
- wf_service.trg_write(uid, 'stock.picking', move.move_dest_id.picking_id.id, cr)
+ workflow.trg_write(uid, 'stock.picking', move.move_dest_id.picking_id.id, cr)
if move.move_dest_id.auto_validate:
self.action_done(cr, uid, [move.move_dest_id.id], context=context)
@@ -2404,10 +2410,10 @@ class stock_move(osv.osv):
self.write(cr, uid, move_ids, {'state': 'done', 'date': time.strftime(DEFAULT_SERVER_DATETIME_FORMAT)}, context=context)
for id in move_ids:
- wf_service.trg_trigger(uid, 'stock.move', id, cr)
+ workflow.trg_trigger(uid, 'stock.move', id, cr)
for pick_id in picking_ids:
- wf_service.trg_write(uid, 'stock.picking', pick_id, cr)
+ workflow.trg_write(uid, 'stock.picking', pick_id, cr)
return True
@@ -2693,7 +2699,7 @@ class stock_move(osv.osv):
qty = uom_obj._compute_qty(cr, uid, product_uom, product_qty, product.uom_id.id)
if qty > 0:
new_price = currency_obj.compute(cr, uid, product_currency,
- move_currency_id, product_price)
+ move_currency_id, product_price, round=False)
new_price = uom_obj._compute_price(cr, uid, product_uom, new_price,
product.uom_id.id)
if product.qty_available <= 0:
@@ -2905,7 +2911,8 @@ class stock_inventory_line(osv.osv):
def _default_stock_location(self, cr, uid, context=None):
try:
location_model, location_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'stock', 'stock_location_stock')
- self.pool.get('stock.location').check_access_rule(cr, uid, [location_id], 'read', context=context)
+ with tools.mute_logger('openerp.osv.orm'):
+ self.pool.get('stock.location').check_access_rule(cr, uid, [location_id], 'read', context=context)
except (orm.except_orm, ValueError):
location_id = False
return location_id
@@ -2948,7 +2955,8 @@ class stock_warehouse(osv.osv):
def _default_lot_input_stock_id(self, cr, uid, context=None):
try:
lot_input_stock_model, lot_input_stock_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'stock', 'stock_location_stock')
- self.pool.get('stock.location').check_access_rule(cr, uid, [lot_input_stock_id], 'read', context=context)
+ with tools.mute_logger('openerp.osv.orm'):
+ self.pool.get('stock.location').check_access_rule(cr, uid, [lot_input_stock_id], 'read', context=context)
except (ValueError, orm.except_orm):
# the user does not have read access on the location or it does not exists
lot_input_stock_id = False
@@ -2957,7 +2965,8 @@ class stock_warehouse(osv.osv):
def _default_lot_output_id(self, cr, uid, context=None):
try:
lot_output_model, lot_output_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'stock', 'stock_location_output')
- self.pool.get('stock.location').check_access_rule(cr, uid, [lot_output_id], 'read', context=context)
+ with tools.mute_logger('openerp.osv.orm'):
+ self.pool.get('stock.location').check_access_rule(cr, uid, [lot_output_id], 'read', context=context)
except (ValueError, orm.except_orm):
# the user does not have read access on the location or it does not exists
lot_output_id = False
@@ -3027,6 +3036,13 @@ class stock_picking_in(osv.osv):
"""Send the unsubscribe action on stock.picking model to match with subscribe"""
return self.pool.get('stock.picking').message_unsubscribe(*args, **kwargs)
+ def default_get(self, cr, uid, fields_list, context=None):
+ # merge defaults from stock.picking with possible defaults defined on stock.picking.in
+ defaults = self.pool['stock.picking'].default_get(cr, uid, fields_list, context=context)
+ in_defaults = super(stock_picking_in, self).default_get(cr, uid, fields_list, context=context)
+ defaults.update(in_defaults)
+ return defaults
+
_columns = {
'backorder_id': fields.many2one('stock.picking.in', 'Back Order of', states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="If this shipment was split, then this field links to the shipment which contains the already processed part.", select=True),
'state': fields.selection(
@@ -3100,6 +3116,13 @@ class stock_picking_out(osv.osv):
"""Send the unsubscribe action on stock.picking model to match with subscribe"""
return self.pool.get('stock.picking').message_unsubscribe(*args, **kwargs)
+ def default_get(self, cr, uid, fields_list, context=None):
+ # merge defaults from stock.picking with possible defaults defined on stock.picking.out
+ defaults = self.pool['stock.picking'].default_get(cr, uid, fields_list, context=context)
+ out_defaults = super(stock_picking_out, self).default_get(cr, uid, fields_list, context=context)
+ defaults.update(out_defaults)
+ return defaults
+
_columns = {
'backorder_id': fields.many2one('stock.picking.out', 'Back Order of', states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="If this shipment was split, then this field links to the shipment which contains the already processed part.", select=True),
'state': fields.selection(
diff --git a/addons/stock/stock_demo.xml b/addons/stock/stock_demo.xml
index eb5a6c46380..d4e0f68cc78 100644
--- a/addons/stock/stock_demo.xml
+++ b/addons/stock/stock_demo.xml
@@ -180,7 +180,7 @@
- Your Company, Chicago shop
+ Your Company, Chicago1
@@ -205,7 +205,7 @@
- Your Company, Chicago shop
+ Your Company
@@ -245,7 +245,7 @@
internalnone
- Your Company, Chicago shop
+ Your Company, Chicagomanual
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index f74a536ca19..de76c3e066a 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -1050,7 +1050,7 @@
-
+
@@ -1257,7 +1257,7 @@
-
+
diff --git a/addons/stock/test/shipment.yml b/addons/stock/test/shipment.yml
index 5f2f4686621..0a4f8cd9842 100644
--- a/addons/stock/test/shipment.yml
+++ b/addons/stock/test/shipment.yml
@@ -66,6 +66,8 @@
-
!python {model: stock.partial.picking}: |
context.update({'active_model': 'stock.picking', 'active_id': ref('incomming_shipment'), 'active_ids': [ref('incomming_shipment')]})
+-
+ I make a partial picking and moves done.
-
!python {model: stock.partial.picking}: |
partial = []
diff --git a/addons/stock/tests/test_multicompany.py b/addons/stock/tests/test_multicompany.py
index fb840a846ea..f0175791b50 100644
--- a/addons/stock/tests/test_multicompany.py
+++ b/addons/stock/tests/test_multicompany.py
@@ -56,7 +56,7 @@ class TestStockMulticompany(common.TransactionCase):
try:
self.stock_location.check_access_rule(cr, uid, [defaults[field]], 'read', context)
except Exception, exc:
- assert False, "unreadable location %s: %s" % (field, exc)
+ self.fail("unreadable location %s: %s" % (field, exc))
self.assertEqual(defaults['type'], type, "wrong move type")
@@ -71,7 +71,7 @@ class TestStockMulticompany(common.TransactionCase):
try:
self.stock_location.check_access_rule(cr, uid, [result[field]], 'read', context)
except Exception, exc:
- assert False, "unreadable location %s: %s" % (field, exc)
+ self.fail("unreadable location %s: %s" % (field, exc))
def test_20_multicompany_default_stock_fill_inventory(self):
@@ -82,7 +82,7 @@ class TestStockMulticompany(common.TransactionCase):
try:
self.stock_location.check_access_rule(cr, uid, [defaults['location_id']], 'read', context)
except Exception, exc:
- assert False, "unreadable source location: %s" % exc
+ self.fail("unreadable source location: %s" % exc)
def test_30_multicompany_default_warehouse_location(self):
@@ -95,4 +95,4 @@ class TestStockMulticompany(common.TransactionCase):
try:
self.stock_location.check_access_rule(cr, uid, [defaults[field]], 'read', context)
except Exception, exc:
- assert False, "unreadable default %s: %s" % (field, exc)
+ self.fail("unreadable default %s: %s" % (field, exc))
diff --git a/addons/stock/wizard/stock_fill_inventory.py b/addons/stock/wizard/stock_fill_inventory.py
index b367e6069d8..47ac45a90ac 100644
--- a/addons/stock/wizard/stock_fill_inventory.py
+++ b/addons/stock/wizard/stock_fill_inventory.py
@@ -21,15 +21,19 @@
from openerp.osv import fields, osv, orm
from openerp.tools.translate import _
+from openerp.tools import mute_logger
class stock_fill_inventory(osv.osv_memory):
_name = "stock.fill.inventory"
_description = "Import Inventory"
def _default_location(self, cr, uid, ids, context=None):
+ location = self.pool.get('ir.model.data').get_object(cr, uid, 'stock', 'stock_location_stock')
+ if not location.exists():
+ return False
try:
- location = self.pool.get('ir.model.data').get_object(cr, uid, 'stock', 'stock_location_stock')
- location.check_access_rule('read', context=context)
+ with mute_logger('openerp.osv.orm'):
+ location.check_access_rule('read', context=context)
location_id = location.id
except (ValueError, orm.except_orm), e:
return False
diff --git a/addons/stock/wizard/stock_invoice_onshipping_view.xml b/addons/stock/wizard/stock_invoice_onshipping_view.xml
index f93e3b1f093..f566b956091 100644
--- a/addons/stock/wizard/stock_invoice_onshipping_view.xml
+++ b/addons/stock/wizard/stock_invoice_onshipping_view.xml
@@ -21,7 +21,7 @@
-
-
+
diff --git a/addons/survey/i18n/zh_CN.po b/addons/survey/i18n/zh_CN.po
index 5ffcd0f526c..ce13764034b 100644
--- a/addons/survey/i18n/zh_CN.po
+++ b/addons/survey/i18n/zh_CN.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
-"PO-Revision-Date: 2012-11-28 14:29+0000\n"
-"Last-Translator: 盈通 ccdos \n"
+"PO-Revision-Date: 2013-11-19 10:58+0000\n"
+"Last-Translator: Guipo Hao \n"
"Language-Team: Chinese (Simplified) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-09-12 06:07+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-11-20 05:25+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
#. module: survey
#: view:survey.question.column.heading:0
@@ -425,6 +425,23 @@ msgid ""
"\n"
"Thanks,"
msgstr ""
+"\n"
+"Hello %%(name)s, \n"
+"\n"
+"\n"
+"恳请您花费一些时间帮助我们做一下调查。: \n"
+"%s\n"
+"\n"
+"您能通过下列参数访问此次调查:\n"
+" URL: %s\n"
+"您的注册 ID: %%(login)s\n"
+"\n"
+"您的密码: %%(passwd)s\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"再次感谢,"
#. module: survey
#: field:survey.response.line,single_text:0
@@ -902,6 +919,15 @@ msgid ""
" \n"
" "
msgstr ""
+"
- A great way to catch reader's attention is to tell a story.
+ A great way to catch your reader's attention is to tell a story.
Everything you consider writing can be told as a story.
- Great stories have personality. Personality
- connected to your person. This shows up in small
- quirks like word choices or phrases. Write as you
- write, not as someone else would write.
+ Great stories have personality. Consider telling
+ a great story that provides personality. Writing a story
+ with personality for potential clients will asist with
+ making a relationship connection. This shows up in small
+ quirks like word choices or phrases. Write from your point
+ of view, not from someone else's experience.
- Great stories are for everyone when written for
- just one. If you try to write with a wide general
- audience in mind, your story will ring false. It
- will be bland. No one will be interested. Write for
- one person. If it’s genuine for the one, it’s
- genuine for the rest.
+ Great stories are for everyone even when only written for
+ just one person. If you try to write with a wide general
+ audience in mind, your story will ring false and be bland.
+ No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.
@@ -272,44 +232,32 @@
-
-
A Great Title
-
And a good subtitle
-
-
-
-
Streamline Recruitments
-
- Post job offers and keep track of each application
- received. Follow applicants in your recruitment process
- with the smart kanban view.
-
- Save time by automating some communications with email
- templates. Resumes are indexed automatically, allowing
- you to easily find for specific profiles.
-
-
-
Enterprise Social Network
+
Feature One
- Break down information silos. Share knowledge and best
- practices amongst all employees. Follow specific people
- or documents and join groups of interests to share
- expertise and documents.
-
- Interact with your collegues in real time with live chat.
+ Adapt these three columns to fit you design need.
+ To duplicate, delete or move columns, select the
+ column and use the top icons to perform your action.
-
Leaves Management
+
Feature Two
- Keep track of the vacation days accrued by each
- employee. Employees enter their requests (paid
- holidays, sick leave, etc), for managers to approve and
- validate. It's all done in just a few clicks. The
- agenda of each employee is updated accordingly.
+ To add a fourth column, reduce the size of these
+ three columns using the right icon of each block.
+ Then, duplicate one of the column to create a new
+ one as a copy.
+
+
+
+
+
Feature Three
+
+ Delete the above image or replace it with a picture
+ that illustrates your message. Click on the picture to
+ change it's rounded corner style.
+ Write a quote here from one of your customers. Quotes are a
+ great way to build confidence in your products or services.
+
+ Author of this quote
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenERP provides essential platform for our project management.
+ Things are better organized and more visible with it.
+
+ John Doe, CEO
+
+
+
+
+
+
+
+
+
+
+
-
+
Well
- Explain the benefit you offer. Don't write about products or
+ Explain the benefits you offer. Don't write about products or
services here, write about solutions.
-
+
Quote
- Write here a quote from one of your customer. Quotes are are
- great way to give confidence in your products or services.
+ Write a quote here from one of your customers. Quotes are a
+ great way to build confidence in your products or services.
Author of this quote
-
+
Panel
@@ -358,9 +366,8 @@
Feature Title
- Panels are great to compare offers or to emphasize on
- key features. To compare products, use panels inside
- columns.
+ Panels are a great tool to compare offers or to emphasize on
+ key features. To compare products, use the inside columns.
@@ -634,8 +641,8 @@
- Write here a quote from one of your customer. Quotes are are
- great way to give confidence in your products or services.
+ Write a quote here from one of your customers. Quotes are a
+ great way to build confidence in your products or services.
The following error was raised in the website controller
+
Error message:
-
-
-
-
404: Page not found!
-
- The page you were looking for could not be found; it is possible you have
- typed the address incorrectly, but it has most probably been removed due
- to the recent website reorganisation.
-
-
Maybe you were looking for one of these popular pages ?
- The page you were looking for could not be
- authorized.
-
-
-
-
-
- Maybe you were looking for one of these
- popular pages ?
+ The page you were looking for could not be found; it is possible you have
+ typed the address incorrectly, but it has most probably been removed due
+ to the recent website reorganisation.
+
Maybe you were looking for one of these popular pages ?
- We are a team of passionated people whose goal is to improve everyone's
- life through disruptive products. We build great products to solve your
- business problems.
-
-
- Our products are designed for small to medium companies willing to optimize
- their performance.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
What do customers say about us...
-
-
-
-
Write here a quote from one of your customer. Quotes are are great way to give confidence in your products or services.
- Author of this quote
-
-
-
-
-
OpenERP provides essential platform for our project management. Things are better organized and more visible with it.
- John Doe, CEO
-
-
-
-
-
+
+
Contact us about anything related to our company or services.
+
We'll do our best to get back to you as soon as possible.
+ We are a team of passionate people whose goal is to improve everyone's
+ life through disruptive products. We build great products to solve your
+ business problems.
+
+
+ Our products are designed for small to medium size companies willing to optimize
+ their performance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
What do customers say about us...?
+
+
+
+
Write here a quote from one of your customer. Quotes are are great way to give confidence in your products or services.
+ Author of this quote
+
+
+
+
+
OpenERP provides essential platform for our project management. Things are better organized and more visible with it.