[tryton-debian-vcs] tryton-modules-account branch debian updated. debian/3.4.2-1-3-gee46d51
Mathias Behrle
tryton-debian-vcs at alioth.debian.org
Thu Apr 23 15:26:00 UTC 2015
The following commit has been merged in the debian branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/tryton-modules-account.git;a=commitdiff;h=debian/3.4.2-1-3-gee46d51
commit ee46d5171a4baf6584980ccd791bef2a7d58bb3f
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Thu Apr 23 17:25:38 2015 +0200
Updating Depends.
diff --git a/debian/control b/debian/control
index e48daa9..23faba8 100644
--- a/debian/control
+++ b/debian/control
@@ -20,6 +20,7 @@ Depends:
python-dateutil,
python-pkg-resources,
python-sql,
+ python-simpleeval,
tryton-modules-company (>= ${version:major}),
tryton-modules-currency (>= ${version:major}),
tryton-modules-party (>= ${version:major}),
commit 9e0ab9a73c5fe81525d888b054674f1192bfe63a
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Thu Apr 23 16:59:47 2015 +0200
Merging upstream version 3.6.0.
diff --git a/CHANGELOG b/CHANGELOG
index fc682ca..96b2931 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,9 +1,15 @@
-Version 3.4.2 - 2015-03-02
+Version 3.6.0 - 2015-04-20
* Bug fixes (see mercurial logs for details)
+* Add support for PyPy
+* Add move template
+* Improve payable/receivable lines
+* Enforce same sign between amount_second_currency and debit - credit
+* Allow tax modifying the unit price
+* Add reverse_compute on Tax
* Add fix_party script
-
-Version 3.4.1 - 2014-12-03
-* Bug fixes (see mercurial logs for details)
+* Allow to display only the balance in the General Ledger
+* Add TaxableMixin
+* Allow to set a description to cancel move
Version 3.4.0 - 2014-10-20
* Bug fixes (see mercurial logs for details)
diff --git a/INSTALL b/INSTALL
index e627dbf..9a7bc2c 100644
--- a/INSTALL
+++ b/INSTALL
@@ -7,6 +7,7 @@ Prerequisites
* Python 2.7 or later (http://www.python.org/)
* python-dateutil (http://labix.org/python-dateutil)
* python-sql (http://code.google.com/p/python-sql/)
+ * simpleeval (https://github.com/danthedeckie/simpleeval)
* trytond (http://www.tryton.org/)
* trytond_company (http://www.tryton.org/)
* trytond_party (http://www.tryton.org/)
diff --git a/PKG-INFO b/PKG-INFO
index 8456846..8e8fc75 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond_account
-Version: 3.4.2
+Version: 3.6.0
Summary: Tryton module for accounting
Home-page: http://www.tryton.org/
Author: Tryton
Author-email: issue_tracker at tryton.org
License: GPL-3
-Download-URL: http://downloads.tryton.org/3.4/
+Download-URL: http://downloads.tryton.org/3.6/
Description: trytond_account
===============
@@ -64,5 +64,7 @@ Classifier: Natural Language :: Slovenian
Classifier: Natural Language :: Spanish
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Office/Business
Classifier: Topic :: Office/Business :: Financial :: Accounting
diff --git a/__init__.py b/__init__.py
index c38770f..fedf7d5 100644
--- a/__init__.py
+++ b/__init__.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from trytond.pool import Pool
from .fiscalyear import *
@@ -8,6 +8,7 @@ from .configuration import *
from .period import *
from .journal import *
from .move import *
+from .move_template import *
from .tax import *
from .party import *
@@ -47,6 +48,7 @@ def register():
OpenJournalAsk,
ReconcileLinesWriteOff,
ReconcileShow,
+ CancelMovesDefault,
FiscalYearLine,
FiscalYear2,
PrintGeneralJournalStart,
@@ -65,6 +67,12 @@ def register():
AccountTemplate2,
AccountTax,
Account2,
+ MoveTemplate,
+ MoveTemplateKeyword,
+ MoveLineTemplate,
+ TaxLineTemplate,
+ CreateMoveTemplate,
+ CreateMoveKeywords,
Party,
module='account', type_='model')
Pool.register(
@@ -91,6 +99,7 @@ def register():
Reconcile,
CancelMoves,
PrintGeneralJournal,
+ CreateMove,
OpenChartTaxCode,
OpenTaxCode,
module='account', type_='wizard')
diff --git a/account.py b/account.py
index ecf25b5..7f78c69 100644
--- a/account.py
+++ b/account.py
@@ -1,10 +1,12 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from decimal import Decimal
import datetime
import operator
from itertools import izip, groupby
-from sql import Column, Literal
+from functools import wraps
+
+from sql import Column, Literal, Null
from sql.aggregate import Sum
from sql.conditionals import Coalesce
@@ -30,6 +32,14 @@ __all__ = ['TypeTemplate', 'Type', 'OpenType', 'AccountTemplate', 'Account',
'OpenAgedBalanceStart', 'OpenAgedBalance', 'AgedBalance']
+def inactive_records(func):
+ @wraps(func)
+ def wrapper(*args, **kwargs):
+ with Transaction().set_context(active_test=False):
+ return func(*args, **kwargs)
+ return wrapper
+
+
class TypeTemplate(ModelSQL, ModelView):
'Account Type Template'
__name__ = 'account.account.type.template'
@@ -70,7 +80,7 @@ class TypeTemplate(ModelSQL, ModelView):
@staticmethod
def order_sequence(tables):
table, _ = tables[None]
- return [table.sequence == None, table.sequence]
+ return [table.sequence == Null, table.sequence]
@staticmethod
def default_balance_sheet():
@@ -213,7 +223,7 @@ class Type(ModelSQL, ModelView):
@staticmethod
def order_sequence(tables):
table, _ = tables[None]
- return [table.sequence == None, table.sequence]
+ return [table.sequence == Null, table.sequence]
@staticmethod
def default_balance_sheet():
@@ -377,6 +387,12 @@ class AccountTemplate(ModelSQL, ModelView):
'invisible': Eval('kind') == 'view',
},
depends=['kind'])
+ general_ledger_balance = fields.Boolean('General Ledger Balance',
+ states={
+ 'invisible': Eval('kind') == 'view',
+ },
+ depends=['kind'],
+ help="Display only the balance in the general ledger report")
@classmethod
def __setup__(cls):
@@ -405,6 +421,10 @@ class AccountTemplate(ModelSQL, ModelView):
def default_party_required():
return False
+ @staticmethod
+ def default_general_ledger_balance():
+ return False
+
def get_rec_name(self, name):
if self.code:
return self.code + ' - ' + self.name
@@ -413,7 +433,11 @@ class AccountTemplate(ModelSQL, ModelView):
@classmethod
def search_rec_name(cls, name, clause):
- return ['OR',
+ if clause[1].startswith('!') or clause[1].startswith('not '):
+ bool_op = 'AND'
+ else:
+ bool_op = 'OR'
+ return [bool_op,
('code',) + tuple(clause[1:]),
(cls._rec_name,) + tuple(clause[1:]),
]
@@ -435,6 +459,10 @@ class AccountTemplate(ModelSQL, ModelView):
res['deferral'] = self.deferral
if not account or account.party_required != self.party_required:
res['party_required'] = self.party_required
+ if (not account
+ or account.general_ledger_balance !=
+ self.general_ledger_balance):
+ res['general_ledger_balance'] = self.general_ledger_balance
if not account or account.template != self:
res['template'] = self.id
return res
@@ -598,6 +626,12 @@ class Account(ModelSQL, ModelView):
'invisible': Eval('kind') == 'view',
},
depends=['kind'])
+ general_ledger_balance = fields.Boolean('General Ledger Balance',
+ states={
+ 'invisible': Eval('kind') == 'view',
+ },
+ depends=['kind'],
+ help="Display only the balance in the general ledger report")
template = fields.Many2One('account.account.template', 'Template')
@classmethod
@@ -648,6 +682,10 @@ class Account(ModelSQL, ModelView):
return False
@staticmethod
+ def default_general_ledger_balance():
+ return False
+
+ @staticmethod
def default_kind():
return 'view'
@@ -817,7 +855,11 @@ class Account(ModelSQL, ModelView):
@classmethod
def search_rec_name(cls, name, clause):
- return ['OR',
+ if clause[1].startswith('!') or clause[1].startswith('not '):
+ bool_op = 'AND'
+ else:
+ bool_op = 'OR'
+ return [bool_op,
('code',) + tuple(clause[1:]),
(cls._rec_name,) + tuple(clause[1:]),
]
@@ -998,7 +1040,11 @@ class AccountDeferral(ModelSQL, ModelView):
@classmethod
def search_rec_name(cls, name, clause):
- return ['OR',
+ if clause[1].startswith('!') or clause[1].startswith('not '):
+ bool_op = 'AND'
+ else:
+ bool_op = 'OR'
+ return [bool_op,
('account.rec_name',) + tuple(clause[1:]),
('fiscalyear.rec_name',) + tuple(clause[1:]),
]
@@ -1087,10 +1133,8 @@ class PrintGeneralLedgerStart(ModelView):
@fields.depends('fiscalyear')
def on_change_fiscalyear(self):
- return {
- 'start_period': None,
- 'end_period': None,
- }
+ self.start_period = None
+ self.end_period = None
class PrintGeneralLedger(Wizard):
@@ -1130,7 +1174,9 @@ class GeneralLedger(Report):
__name__ = 'account.general_ledger'
@classmethod
- def parse(cls, report, objects, data, localcontext):
+ def get_context(cls, records, data):
+ report_context = super(GeneralLedger, cls).get_context(records, data)
+
pool = Pool()
Account = pool.get('account.account')
Period = pool.get('account.period')
@@ -1151,7 +1197,9 @@ class GeneralLedger(Report):
('fiscalyear', '=', data['fiscalyear']),
('end_date', '<=', start_period.start_date),
])
- start_period_ids = [p.id for p in start_periods]
+ start_period_ids += [p.id for p in start_periods]
+ else:
+ start_period = None
with Transaction().set_context(
fiscalyear=data['fiscalyear'],
@@ -1175,6 +1223,7 @@ class GeneralLedger(Report):
end_periods = Period.search([
('fiscalyear', '=', data['fiscalyear']),
])
+ end_period = None
end_period_ids = [p.id for p in end_periods]
with Transaction().set_context(
@@ -1186,31 +1235,28 @@ class GeneralLedger(Report):
for account in end_accounts:
id2end_account[account.id] = account
- periods = end_periods
- periods.sort(lambda x, y: cmp(x.start_date, y.start_date))
- localcontext['start_period'] = periods[0]
- periods.sort(lambda x, y: cmp(x.end_date, y.end_date))
- localcontext['end_period'] = periods[-1]
-
if not data['empty_account']:
account2lines = dict(cls.get_lines(accounts,
end_periods, data['posted']))
accounts = Account.browse([a.id for a in accounts
if a in account2lines])
- account_id2lines = cls.lines(accounts,
+ account_id2lines = cls.lines(
+ [a for a in accounts if not a.general_ledger_balance],
list(set(end_periods).difference(set(start_periods))),
data['posted'])
- localcontext['accounts'] = accounts
- localcontext['id2start_account'] = id2start_account
- localcontext['id2end_account'] = id2end_account
- localcontext['digits'] = company.currency.digits
- localcontext['lines'] = lambda account_id: account_id2lines[account_id]
- localcontext['company'] = company
+ report_context['accounts'] = accounts
+ report_context['id2start_account'] = id2start_account
+ report_context['id2end_account'] = id2end_account
+ report_context['digits'] = company.currency.digits
+ report_context['lines'] = \
+ lambda account_id: account_id2lines[account_id]
+ report_context['company'] = company
+ report_context['start_period'] = start_period
+ report_context['end_period'] = end_period
- return super(GeneralLedger, cls).parse(report, objects, data,
- localcontext)
+ return report_context
@classmethod
def get_lines(cls, accounts, periods, posted):
@@ -1224,12 +1270,10 @@ class GeneralLedger(Report):
clause.append(('move.state', '=', 'posted'))
lines = MoveLine.search(clause,
order=[
- ('account', 'ASC'), # TODO replace by account.id
+ ('account.id', 'ASC'),
('date', 'ASC'),
])
- key = operator.attrgetter('account')
- lines.sort(key=key)
- return groupby(lines, key)
+ return groupby(lines, operator.attrgetter('account'))
@classmethod
def lines(cls, accounts, periods, posted):
@@ -1303,10 +1347,8 @@ class PrintTrialBalanceStart(ModelView):
@fields.depends('fiscalyear')
def on_change_fiscalyear(self):
- return {
- 'start_period': None,
- 'end_period': None,
- }
+ self.start_period = None
+ self.end_period = None
class PrintTrialBalance(Wizard):
@@ -1346,7 +1388,9 @@ class TrialBalance(Report):
__name__ = 'account.trial_balance'
@classmethod
- def parse(cls, report, objects, data, localcontext):
+ def get_context(cls, records, data):
+ report_context = super(TrialBalance, cls).get_context(records, data)
+
pool = Pool()
Account = pool.get('account.account')
Period = pool.get('account.period')
@@ -1428,17 +1472,17 @@ class TrialBalance(Report):
periods = end_periods
- localcontext['accounts'] = accounts
+ report_context['accounts'] = accounts
periods.sort(key=operator.attrgetter('start_date'))
- localcontext['start_period'] = periods[0]
+ report_context['start_period'] = periods[0]
periods.sort(key=operator.attrgetter('end_date'))
- localcontext['end_period'] = periods[-1]
- localcontext['company'] = company
- localcontext['digits'] = company.currency.digits
- localcontext['sum'] = lambda accounts, field: cls.sum(accounts, field)
+ report_context['end_period'] = periods[-1]
+ report_context['company'] = company
+ report_context['digits'] = company.currency.digits
+ report_context['sum'] = \
+ lambda accounts, field: cls.sum(accounts, field)
- return super(TrialBalance, cls).parse(report, objects, data,
- localcontext)
+ return report_context
@classmethod
def sum(cls, accounts, field):
@@ -1541,10 +1585,8 @@ class OpenIncomeStatementStart(ModelView):
@fields.depends('fiscalyear')
def on_change_fiscalyear(self):
- return {
- 'start_period': None,
- 'end_period': None,
- }
+ self.start_period = None
+ self.end_period = None
class OpenIncomeStatement(Wizard):
@@ -1636,7 +1678,7 @@ class CreateChart(Wizard):
start = StateView('account.create_chart.start',
'account.create_chart_start_view_form', [
Button('Cancel', 'end', 'tryton-cancel'),
- Button('Ok', 'account', 'tryton-ok', default=True),
+ Button('OK', 'account', 'tryton-ok', default=True),
])
account = StateView('account.create_chart.account',
'account.create_chart_account_view_form', [
@@ -1790,9 +1832,10 @@ class UpdateChart(Wizard):
update = StateTransition()
succeed = StateView('account.update_chart.succeed',
'account.update_chart_succeed_view_form', [
- Button('Ok', 'end', 'tryton-ok', default=True),
+ Button('OK', 'end', 'tryton-ok', default=True),
])
+ @inactive_records
def transition_update(self):
pool = Pool()
TaxCode = pool.get('account.tax.code')
@@ -1951,7 +1994,10 @@ class ThirdPartyBalance(Report):
__name__ = 'account.third_party_balance'
@classmethod
- def parse(cls, report, objects, data, localcontext):
+ def get_context(cls, records, data):
+ report_context = super(ThirdPartyBalance, cls).get_context(records,
+ data)
+
pool = Pool()
Party = pool.get('party.party')
MoveLine = pool.get('account.move.line')
@@ -1966,10 +2012,10 @@ class ThirdPartyBalance(Report):
account = Account.__table__()
company = Company(data['company'])
- localcontext['company'] = company
- localcontext['digits'] = company.currency.digits
- localcontext['fiscalyear'] = data['fiscalyear']
- with Transaction().set_context(context=localcontext):
+ report_context['company'] = company
+ report_context['digits'] = company.currency.digits
+ report_context['fiscalyear'] = data['fiscalyear']
+ with Transaction().set_context(context=report_context):
line_query, _ = MoveLine.query_get(line)
if data['posted']:
posted_clause = move.state == 'posted'
@@ -1979,12 +2025,12 @@ class ThirdPartyBalance(Report):
cursor.execute(*line.join(move, condition=line.move == move.id
).join(account, condition=line.account == account.id
).select(line.party, Sum(line.debit), Sum(line.credit),
- where=(line.party != None)
+ where=(line.party != Null)
& account.active
& account.kind.in_(('payable', 'receivable'))
& (account.company == data['company'])
& ((line.maturity_date <= Date.today())
- | (line.maturity_date == None))
+ | (line.maturity_date == Null))
& line_query & posted_clause,
group_by=line.party,
having=(Sum(line.debit) != 0) | (Sum(line.credit) != 0)))
@@ -2000,12 +2046,11 @@ class ThirdPartyBalance(Report):
'solde': x[1] - x[2],
} for x in res]
objects.sort(lambda x, y: cmp(x['name'], y['name']))
- localcontext['total_debit'] = sum((x['debit'] for x in objects))
- localcontext['total_credit'] = sum((x['credit'] for x in objects))
- localcontext['total_solde'] = sum((x['solde'] for x in objects))
+ report_context['total_debit'] = sum((x['debit'] for x in objects))
+ report_context['total_credit'] = sum((x['credit'] for x in objects))
+ report_context['total_solde'] = sum((x['solde'] for x in objects))
- return super(ThirdPartyBalance, cls).parse(report, objects, data,
- localcontext)
+ return report_context
class OpenAgedBalanceStart(ModelView):
@@ -2092,7 +2137,9 @@ class AgedBalance(Report):
__name__ = 'account.aged_balance'
@classmethod
- def parse(cls, report, objects, data, localcontext):
+ def get_context(cls, records, data):
+ report_context = super(AgedBalance, cls).get_context(records, data)
+
pool = Pool()
Party = pool.get('party.party')
MoveLine = pool.get('account.move.line')
@@ -2107,9 +2154,9 @@ class AgedBalance(Report):
account = Account.__table__()
company = Company(data['company'])
- localcontext['digits'] = company.currency.digits
- localcontext['posted'] = data['posted']
- with Transaction().set_context(context=localcontext):
+ report_context['digits'] = company.currency.digits
+ report_context['posted'] = data['posted']
+ with Transaction().set_context(context=report_context):
line_query, _ = MoveLine.query_get(line)
terms = (data['term1'], data['term2'], data['term3'])
@@ -2134,10 +2181,10 @@ class AgedBalance(Report):
cursor.execute(*line.join(move, condition=line.move == move.id
).join(account, condition=line.account == account.id
).select(line.party, Sum(line.debit) - Sum(line.credit),
- where=(line.party != None)
+ where=(line.party != Null)
& account.active
& account.kind.in_(kind)
- & (line.reconciliation == None)
+ & (line.reconciliation == Null)
& (account.company == data['company'])
& term_query & line_query,
group_by=line.party,
@@ -2152,20 +2199,19 @@ class AgedBalance(Report):
('id', 'in', [k for k in res.iterkeys()]),
])
- localcontext['main_title'] = data['balance_type']
- localcontext['unit'] = data['unit']
+ report_context['main_title'] = data['balance_type']
+ report_context['unit'] = data['unit']
for i in range(3):
- localcontext['total' + str(i)] = sum(
+ report_context['total' + str(i)] = sum(
(v[i] for v in res.itervalues()))
- localcontext['term' + str(i)] = terms[i]
+ report_context['term' + str(i)] = terms[i]
- localcontext['company'] = company
- localcontext['parties'] = [{
+ report_context['company'] = company
+ report_context['parties'] = [{
'name': p.rec_name,
'amount0': res[p.id][0],
'amount1': res[p.id][1],
'amount2': res[p.id][2],
} for p in parties]
- return super(AgedBalance, cls).parse(report, objects, data,
- localcontext)
+ return report_context
diff --git a/account.xml b/account.xml
index 1ae79ee..b7dcf0b 100644
--- a/account.xml
+++ b/account.xml
@@ -83,7 +83,7 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_account_type_template_tree">
<field name="name">Account Type Templates</field>
<field name="res_model">account.account.type.template</field>
- <field name="domain">[('parent', '=', None)]</field>
+ <field name="domain" eval="[('parent', '=', None)]" pyson="1"/>
</record>
<record model="ir.action.act_window.view"
id="act_account_type_template_tree_view1">
@@ -226,7 +226,7 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_account_type_tree">
<field name="name">Account Types</field>
<field name="res_model">account.account.type</field>
- <field name="domain">[('parent', '=', None)]</field>
+ <field name="domain" eval="[('parent', '=', None)]" pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_account_type_tree_view1">
<field name="sequence" eval="10"/>
@@ -296,7 +296,7 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_account_template_tree">
<field name="name">Account Templates</field>
<field name="res_model">account.account.template</field>
- <field name="domain">[('parent', '=', None)]</field>
+ <field name="domain" eval="[('parent', '=', None)]" pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_account_template_tree_view1">
<field name="sequence" eval="10"/>
@@ -449,7 +449,7 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_account_tree">
<field name="name">Accounts</field>
<field name="res_model">account.account</field>
- <field name="domain">[('parent', '=', None)]</field>
+ <field name="domain" eval="[('parent', '=', None)]" pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_account_tree_view1">
<field name="sequence" eval="10"/>
@@ -519,7 +519,9 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_account_tree2">
<field name="name">Accounts</field>
<field name="res_model">account.account</field>
- <field name="domain">[('parent', '=', None), ('company', '=', Eval('context', {}).get('company', -1))]</field>
+ <field name="domain"
+ eval="[('parent', '=', None), ('company', '=', Eval('context', {}).get('company', -1))]"
+ pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_account_tree2_view1">
<field name="sequence" eval="10"/>
@@ -555,7 +557,9 @@ this repository contains the full copyright notices and license terms. -->
<field name="global_p" eval="True"/>
</record>
<record model="ir.rule" id="rule_account1">
- <field name="domain">[('company', 'in', [c.id for c in user.companies])]</field>
+ <field name="domain"
+ eval="[('company', 'in', Eval('user', {}).get('companies', []))]"
+ pyson="1"/>
<field name="rule_group" ref="rule_group_account"/>
</record>
@@ -620,7 +624,9 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_account_balance_sheet_tree">
<field name="name">Balance Sheet</field>
<field name="res_model">account.account.type</field>
- <field name="domain">[('balance_sheet', '=', True), ['OR', ('parent', '=', None), ('parent.balance_sheet', '=', False)]]</field>
+ <field name="domain"
+ eval="[('balance_sheet', '=', True), ['OR', ('parent', '=', None), ('parent.balance_sheet', '=', False)]]"
+ pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_balance_sheet_view1">
<field name="sequence" eval="10"/>
@@ -651,7 +657,9 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_account_income_statement_tree">
<field name="name">Income Statement</field>
<field name="res_model">account.account.type</field>
- <field name="domain">[('income_statement', '=', True), ['OR', ('parent', '=', None), ('parent.income_statement', '=', False)]]</field>
+ <field name="domain"
+ eval="[('income_statement', '=', True), ['OR', ('parent', '=', None), ('parent.income_statement', '=', False)]]"
+ pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_income_statement_view1">
<field name="sequence" eval="10"/>
diff --git a/aged_balance.odt b/aged_balance.odt
index 7097b34..4f988cd 100644
Binary files a/aged_balance.odt and b/aged_balance.odt differ
diff --git a/configuration.py b/configuration.py
index b7bab77..f94dfd6 100644
--- a/configuration.py
+++ b/configuration.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from trytond.model import ModelView, ModelSQL, ModelSingleton, fields
from trytond.pool import Pool
from trytond.transaction import Transaction
diff --git a/doc/index.rst b/doc/index.rst
index 7905b82..7365fd9 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -78,7 +78,7 @@ An Account is defined by these fields:
- Other: For other accounts.
- Type: The Account Type of the account.
-- Deferral: A checkbox. If set to true, credits and debits are carried
+- Deferral: A checkbox. If set to true, credit and debit are carried
over form fiscal year to fiscal year.
- Second currency: Force all moves for the account to have this
secondary currency.
@@ -205,6 +205,8 @@ the following fields:
- Amount: If Type is *Fixed*, defines a fix amount for the tax.
- Percentage: If Type is *Percentage*, defines the percentage of the
tax.
+- Update Unit Price: If checked then the unit price for further tax calculation
+ will be increased by the amount of this tax.
- Parent, Children: Parent and children taxes
- Company: The company for which the tax is defined.
- Invoice Account: The account to use when creating move lines for
@@ -244,3 +246,58 @@ counterparts except that they are not linked to a company. Two wizard
from Template*) allow to create and update the accounts from the
account templates (and consequently all other models associated to
templates).
+
+Move Template
+*************
+
+A move template allows to configure predefined moves. A Move Template is
+defined by the following fields:
+
+- Name
+- Company
+- Keywords: The list of keywords used in the template.
+- Journal
+- Date: The date of the move. It must be leaved empty for today.
+- Description: The description of the move. The keyword values can be
+ substituted using the name surrounded by braces ('{' and '}').
+- Lines: The list of template lines.
+- Active
+
+A wizard to create moved base on templates is available in the *Entries* menu.
+The templates are also available as actions when opening a journal.
+
+Move Template Keywords
+**********************
+
+The keywords define the values asked to user to create the move based on the
+template. The fields are:
+
+- Name
+- String: The label used in the wizard form.
+- Sequence: The sequence used to order the fields in the wizard form.
+- Type:
+
+ - *Char*
+ - *Numeric*
+ - *Date*
+ - *Party*
+
+- Required
+- Digits: Only for numeric keyword.
+
+Move Line Template
+******************
+
+- Operation: *Debit* or *Credit*
+- Amount: An expression that can use any keywords to compute the amount.
+- Account
+- Party: Only for account that requires a party.
+- Description
+- Taxes: The list of template tax lines
+
+Tax Line Template
+*****************
+
+- Amount: An expression that can use any keywords to compute the amount.
+- Code: The tax code to use.
+- Tax
diff --git a/fiscalyear.py b/fiscalyear.py
index f98d0b1..0eafef8 100644
--- a/fiscalyear.py
+++ b/fiscalyear.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from dateutil.relativedelta import relativedelta
from trytond.model import ModelView, ModelSQL, fields
from trytond.wizard import Wizard, StateView, StateTransition, StateAction, \
@@ -231,12 +231,11 @@ class FiscalYear(ModelSQL, ModelView):
return None
return fiscalyears[0].id
- def _process_account(self, account):
- '''
- Process account for a fiscal year closed
- '''
- Currency = Pool().get('currency.currency')
- Deferral = Pool().get('account.account.deferral')
+ def get_deferral(self, account):
+ 'Computes deferrals for accounts'
+ pool = Pool()
+ Currency = pool.get('currency.currency')
+ Deferral = pool.get('account.account.deferral')
if account.kind == 'view':
return
@@ -245,12 +244,12 @@ class FiscalYear(ModelSQL, ModelView):
self.raise_user_error('account_balance_not_zero',
error_args=(account.rec_name,))
else:
- Deferral.create([{
- 'account': account.id,
- 'fiscalyear': self.id,
- 'debit': account.debit,
- 'credit': account.credit,
- }])
+ deferral = Deferral()
+ deferral.account = account
+ deferral.fiscalyear = self
+ deferral.debit = account.debit
+ deferral.credit = account.credit
+ return deferral
@classmethod
@ModelView.button
@@ -261,7 +260,9 @@ class FiscalYear(ModelSQL, ModelView):
pool = Pool()
Period = pool.get('account.period')
Account = pool.get('account.account')
+ Deferral = pool.get('account.account.deferral')
+ deferrals = []
for fiscalyear in fiscalyears:
if cls.search([
('end_date', '<=', fiscalyear.start_date),
@@ -270,8 +271,8 @@ class FiscalYear(ModelSQL, ModelView):
]):
cls.raise_user_error('close_error', (fiscalyear.rec_name,))
- #First close the fiscalyear to be sure
- #it will not have new period created between.
+ # First close the fiscalyear to be sure
+ # it will not have new period created between.
cls.write([fiscalyear], {
'state': 'close',
})
@@ -285,8 +286,9 @@ class FiscalYear(ModelSQL, ModelView):
accounts = Account.search([
('company', '=', fiscalyear.company.id),
])
- for account in accounts:
- fiscalyear._process_account(account)
+ deferrals += filter(None, (fiscalyear.get_deferral(a)
+ for a in accounts))
+ Deferral.save(deferrals)
@classmethod
@ModelView.button
@@ -315,7 +317,11 @@ class FiscalYear(ModelSQL, ModelView):
@classmethod
def search_rec_name(cls, name, clause):
- return ['OR',
+ if clause[1].startswith('!') or clause[1].startswith('not '):
+ bool_op = 'AND'
+ else:
+ bool_op = 'OR'
+ return [bool_op,
('code',) + tuple(clause[1:]),
(cls._rec_name,) + tuple(clause[1:]),
]
@@ -326,6 +332,8 @@ class BalanceNonDeferralStart(ModelView):
__name__ = 'account.fiscalyear.balance_non_deferral.start'
fiscalyear = fields.Many2One('account.fiscalyear', 'Fiscal Year',
required=True, domain=[('state', '=', 'open')])
+ company = fields.Function(fields.Many2One('company.company', 'Company'),
+ 'on_change_with_company')
journal = fields.Many2One('account.journal', 'Journal', required=True,
domain=[
('type', '=', 'situation'),
@@ -340,16 +348,23 @@ class BalanceNonDeferralStart(ModelView):
required=True,
domain=[
('kind', '!=', 'view'),
- ('company', '=', Eval('context', {}).get('company', -1)),
+ ('company', '=', Eval('company', -1)),
('deferral', '=', True),
- ])
+ ],
+ depends=['company'])
debit_account = fields.Many2One('account.account', 'Debit Account',
required=True,
domain=[
('kind', '!=', 'view'),
- ('company', '=', Eval('context', {}).get('company', -1)),
+ ('company', '=', Eval('company', -1)),
('deferral', '=', True),
- ])
+ ],
+ depends=['company'])
+
+ @fields.depends('fiscalyear')
+ def on_change_with_company(self, name=None):
+ if self.fiscalyear:
+ return self.fiscalyear.company.id
class BalanceNonDeferral(Wizard):
@@ -358,23 +373,25 @@ class BalanceNonDeferral(Wizard):
start = StateView('account.fiscalyear.balance_non_deferral.start',
'account.fiscalyear_balance_non_deferral_start_view_form', [
Button('Cancel', 'end', 'tryton-cancel'),
- Button('Ok', 'balance', 'tryton-ok', default=True),
+ Button('OK', 'balance', 'tryton-ok', default=True),
])
balance = StateAction('account.act_move_line_form')
def get_move_line(self, account):
pool = Pool()
Line = pool.get('account.move.line')
- if account.company.currency.is_zero(account.balance):
+ # Don't use account.balance because we need the non-commulated balance
+ balance = account.debit - account.credit
+ if account.company.currency.is_zero(balance):
return
line = Line()
line.account = account
- if account.balance >= 0:
- line.credit = abs(account.balance)
+ if balance >= 0:
+ line.credit = abs(balance)
line.debit = 0
else:
line.credit = 0
- line.debit = abs(account.balance)
+ line.debit = abs(balance)
return line
def get_counterpart_line(self, amount):
diff --git a/fiscalyear.xml b/fiscalyear.xml
index 9ad5f03..bba87fd 100644
--- a/fiscalyear.xml
+++ b/fiscalyear.xml
@@ -53,7 +53,9 @@ this repository contains the full copyright notices and license terms. -->
<field name="global_p" eval="True"/>
</record>
<record model="ir.rule" id="rule_fiscalyear1">
- <field name="domain">[('company', '=', user.company.id if user.company else None)]</field>
+ <field name="domain"
+ eval="[('company', '=', Eval('user', {}).get('company', None))]"
+ pyson="1"/>
<field name="rule_group" ref="rule_group_fiscalyear"/>
</record>
diff --git a/general_journal.odt b/general_journal.odt
index 2094ed3..f7d7733 100644
Binary files a/general_journal.odt and b/general_journal.odt differ
diff --git a/general_ledger.odt b/general_ledger.odt
index 885e623..011681e 100644
Binary files a/general_ledger.odt and b/general_ledger.odt differ
diff --git a/journal.py b/journal.py
index 833c58d..39e3a26 100644
--- a/journal.py
+++ b/journal.py
@@ -1,5 +1,7 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
+from sql import Null
+
from trytond.model import ModelView, ModelSQL, fields
from trytond.wizard import Wizard, StateTransition
from trytond import backend
@@ -78,7 +80,7 @@ class JournalViewColumn(ModelSQL, ModelView):
@staticmethod
def order_sequence(tables):
table, _ = tables[None]
- return [table.sequence == None, table.sequence]
+ return [table.sequence == Null, table.sequence]
@staticmethod
def default_required():
@@ -97,7 +99,7 @@ class Journal(ModelSQL, ModelView):
active = fields.Boolean('Active', select=True)
type = fields.Selection('get_types', 'Type', required=True)
view = fields.Many2One('account.journal.view', 'View')
- update_posted = fields.Boolean('Allow cancelling moves')
+ update_posted = fields.Boolean('Allow updating posted moves')
sequence = fields.Property(fields.Many2One('ir.sequence', 'Sequence',
domain=[('code', '=', 'account.journal')],
context={'code': 'account.journal'},
@@ -168,7 +170,11 @@ class Journal(ModelSQL, ModelView):
@classmethod
def search_rec_name(cls, name, clause):
- return ['OR',
+ if clause[1].startswith('!') or clause[1].startswith('not '):
+ bool_op = 'AND'
+ else:
+ bool_op = 'OR'
+ return [bool_op,
('code',) + tuple(clause[1:]),
(cls._rec_name,) + tuple(clause[1:]),
]
diff --git a/journal.xml b/journal.xml
index fb40439..3e7bf56 100644
--- a/journal.xml
+++ b/journal.xml
@@ -226,7 +226,9 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_journal_period_tree">
<field name="name">Journals - Periods</field>
<field name="res_model">account.journal.period</field>
- <field name="domain">[('period.fiscalyear.company.id', '=', Eval('context', {}).get('company', -1))]</field>
+ <field name="domain"
+ eval="[('period.fiscalyear.company.id', '=', Eval('context', {}).get('company', -1))]"
+ pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_journal_period_tree_view1">
<field name="sequence" eval="10"/>
@@ -238,7 +240,9 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_journal_period_tree2">
<field name="name">Journals - Periods</field>
<field name="res_model">account.journal.period</field>
- <field name="domain">[('state', '!=', 'close'), ('period.fiscalyear.company.id', '=', Eval('context', {}).get('company', -1))]</field>
+ <field name="domain"
+ eval="[('state', '!=', 'close'), ('period.fiscalyear.company.id', '=', Eval('context', {}).get('company', -1))]"
+ pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_journal_period_tree2_view1">
<field name="sequence" eval="10"/>
@@ -273,7 +277,9 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_journal_period_form">
<field name="name">Journals - Periods</field>
<field name="res_model">account.journal.period</field>
- <field name="domain">[('period.fiscalyear.company.id', '=', Eval('context', {}).get('company', -1))]</field>
+ <field name="domain"
+ eval="[('period.fiscalyear.company.id', '=', Eval('context', {}).get('company', -1))]"
+ pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_journal_period_form_view1">
<field name="sequence" eval="10"/>
diff --git a/locale/bg_BG.po b/locale/bg_BG.po
index 0547d97..987bc41 100644
--- a/locale/bg_BG.po
+++ b/locale/bg_BG.po
@@ -93,6 +93,10 @@ msgid "Wrong credit/debit values."
msgstr ""
msgctxt "error:account.move.line:"
+msgid "Wrong second currency sign."
+msgstr ""
+
+msgctxt "error:account.move.line:"
msgid "You can not add/modify lines in closed journal period \"%s\"."
msgstr ""
@@ -114,6 +118,10 @@ msgctxt "error:account.move.line:"
msgid "You can not modify lines of move \"%s\" because it is already posted."
msgstr ""
+msgctxt "error:account.move.line:"
+msgid "wrong_second_currency_sign"
+msgstr ""
+
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not create a reconciliation where debit \"%(debit)s\" and credit "
@@ -139,7 +147,7 @@ msgstr ""
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not reconcile line \"%(line)s\" because it's party \"%(party1)s\" is"
-" different from %(party2)s\"."
+" different from \"%(party2)s\"."
msgstr ""
msgctxt "error:account.move.reconciliation:"
@@ -153,10 +161,6 @@ msgid ""
msgstr ""
msgctxt "error:account.move:"
-msgid "You can not create lines on accountsof different companies in move \"%s\"."
-msgstr ""
-
-msgctxt "error:account.move:"
msgid ""
"You can not create move \"%(move)s\" because it's date is outside its "
"period."
@@ -197,12 +201,6 @@ msgid "\"%(first)s\" and \"%(second)s\" periods overlap."
msgstr ""
msgctxt "error:account.period:"
-msgid ""
-"Company of sequence \"%(sequence)s\" does not match the company of period "
-"\"%(period)s\" to which it is assigned to."
-msgstr ""
-
-msgctxt "error:account.period:"
msgid "Dates of period \"%s\" are outside are outside it's fiscal year dates."
msgstr ""
@@ -240,6 +238,18 @@ msgid ""
"\"%(fiscalyear)s\" is closed."
msgstr ""
+msgctxt "error:account.tax.template:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+
+msgctxt "error:account.tax:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+
msgctxt "field:account.account,active:"
msgid "Active"
msgstr "Активен"
@@ -292,6 +302,10 @@ msgctxt "field:account.account,deferrals:"
msgid "Deferrals"
msgstr "Отложени плащания"
+msgctxt "field:account.account,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr ""
+
msgctxt "field:account.account,id:"
msgid "ID"
msgstr "ID"
@@ -457,6 +471,10 @@ msgctxt "field:account.account.template,deferral:"
msgid "Deferral"
msgstr "С отложено плащане"
+msgctxt "field:account.account.template,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr ""
+
msgctxt "field:account.account.template,id:"
msgid "ID"
msgstr "ID"
@@ -809,6 +827,11 @@ msgctxt "field:account.fiscalyear-account.move.line,write_uid:"
msgid "Write User"
msgstr "Променено от"
+#, fuzzy
+msgctxt "field:account.fiscalyear.balance_non_deferral.start,company:"
+msgid "Company"
+msgstr "Фирма"
+
msgctxt "field:account.fiscalyear.balance_non_deferral.start,credit_account:"
msgid "Credit Account"
msgstr ""
@@ -889,8 +912,9 @@ msgctxt "field:account.journal,type:"
msgid "Type"
msgstr "Вид"
+#, fuzzy
msgctxt "field:account.journal,update_posted:"
-msgid "Allow cancelling moves"
+msgid "Allow updating posted moves"
msgstr "Позволяване на отмяна на движение"
msgctxt "field:account.journal,view:"
@@ -1065,6 +1089,11 @@ msgctxt "field:account.journal.view.column,write_uid:"
msgid "Write User"
msgstr "Променено от"
+#, fuzzy
+msgctxt "field:account.move,company:"
+msgid "Company"
+msgstr "Фирма"
+
msgctxt "field:account.move,create_date:"
msgid "Create Date"
msgstr "Създадено на"
@@ -1132,10 +1161,33 @@ msgctxt "field:account.move,write_uid:"
msgid "Write User"
msgstr "Променено от"
+#, fuzzy
+msgctxt "field:account.move.cancel.default,description:"
+msgid "Description"
+msgstr "Описание"
+
+#, fuzzy
+msgctxt "field:account.move.cancel.default,id:"
+msgid "ID"
+msgstr "ID"
+
msgctxt "field:account.move.line,account:"
msgid "Account"
msgstr "Сметка"
+#, fuzzy
+msgctxt "field:account.move.line,amount:"
+msgid "Amount"
+msgstr "Сума"
+
+msgctxt "field:account.move.line,amount_currency:"
+msgid "Amount Currency"
+msgstr ""
+
+msgctxt "field:account.move.line,amount_currency_digits:"
+msgid "Amount Currency Digits"
+msgstr ""
+
msgctxt "field:account.move.line,amount_second_currency:"
msgid "Amount Second Currency"
msgstr "Сума в допълнителна валута"
@@ -1242,6 +1294,74 @@ msgctxt "field:account.move.line,write_uid:"
msgid "Write User"
msgstr "Променено от"
+#, fuzzy
+msgctxt "field:account.move.line.template,account:"
+msgid "Account"
+msgstr "Фактури"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,amount:"
+msgid "Amount"
+msgstr "Сума"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,description:"
+msgid "Description"
+msgstr "Описание"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,move:"
+msgid "Move"
+msgstr "Движение"
+
+msgctxt "field:account.move.line.template,operation:"
+msgid "Operation"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.line.template,party:"
+msgid "Party"
+msgstr "Управление на партньор"
+
+msgctxt "field:account.move.line.template,party_required:"
+msgid "Party Required"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.line.template,rec_name:"
+msgid "Name"
+msgstr "Условие за плащане"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,taxes:"
+msgid "Taxes"
+msgstr "Данъци"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
msgctxt "field:account.move.open_journal.ask,id:"
msgid "ID"
msgstr "ID"
@@ -1333,6 +1453,159 @@ msgctxt "field:account.move.reconciliation,write_uid:"
msgid "Write User"
msgstr "Променено от"
+#, fuzzy
+msgctxt "field:account.move.template,active:"
+msgid "Active"
+msgstr "Активен"
+
+#, fuzzy
+msgctxt "field:account.move.template,company:"
+msgid "Company"
+msgstr "Фирма"
+
+#, fuzzy
+msgctxt "field:account.move.template,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+#, fuzzy
+msgctxt "field:account.move.template,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+#, fuzzy
+msgctxt "field:account.move.template,date:"
+msgid "Date"
+msgstr "Дата"
+
+#, fuzzy
+msgctxt "field:account.move.template,description:"
+msgid "Description"
+msgstr "Описание"
+
+#, fuzzy
+msgctxt "field:account.move.template,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt "field:account.move.template,journal:"
+msgid "Journal"
+msgstr "Дневник"
+
+#, fuzzy
+msgctxt "field:account.move.template,keywords:"
+msgid "Keywords"
+msgstr "Ключови думи"
+
+#, fuzzy
+msgctxt "field:account.move.template,lines:"
+msgid "Lines"
+msgstr "Транзакции"
+
+#, fuzzy
+msgctxt "field:account.move.template,name:"
+msgid "Name"
+msgstr "Условие за плащане"
+
+#, fuzzy
+msgctxt "field:account.move.template,rec_name:"
+msgid "Name"
+msgstr "Условие за плащане"
+
+#, fuzzy
+msgctxt "field:account.move.template,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+#, fuzzy
+msgctxt "field:account.move.template,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+#, fuzzy
+msgctxt "field:account.move.template.create.keywords,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt "field:account.move.template.create.template,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt "field:account.move.template.create.template,period:"
+msgid "Period"
+msgstr "Период"
+
+#, fuzzy
+msgctxt "field:account.move.template.create.template,template:"
+msgid "Template"
+msgstr "Шаблон"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+msgctxt "field:account.move.template.keyword,digits:"
+msgid "Digits"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,move:"
+msgid "Move"
+msgstr "Движение"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,name:"
+msgid "Name"
+msgstr "Условие за плащане"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,rec_name:"
+msgid "Name"
+msgstr "Условие за плащане"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,required:"
+msgid "Required"
+msgstr "Задължителен"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,sequence:"
+msgid "Sequence"
+msgstr "Последователност"
+
+msgctxt "field:account.move.template.keyword,string:"
+msgid "String"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,type_:"
+msgid "Type"
+msgstr "Вид"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
msgctxt "field:account.open_aged_balance.start,balance_type:"
msgid "Type"
msgstr "Вид"
@@ -1724,6 +1997,10 @@ msgctxt "field:account.tax,type:"
msgid "Type"
msgstr "Вид"
+msgctxt "field:account.tax,update_unit_price:"
+msgid "Update Unit Price"
+msgstr ""
+
msgctxt "field:account.tax,write_date:"
msgid "Write Date"
msgstr "Променено на"
@@ -1905,6 +2182,11 @@ msgctxt "field:account.tax.line,code:"
msgid "Code"
msgstr "Код"
+#, fuzzy
+msgctxt "field:account.tax.line,company:"
+msgid "Company"
+msgstr "Фирма"
+
msgctxt "field:account.tax.line,create_date:"
msgid "Create Date"
msgstr "Създадено на"
@@ -1941,6 +2223,56 @@ msgctxt "field:account.tax.line,write_uid:"
msgid "Write User"
msgstr "Променено от"
+#, fuzzy
+msgctxt "field:account.tax.line.template,amount:"
+msgid "Amount"
+msgstr "Сума"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,code:"
+msgid "Code"
+msgstr "Код"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,line:"
+msgid "Line"
+msgstr "Ред"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,rec_name:"
+msgid "Name"
+msgstr "Условие за плащане"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,tax:"
+msgid "Tax"
+msgstr "Данък"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
msgctxt "field:account.tax.rule,company:"
msgid "Company"
msgstr "Фирма"
@@ -2226,6 +2558,10 @@ msgctxt "field:account.tax.template,type:"
msgid "Type"
msgstr "Вид"
+msgctxt "field:account.tax.template,update_unit_price:"
+msgid "Update Unit Price"
+msgstr ""
+
msgctxt "field:account.tax.template,write_date:"
msgid "Write Date"
msgstr "Променено на"
@@ -2278,6 +2614,10 @@ msgctxt "field:party.party,supplier_tax_rule:"
msgid "Supplier Tax Rule"
msgstr "Правило за данък на доставчик"
+msgctxt "help:account.account,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr ""
+
msgctxt "help:account.account,reconcile:"
msgid ""
"Allow move lines of this account \n"
@@ -2302,6 +2642,10 @@ msgstr ""
"Данък по подразбиране за ръчно кодиране на редове за движение\n"
"за видове дневници: \"разход\" и \"приход\""
+msgctxt "help:account.account.template,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr ""
+
msgctxt "help:account.account.type,sequence:"
msgid "Use to order the account type"
msgstr "За подреждане на вида на сметка"
@@ -2326,10 +2670,22 @@ msgctxt "help:account.move.line,second_currency:"
msgid "The second currency"
msgstr "Втората валута"
+msgctxt "help:account.move.line.template,description:"
+msgid "Keywords values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+
msgctxt "help:account.move.print_general_journal.start,posted:"
msgid "Show only posted move"
msgstr "Показване само на публикувани движения"
+msgctxt "help:account.move.template,date:"
+msgid "Leave empty for today"
+msgstr ""
+
+msgctxt "help:account.move.template,description:"
+msgid "Keyword values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+
msgctxt "help:account.open_aged_balance.start,posted:"
msgid "Show only posted move"
msgstr "Показване само на публикувани движения"
@@ -2399,6 +2755,12 @@ msgctxt "help:account.tax,sequence:"
msgid "Use to order the taxes"
msgstr "За подреждане на данъците"
+msgctxt "help:account.tax,update_unit_price:"
+msgid ""
+"If checked then the unit price for further tax computation willbe modified "
+"by this tax"
+msgstr ""
+
msgctxt "help:account.tax.code.open_chart.start,fiscalyear:"
msgid "Leave empty for all open fiscal year"
msgstr "Оставете празно за всички отворени финансови години"
@@ -2662,10 +3024,18 @@ msgctxt "model:account.move,name:"
msgid "Account Move"
msgstr "Движение по сметка"
+msgctxt "model:account.move.cancel.default,name:"
+msgid "Cancel Moves"
+msgstr ""
+
msgctxt "model:account.move.line,name:"
msgid "Account Move Line"
msgstr "Ред от движение по сметка"
+msgctxt "model:account.move.line.template,name:"
+msgid "Account Move Line Template"
+msgstr ""
+
msgctxt "model:account.move.open_journal.ask,name:"
msgid "Open Journal Ask"
msgstr "Запитване за отваряне на дневник"
@@ -2682,6 +3052,22 @@ msgctxt "model:account.move.reconciliation,name:"
msgid "Account Move Reconciliation Lines"
msgstr "Редове от съгласуване на движение по сметка"
+msgctxt "model:account.move.template,name:"
+msgid "Account Move Template"
+msgstr ""
+
+msgctxt "model:account.move.template.create.keywords,name:"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:account.move.template.create.template,name:"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:account.move.template.keyword,name:"
+msgid "Account Move Template Keyword"
+msgstr ""
+
msgctxt "model:account.open_aged_balance.start,name:"
msgid "Open Aged Balance"
msgstr "Отваряне на хронологичен баланс"
@@ -2743,6 +3129,10 @@ msgctxt "model:account.tax.line,name:"
msgid "Tax Line"
msgstr "Ред на данък"
+msgctxt "model:account.tax.line.template,name:"
+msgid "Account Tax Line Template"
+msgstr ""
+
msgctxt "model:account.tax.rule,name:"
msgid "Tax Rule"
msgstr "Правило за данък"
@@ -2888,6 +3278,14 @@ msgctxt "model:ir.action,name:act_move_reconciliation_lines"
msgid "Reconciliation Lines"
msgstr ""
+msgctxt "model:ir.action,name:act_move_template_create"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_move_template_form"
+msgid "Account Move Template"
+msgstr ""
+
msgctxt "model:ir.action,name:act_open_account"
msgid "Open Move Account"
msgstr "Отваряне на сметка на движение"
@@ -3183,6 +3581,14 @@ msgctxt "model:ir.ui.menu,name:menu_move_form"
msgid "Account Moves"
msgstr "Движения по сметка"
+msgctxt "model:ir.ui.menu,name:menu_move_template_create"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_move_template_form"
+msgid "Account Move Template"
+msgstr ""
+
msgctxt "model:ir.ui.menu,name:menu_open_balance_sheet"
msgid "Balance Sheet"
msgstr "Дата на баланс"
@@ -3709,6 +4115,34 @@ msgctxt "selection:account.move.line,state:"
msgid "Valid"
msgstr "Валиден"
+#, fuzzy
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Credit"
+msgstr "Кредит"
+
+#, fuzzy
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Debit"
+msgstr "Дебит"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Char"
+msgstr ""
+
+#, fuzzy
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Date"
+msgstr "Дата"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Numeric"
+msgstr ""
+
+#, fuzzy
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Party"
+msgstr "Управление на партньор"
+
msgctxt "selection:account.open_aged_balance.start,balance_type:"
msgid "Both"
msgstr "И двата"
@@ -4283,7 +4717,7 @@ msgid "Cancel"
msgstr "Отказ"
msgctxt "wizard_button:account.create_chart,start,account:"
-msgid "Ok"
+msgid "OK"
msgstr "Добре"
msgctxt "wizard_button:account.create_chart,start,end:"
@@ -4292,7 +4726,7 @@ msgstr "Отказ"
#, fuzzy
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,balance:"
-msgid "Ok"
+msgid "OK"
msgstr "Добре"
#, fuzzy
@@ -4308,6 +4742,16 @@ msgctxt "wizard_button:account.fiscalyear.close,start,end:"
msgid "Cancel"
msgstr "Отказ"
+#, fuzzy
+msgctxt "wizard_button:account.move.cancel,default,cancel:"
+msgid "OK"
+msgstr "Добре"
+
+#, fuzzy
+msgctxt "wizard_button:account.move.cancel,default,end:"
+msgid "Cancel"
+msgstr "Отказване"
+
msgctxt "wizard_button:account.move.open_journal,ask,end:"
msgid "Cancel"
msgstr "Отказ"
@@ -4332,6 +4776,26 @@ msgctxt "wizard_button:account.move.reconcile_lines,writeoff,reconcile:"
msgid "Reconcile"
msgstr "Съгласуване"
+#, fuzzy
+msgctxt "wizard_button:account.move.template.create,keywords,create_:"
+msgid "Create"
+msgstr "Създаване"
+
+#, fuzzy
+msgctxt "wizard_button:account.move.template.create,keywords,end:"
+msgid "Cancel"
+msgstr "Отказване"
+
+#, fuzzy
+msgctxt "wizard_button:account.move.template.create,template,end:"
+msgid "Cancel"
+msgstr "Отказване"
+
+#, fuzzy
+msgctxt "wizard_button:account.move.template.create,template,keywords:"
+msgid "Next"
+msgstr "Напред"
+
msgctxt "wizard_button:account.open_aged_balance,start,end:"
msgid "Cancel"
msgstr "Отказ"
@@ -4419,5 +4883,5 @@ msgid "Update"
msgstr "Обновяване"
msgctxt "wizard_button:account.update_chart,succeed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Добре"
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index e9aee1c..0361568 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -12,17 +12,17 @@ msgstr "No podeu modificar els registres de comptes de tancament."
msgctxt "error:account.account:"
msgid "You can not delete account \"%s\" because it has move lines."
-msgstr "No podeu esborrar el compte \"%s\" perquè té apunts."
+msgstr "No podeu eliminar el compte \"%s\" perquè té apunts."
msgctxt "error:account.account:"
msgid "You can not delete accounts that have children."
-msgstr "No podeu esborrar comptes que tenen fills."
+msgstr "No podeu eliminar comptes que tenen fills."
msgctxt "error:account.fiscalyear:"
msgid "Fiscal year \"%(first)s\" and \"%(second)s\" have the same post move sequence."
msgstr ""
"L'exercici fiscal \"%(first)s\" i \"%(second)s\" tenen la mateixa seqüència "
-"d'assentament confirmat."
+"d'assentament comptabilitzat."
msgctxt "error:account.fiscalyear:"
msgid "Fiscal year \"%(first)s\" and \"%(second)s\" overlap."
@@ -39,8 +39,8 @@ msgstr "El balanç del compte \"%s\" ha de ser zero."
msgctxt "error:account.fiscalyear:"
msgid "You can not change the post move sequence in fiscal year \"%s\"."
msgstr ""
-"No podeu canviar la seqüència d'assentaments confirmats a l'exercici fiscal "
-"\"%s\"."
+"No podeu canviar la seqüència d'assentaments comptabilitzats a l'exercici "
+"fiscal \"%s\"."
msgctxt "error:account.fiscalyear:"
msgid ""
@@ -65,7 +65,7 @@ msgstr "No podeu crear un diari - període al període tancat \"%s\"."
msgctxt "error:account.journal.period:"
msgid "You can not modify/delete journal - period \"%s\" because it has moves."
msgstr ""
-"No podeu modificar/esborrar el diari - període \"%s\" perquè té "
+"No podeu modificar/eliminar el diari - període \"%s\" perquè té "
"assentaments."
msgctxt "error:account.journal.period:"
@@ -105,6 +105,10 @@ msgid "Wrong credit/debit values."
msgstr "Valors d'haver/deure erronis."
msgctxt "error:account.move.line:"
+msgid "Wrong second currency sign."
+msgstr "El signe de la segona moneda és incorrecte."
+
+msgctxt "error:account.move.line:"
msgid "You can not add/modify lines in closed journal period \"%s\"."
msgstr "No podeu afegir/modificar apunts al diari període tancat \"%s\"."
@@ -126,7 +130,11 @@ msgctxt "error:account.move.line:"
msgid "You can not modify lines of move \"%s\" because it is already posted."
msgstr ""
"No podeu modificar els apunts de l'assentament \"%s\" perquè ja està "
-"confirmat."
+"comptabilitzat."
+
+msgctxt "error:account.move.line:"
+msgid "wrong_second_currency_sign"
+msgstr "Signe de la segona moneda incorrecte."
msgctxt "error:account.move.reconciliation:"
msgid ""
@@ -159,10 +167,10 @@ msgstr ""
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not reconcile line \"%(line)s\" because it's party \"%(party1)s\" is"
-" different from %(party2)s\"."
+" different from \"%(party2)s\"."
msgstr ""
-"No podeu conciliar l'apunt \"%(line)s\" perquè el tercer \"%(party1)s\" és "
-"diferent de \"%(party2)s\"."
+"No podeu conciliar l'apunt \"%(line)s\" perquè el seu tercer \"%(party1)s\" "
+"és diferent de \"%(party2)s\"."
msgctxt "error:account.move.reconciliation:"
msgid "You can not reconcile line \"%s\" because it is not in valid state."
@@ -177,10 +185,6 @@ msgstr ""
"Voleu utilitzar el període actual?"
msgctxt "error:account.move:"
-msgid "You can not create lines on accountsof different companies in move \"%s\"."
-msgstr "No es pot crear apunts de diferents empreses a l'assentament \"%s\"."
-
-msgctxt "error:account.move:"
msgid ""
"You can not create move \"%(move)s\" because it's date is outside its "
"period."
@@ -190,21 +194,21 @@ msgstr ""
msgctxt "error:account.move:"
msgid "You can not modify move \"%s\" because it is already posted."
-msgstr "No podeu modificar l'assentament \"%s\" perquè ja està confirmat."
+msgstr "No podeu modificar l'assentament \"%s\" perquè ja està comptabilitzat."
msgctxt "error:account.move:"
msgid "You can not post move \"%s\" because it is an unbalanced."
-msgstr "No podeu confirmar l'assentament \"% s\" perquè està desquadrat."
+msgstr "No podeu comptabilitzar l'assentament \"% s\" perquè està desquadrat."
msgctxt "error:account.move:"
msgid "You can not post move \"%s\" because it is empty."
-msgstr "No podeu confirmar l'assentament \"%s\" perquè està buit."
+msgstr "No podeu comptabilitzar l'assentament \"%s\" perquè està buit."
msgctxt "error:account.move:"
msgid "You can not set posted move \"%(move)s\" to draft in journal \"%(journal)s\"."
msgstr ""
-"No podeu canviar a esborrany l'assentament confirmat \"%(move)s\" al diari "
-"\"%(journal)s\"."
+"No podeu canviar a esborrany l'assentament comptabilitzat \"%(move)s\" al "
+"diari \"%(journal)s\"."
msgctxt "error:account.move:"
msgid ""
@@ -227,14 +231,6 @@ msgid "\"%(first)s\" and \"%(second)s\" periods overlap."
msgstr "Els períodes \"% (first)s\" i \"% (second)s\" se sobreposen."
msgctxt "error:account.period:"
-msgid ""
-"Company of sequence \"%(sequence)s\" does not match the company of period "
-"\"%(period)s\" to which it is assigned to."
-msgstr ""
-"L'empresa de la seqüència \"%(sequence)s\" no coincideix amb l'empresa del "
-"període \"%(period)s\" a la que està assignada."
-
-msgctxt "error:account.period:"
msgid "Dates of period \"%s\" are outside are outside it's fiscal year dates."
msgstr ""
"Les dates del període \"%s\" estan fora de les dates del seu exercici "
@@ -254,7 +250,7 @@ msgid ""
" already posted moves in the period."
msgstr ""
"No podeu canviar la seqüència d'assentaments confirmats del període \"%s\" "
-"perquè ja hi ha assentaments confirmats al període."
+"perquè ja hi ha assentaments comptabilitzats al període."
msgctxt "error:account.period:"
msgid ""
@@ -262,7 +258,7 @@ msgid ""
"\"%(move)s\" in this period."
msgstr ""
"No podeu tancar el període \"%(period)s\" perquè hi ha assentaments no "
-"confirmats \"%(move)s\" en aquest període."
+"comptabilitzats \"%(move)s\" en aquest període."
msgctxt "error:account.period:"
msgid "You can not create a period on fiscal year \"%s\" because it is closed."
@@ -270,7 +266,7 @@ msgstr "No podeu crear un període a l'exercici fiscal \"%s\" perquè està tanc
msgctxt "error:account.period:"
msgid "You can not modify/delete period \"%s\" because it has moves."
-msgstr "No podeu modificar/esborrar el període \"%s\" perquè té assentaments."
+msgstr "No podeu modificar/eliminar el període \"%s\" perquè té assentaments."
msgctxt "error:account.period:"
msgid ""
@@ -280,6 +276,22 @@ msgstr ""
"No podeu obrir el període \"%(period)s\" perquè el seu exercici fiscal "
"\"%(fiscalyear)s\" està tancat."
+msgctxt "error:account.tax.template:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+"\"Actualitza preu unitat\" no es pot aplicar a l'impost \"%(template)s\" per"
+" què té pare."
+
+msgctxt "error:account.tax:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+"\"Actualitza preu unitat\" no es pot aplicar a l'impost \"%(template)s\" per"
+" què té pare."
+
msgctxt "field:account.account,active:"
msgid "Active"
msgstr "Actiu"
@@ -332,6 +344,10 @@ msgctxt "field:account.account,deferrals:"
msgid "Deferrals"
msgstr "Pròrrogues"
+msgctxt "field:account.account,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Saldo en el llibre major"
+
msgctxt "field:account.account,id:"
msgid "ID"
msgstr "ID"
@@ -496,6 +512,10 @@ msgctxt "field:account.account.template,deferral:"
msgid "Deferral"
msgstr "Prorrogar"
+msgctxt "field:account.account.template,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Saldo en el llibre major"
+
msgctxt "field:account.account.template,id:"
msgid "ID"
msgstr "ID"
@@ -794,7 +814,7 @@ msgstr "Períodes"
msgctxt "field:account.fiscalyear,post_move_sequence:"
msgid "Post Move Sequence"
-msgstr "Seqüència d'assentament confirmat"
+msgstr "Seqüència d'assentament comptabilitzat"
msgctxt "field:account.fiscalyear,rec_name:"
msgid "Name"
@@ -848,6 +868,10 @@ msgctxt "field:account.fiscalyear-account.move.line,write_uid:"
msgid "Write User"
msgstr "Usuari modificació"
+msgctxt "field:account.fiscalyear.balance_non_deferral.start,company:"
+msgid "Company"
+msgstr "Empresa"
+
msgctxt "field:account.fiscalyear.balance_non_deferral.start,credit_account:"
msgid "Credit Account"
msgstr "Compte haver"
@@ -925,7 +949,7 @@ msgid "Type"
msgstr "Tipus"
msgctxt "field:account.journal,update_posted:"
-msgid "Allow cancelling moves"
+msgid "Allow updating posted moves"
msgstr "Permetre cancel·lar assentaments"
msgctxt "field:account.journal,view:"
@@ -1100,6 +1124,10 @@ msgctxt "field:account.journal.view.column,write_uid:"
msgid "Write User"
msgstr "Usuari modificació"
+msgctxt "field:account.move,company:"
+msgid "Company"
+msgstr "Empresa"
+
msgctxt "field:account.move,create_date:"
msgid "Create Date"
msgstr "Data creació"
@@ -1142,11 +1170,11 @@ msgstr "Període"
msgctxt "field:account.move,post_date:"
msgid "Post Date"
-msgstr "Data confirmació"
+msgstr "Data comptabilització"
msgctxt "field:account.move,post_number:"
msgid "Post Number"
-msgstr "Número confirmat"
+msgstr "Número comptabilització"
msgctxt "field:account.move,rec_name:"
msgid "Name"
@@ -1164,10 +1192,30 @@ msgctxt "field:account.move,write_uid:"
msgid "Write User"
msgstr "Usuari modificació"
+msgctxt "field:account.move.cancel.default,description:"
+msgid "Description"
+msgstr "Descripció"
+
+msgctxt "field:account.move.cancel.default,id:"
+msgid "ID"
+msgstr "ID"
+
msgctxt "field:account.move.line,account:"
msgid "Account"
msgstr "Compte"
+msgctxt "field:account.move.line,amount:"
+msgid "Amount"
+msgstr "Import"
+
+msgctxt "field:account.move.line,amount_currency:"
+msgid "Amount Currency"
+msgstr "Moneda de l'import"
+
+msgctxt "field:account.move.line,amount_currency_digits:"
+msgid "Amount Currency Digits"
+msgstr "Decimals de la moneda de l'import"
+
msgctxt "field:account.move.line,amount_second_currency:"
msgid "Amount Second Currency"
msgstr "Import segona moneda"
@@ -1254,7 +1302,7 @@ msgstr "Segona moneda"
msgctxt "field:account.move.line,second_currency_digits:"
msgid "Second Currency Digits"
-msgstr "Decimals segona moneda"
+msgstr "Decimals de la segona moneda"
msgctxt "field:account.move.line,state:"
msgid "State"
@@ -1272,6 +1320,62 @@ msgctxt "field:account.move.line,write_uid:"
msgid "Write User"
msgstr "Usuari modificació"
+msgctxt "field:account.move.line.template,account:"
+msgid "Account"
+msgstr "Compte"
+
+msgctxt "field:account.move.line.template,amount:"
+msgid "Amount"
+msgstr "Import"
+
+msgctxt "field:account.move.line.template,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:account.move.line.template,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:account.move.line.template,description:"
+msgid "Description"
+msgstr "Descripció"
+
+msgctxt "field:account.move.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.line.template,move:"
+msgid "Move"
+msgstr "Assentament"
+
+msgctxt "field:account.move.line.template,operation:"
+msgid "Operation"
+msgstr "Operació"
+
+msgctxt "field:account.move.line.template,party:"
+msgid "Party"
+msgstr "Tercer"
+
+msgctxt "field:account.move.line.template,party_required:"
+msgid "Party Required"
+msgstr "Tercer requerit"
+
+msgctxt "field:account.move.line.template,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:account.move.line.template,taxes:"
+msgid "Taxes"
+msgstr "Impostos"
+
+msgctxt "field:account.move.line.template,write_date:"
+msgid "Write Date"
+msgstr "Data modificació"
+
+msgctxt "field:account.move.line.template,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
msgctxt "field:account.move.open_journal.ask,id:"
msgid "ID"
msgstr "ID"
@@ -1298,7 +1402,7 @@ msgstr "ID"
msgctxt "field:account.move.print_general_journal.start,posted:"
msgid "Posted Move"
-msgstr "Assentament confirmat"
+msgstr "Assentament comptabilitzat"
msgctxt "field:account.move.print_general_journal.start,to_date:"
msgid "To Date"
@@ -1310,7 +1414,7 @@ msgstr "Import"
msgctxt "field:account.move.reconcile_lines.writeoff,currency_digits:"
msgid "Currency Digits"
-msgstr "Decimals de moneda"
+msgstr "Decimals de la moneda"
msgctxt "field:account.move.reconcile_lines.writeoff,date:"
msgid "Date"
@@ -1360,6 +1464,130 @@ msgctxt "field:account.move.reconciliation,write_uid:"
msgid "Write User"
msgstr "Usuari modificació"
+msgctxt "field:account.move.template,active:"
+msgid "Active"
+msgstr "Actiu"
+
+msgctxt "field:account.move.template,company:"
+msgid "Company"
+msgstr "Empresa"
+
+msgctxt "field:account.move.template,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:account.move.template,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:account.move.template,date:"
+msgid "Date"
+msgstr "Data"
+
+msgctxt "field:account.move.template,description:"
+msgid "Description"
+msgstr "Descripció"
+
+msgctxt "field:account.move.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template,journal:"
+msgid "Journal"
+msgstr "Diari"
+
+msgctxt "field:account.move.template,keywords:"
+msgid "Keywords"
+msgstr "Accions de teclat"
+
+msgctxt "field:account.move.template,lines:"
+msgid "Lines"
+msgstr "Línies"
+
+msgctxt "field:account.move.template,name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:account.move.template,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:account.move.template,write_date:"
+msgid "Write Date"
+msgstr "Data modificació"
+
+msgctxt "field:account.move.template,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
+msgctxt "field:account.move.template.create.keywords,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,period:"
+msgid "Period"
+msgstr "Període"
+
+msgctxt "field:account.move.template.create.template,template:"
+msgid "Template"
+msgstr "Plantilla"
+
+msgctxt "field:account.move.template.keyword,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:account.move.template.keyword,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:account.move.template.keyword,digits:"
+msgid "Digits"
+msgstr "Decimals"
+
+msgctxt "field:account.move.template.keyword,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.keyword,move:"
+msgid "Move"
+msgstr "Assentament"
+
+msgctxt "field:account.move.template.keyword,name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:account.move.template.keyword,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:account.move.template.keyword,required:"
+msgid "Required"
+msgstr "Requerit"
+
+msgctxt "field:account.move.template.keyword,sequence:"
+msgid "Sequence"
+msgstr "Seqüència"
+
+msgctxt "field:account.move.template.keyword,string:"
+msgid "String"
+msgstr "Etiqueta"
+
+msgctxt "field:account.move.template.keyword,type_:"
+msgid "Type"
+msgstr "Tipus"
+
+msgctxt "field:account.move.template.keyword,write_date:"
+msgid "Write Date"
+msgstr "Data modificació"
+
+msgctxt "field:account.move.template.keyword,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
msgctxt "field:account.open_aged_balance.start,balance_type:"
msgid "Type"
msgstr "Tipus"
@@ -1374,7 +1602,7 @@ msgstr "ID"
msgctxt "field:account.open_aged_balance.start,posted:"
msgid "Posted Move"
-msgstr "Assentament confirmat"
+msgstr "Assentament comptabilitzat"
msgctxt "field:account.open_aged_balance.start,term1:"
msgid "First Term"
@@ -1406,7 +1634,7 @@ msgstr "ID"
msgctxt "field:account.open_balance_sheet.start,posted:"
msgid "Posted Move"
-msgstr "Assentament confirmat"
+msgstr "Assentament comptabilitzat"
msgctxt "field:account.open_chart.start,fiscalyear:"
msgid "Fiscal Year"
@@ -1418,7 +1646,7 @@ msgstr "ID"
msgctxt "field:account.open_chart.start,posted:"
msgid "Posted Moves"
-msgstr "Assentaments confirmats"
+msgstr "Assentaments comptabilitzats"
msgctxt "field:account.open_income_statement.start,company:"
msgid "Company"
@@ -1438,7 +1666,7 @@ msgstr "ID"
msgctxt "field:account.open_income_statement.start,posted:"
msgid "Posted Move"
-msgstr "Assentament confirmat"
+msgstr "Assentament comptabilitzat"
msgctxt "field:account.open_income_statement.start,start_period:"
msgid "Start Period"
@@ -1458,7 +1686,7 @@ msgstr "ID"
msgctxt "field:account.open_third_party_balance.start,posted:"
msgid "Posted Move"
-msgstr "Assentament confirmat"
+msgstr "Assentament comptabilitzat"
msgctxt "field:account.period,code:"
msgid "Code"
@@ -1494,7 +1722,7 @@ msgstr "Nom"
msgctxt "field:account.period,post_move_sequence:"
msgid "Post Move Sequence"
-msgstr "Seqüència d'assentament confirmat"
+msgstr "Seqüència d'assentament comptabilitzat"
msgctxt "field:account.period,rec_name:"
msgid "Name"
@@ -1542,7 +1770,7 @@ msgstr "ID"
msgctxt "field:account.print_general_ledger.start,posted:"
msgid "Posted Move"
-msgstr "Assentament confirmat"
+msgstr "Assentament comptabilitzat"
msgctxt "field:account.print_general_ledger.start,start_period:"
msgid "Start Period"
@@ -1570,7 +1798,7 @@ msgstr "ID"
msgctxt "field:account.print_trial_balance.start,posted:"
msgid "Posted Move"
-msgstr "Assentament confirmat"
+msgstr "Assentament comptabilitzat"
msgctxt "field:account.print_trial_balance.start,start_period:"
msgid "Start Period"
@@ -1714,7 +1942,7 @@ msgstr "Pare"
msgctxt "field:account.tax,rate:"
msgid "Rate"
-msgstr "Ràtio"
+msgstr "Percentatge"
msgctxt "field:account.tax,rec_name:"
msgid "Name"
@@ -1736,6 +1964,10 @@ msgctxt "field:account.tax,type:"
msgid "Type"
msgstr "Tipus"
+msgctxt "field:account.tax,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Actualitza preu unitat"
+
msgctxt "field:account.tax,write_date:"
msgid "Write Date"
msgstr "Data modificació"
@@ -1916,6 +2148,10 @@ msgctxt "field:account.tax.line,code:"
msgid "Code"
msgstr "Codi"
+msgctxt "field:account.tax.line,company:"
+msgid "Company"
+msgstr "Empresa"
+
msgctxt "field:account.tax.line,create_date:"
msgid "Create Date"
msgstr "Data creació"
@@ -1952,6 +2188,46 @@ msgctxt "field:account.tax.line,write_uid:"
msgid "Write User"
msgstr "Usuari modificació"
+msgctxt "field:account.tax.line.template,amount:"
+msgid "Amount"
+msgstr "Import"
+
+msgctxt "field:account.tax.line.template,code:"
+msgid "Code"
+msgstr "Codi"
+
+msgctxt "field:account.tax.line.template,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:account.tax.line.template,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:account.tax.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.tax.line.template,line:"
+msgid "Line"
+msgstr "Línia"
+
+msgctxt "field:account.tax.line.template,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:account.tax.line.template,tax:"
+msgid "Tax"
+msgstr "Impost"
+
+msgctxt "field:account.tax.line.template,write_date:"
+msgid "Write Date"
+msgstr "Data modificació"
+
+msgctxt "field:account.tax.line.template,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
msgctxt "field:account.tax.rule,company:"
msgid "Company"
msgstr "Empresa"
@@ -2214,7 +2490,7 @@ msgstr "Pare"
msgctxt "field:account.tax.template,rate:"
msgid "Rate"
-msgstr "Ràtio"
+msgstr "Percentatge"
msgctxt "field:account.tax.template,rec_name:"
msgid "Name"
@@ -2232,6 +2508,10 @@ msgctxt "field:account.tax.template,type:"
msgid "Type"
msgstr "Tipus"
+msgctxt "field:account.tax.template,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Actualitza preu unitat"
+
msgctxt "field:account.tax.template,write_date:"
msgid "Write Date"
msgstr "Data modificació"
@@ -2284,6 +2564,10 @@ msgctxt "field:party.party,supplier_tax_rule:"
msgid "Supplier Tax Rule"
msgstr "Regla d'impost de proveïdor"
+msgctxt "help:account.account,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Només mostra el saldo en el llibre major."
+
msgctxt "help:account.account,reconcile:"
msgid ""
"Allow move lines of this account \n"
@@ -2306,6 +2590,10 @@ msgstr ""
"Impost per defecte per a la codificació manual\n"
"d'apunts per diaris de tipus: \"despeses\" i \"ingressos\"."
+msgctxt "help:account.account.template,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Només mostra el saldo en el llibre major."
+
msgctxt "help:account.account.type,sequence:"
msgid "Use to order the account type"
msgstr "Serveix per ordenar el tipus de compte."
@@ -2330,17 +2618,33 @@ msgctxt "help:account.move.line,second_currency:"
msgid "The second currency"
msgstr "La segona moneda."
+msgctxt "help:account.move.line.template,description:"
+msgid "Keywords values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"Les paraules clau a substituir per valors s'identifiquen escrivint-les dins "
+"de claus ('{' i '}')."
+
msgctxt "help:account.move.print_general_journal.start,posted:"
msgid "Show only posted move"
-msgstr "Mostra només assentaments confirmats."
+msgstr "Mostra només assentaments comptabilitzats."
+
+msgctxt "help:account.move.template,date:"
+msgid "Leave empty for today"
+msgstr "Deixeu-lo buit per avui."
+
+msgctxt "help:account.move.template,description:"
+msgid "Keyword values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"Les paraules clau a substituir per valors s'identifiquen escrivint-les dins "
+"de claus ('{' i '}')."
msgctxt "help:account.open_aged_balance.start,posted:"
msgid "Show only posted move"
-msgstr "Mostra només assentaments confirmats."
+msgstr "Mostra només assentaments comptabilitzats."
msgctxt "help:account.open_balance_sheet.start,posted:"
msgid "Show only posted move"
-msgstr "Mostra només assentaments confirmats."
+msgstr "Mostra només assentaments comptabilitzats."
msgctxt "help:account.open_chart.start,fiscalyear:"
msgid "Leave empty for all open fiscal year"
@@ -2348,31 +2652,31 @@ msgstr "Deixeu-lo buit per tots els exercicis fiscals oberts."
msgctxt "help:account.open_chart.start,posted:"
msgid "Show posted moves only"
-msgstr "Mostra només assentaments confirmats."
+msgstr "Mostra només assentaments comptabilitzats."
msgctxt "help:account.open_income_statement.start,posted:"
msgid "Show only posted move"
-msgstr "Mostra només assentaments confirmats."
+msgstr "Mostra només assentaments comptabilitzats."
msgctxt "help:account.open_third_party_balance.start,posted:"
msgid "Show only posted move"
-msgstr "Mostra només assentaments confirmats."
+msgstr "Mostra només assentaments comptabilitzats."
msgctxt "help:account.print_general_ledger.start,empty_account:"
msgid "With account without move"
-msgstr "Amb compte sense assentament"
+msgstr "Amb compte sense assentament."
msgctxt "help:account.print_general_ledger.start,posted:"
msgid "Show only posted move"
-msgstr "Mostra només assentaments confirmats."
+msgstr "Mostra només assentaments comptabilitzats."
msgctxt "help:account.print_trial_balance.start,empty_account:"
msgid "With account without move"
-msgstr "Amb compte sense assentament"
+msgstr "Amb compte sense assentament."
msgctxt "help:account.print_trial_balance.start,posted:"
msgid "Show only posted move"
-msgstr "Mostra només assentaments confirmats."
+msgstr "Mostra només assentaments comptabilitzats."
msgctxt "help:account.tax,amount:"
msgid "In company's currency"
@@ -2402,6 +2706,14 @@ msgctxt "help:account.tax,sequence:"
msgid "Use to order the taxes"
msgstr "Serveix per ordenar els impostos."
+msgctxt "help:account.tax,update_unit_price:"
+msgid ""
+"If checked then the unit price for further tax computation willbe modified "
+"by this tax"
+msgstr ""
+"Si es marca el preu unitat usat per càlculs d'impostos addicionals serà "
+"modificat per aquest impost."
+
msgctxt "help:account.tax.code.open_chart.start,fiscalyear:"
msgid "Leave empty for all open fiscal year"
msgstr "Deixeu-lo buit per tots els exercicis fiscals oberts."
@@ -2664,10 +2976,18 @@ msgctxt "model:account.move,name:"
msgid "Account Move"
msgstr "Assentament comptable"
+msgctxt "model:account.move.cancel.default,name:"
+msgid "Cancel Moves"
+msgstr "Cancel·la assentaments"
+
msgctxt "model:account.move.line,name:"
msgid "Account Move Line"
msgstr "Apunt comptable"
+msgctxt "model:account.move.line.template,name:"
+msgid "Account Move Line Template"
+msgstr "Plantilla d'apunt comptable"
+
msgctxt "model:account.move.open_journal.ask,name:"
msgid "Open Journal Ask"
msgstr "Demana el diari a obrir"
@@ -2684,6 +3004,22 @@ msgctxt "model:account.move.reconciliation,name:"
msgid "Account Move Reconciliation Lines"
msgstr "Línies de conciliació d'apunts comptables"
+msgctxt "model:account.move.template,name:"
+msgid "Account Move Template"
+msgstr "Plantilla d'assentament comptable"
+
+msgctxt "model:account.move.template.create.keywords,name:"
+msgid "Create Move from Template"
+msgstr "Crea assentament des de plantilla"
+
+msgctxt "model:account.move.template.create.template,name:"
+msgid "Create Move from Template"
+msgstr "Crea assentament des de plantilla"
+
+msgctxt "model:account.move.template.keyword,name:"
+msgid "Account Move Template Keyword"
+msgstr "Paraula clau de plantilla d'assentament comptable"
+
msgctxt "model:account.open_aged_balance.start,name:"
msgid "Open Aged Balance"
msgstr "Obre balanç històric"
@@ -2744,6 +3080,10 @@ msgctxt "model:account.tax.line,name:"
msgid "Tax Line"
msgstr "Línia d'impost"
+msgctxt "model:account.tax.line.template,name:"
+msgid "Account Tax Line Template"
+msgstr "Plantilla de línia d'impost comptable"
+
msgctxt "model:account.tax.rule,name:"
msgid "Tax Rule"
msgstr "Regla d'impost"
@@ -2888,6 +3228,14 @@ msgctxt "model:ir.action,name:act_move_reconciliation_lines"
msgid "Reconciliation Lines"
msgstr "Línies de conciliació"
+msgctxt "model:ir.action,name:act_move_template_create"
+msgid "Create Move from Template"
+msgstr "Crea assentament des de plantilla"
+
+msgctxt "model:ir.action,name:act_move_template_form"
+msgid "Account Move Template"
+msgstr "Plantilla d'assentament comptable"
+
msgctxt "model:ir.action,name:act_open_account"
msgid "Open Move Account"
msgstr "Obre compte de l'assentament"
@@ -3180,6 +3528,14 @@ msgctxt "model:ir.ui.menu,name:menu_move_form"
msgid "Account Moves"
msgstr "Assentaments comptables"
+msgctxt "model:ir.ui.menu,name:menu_move_template_create"
+msgid "Create Move from Template"
+msgstr "Crea assentament des de plantilla"
+
+msgctxt "model:ir.ui.menu,name:menu_move_template_form"
+msgid "Account Move Template"
+msgstr "Plantilla d'assentament comptable"
+
msgctxt "model:ir.ui.menu,name:menu_open_balance_sheet"
msgid "Balance Sheet"
msgstr "Balanç general"
@@ -3470,7 +3826,7 @@ msgstr "Origen:"
msgctxt "odt:account.move.general_journal:"
msgid "Posted"
-msgstr "Confirmat"
+msgstr "Comptabilitzat"
msgctxt "odt:account.move.general_journal:"
msgid "Print Date:"
@@ -3682,7 +4038,7 @@ msgstr "Esborrany"
msgctxt "selection:account.move,state:"
msgid "Posted"
-msgstr "Confirmat"
+msgstr "Comptabilitzat"
msgctxt "selection:account.move.line,move_state:"
msgid "Draft"
@@ -3690,7 +4046,7 @@ msgstr "Esborrany"
msgctxt "selection:account.move.line,move_state:"
msgid "Posted"
-msgstr "Confirmat"
+msgstr "Comptabilitzat"
msgctxt "selection:account.move.line,state:"
msgid "Draft"
@@ -3700,6 +4056,30 @@ msgctxt "selection:account.move.line,state:"
msgid "Valid"
msgstr "Correcte"
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Credit"
+msgstr "Haver"
+
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Debit"
+msgstr "Deure"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Char"
+msgstr "Text"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Date"
+msgstr "Data"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Numeric"
+msgstr "Numèric"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Party"
+msgstr "Tercer"
+
msgctxt "selection:account.open_aged_balance.start,balance_type:"
msgid "Both"
msgstr "Ambdós"
@@ -3980,6 +4360,22 @@ msgctxt "view:account.journal:"
msgid "Journals"
msgstr "Diaris"
+msgctxt "view:account.move.cancel.default:"
+msgid "Cancel Moves"
+msgstr "Cancel·la assentaments"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Template"
+msgstr "Plantilla d'apunt comptable"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Templates"
+msgstr "Plantilles d'apunt comptable"
+
+msgctxt "view:account.move.line.template:"
+msgid "Other Info"
+msgstr "Informació addicional"
+
msgctxt "view:account.move.line:"
msgid "Account Move Line"
msgstr "Apunt comptable"
@@ -4020,6 +4416,30 @@ msgctxt "view:account.move.reconciliation:"
msgid "Reconciliations"
msgstr "Conciliacions"
+msgctxt "view:account.move.template.create.template:"
+msgid "Create Move from Template"
+msgstr "Crea assentament des de plantilla"
+
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keyword"
+msgstr "Paraula clau de plantilla d'assentament comptable"
+
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keywords"
+msgstr "Paraules clau de plantilla d'assentament comptable"
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Template"
+msgstr "Plantilla d'assentament comptable"
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Templates"
+msgstr "Plantilles d'assentament comptable"
+
+msgctxt "view:account.move.template:"
+msgid "Template"
+msgstr "Plantilla"
+
msgctxt "view:account.move:"
msgid "Account Move"
msgstr "Assentament comptable"
@@ -4034,7 +4454,7 @@ msgstr "Esborrany"
msgctxt "view:account.move:"
msgid "Post"
-msgstr "Confirma"
+msgstr "Comptabilitza"
msgctxt "view:account.open_aged_balance.start:"
msgid "Open Aged Balance"
@@ -4128,6 +4548,14 @@ msgctxt "view:account.tax.group:"
msgid "Tax Groups"
msgstr "Grups d'impost"
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Template"
+msgstr "Plantilla de línia d'impost comptable"
+
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Templates"
+msgstr "Plantilles de línia d'impost comptable"
+
msgctxt "view:account.tax.line:"
msgid "Account Tax Line"
msgstr "Línia d'impost comptable"
@@ -4234,7 +4662,7 @@ msgstr "Actualitza el pla comptable"
msgctxt "view:account.update_chart.succeed:"
msgid "Update Chart of Accounts Succeed!"
-msgstr "Actualització del pla comptable realitzada correctament."
+msgstr "L'actualització del pla comptable s'ha realitzat correctament."
msgctxt "view:party.party:"
msgid "Account"
@@ -4261,7 +4689,7 @@ msgid "Cancel"
msgstr "Cancel·la"
msgctxt "wizard_button:account.create_chart,start,account:"
-msgid "Ok"
+msgid "OK"
msgstr "Accepta"
msgctxt "wizard_button:account.create_chart,start,end:"
@@ -4269,7 +4697,7 @@ msgid "Cancel"
msgstr "Cancel·la"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,balance:"
-msgid "Ok"
+msgid "OK"
msgstr "Accepta"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,end:"
@@ -4284,6 +4712,14 @@ msgctxt "wizard_button:account.fiscalyear.close,start,end:"
msgid "Cancel"
msgstr "Cancel·la"
+msgctxt "wizard_button:account.move.cancel,default,cancel:"
+msgid "OK"
+msgstr "D'acord"
+
+msgctxt "wizard_button:account.move.cancel,default,end:"
+msgid "Cancel"
+msgstr "Cancel·la"
+
msgctxt "wizard_button:account.move.open_journal,ask,end:"
msgid "Cancel"
msgstr "Cancel·la"
@@ -4308,6 +4744,22 @@ msgctxt "wizard_button:account.move.reconcile_lines,writeoff,reconcile:"
msgid "Reconcile"
msgstr "Concilia"
+msgctxt "wizard_button:account.move.template.create,keywords,create_:"
+msgid "Create"
+msgstr "Crea"
+
+msgctxt "wizard_button:account.move.template.create,keywords,end:"
+msgid "Cancel"
+msgstr "Cancel·la"
+
+msgctxt "wizard_button:account.move.template.create,template,end:"
+msgid "Cancel"
+msgstr "Cancel·la"
+
+msgctxt "wizard_button:account.move.template.create,template,keywords:"
+msgid "Next"
+msgstr "Següent"
+
msgctxt "wizard_button:account.open_aged_balance,start,end:"
msgid "Cancel"
msgstr "Cancel·la"
@@ -4393,5 +4845,5 @@ msgid "Update"
msgstr "Actualitza"
msgctxt "wizard_button:account.update_chart,succeed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Accepta"
diff --git a/locale/cs_CZ.po b/locale/cs_CZ.po
index d9993bd..82a72c7 100644
--- a/locale/cs_CZ.po
+++ b/locale/cs_CZ.po
@@ -93,6 +93,10 @@ msgid "Wrong credit/debit values."
msgstr ""
msgctxt "error:account.move.line:"
+msgid "Wrong second currency sign."
+msgstr ""
+
+msgctxt "error:account.move.line:"
msgid "You can not add/modify lines in closed journal period \"%s\"."
msgstr ""
@@ -114,6 +118,10 @@ msgctxt "error:account.move.line:"
msgid "You can not modify lines of move \"%s\" because it is already posted."
msgstr ""
+msgctxt "error:account.move.line:"
+msgid "wrong_second_currency_sign"
+msgstr ""
+
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not create a reconciliation where debit \"%(debit)s\" and credit "
@@ -139,7 +147,7 @@ msgstr ""
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not reconcile line \"%(line)s\" because it's party \"%(party1)s\" is"
-" different from %(party2)s\"."
+" different from \"%(party2)s\"."
msgstr ""
msgctxt "error:account.move.reconciliation:"
@@ -153,10 +161,6 @@ msgid ""
msgstr ""
msgctxt "error:account.move:"
-msgid "You can not create lines on accountsof different companies in move \"%s\"."
-msgstr ""
-
-msgctxt "error:account.move:"
msgid ""
"You can not create move \"%(move)s\" because it's date is outside its "
"period."
@@ -197,12 +201,6 @@ msgid "\"%(first)s\" and \"%(second)s\" periods overlap."
msgstr ""
msgctxt "error:account.period:"
-msgid ""
-"Company of sequence \"%(sequence)s\" does not match the company of period "
-"\"%(period)s\" to which it is assigned to."
-msgstr ""
-
-msgctxt "error:account.period:"
msgid "Dates of period \"%s\" are outside are outside it's fiscal year dates."
msgstr ""
@@ -240,6 +238,18 @@ msgid ""
"\"%(fiscalyear)s\" is closed."
msgstr ""
+msgctxt "error:account.tax.template:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+
+msgctxt "error:account.tax:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+
msgctxt "field:account.account,active:"
msgid "Active"
msgstr ""
@@ -292,6 +302,10 @@ msgctxt "field:account.account,deferrals:"
msgid "Deferrals"
msgstr ""
+msgctxt "field:account.account,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr ""
+
msgctxt "field:account.account,id:"
msgid "ID"
msgstr ""
@@ -456,6 +470,10 @@ msgctxt "field:account.account.template,deferral:"
msgid "Deferral"
msgstr ""
+msgctxt "field:account.account.template,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr ""
+
msgctxt "field:account.account.template,id:"
msgid "ID"
msgstr ""
@@ -808,6 +826,10 @@ msgctxt "field:account.fiscalyear-account.move.line,write_uid:"
msgid "Write User"
msgstr ""
+msgctxt "field:account.fiscalyear.balance_non_deferral.start,company:"
+msgid "Company"
+msgstr ""
+
msgctxt "field:account.fiscalyear.balance_non_deferral.start,credit_account:"
msgid "Credit Account"
msgstr ""
@@ -885,7 +907,7 @@ msgid "Type"
msgstr ""
msgctxt "field:account.journal,update_posted:"
-msgid "Allow cancelling moves"
+msgid "Allow updating posted moves"
msgstr ""
msgctxt "field:account.journal,view:"
@@ -1060,6 +1082,10 @@ msgctxt "field:account.journal.view.column,write_uid:"
msgid "Write User"
msgstr ""
+msgctxt "field:account.move,company:"
+msgid "Company"
+msgstr ""
+
msgctxt "field:account.move,create_date:"
msgid "Create Date"
msgstr ""
@@ -1124,10 +1150,30 @@ msgctxt "field:account.move,write_uid:"
msgid "Write User"
msgstr ""
+msgctxt "field:account.move.cancel.default,description:"
+msgid "Description"
+msgstr ""
+
+msgctxt "field:account.move.cancel.default,id:"
+msgid "ID"
+msgstr ""
+
msgctxt "field:account.move.line,account:"
msgid "Account"
msgstr ""
+msgctxt "field:account.move.line,amount:"
+msgid "Amount"
+msgstr ""
+
+msgctxt "field:account.move.line,amount_currency:"
+msgid "Amount Currency"
+msgstr ""
+
+msgctxt "field:account.move.line,amount_currency_digits:"
+msgid "Amount Currency Digits"
+msgstr ""
+
msgctxt "field:account.move.line,amount_second_currency:"
msgid "Amount Second Currency"
msgstr ""
@@ -1232,6 +1278,62 @@ msgctxt "field:account.move.line,write_uid:"
msgid "Write User"
msgstr ""
+msgctxt "field:account.move.line.template,account:"
+msgid "Account"
+msgstr ""
+
+msgctxt "field:account.move.line.template,amount:"
+msgid "Amount"
+msgstr ""
+
+msgctxt "field:account.move.line.template,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:account.move.line.template,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:account.move.line.template,description:"
+msgid "Description"
+msgstr ""
+
+msgctxt "field:account.move.line.template,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:account.move.line.template,move:"
+msgid "Move"
+msgstr ""
+
+msgctxt "field:account.move.line.template,operation:"
+msgid "Operation"
+msgstr ""
+
+msgctxt "field:account.move.line.template,party:"
+msgid "Party"
+msgstr ""
+
+msgctxt "field:account.move.line.template,party_required:"
+msgid "Party Required"
+msgstr ""
+
+msgctxt "field:account.move.line.template,rec_name:"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:account.move.line.template,taxes:"
+msgid "Taxes"
+msgstr ""
+
+msgctxt "field:account.move.line.template,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:account.move.line.template,write_uid:"
+msgid "Write User"
+msgstr ""
+
msgctxt "field:account.move.open_journal.ask,id:"
msgid "ID"
msgstr ""
@@ -1320,6 +1422,130 @@ msgctxt "field:account.move.reconciliation,write_uid:"
msgid "Write User"
msgstr ""
+msgctxt "field:account.move.template,active:"
+msgid "Active"
+msgstr ""
+
+msgctxt "field:account.move.template,company:"
+msgid "Company"
+msgstr ""
+
+msgctxt "field:account.move.template,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:account.move.template,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:account.move.template,date:"
+msgid "Date"
+msgstr ""
+
+msgctxt "field:account.move.template,description:"
+msgid "Description"
+msgstr ""
+
+msgctxt "field:account.move.template,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:account.move.template,journal:"
+msgid "Journal"
+msgstr ""
+
+msgctxt "field:account.move.template,keywords:"
+msgid "Keywords"
+msgstr ""
+
+msgctxt "field:account.move.template,lines:"
+msgid "Lines"
+msgstr ""
+
+msgctxt "field:account.move.template,name:"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:account.move.template,rec_name:"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:account.move.template,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:account.move.template,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:account.move.template.create.keywords,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:account.move.template.create.template,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:account.move.template.create.template,period:"
+msgid "Period"
+msgstr ""
+
+msgctxt "field:account.move.template.create.template,template:"
+msgid "Template"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,digits:"
+msgid "Digits"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,move:"
+msgid "Move"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,name:"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,rec_name:"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,required:"
+msgid "Required"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,sequence:"
+msgid "Sequence"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,string:"
+msgid "String"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,type_:"
+msgid "Type"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,write_uid:"
+msgid "Write User"
+msgstr ""
+
msgctxt "field:account.open_aged_balance.start,balance_type:"
msgid "Type"
msgstr ""
@@ -1696,6 +1922,10 @@ msgctxt "field:account.tax,type:"
msgid "Type"
msgstr ""
+msgctxt "field:account.tax,update_unit_price:"
+msgid "Update Unit Price"
+msgstr ""
+
msgctxt "field:account.tax,write_date:"
msgid "Write Date"
msgstr ""
@@ -1876,6 +2106,10 @@ msgctxt "field:account.tax.line,code:"
msgid "Code"
msgstr ""
+msgctxt "field:account.tax.line,company:"
+msgid "Company"
+msgstr ""
+
msgctxt "field:account.tax.line,create_date:"
msgid "Create Date"
msgstr ""
@@ -1912,6 +2146,46 @@ msgctxt "field:account.tax.line,write_uid:"
msgid "Write User"
msgstr ""
+msgctxt "field:account.tax.line.template,amount:"
+msgid "Amount"
+msgstr ""
+
+msgctxt "field:account.tax.line.template,code:"
+msgid "Code"
+msgstr ""
+
+msgctxt "field:account.tax.line.template,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:account.tax.line.template,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:account.tax.line.template,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:account.tax.line.template,line:"
+msgid "Line"
+msgstr ""
+
+msgctxt "field:account.tax.line.template,rec_name:"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:account.tax.line.template,tax:"
+msgid "Tax"
+msgstr ""
+
+msgctxt "field:account.tax.line.template,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:account.tax.line.template,write_uid:"
+msgid "Write User"
+msgstr ""
+
msgctxt "field:account.tax.rule,company:"
msgid "Company"
msgstr ""
@@ -2192,6 +2466,10 @@ msgctxt "field:account.tax.template,type:"
msgid "Type"
msgstr ""
+msgctxt "field:account.tax.template,update_unit_price:"
+msgid "Update Unit Price"
+msgstr ""
+
msgctxt "field:account.tax.template,write_date:"
msgid "Write Date"
msgstr ""
@@ -2244,6 +2522,10 @@ msgctxt "field:party.party,supplier_tax_rule:"
msgid "Supplier Tax Rule"
msgstr ""
+msgctxt "help:account.account,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr ""
+
msgctxt "help:account.account,reconcile:"
msgid ""
"Allow move lines of this account \n"
@@ -2262,6 +2544,10 @@ msgid ""
"for journal types: \"expense\" and \"revenue\""
msgstr ""
+msgctxt "help:account.account.template,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr ""
+
msgctxt "help:account.account.type,sequence:"
msgid "Use to order the account type"
msgstr ""
@@ -2284,10 +2570,22 @@ msgctxt "help:account.move.line,second_currency:"
msgid "The second currency"
msgstr ""
+msgctxt "help:account.move.line.template,description:"
+msgid "Keywords values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+
msgctxt "help:account.move.print_general_journal.start,posted:"
msgid "Show only posted move"
msgstr ""
+msgctxt "help:account.move.template,date:"
+msgid "Leave empty for today"
+msgstr ""
+
+msgctxt "help:account.move.template,description:"
+msgid "Keyword values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+
msgctxt "help:account.open_aged_balance.start,posted:"
msgid "Show only posted move"
msgstr ""
@@ -2356,6 +2654,12 @@ msgctxt "help:account.tax,sequence:"
msgid "Use to order the taxes"
msgstr ""
+msgctxt "help:account.tax,update_unit_price:"
+msgid ""
+"If checked then the unit price for further tax computation willbe modified "
+"by this tax"
+msgstr ""
+
msgctxt "help:account.tax.code.open_chart.start,fiscalyear:"
msgid "Leave empty for all open fiscal year"
msgstr ""
@@ -2614,10 +2918,18 @@ msgctxt "model:account.move,name:"
msgid "Account Move"
msgstr ""
+msgctxt "model:account.move.cancel.default,name:"
+msgid "Cancel Moves"
+msgstr ""
+
msgctxt "model:account.move.line,name:"
msgid "Account Move Line"
msgstr ""
+msgctxt "model:account.move.line.template,name:"
+msgid "Account Move Line Template"
+msgstr ""
+
msgctxt "model:account.move.open_journal.ask,name:"
msgid "Open Journal Ask"
msgstr ""
@@ -2634,6 +2946,22 @@ msgctxt "model:account.move.reconciliation,name:"
msgid "Account Move Reconciliation Lines"
msgstr ""
+msgctxt "model:account.move.template,name:"
+msgid "Account Move Template"
+msgstr ""
+
+msgctxt "model:account.move.template.create.keywords,name:"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:account.move.template.create.template,name:"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:account.move.template.keyword,name:"
+msgid "Account Move Template Keyword"
+msgstr ""
+
msgctxt "model:account.open_aged_balance.start,name:"
msgid "Open Aged Balance"
msgstr ""
@@ -2694,6 +3022,10 @@ msgctxt "model:account.tax.line,name:"
msgid "Tax Line"
msgstr ""
+msgctxt "model:account.tax.line.template,name:"
+msgid "Account Tax Line Template"
+msgstr ""
+
msgctxt "model:account.tax.rule,name:"
msgid "Tax Rule"
msgstr ""
@@ -2838,6 +3170,14 @@ msgctxt "model:ir.action,name:act_move_reconciliation_lines"
msgid "Reconciliation Lines"
msgstr ""
+msgctxt "model:ir.action,name:act_move_template_create"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_move_template_form"
+msgid "Account Move Template"
+msgstr ""
+
msgctxt "model:ir.action,name:act_open_account"
msgid "Open Move Account"
msgstr ""
@@ -3130,6 +3470,14 @@ msgctxt "model:ir.ui.menu,name:menu_move_form"
msgid "Account Moves"
msgstr ""
+msgctxt "model:ir.ui.menu,name:menu_move_template_create"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_move_template_form"
+msgid "Account Move Template"
+msgstr ""
+
msgctxt "model:ir.ui.menu,name:menu_open_balance_sheet"
msgid "Balance Sheet"
msgstr ""
@@ -3650,6 +3998,30 @@ msgctxt "selection:account.move.line,state:"
msgid "Valid"
msgstr ""
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Credit"
+msgstr ""
+
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Debit"
+msgstr ""
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Char"
+msgstr ""
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Date"
+msgstr ""
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Numeric"
+msgstr ""
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Party"
+msgstr ""
+
msgctxt "selection:account.open_aged_balance.start,balance_type:"
msgid "Both"
msgstr ""
@@ -4209,7 +4581,7 @@ msgid "Cancel"
msgstr ""
msgctxt "wizard_button:account.create_chart,start,account:"
-msgid "Ok"
+msgid "OK"
msgstr ""
msgctxt "wizard_button:account.create_chart,start,end:"
@@ -4217,7 +4589,7 @@ msgid "Cancel"
msgstr ""
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,balance:"
-msgid "Ok"
+msgid "OK"
msgstr ""
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,end:"
@@ -4232,6 +4604,14 @@ msgctxt "wizard_button:account.fiscalyear.close,start,end:"
msgid "Cancel"
msgstr ""
+msgctxt "wizard_button:account.move.cancel,default,cancel:"
+msgid "OK"
+msgstr ""
+
+msgctxt "wizard_button:account.move.cancel,default,end:"
+msgid "Cancel"
+msgstr ""
+
msgctxt "wizard_button:account.move.open_journal,ask,end:"
msgid "Cancel"
msgstr ""
@@ -4256,6 +4636,22 @@ msgctxt "wizard_button:account.move.reconcile_lines,writeoff,reconcile:"
msgid "Reconcile"
msgstr ""
+msgctxt "wizard_button:account.move.template.create,keywords,create_:"
+msgid "Create"
+msgstr ""
+
+msgctxt "wizard_button:account.move.template.create,keywords,end:"
+msgid "Cancel"
+msgstr ""
+
+msgctxt "wizard_button:account.move.template.create,template,end:"
+msgid "Cancel"
+msgstr ""
+
+msgctxt "wizard_button:account.move.template.create,template,keywords:"
+msgid "Next"
+msgstr ""
+
msgctxt "wizard_button:account.open_aged_balance,start,end:"
msgid "Cancel"
msgstr ""
@@ -4341,5 +4737,5 @@ msgid "Update"
msgstr ""
msgctxt "wizard_button:account.update_chart,succeed,end:"
-msgid "Ok"
+msgid "OK"
msgstr ""
diff --git a/locale/de_DE.po b/locale/de_DE.po
index 534806b..464ed60 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -110,6 +110,10 @@ msgid "Wrong credit/debit values."
msgstr "Falsche Haben/Soll-Werte."
msgctxt "error:account.move.line:"
+msgid "Wrong second currency sign."
+msgstr "Falsches Vorzeichen für Fremdwährung"
+
+msgctxt "error:account.move.line:"
msgid "You can not add/modify lines in closed journal period \"%s\"."
msgstr ""
"In der geschlossenen Buchungsperiode \"%s\" können keine Zeilen mehr "
@@ -138,6 +142,10 @@ msgstr ""
"Änderung von Buchungszeilen in Buchungssatz \"%s\" nicht möglich, da dieser "
"bereits festgeschrieben ist."
+msgctxt "error:account.move.line:"
+msgid "wrong_second_currency_sign"
+msgstr ""
+
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not create a reconciliation where debit \"%(debit)s\" and credit "
@@ -155,28 +163,30 @@ msgid ""
"You can not reconcile line \"%(line)s\" because it's account \"%(account)s\""
" is configured as not reconcilable."
msgstr ""
-"Buchungszeile \"%(line)s\" kann nicht abgestimmt werden, weil das verwendete"
-" Konto \"%(account)s\" als nicht abstimmungsfähig konfiguriert ist."
+"Abstimmung von Buchungszeile \"%(line)s\" nicht möglich, weil das verwendete"
+" Konto \"%(account)s\" als nicht abstimmungsfähig konfiguriert ist"
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not reconcile line \"%(line)s\" because it's account "
"\"%(account1)s\" is different from \"%(account2)s\"."
msgstr ""
-"Abstimmung von Zeile \"%(line)s\" nicht möglich, weil das verwendete Konto "
-"\"%(account1)s\" unterschiedlich von Konto \"%(account2)s\" ist."
+"Abstimmung von Buchungszeile \"%(line)s\" nicht möglich, weil das verwendete"
+" Konto \"%(account1)s\" unterschiedlich von Konto \"%(account2)s\" ist."
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not reconcile line \"%(line)s\" because it's party \"%(party1)s\" is"
-" different from %(party2)s\"."
+" different from \"%(party2)s\"."
msgstr ""
-"Abstimmung von Zeile \"%(line)s\" nicht möglich, weil die verwendete Partei "
-"\"%(party1)s\" unterschiedlich von Partei \"%(party2)s\" ist."
+"Abstimmung von Buchungszeile \"%(line)s\" nicht möglich, weil die verwendete"
+" Partei \"%(party1)s\" unterschiedlich von Partei \"%(party2)s\" ist"
msgctxt "error:account.move.reconciliation:"
msgid "You can not reconcile line \"%s\" because it is not in valid state."
-msgstr "Abstimmung von Zeile \"%s\" nicht möglich, weil sie nicht gültig ist."
+msgstr ""
+"Abstimmung von Buchungszeile \"%s\" nicht möglich, weil sie in keinem "
+"gültigen Status ist"
msgctxt "error:account.move:"
msgid ""
@@ -187,12 +197,6 @@ msgstr ""
"Soll stattdessen der aktuelle Buchungszeitraum verwendet werden?"
msgctxt "error:account.move:"
-msgid "You can not create lines on accountsof different companies in move \"%s\"."
-msgstr ""
-"Erstellung von Buchungszeilen mit Konten unterschiedlicher Unternehmen in "
-"Buchungssatz \"%s\" nicht möglich."
-
-msgctxt "error:account.move:"
msgid ""
"You can not create move \"%(move)s\" because it's date is outside its "
"period."
@@ -243,15 +247,6 @@ msgid "\"%(first)s\" and \"%(second)s\" periods overlap."
msgstr "Buchungsperioden \"%(first)s\" und \"%(second)s\" überschneiden sich."
msgctxt "error:account.period:"
-msgid ""
-"Company of sequence \"%(sequence)s\" does not match the company of period "
-"\"%(period)s\" to which it is assigned to."
-msgstr ""
-"Das Unternehmen für Nummernkreis \"%(sequence)s\" stimmt nicht überein mit "
-"dem Unternehmen für Buchungsperiode \"%(period)s\", zu dem er zugeordnet "
-"ist."
-
-msgctxt "error:account.period:"
msgid "Dates of period \"%s\" are outside are outside it's fiscal year dates."
msgstr ""
"Die Datumsangaben für Buchungsperiode \"%s\" liegen außerhalb derer des "
@@ -264,7 +259,7 @@ msgstr "Keine Buchungsperiode eingetragen für \"%s\"."
msgctxt "error:account.period:"
msgid "Period \"%(first)s\" and \"%(second)s\" have the same sequence."
msgstr ""
-"Für die Buchungsperioden \"%(first)s\" und \"%(second)s\" ist derselbe "
+"Für die Buchungszeiträume \"%(first)s\" und \"%(second)s\" ist derselbe "
"Nummernkreis eingetragen."
msgctxt "error:account.period:"
@@ -304,6 +299,22 @@ msgstr ""
"Periode \"%(period)s\" kann nicht geöffnet werden, weil Geschäftsjahr "
"\"%(fiscalyear)s\" geschlossen ist."
+msgctxt "error:account.tax.template:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+"\"Einzelpreis aktualisieren\" kann nicht für Steuer \"%(template)s\" gesetzt"
+" werden, weil sie eine untergeordnete Steuer ist"
+
+msgctxt "error:account.tax:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+"\"Einzelpreis aktualisieren\" kann nicht für Steuer \"%(template)s\" gesetzt"
+" werden, weil sie eine untergeordnete Steuer ist"
+
msgctxt "field:account.account,active:"
msgid "Active"
msgstr "Aktiv"
@@ -356,6 +367,10 @@ msgctxt "field:account.account,deferrals:"
msgid "Deferrals"
msgstr "Saldenvorträge"
+msgctxt "field:account.account,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Kontenblattsaldo"
+
msgctxt "field:account.account,id:"
msgid "ID"
msgstr "ID"
@@ -520,6 +535,10 @@ msgctxt "field:account.account.template,deferral:"
msgid "Deferral"
msgstr "Saldenvortrag"
+msgctxt "field:account.account.template,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Kontenblattsaldo"
+
msgctxt "field:account.account.template,id:"
msgid "ID"
msgstr "ID"
@@ -872,6 +891,10 @@ msgctxt "field:account.fiscalyear-account.move.line,write_uid:"
msgid "Write User"
msgstr "Letzte Änderung durch"
+msgctxt "field:account.fiscalyear.balance_non_deferral.start,company:"
+msgid "Company"
+msgstr "Unternehmen"
+
msgctxt "field:account.fiscalyear.balance_non_deferral.start,credit_account:"
msgid "Credit Account"
msgstr "Habenkonto"
@@ -949,7 +972,7 @@ msgid "Type"
msgstr "Typ"
msgctxt "field:account.journal,update_posted:"
-msgid "Allow cancelling moves"
+msgid "Allow updating posted moves"
msgstr "Löschen von Buchungen erlauben"
msgctxt "field:account.journal,view:"
@@ -978,7 +1001,7 @@ msgstr "Erstellt durch"
msgctxt "field:account.journal.period,icon:"
msgid "Icon"
-msgstr "Icon"
+msgstr "Symbol"
msgctxt "field:account.journal.period,id:"
msgid "ID"
@@ -1124,6 +1147,10 @@ msgctxt "field:account.journal.view.column,write_uid:"
msgid "Write User"
msgstr "Letzte Änderung durch"
+msgctxt "field:account.move,company:"
+msgid "Company"
+msgstr "Unternehmen"
+
msgctxt "field:account.move,create_date:"
msgid "Create Date"
msgstr "Erstellungsdatum"
@@ -1188,10 +1215,30 @@ msgctxt "field:account.move,write_uid:"
msgid "Write User"
msgstr "Letzte Änderung durch"
+msgctxt "field:account.move.cancel.default,description:"
+msgid "Description"
+msgstr "Beschreibung"
+
+msgctxt "field:account.move.cancel.default,id:"
+msgid "ID"
+msgstr "ID"
+
msgctxt "field:account.move.line,account:"
msgid "Account"
msgstr "Konto"
+msgctxt "field:account.move.line,amount:"
+msgid "Amount"
+msgstr "Betrag"
+
+msgctxt "field:account.move.line,amount_currency:"
+msgid "Amount Currency"
+msgstr "Währungsbetrag"
+
+msgctxt "field:account.move.line,amount_currency_digits:"
+msgid "Amount Currency Digits"
+msgstr "Währungsbetrag Nachkommastellen"
+
msgctxt "field:account.move.line,amount_second_currency:"
msgid "Amount Second Currency"
msgstr "Fremdwährungsbetrag"
@@ -1296,6 +1343,62 @@ msgctxt "field:account.move.line,write_uid:"
msgid "Write User"
msgstr "Letzte Änderung durch"
+msgctxt "field:account.move.line.template,account:"
+msgid "Account"
+msgstr "Konto"
+
+msgctxt "field:account.move.line.template,amount:"
+msgid "Amount"
+msgstr "Betrag"
+
+msgctxt "field:account.move.line.template,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:account.move.line.template,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:account.move.line.template,description:"
+msgid "Description"
+msgstr "Beschreibung"
+
+msgctxt "field:account.move.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.line.template,move:"
+msgid "Move"
+msgstr "Buchungssatz"
+
+msgctxt "field:account.move.line.template,operation:"
+msgid "Operation"
+msgstr "Vorgang"
+
+msgctxt "field:account.move.line.template,party:"
+msgid "Party"
+msgstr "Partei"
+
+msgctxt "field:account.move.line.template,party_required:"
+msgid "Party Required"
+msgstr "Partei erforderlich"
+
+msgctxt "field:account.move.line.template,rec_name:"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:account.move.line.template,taxes:"
+msgid "Taxes"
+msgstr "Steuern"
+
+msgctxt "field:account.move.line.template,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:account.move.line.template,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
msgctxt "field:account.move.open_journal.ask,id:"
msgid "ID"
msgstr "ID"
@@ -1384,6 +1487,130 @@ msgctxt "field:account.move.reconciliation,write_uid:"
msgid "Write User"
msgstr "Letzte Änderung durch"
+msgctxt "field:account.move.template,active:"
+msgid "Active"
+msgstr "Aktiv"
+
+msgctxt "field:account.move.template,company:"
+msgid "Company"
+msgstr "Unternehmen"
+
+msgctxt "field:account.move.template,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:account.move.template,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:account.move.template,date:"
+msgid "Date"
+msgstr "Zeitpunkt"
+
+msgctxt "field:account.move.template,description:"
+msgid "Description"
+msgstr "Beschreibung"
+
+msgctxt "field:account.move.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template,journal:"
+msgid "Journal"
+msgstr "Journal"
+
+msgctxt "field:account.move.template,keywords:"
+msgid "Keywords"
+msgstr "Schlüsselwörter"
+
+msgctxt "field:account.move.template,lines:"
+msgid "Lines"
+msgstr "Zeilen"
+
+msgctxt "field:account.move.template,name:"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:account.move.template,rec_name:"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:account.move.template,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:account.move.template,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
+msgctxt "field:account.move.template.create.keywords,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,period:"
+msgid "Period"
+msgstr "Buchungszeitraum"
+
+msgctxt "field:account.move.template.create.template,template:"
+msgid "Template"
+msgstr "Vorlage"
+
+msgctxt "field:account.move.template.keyword,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:account.move.template.keyword,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:account.move.template.keyword,digits:"
+msgid "Digits"
+msgstr "Nachkommastellen"
+
+msgctxt "field:account.move.template.keyword,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.keyword,move:"
+msgid "Move"
+msgstr "Buchungssatz"
+
+msgctxt "field:account.move.template.keyword,name:"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:account.move.template.keyword,rec_name:"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:account.move.template.keyword,required:"
+msgid "Required"
+msgstr "Erforderlich"
+
+msgctxt "field:account.move.template.keyword,sequence:"
+msgid "Sequence"
+msgstr "Reihenfolge"
+
+msgctxt "field:account.move.template.keyword,string:"
+msgid "String"
+msgstr "Zeichenkette"
+
+msgctxt "field:account.move.template.keyword,type_:"
+msgid "Type"
+msgstr "Typ"
+
+msgctxt "field:account.move.template.keyword,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:account.move.template.keyword,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
msgctxt "field:account.open_aged_balance.start,balance_type:"
msgid "Type"
msgstr "Typ"
@@ -1760,6 +1987,10 @@ msgctxt "field:account.tax,type:"
msgid "Type"
msgstr "Typ"
+msgctxt "field:account.tax,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Einzelpreis aktualisieren"
+
msgctxt "field:account.tax,write_date:"
msgid "Write Date"
msgstr "Zuletzt geändert"
@@ -1940,6 +2171,10 @@ msgctxt "field:account.tax.line,code:"
msgid "Code"
msgstr "Kennziffer"
+msgctxt "field:account.tax.line,company:"
+msgid "Company"
+msgstr "Unternehmen"
+
msgctxt "field:account.tax.line,create_date:"
msgid "Create Date"
msgstr "Erstellungsdatum"
@@ -1976,6 +2211,46 @@ msgctxt "field:account.tax.line,write_uid:"
msgid "Write User"
msgstr "Letzte Änderung durch"
+msgctxt "field:account.tax.line.template,amount:"
+msgid "Amount"
+msgstr "Betrag"
+
+msgctxt "field:account.tax.line.template,code:"
+msgid "Code"
+msgstr "Kennziffer"
+
+msgctxt "field:account.tax.line.template,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:account.tax.line.template,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:account.tax.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.tax.line.template,line:"
+msgid "Line"
+msgstr "Zeile"
+
+msgctxt "field:account.tax.line.template,rec_name:"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:account.tax.line.template,tax:"
+msgid "Tax"
+msgstr "Steuer"
+
+msgctxt "field:account.tax.line.template,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:account.tax.line.template,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
msgctxt "field:account.tax.rule,company:"
msgid "Company"
msgstr "Unternehmen"
@@ -2256,6 +2531,10 @@ msgctxt "field:account.tax.template,type:"
msgid "Type"
msgstr "Typ"
+msgctxt "field:account.tax.template,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Einzelpreis aktualisieren"
+
msgctxt "field:account.tax.template,write_date:"
msgid "Write Date"
msgstr "Zuletzt geändert"
@@ -2308,6 +2587,10 @@ msgctxt "field:party.party,supplier_tax_rule:"
msgid "Supplier Tax Rule"
msgstr "Steuerregel als Lieferant"
+msgctxt "help:account.account,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Nur Salden in Kontenblättern anzeigen"
+
msgctxt "help:account.account,reconcile:"
msgid ""
"Allow move lines of this account \n"
@@ -2328,6 +2611,10 @@ msgstr ""
"Standardsteuer für manuell erstellte Buchungszeilen \n"
"in Journalen vom Typ \"Aufwand\" und \"Ertrag\""
+msgctxt "help:account.account.template,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Nur Salden in Kontenblättern anzeigen"
+
msgctxt "help:account.account.type,sequence:"
msgid "Use to order the account type"
msgstr "Wird für die Reihenfolge der Kontotypen verwendet"
@@ -2353,10 +2640,26 @@ msgctxt "help:account.move.line,second_currency:"
msgid "The second currency"
msgstr "Die Fremdwährung"
+msgctxt "help:account.move.line.template,description:"
+msgid "Keywords values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"Schlüsselwortersetzungen werden mit geschweiften Klammern ('{' and '}') "
+"eingegeben"
+
msgctxt "help:account.move.print_general_journal.start,posted:"
msgid "Show only posted move"
msgstr "Nur festgeschriebene Buchungen anzeigen"
+msgctxt "help:account.move.template,date:"
+msgid "Leave empty for today"
+msgstr "Für das heutige Datum leer lassen"
+
+msgctxt "help:account.move.template,description:"
+msgid "Keyword values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"Schlüsselwortersetzungen werden mit geschweiften Klammern ('{' and '}') "
+"eingegeben"
+
msgctxt "help:account.open_aged_balance.start,posted:"
msgid "Show only posted move"
msgstr "Nur festgeschriebene Buchungen anzeigen"
@@ -2425,6 +2728,14 @@ msgctxt "help:account.tax,sequence:"
msgid "Use to order the taxes"
msgstr "Wird für die Reihenfolge der Steuern verwendet"
+msgctxt "help:account.tax,update_unit_price:"
+msgid ""
+"If checked then the unit price for further tax computation willbe modified "
+"by this tax"
+msgstr ""
+"Bei Aktivierung wird der weiteren Steuerberechnung das Ergebnis dieser "
+"Steuer zugrundegelegt"
+
msgctxt "help:account.tax.code.open_chart.start,fiscalyear:"
msgid "Leave empty for all open fiscal year"
msgstr "Leer lassen für alle offenen Geschäftsjahre"
@@ -2570,7 +2881,7 @@ msgstr "Verbindlichkeiten"
msgctxt ""
"model:account.account.type.template,name:account_type_template_liability_current_tax"
msgid "Tax"
-msgstr "Verbindlichkeiten aus Steuern"
+msgstr "Steuer"
msgctxt ""
"model:account.account.type.template,name:account_type_template_liability_long_term"
@@ -2630,7 +2941,7 @@ msgstr "Journal"
msgctxt "model:account.journal,name:journal_cash"
msgid "Cash"
-msgstr "Zahlung"
+msgstr "Kasse"
msgctxt "model:account.journal,name:journal_expense"
msgid "Expense"
@@ -2688,10 +2999,18 @@ msgctxt "model:account.move,name:"
msgid "Account Move"
msgstr "Buchungssatz"
+msgctxt "model:account.move.cancel.default,name:"
+msgid "Cancel Moves"
+msgstr "Buchungssätze Annullieren"
+
msgctxt "model:account.move.line,name:"
msgid "Account Move Line"
msgstr "Buchungszeile"
+msgctxt "model:account.move.line.template,name:"
+msgid "Account Move Line Template"
+msgstr "Buchungszeilenvorlage"
+
msgctxt "model:account.move.open_journal.ask,name:"
msgid "Open Journal Ask"
msgstr "Nachfrage Dialogbuchen"
@@ -2708,6 +3027,22 @@ msgctxt "model:account.move.reconciliation,name:"
msgid "Account Move Reconciliation Lines"
msgstr "Buchungssatz Abstimmung Zeilen"
+msgctxt "model:account.move.template,name:"
+msgid "Account Move Template"
+msgstr "Buchungssatzvorlage"
+
+msgctxt "model:account.move.template.create.keywords,name:"
+msgid "Create Move from Template"
+msgstr "Buchungssatz von Vorlage erstellen"
+
+msgctxt "model:account.move.template.create.template,name:"
+msgid "Create Move from Template"
+msgstr "Buchungssatz von Vorlage erstellen"
+
+msgctxt "model:account.move.template.keyword,name:"
+msgid "Account Move Template Keyword"
+msgstr "Schlüsselwort Buchungssatzvorlage"
+
msgctxt "model:account.open_aged_balance.start,name:"
msgid "Open Aged Balance"
msgstr "Fälligkeitsliste öffnen"
@@ -2768,6 +3103,10 @@ msgctxt "model:account.tax.line,name:"
msgid "Tax Line"
msgstr "Steuer Zeile"
+msgctxt "model:account.tax.line.template,name:"
+msgid "Account Tax Line Template"
+msgstr "Steuerkontozeilenvorlage"
+
msgctxt "model:account.tax.rule,name:"
msgid "Tax Rule"
msgstr "Steuerregel"
@@ -2912,6 +3251,14 @@ msgctxt "model:ir.action,name:act_move_reconciliation_lines"
msgid "Reconciliation Lines"
msgstr "Abstimmungszeilen"
+msgctxt "model:ir.action,name:act_move_template_create"
+msgid "Create Move from Template"
+msgstr "Buchungssatz von Vorlage erstellen"
+
+msgctxt "model:ir.action,name:act_move_template_form"
+msgid "Account Move Template"
+msgstr "Buchungssatzvorlagen"
+
msgctxt "model:ir.action,name:act_open_account"
msgid "Open Move Account"
msgstr "Buchungssatz Konto öffnen"
@@ -3204,6 +3551,14 @@ msgctxt "model:ir.ui.menu,name:menu_move_form"
msgid "Account Moves"
msgstr "Übersicht Buchungssätze"
+msgctxt "model:ir.ui.menu,name:menu_move_template_create"
+msgid "Create Move from Template"
+msgstr "Buchungssatz von Vorlage erstellen"
+
+msgctxt "model:ir.ui.menu,name:menu_move_template_form"
+msgid "Account Move Template"
+msgstr "Buchungssatzvorlagen"
+
msgctxt "model:ir.ui.menu,name:menu_open_balance_sheet"
msgid "Balance Sheet"
msgstr "Bilanzbogen"
@@ -3724,6 +4079,30 @@ msgctxt "selection:account.move.line,state:"
msgid "Valid"
msgstr "Gültig"
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Credit"
+msgstr "Haben"
+
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Debit"
+msgstr "Soll"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Char"
+msgstr "Zeichen"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Date"
+msgstr "Zeitpunkt"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Numeric"
+msgstr "Numerisch"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Party"
+msgstr "Partei"
+
msgctxt "selection:account.open_aged_balance.start,balance_type:"
msgid "Both"
msgstr "Beides"
@@ -4004,6 +4383,22 @@ msgctxt "view:account.journal:"
msgid "Journals"
msgstr "Journale"
+msgctxt "view:account.move.cancel.default:"
+msgid "Cancel Moves"
+msgstr "Buchungssätze Annullieren"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Template"
+msgstr "Buchungszeilenvorlage"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Templates"
+msgstr "Buchungszeilenvorlagen"
+
+msgctxt "view:account.move.line.template:"
+msgid "Other Info"
+msgstr "Sonstiges"
+
msgctxt "view:account.move.line:"
msgid "Account Move Line"
msgstr "Buchungszeile"
@@ -4044,6 +4439,30 @@ msgctxt "view:account.move.reconciliation:"
msgid "Reconciliations"
msgstr "Abstimmungen"
+msgctxt "view:account.move.template.create.template:"
+msgid "Create Move from Template"
+msgstr "Buchungssatz von Vorlage erstellen"
+
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keyword"
+msgstr "Schlüsselwort Buchungssatzvorlage"
+
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keywords"
+msgstr "Schlüsselwörter Buchungssatzvorlagen"
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Template"
+msgstr "Buchungssatzvorlage"
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Templates"
+msgstr "Buchungssatzvorlagen"
+
+msgctxt "view:account.move.template:"
+msgid "Template"
+msgstr "Vorlage"
+
msgctxt "view:account.move:"
msgid "Account Move"
msgstr "Buchungssatz"
@@ -4152,6 +4571,14 @@ msgctxt "view:account.tax.group:"
msgid "Tax Groups"
msgstr "Steuergruppen"
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Template"
+msgstr "Steuerkontozeilenvorlage"
+
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Templates"
+msgstr "Steuerkontozeilenvorlagen"
+
msgctxt "view:account.tax.line:"
msgid "Account Tax Line"
msgstr "Steuerkontozeile"
@@ -4285,7 +4712,7 @@ msgid "Cancel"
msgstr "Abbrechen"
msgctxt "wizard_button:account.create_chart,start,account:"
-msgid "Ok"
+msgid "OK"
msgstr "OK"
msgctxt "wizard_button:account.create_chart,start,end:"
@@ -4293,7 +4720,7 @@ msgid "Cancel"
msgstr "Abbrechen"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,balance:"
-msgid "Ok"
+msgid "OK"
msgstr "OK"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,end:"
@@ -4308,6 +4735,14 @@ msgctxt "wizard_button:account.fiscalyear.close,start,end:"
msgid "Cancel"
msgstr "Abbrechen"
+msgctxt "wizard_button:account.move.cancel,default,cancel:"
+msgid "OK"
+msgstr "OK"
+
+msgctxt "wizard_button:account.move.cancel,default,end:"
+msgid "Cancel"
+msgstr "Abbrechen"
+
msgctxt "wizard_button:account.move.open_journal,ask,end:"
msgid "Cancel"
msgstr "Abbrechen"
@@ -4332,6 +4767,22 @@ msgctxt "wizard_button:account.move.reconcile_lines,writeoff,reconcile:"
msgid "Reconcile"
msgstr "Abstimmen"
+msgctxt "wizard_button:account.move.template.create,keywords,create_:"
+msgid "Create"
+msgstr "Erstellen"
+
+msgctxt "wizard_button:account.move.template.create,keywords,end:"
+msgid "Cancel"
+msgstr "Abbrechen"
+
+msgctxt "wizard_button:account.move.template.create,template,end:"
+msgid "Cancel"
+msgstr "Abbrechen"
+
+msgctxt "wizard_button:account.move.template.create,template,keywords:"
+msgid "Next"
+msgstr "Weiter"
+
msgctxt "wizard_button:account.open_aged_balance,start,end:"
msgid "Cancel"
msgstr "Abbrechen"
@@ -4417,5 +4868,5 @@ msgid "Update"
msgstr "Aktualisieren"
msgctxt "wizard_button:account.update_chart,succeed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "OK"
diff --git a/locale/es_AR.po b/locale/es_AR.po
index 60aa92f..c6c449a 100644
--- a/locale/es_AR.po
+++ b/locale/es_AR.po
@@ -104,6 +104,10 @@ msgid "Wrong credit/debit values."
msgstr "Valores de haber/debe erróneos."
msgctxt "error:account.move.line:"
+msgid "Wrong second currency sign."
+msgstr "El signo de la segunda moneda es incorrecto."
+
+msgctxt "error:account.move.line:"
msgid "You can not add/modify lines in closed journal period \"%s\"."
msgstr "No puede añadir/modificar apuntes en el diario período cerrado «%s»."
@@ -127,6 +131,10 @@ msgid "You can not modify lines of move \"%s\" because it is already posted."
msgstr ""
"No puede modificar los apuntes del asiento «%s» porque ya está confirmado."
+msgctxt "error:account.move.line:"
+msgid "wrong_second_currency_sign"
+msgstr "El signo de la segunda moneda es incorrecto"
+
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not create a reconciliation where debit \"%(debit)s\" and credit "
@@ -158,7 +166,7 @@ msgstr ""
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not reconcile line \"%(line)s\" because it's party \"%(party1)s\" is"
-" different from %(party2)s\"."
+" different from \"%(party2)s\"."
msgstr ""
"No puede conciliar el apunte «%(line)s» porque la entidad «%(party1)s» es "
"diferente de «%(party2)s»."
@@ -177,12 +185,6 @@ msgstr ""
"¿Utilizar el período actual?"
msgctxt "error:account.move:"
-msgid "You can not create lines on accountsof different companies in move \"%s\"."
-msgstr ""
-"No puede crear líneas de las cuentas de diferentes empresas en el asiento "
-"«%s»."
-
-msgctxt "error:account.move:"
msgid ""
"You can not create move \"%(move)s\" because it's date is outside its "
"period."
@@ -229,14 +231,6 @@ msgid "\"%(first)s\" and \"%(second)s\" periods overlap."
msgstr "Los períodos «%(first)s» y «%(second)s» se superponen."
msgctxt "error:account.period:"
-msgid ""
-"Company of sequence \"%(sequence)s\" does not match the company of period "
-"\"%(period)s\" to which it is assigned to."
-msgstr ""
-"La empresa de la secuencia «%(sequence)s» no coincide con la empresa del "
-"período «%(period)s» a la que está asignada."
-
-msgctxt "error:account.period:"
msgid "Dates of period \"%s\" are outside are outside it's fiscal year dates."
msgstr ""
"Las fechas del período «%s» están fuera de las fechas de su año fiscal."
@@ -281,6 +275,22 @@ msgstr ""
"No puede abrir el período «%(period)s» porque su año fiscal «%(fiscalyear)s»"
" está cerrado."
+msgctxt "error:account.tax.template:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+"«Actualiza precio unitario» no puede ser establecido en el impuesto "
+"«%(template)s» que tiene un padre."
+
+msgctxt "error:account.tax:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+"«Actualiza precio unitario» no puede ser establecido en el impuesto "
+"«%(template)s» que tiene un padre."
+
msgctxt "field:account.account,active:"
msgid "Active"
msgstr "Activo"
@@ -319,7 +329,7 @@ msgstr "Moneda"
msgctxt "field:account.account,currency_digits:"
msgid "Currency Digits"
-msgstr "Dígitos de moneda"
+msgstr "Decimales de moneda"
msgctxt "field:account.account,debit:"
msgid "Debit"
@@ -333,6 +343,10 @@ msgctxt "field:account.account,deferrals:"
msgid "Deferrals"
msgstr "Cierres"
+msgctxt "field:account.account,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Saldo en el libro mayor"
+
msgctxt "field:account.account,id:"
msgid "ID"
msgstr "ID"
@@ -451,7 +465,7 @@ msgstr "Haber"
msgctxt "field:account.account.deferral,currency_digits:"
msgid "Currency Digits"
-msgstr "Dígitos de moneda"
+msgstr "Decimales de moneda"
msgctxt "field:account.account.deferral,debit:"
msgid "Debit"
@@ -497,6 +511,10 @@ msgctxt "field:account.account.template,deferral:"
msgid "Deferral"
msgstr "Cierre"
+msgctxt "field:account.account.template,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Saldo en el libro mayor"
+
msgctxt "field:account.account.template,id:"
msgid "ID"
msgstr "ID"
@@ -599,7 +617,7 @@ msgstr "Usuario creación"
msgctxt "field:account.account.type,currency_digits:"
msgid "Currency Digits"
-msgstr "Dígitos de moneda"
+msgstr "Decimales de moneda"
msgctxt "field:account.account.type,display_balance:"
msgid "Display Balance"
@@ -849,6 +867,10 @@ msgctxt "field:account.fiscalyear-account.move.line,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:account.fiscalyear.balance_non_deferral.start,company:"
+msgid "Company"
+msgstr "Empresa"
+
msgctxt "field:account.fiscalyear.balance_non_deferral.start,credit_account:"
msgid "Credit Account"
msgstr "Cuenta crédito"
@@ -926,8 +948,8 @@ msgid "Type"
msgstr "Tipo"
msgctxt "field:account.journal,update_posted:"
-msgid "Allow cancelling moves"
-msgstr "Permitir cancelar asientos"
+msgid "Allow updating posted moves"
+msgstr "Permitir la actualización de asientos confirmados"
msgctxt "field:account.journal,view:"
msgid "View"
@@ -1101,6 +1123,10 @@ msgctxt "field:account.journal.view.column,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:account.move,company:"
+msgid "Company"
+msgstr "Empresa"
+
msgctxt "field:account.move,create_date:"
msgid "Create Date"
msgstr "Fecha creación"
@@ -1165,10 +1191,30 @@ msgctxt "field:account.move,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:account.move.cancel.default,description:"
+msgid "Description"
+msgstr "Descripción"
+
+msgctxt "field:account.move.cancel.default,id:"
+msgid "ID"
+msgstr "ID"
+
msgctxt "field:account.move.line,account:"
msgid "Account"
msgstr "Cuenta"
+msgctxt "field:account.move.line,amount:"
+msgid "Amount"
+msgstr "Importe"
+
+msgctxt "field:account.move.line,amount_currency:"
+msgid "Amount Currency"
+msgstr "Importe moneda"
+
+msgctxt "field:account.move.line,amount_currency_digits:"
+msgid "Amount Currency Digits"
+msgstr "Decimales de importe moneda"
+
msgctxt "field:account.move.line,amount_second_currency:"
msgid "Amount Second Currency"
msgstr "Importe moneda secundaria"
@@ -1187,7 +1233,7 @@ msgstr "Haber"
msgctxt "field:account.move.line,currency_digits:"
msgid "Currency Digits"
-msgstr "Dígitos de moneda"
+msgstr "Decimales de moneda"
msgctxt "field:account.move.line,date:"
msgid "Effective Date"
@@ -1255,7 +1301,7 @@ msgstr "Segunda moneda"
msgctxt "field:account.move.line,second_currency_digits:"
msgid "Second Currency Digits"
-msgstr "Decimales moneda secundaria"
+msgstr "Decimales de moneda secundaria"
msgctxt "field:account.move.line,state:"
msgid "State"
@@ -1273,6 +1319,62 @@ msgctxt "field:account.move.line,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:account.move.line.template,account:"
+msgid "Account"
+msgstr "Cuenta"
+
+msgctxt "field:account.move.line.template,amount:"
+msgid "Amount"
+msgstr "Importe"
+
+msgctxt "field:account.move.line.template,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:account.move.line.template,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:account.move.line.template,description:"
+msgid "Description"
+msgstr "Descripción"
+
+msgctxt "field:account.move.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.line.template,move:"
+msgid "Move"
+msgstr "Movimiento"
+
+msgctxt "field:account.move.line.template,operation:"
+msgid "Operation"
+msgstr "Operación"
+
+msgctxt "field:account.move.line.template,party:"
+msgid "Party"
+msgstr "Entidad"
+
+msgctxt "field:account.move.line.template,party_required:"
+msgid "Party Required"
+msgstr "Entidad requerida"
+
+msgctxt "field:account.move.line.template,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.line.template,taxes:"
+msgid "Taxes"
+msgstr "Impuestos"
+
+msgctxt "field:account.move.line.template,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:account.move.line.template,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
msgctxt "field:account.move.open_journal.ask,id:"
msgid "ID"
msgstr "ID"
@@ -1311,7 +1413,7 @@ msgstr "Importe"
msgctxt "field:account.move.reconcile_lines.writeoff,currency_digits:"
msgid "Currency Digits"
-msgstr "Dígitos de moneda"
+msgstr "Decimales de moneda"
msgctxt "field:account.move.reconcile_lines.writeoff,date:"
msgid "Date"
@@ -1361,6 +1463,130 @@ msgctxt "field:account.move.reconciliation,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:account.move.template,active:"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:account.move.template,company:"
+msgid "Company"
+msgstr "Empresa"
+
+msgctxt "field:account.move.template,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:account.move.template,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:account.move.template,date:"
+msgid "Date"
+msgstr "Fecha"
+
+msgctxt "field:account.move.template,description:"
+msgid "Description"
+msgstr "Descripción"
+
+msgctxt "field:account.move.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template,journal:"
+msgid "Journal"
+msgstr "Diario"
+
+msgctxt "field:account.move.template,keywords:"
+msgid "Keywords"
+msgstr "Palabras clave"
+
+msgctxt "field:account.move.template,lines:"
+msgid "Lines"
+msgstr "Líneas"
+
+msgctxt "field:account.move.template,name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:account.move.template,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:account.move.template.create.keywords,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,period:"
+msgid "Period"
+msgstr "Período"
+
+msgctxt "field:account.move.template.create.template,template:"
+msgid "Template"
+msgstr "Plantilla"
+
+msgctxt "field:account.move.template.keyword,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:account.move.template.keyword,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:account.move.template.keyword,digits:"
+msgid "Digits"
+msgstr "Decimales"
+
+msgctxt "field:account.move.template.keyword,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.keyword,move:"
+msgid "Move"
+msgstr "Movimiento"
+
+msgctxt "field:account.move.template.keyword,name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template.keyword,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template.keyword,required:"
+msgid "Required"
+msgstr "Requerido"
+
+msgctxt "field:account.move.template.keyword,sequence:"
+msgid "Sequence"
+msgstr "Secuencia"
+
+msgctxt "field:account.move.template.keyword,string:"
+msgid "String"
+msgstr "Descripción"
+
+msgctxt "field:account.move.template.keyword,type_:"
+msgid "Type"
+msgstr "Tipo"
+
+msgctxt "field:account.move.template.keyword,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:account.move.template.keyword,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
msgctxt "field:account.open_aged_balance.start,balance_type:"
msgid "Type"
msgstr "Tipo"
@@ -1587,7 +1813,7 @@ msgstr "Cuenta"
msgctxt "field:account.reconcile.show,currency_digits:"
msgid "Currency Digits"
-msgstr "Dígitos de moneda"
+msgstr "Decimales de moneda"
msgctxt "field:account.reconcile.show,date:"
msgid "Date"
@@ -1667,7 +1893,7 @@ msgstr "Signo del impuesto de la nota de crédito"
msgctxt "field:account.tax,currency_digits:"
msgid "Currency Digits"
-msgstr "Dígitos de moneda"
+msgstr "Decimales de moneda"
msgctxt "field:account.tax,description:"
msgid "Description"
@@ -1737,6 +1963,10 @@ msgctxt "field:account.tax,type:"
msgid "Type"
msgstr "Tipo"
+msgctxt "field:account.tax,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Actualiza precio unitario"
+
msgctxt "field:account.tax,write_date:"
msgid "Write Date"
msgstr "Fecha modificación"
@@ -1771,7 +2001,7 @@ msgstr "Usuario creación"
msgctxt "field:account.tax.code,currency_digits:"
msgid "Currency Digits"
-msgstr "Dígitos de moneda"
+msgstr "Decimales de moneda"
msgctxt "field:account.tax.code,description:"
msgid "Description"
@@ -1917,6 +2147,10 @@ msgctxt "field:account.tax.line,code:"
msgid "Code"
msgstr "Código"
+msgctxt "field:account.tax.line,company:"
+msgid "Company"
+msgstr "Empresa"
+
msgctxt "field:account.tax.line,create_date:"
msgid "Create Date"
msgstr "Fecha creación"
@@ -1927,7 +2161,7 @@ msgstr "Usuario creación"
msgctxt "field:account.tax.line,currency_digits:"
msgid "Currency Digits"
-msgstr "Dígitos de moneda"
+msgstr "Decimales de moneda"
msgctxt "field:account.tax.line,id:"
msgid "ID"
@@ -1953,6 +2187,46 @@ msgctxt "field:account.tax.line,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:account.tax.line.template,amount:"
+msgid "Amount"
+msgstr "Importe"
+
+msgctxt "field:account.tax.line.template,code:"
+msgid "Code"
+msgstr "Código"
+
+msgctxt "field:account.tax.line.template,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:account.tax.line.template,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:account.tax.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.tax.line.template,line:"
+msgid "Line"
+msgstr "Línea"
+
+msgctxt "field:account.tax.line.template,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.tax.line.template,tax:"
+msgid "Tax"
+msgstr "Impuesto"
+
+msgctxt "field:account.tax.line.template,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:account.tax.line.template,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
msgctxt "field:account.tax.rule,company:"
msgid "Company"
msgstr "Empresa"
@@ -2233,6 +2507,10 @@ msgctxt "field:account.tax.template,type:"
msgid "Type"
msgstr "Tipo"
+msgctxt "field:account.tax.template,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Actualiza precio unitario"
+
msgctxt "field:account.tax.template,write_date:"
msgid "Write Date"
msgstr "Fecha modificación"
@@ -2285,6 +2563,10 @@ msgctxt "field:party.party,supplier_tax_rule:"
msgid "Supplier Tax Rule"
msgstr "Regla de impuesto de proveedor"
+msgctxt "help:account.account,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Mostrar saldo solo en el informe del libro mayor"
+
msgctxt "help:account.account,reconcile:"
msgid ""
"Allow move lines of this account \n"
@@ -2307,6 +2589,10 @@ msgstr ""
"Impuesto por defecto para la codificación manual\n"
"de líneas de asientos para diarios de tipo: «gastos» e «ingresos»."
+msgctxt "help:account.account.template,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Mostrar saldo solo en el informe del libro mayor"
+
msgctxt "help:account.account.type,sequence:"
msgid "Use to order the account type"
msgstr "Usar para ordenar el tipo de cuenta."
@@ -2331,10 +2617,26 @@ msgctxt "help:account.move.line,second_currency:"
msgid "The second currency"
msgstr "La segunda moneda"
+msgctxt "help:account.move.line.template,description:"
+msgid "Keywords values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"Las palabras clave a sustituir por valores se identifican escribiéndolas "
+"entre llaves ('{' y '}')"
+
msgctxt "help:account.move.print_general_journal.start,posted:"
msgid "Show only posted move"
msgstr "Muestra sólo asientos confirmados."
+msgctxt "help:account.move.template,date:"
+msgid "Leave empty for today"
+msgstr "Dejar vacío para hoy"
+
+msgctxt "help:account.move.template,description:"
+msgid "Keyword values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"La palabra clave a sustituir por valores se identifica escribiéndola entre "
+"llaves ('{' y '}')"
+
msgctxt "help:account.open_aged_balance.start,posted:"
msgid "Show only posted move"
msgstr "Muestra sólo asientos confirmados."
@@ -2403,6 +2705,14 @@ msgctxt "help:account.tax,sequence:"
msgid "Use to order the taxes"
msgstr "Usar para ordenar los impuestos."
+msgctxt "help:account.tax,update_unit_price:"
+msgid ""
+"If checked then the unit price for further tax computation willbe modified "
+"by this tax"
+msgstr ""
+"Si está marcado, entonces el precio unitario para posteriores cálculos de "
+"impuesto será modificado por este impuesto"
+
msgctxt "help:account.tax.code.open_chart.start,fiscalyear:"
msgid "Leave empty for all open fiscal year"
msgstr "Dejarlo vacío para abrir todos los ejercicios fiscales."
@@ -2668,10 +2978,18 @@ msgctxt "model:account.move,name:"
msgid "Account Move"
msgstr "Asiento contable"
+msgctxt "model:account.move.cancel.default,name:"
+msgid "Cancel Moves"
+msgstr "Cancelar asientos"
+
msgctxt "model:account.move.line,name:"
msgid "Account Move Line"
msgstr "Línea de asiento contable"
+msgctxt "model:account.move.line.template,name:"
+msgid "Account Move Line Template"
+msgstr "Plantilla de línea de asiento contable"
+
msgctxt "model:account.move.open_journal.ask,name:"
msgid "Open Journal Ask"
msgstr "Solicitar el diario a abrir"
@@ -2688,6 +3006,22 @@ msgctxt "model:account.move.reconciliation,name:"
msgid "Account Move Reconciliation Lines"
msgstr "Líneas de conciliación de líneas de asientos contables"
+msgctxt "model:account.move.template,name:"
+msgid "Account Move Template"
+msgstr "Plantilla de asiento contable"
+
+msgctxt "model:account.move.template.create.keywords,name:"
+msgid "Create Move from Template"
+msgstr "Crear asiento desde plantilla"
+
+msgctxt "model:account.move.template.create.template,name:"
+msgid "Create Move from Template"
+msgstr "Crear asiento desde plantilla"
+
+msgctxt "model:account.move.template.keyword,name:"
+msgid "Account Move Template Keyword"
+msgstr "Plantilla de asiento contable - Palabra clave"
+
msgctxt "model:account.open_aged_balance.start,name:"
msgid "Open Aged Balance"
msgstr "Abrir balance histórico"
@@ -2748,6 +3082,10 @@ msgctxt "model:account.tax.line,name:"
msgid "Tax Line"
msgstr "Línea de impuesto"
+msgctxt "model:account.tax.line.template,name:"
+msgid "Account Tax Line Template"
+msgstr "Plantilla de línea de impuesto contable"
+
msgctxt "model:account.tax.rule,name:"
msgid "Tax Rule"
msgstr "Regla de impuesto"
@@ -2770,11 +3108,11 @@ msgstr "Plantilla de cuenta de impuesto"
msgctxt "model:account.update_chart.start,name:"
msgid "Update Chart"
-msgstr "Actualizar plan contable"
+msgstr "Actualizar Plan contable"
msgctxt "model:account.update_chart.succeed,name:"
msgid "Update Chart"
-msgstr "Actualizar plan contable"
+msgstr "Actualizar Plan contable"
msgctxt "model:ir.action,name:"
msgid "Payable Lines"
@@ -2826,7 +3164,7 @@ msgstr "Crear asiento de regularización"
msgctxt "model:ir.action,name:act_cancel_moves"
msgid "Cancel Moves"
-msgstr "Cancela asientos"
+msgstr "Cancelar asientos"
msgctxt "model:ir.action,name:act_close_fiscalyear"
msgid "Close Fiscal Year"
@@ -2892,6 +3230,14 @@ msgctxt "model:ir.action,name:act_move_reconciliation_lines"
msgid "Reconciliation Lines"
msgstr "Líneas de conciliación"
+msgctxt "model:ir.action,name:act_move_template_create"
+msgid "Create Move from Template"
+msgstr "Crear asiento desde plantilla"
+
+msgctxt "model:ir.action,name:act_move_template_form"
+msgid "Account Move Template"
+msgstr "Plantilla de asiento contable"
+
msgctxt "model:ir.action,name:act_open_account"
msgid "Open Move Account"
msgstr "Abrir cuenta del asiento"
@@ -3006,7 +3352,7 @@ msgstr "Balance de sumas y saldos"
msgctxt "model:ir.action,name:wizard_create_chart"
msgid "Create Chart of Accounts from Template"
-msgstr "Crear plan contable desde plantilla"
+msgstr "Crear Plan contable desde plantilla"
msgctxt "model:ir.action,name:wizard_open_aged_balance"
msgid "Open Aged Balance"
@@ -3038,7 +3384,7 @@ msgstr "Imprimir balance de sumas y saldos"
msgctxt "model:ir.action,name:wizard_update_chart"
msgid "Update Chart of Accounts from Template"
-msgstr "Actualizar plan contable desde plantilla"
+msgstr "Actualizar Plan contable desde plantilla"
msgctxt ""
"model:ir.action.act_window.domain,name:act_move_line_payable_receivable_domain_all"
@@ -3134,7 +3480,7 @@ msgstr "Abrir plan códigos de impuesto"
msgctxt "model:ir.ui.menu,name:menu_create_chart"
msgid "Create Chart of Accounts from Template"
-msgstr "Crear plan contable desde plantilla"
+msgstr "Crear Plan contable desde plantilla"
msgctxt "model:ir.ui.menu,name:menu_entries"
msgid "Entries"
@@ -3184,6 +3530,14 @@ msgctxt "model:ir.ui.menu,name:menu_move_form"
msgid "Account Moves"
msgstr "Asientos contables"
+msgctxt "model:ir.ui.menu,name:menu_move_template_create"
+msgid "Create Move from Template"
+msgstr "Crear asiento desde plantilla"
+
+msgctxt "model:ir.ui.menu,name:menu_move_template_form"
+msgid "Account Move Template"
+msgstr "Plantilla de asiento contable"
+
msgctxt "model:ir.ui.menu,name:menu_open_balance_sheet"
msgid "Balance Sheet"
msgstr "Balance general"
@@ -3278,7 +3632,7 @@ msgstr "Balance de tercero"
msgctxt "model:ir.ui.menu,name:menu_update_chart"
msgid "Update Chart of Accounts from Template"
-msgstr "Actualizar plan contable desde plantilla"
+msgstr "Actualizar Plan contable desde plantilla"
msgctxt "model:ir.ui.menu,name:menuitem_account_configuration"
msgid "Account Configuration"
@@ -3478,7 +3832,7 @@ msgstr "Confirmado"
msgctxt "odt:account.move.general_journal:"
msgid "Print Date:"
-msgstr "Fecha impresión:"
+msgstr "Fecha de impresión:"
msgctxt "odt:account.move.general_journal:"
msgid "To Date:"
@@ -3704,6 +4058,30 @@ msgctxt "selection:account.move.line,state:"
msgid "Valid"
msgstr "Válido"
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Credit"
+msgstr "Haber"
+
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Debit"
+msgstr "Debe"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Char"
+msgstr "Texto"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Date"
+msgstr "Fecha"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Numeric"
+msgstr "Numérico"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Party"
+msgstr "Entidad"
+
msgctxt "selection:account.open_aged_balance.start,balance_type:"
msgid "Both"
msgstr "Ambos"
@@ -3984,6 +4362,22 @@ msgctxt "view:account.journal:"
msgid "Journals"
msgstr "Diarios"
+msgctxt "view:account.move.cancel.default:"
+msgid "Cancel Moves"
+msgstr "Cancelar asientos"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Template"
+msgstr "Plantilla de línea de asiento contable"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Templates"
+msgstr "Plantillas de línea de asiento contable"
+
+msgctxt "view:account.move.line.template:"
+msgid "Other Info"
+msgstr "Información adicional"
+
msgctxt "view:account.move.line:"
msgid "Account Move Line"
msgstr "Línea de asiento contable"
@@ -4024,6 +4418,30 @@ msgctxt "view:account.move.reconciliation:"
msgid "Reconciliations"
msgstr "Conciliaciones"
+msgctxt "view:account.move.template.create.template:"
+msgid "Create Move from Template"
+msgstr "Crear asiento desde plantilla"
+
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keyword"
+msgstr "Plantilla de asiento contable - Palabra clave"
+
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keywords"
+msgstr "Plantilla de asiento contable - Palabras clave"
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Template"
+msgstr "Plantilla de asiento contable"
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Templates"
+msgstr "Plantillas de asiento contable"
+
+msgctxt "view:account.move.template:"
+msgid "Template"
+msgstr "Plantilla"
+
msgctxt "view:account.move:"
msgid "Account Move"
msgstr "Asiento contable"
@@ -4132,6 +4550,14 @@ msgctxt "view:account.tax.group:"
msgid "Tax Groups"
msgstr "Grupos de impuesto"
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Template"
+msgstr "Plantilla de línea de impuesto contable"
+
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Templates"
+msgstr "Plantillas de línea de impuesto contable"
+
msgctxt "view:account.tax.line:"
msgid "Account Tax Line"
msgstr "Línea de impuesto contable"
@@ -4230,11 +4656,11 @@ msgstr "Impuestos"
msgctxt "view:account.update_chart.start:"
msgid "Update Chart of Accounts"
-msgstr "Actualizar plan contable"
+msgstr "Actualizar Plan contable"
msgctxt "view:account.update_chart.succeed:"
msgid "Update Chart of Accounts"
-msgstr "Actualizar plan contable"
+msgstr "Actualizar Plan contable"
msgctxt "view:account.update_chart.succeed:"
msgid "Update Chart of Accounts Succeed!"
@@ -4265,7 +4691,7 @@ msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:account.create_chart,start,account:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:account.create_chart,start,end:"
@@ -4273,7 +4699,7 @@ msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,balance:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,end:"
@@ -4288,6 +4714,14 @@ msgctxt "wizard_button:account.fiscalyear.close,start,end:"
msgid "Cancel"
msgstr "Cancelar"
+msgctxt "wizard_button:account.move.cancel,default,cancel:"
+msgid "OK"
+msgstr "Aceptar"
+
+msgctxt "wizard_button:account.move.cancel,default,end:"
+msgid "Cancel"
+msgstr "Cancelar"
+
msgctxt "wizard_button:account.move.open_journal,ask,end:"
msgid "Cancel"
msgstr "Cancelar"
@@ -4312,6 +4746,22 @@ msgctxt "wizard_button:account.move.reconcile_lines,writeoff,reconcile:"
msgid "Reconcile"
msgstr "Conciliar"
+msgctxt "wizard_button:account.move.template.create,keywords,create_:"
+msgid "Create"
+msgstr "Crear"
+
+msgctxt "wizard_button:account.move.template.create,keywords,end:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "wizard_button:account.move.template.create,template,end:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "wizard_button:account.move.template.create,template,keywords:"
+msgid "Next"
+msgstr "Siguiente"
+
msgctxt "wizard_button:account.open_aged_balance,start,end:"
msgid "Cancel"
msgstr "Cancelar"
@@ -4397,5 +4847,5 @@ msgid "Update"
msgstr "Actualizar"
msgctxt "wizard_button:account.update_chart,succeed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
diff --git a/locale/es_CO.po b/locale/es_CO.po
index 41fb1fb..72ced5c 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -107,6 +107,10 @@ msgid "Wrong credit/debit values."
msgstr "Valores de haber/debe incorrectos!"
msgctxt "error:account.move.line:"
+msgid "Wrong second currency sign."
+msgstr "Signo errado de segunda moneda."
+
+msgctxt "error:account.move.line:"
msgid "You can not add/modify lines in closed journal period \"%s\"."
msgstr ""
"No puede añadir/modificar líneas en un libro diario con período cerrado!"
@@ -135,6 +139,10 @@ msgstr ""
"No puede modificar las líneas del asiento \"%s\" porque estan "
"contabilizadas."
+msgctxt "error:account.move.line:"
+msgid "wrong_second_currency_sign"
+msgstr "signo errado de segunda moneda "
+
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not create a reconciliation where debit \"%(debit)s\" and credit "
@@ -166,10 +174,10 @@ msgstr ""
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not reconcile line \"%(line)s\" because it's party \"%(party1)s\" is"
-" different from %(party2)s\"."
+" different from \"%(party2)s\"."
msgstr ""
"No puede conciliar la línea \"%(line)s\" porque el tercero \"%(party1)s\" es"
-" diferente del tercero \"%(party2)s\"."
+" diferente del tercero \"%(party2)s\""
msgctxt "error:account.move.reconciliation:"
msgid "You can not reconcile line \"%s\" because it is not in valid state."
@@ -184,12 +192,6 @@ msgstr ""
"Desea usar el actual periodo?"
msgctxt "error:account.move:"
-msgid "You can not create lines on accountsof different companies in move \"%s\"."
-msgstr ""
-"No puede crear lineas con cuentas de diferentes compañias en el asiento "
-"\"%s\"."
-
-msgctxt "error:account.move:"
msgid ""
"You can not create move \"%(move)s\" because it's date is outside its "
"period."
@@ -237,14 +239,6 @@ msgid "\"%(first)s\" and \"%(second)s\" periods overlap."
msgstr "Periodos \"%(first)s\" y \"%(second)s\" solapados."
msgctxt "error:account.period:"
-msgid ""
-"Company of sequence \"%(sequence)s\" does not match the company of period "
-"\"%(period)s\" to which it is assigned to."
-msgstr ""
-"La secuencia de la compañia \"%(sequence)s\" no coincide con el periodo "
-"\"%(period)s\" a la cual esta asignada."
-
-msgctxt "error:account.period:"
msgid "Dates of period \"%s\" are outside are outside it's fiscal year dates."
msgstr "Las fechas del periodo \"%s\" estan fuera del Año Fiscal. "
@@ -288,6 +282,22 @@ msgstr ""
"No puede abrir el período \"%(period)s\" porque su año fiscal "
"\"%(fiscalyear)s\" esta cerrado."
+msgctxt "error:account.tax.template:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+"\"Actualizar el Precio Unitario\" puede no estar configurado en el impuesto "
+"\"%(template)s\" el cual tiene un padre."
+
+msgctxt "error:account.tax:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+"\"Actualizar el Precio Unitario\" puede no estar configurado en el impuesto "
+"\"%(template)s\" el cual tiene un padre."
+
msgctxt "field:account.account,active:"
msgid "Active"
msgstr "Activo"
@@ -340,6 +350,10 @@ msgctxt "field:account.account,deferrals:"
msgid "Deferrals"
msgstr "Diferidos"
+msgctxt "field:account.account,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Saldo en Libro Mayor"
+
msgctxt "field:account.account,id:"
msgid "ID"
msgstr "ID"
@@ -504,6 +518,10 @@ msgctxt "field:account.account.template,deferral:"
msgid "Deferral"
msgstr "Diferido"
+msgctxt "field:account.account.template,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Saldo en Libro Mayor"
+
msgctxt "field:account.account.template,id:"
msgid "ID"
msgstr "ID"
@@ -856,6 +874,10 @@ msgctxt "field:account.fiscalyear-account.move.line,write_uid:"
msgid "Write User"
msgstr "Modificado por Usuario"
+msgctxt "field:account.fiscalyear.balance_non_deferral.start,company:"
+msgid "Company"
+msgstr "Compañía"
+
msgctxt "field:account.fiscalyear.balance_non_deferral.start,credit_account:"
msgid "Credit Account"
msgstr "Cuenta Crédito"
@@ -933,8 +955,8 @@ msgid "Type"
msgstr "Tipo"
msgctxt "field:account.journal,update_posted:"
-msgid "Allow cancelling moves"
-msgstr "Permitir anular asientos"
+msgid "Allow updating posted moves"
+msgstr "Permitir actualizar asientos contabilizados"
msgctxt "field:account.journal,view:"
msgid "View"
@@ -1108,6 +1130,10 @@ msgctxt "field:account.journal.view.column,write_uid:"
msgid "Write User"
msgstr "Modificado por Usuario"
+msgctxt "field:account.move,company:"
+msgid "Company"
+msgstr "Compañía"
+
msgctxt "field:account.move,create_date:"
msgid "Create Date"
msgstr "Fecha de Creación"
@@ -1172,10 +1198,30 @@ msgctxt "field:account.move,write_uid:"
msgid "Write User"
msgstr "Modificado por Usuario"
+msgctxt "field:account.move.cancel.default,description:"
+msgid "Description"
+msgstr "Descripción"
+
+msgctxt "field:account.move.cancel.default,id:"
+msgid "ID"
+msgstr "ID"
+
msgctxt "field:account.move.line,account:"
msgid "Account"
msgstr "Cuenta"
+msgctxt "field:account.move.line,amount:"
+msgid "Amount"
+msgstr "Valor"
+
+msgctxt "field:account.move.line,amount_currency:"
+msgid "Amount Currency"
+msgstr ""
+
+msgctxt "field:account.move.line,amount_currency_digits:"
+msgid "Amount Currency Digits"
+msgstr "Dígitos de Moneda"
+
msgctxt "field:account.move.line,amount_second_currency:"
msgid "Amount Second Currency"
msgstr "Valor en Segunda Moneda"
@@ -1280,6 +1326,62 @@ msgctxt "field:account.move.line,write_uid:"
msgid "Write User"
msgstr "Modificado por Usuario"
+msgctxt "field:account.move.line.template,account:"
+msgid "Account"
+msgstr "Cuenta"
+
+msgctxt "field:account.move.line.template,amount:"
+msgid "Amount"
+msgstr "Valor"
+
+msgctxt "field:account.move.line.template,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:account.move.line.template,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:account.move.line.template,description:"
+msgid "Description"
+msgstr "Descripción"
+
+msgctxt "field:account.move.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.line.template,move:"
+msgid "Move"
+msgstr "Asiento"
+
+msgctxt "field:account.move.line.template,operation:"
+msgid "Operation"
+msgstr "Operación"
+
+msgctxt "field:account.move.line.template,party:"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "field:account.move.line.template,party_required:"
+msgid "Party Required"
+msgstr "Tercero Requerido"
+
+msgctxt "field:account.move.line.template,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.line.template,taxes:"
+msgid "Taxes"
+msgstr "Impuestos"
+
+msgctxt "field:account.move.line.template,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:account.move.line.template,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
msgctxt "field:account.move.open_journal.ask,id:"
msgid "ID"
msgstr "ID"
@@ -1368,6 +1470,130 @@ msgctxt "field:account.move.reconciliation,write_uid:"
msgid "Write User"
msgstr "Modificado por Usuario"
+msgctxt "field:account.move.template,active:"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:account.move.template,company:"
+msgid "Company"
+msgstr "Compañía"
+
+msgctxt "field:account.move.template,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:account.move.template,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:account.move.template,date:"
+msgid "Date"
+msgstr "Fecha"
+
+msgctxt "field:account.move.template,description:"
+msgid "Description"
+msgstr "Descripción"
+
+msgctxt "field:account.move.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template,journal:"
+msgid "Journal"
+msgstr "Libro Contable"
+
+msgctxt "field:account.move.template,keywords:"
+msgid "Keywords"
+msgstr "Teclas"
+
+msgctxt "field:account.move.template,lines:"
+msgid "Lines"
+msgstr "Líneas"
+
+msgctxt "field:account.move.template,name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:account.move.template,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
+msgctxt "field:account.move.template.create.keywords,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,period:"
+msgid "Period"
+msgstr "Período"
+
+msgctxt "field:account.move.template.create.template,template:"
+msgid "Template"
+msgstr "Plantilla"
+
+msgctxt "field:account.move.template.keyword,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:account.move.template.keyword,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:account.move.template.keyword,digits:"
+msgid "Digits"
+msgstr "Decimales"
+
+msgctxt "field:account.move.template.keyword,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.keyword,move:"
+msgid "Move"
+msgstr "Asiento"
+
+msgctxt "field:account.move.template.keyword,name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template.keyword,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template.keyword,required:"
+msgid "Required"
+msgstr "Requerido"
+
+msgctxt "field:account.move.template.keyword,sequence:"
+msgid "Sequence"
+msgstr "Secuencia"
+
+msgctxt "field:account.move.template.keyword,string:"
+msgid "String"
+msgstr "Cadena"
+
+msgctxt "field:account.move.template.keyword,type_:"
+msgid "Type"
+msgstr "Tipo"
+
+msgctxt "field:account.move.template.keyword,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:account.move.template.keyword,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
msgctxt "field:account.open_aged_balance.start,balance_type:"
msgid "Type"
msgstr "Tipo"
@@ -1744,6 +1970,10 @@ msgctxt "field:account.tax,type:"
msgid "Type"
msgstr "Tipo"
+msgctxt "field:account.tax,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Actualizar Precio Unitario"
+
msgctxt "field:account.tax,write_date:"
msgid "Write Date"
msgstr "Fecha de Modificación"
@@ -1924,6 +2154,10 @@ msgctxt "field:account.tax.line,code:"
msgid "Code"
msgstr "Código"
+msgctxt "field:account.tax.line,company:"
+msgid "Company"
+msgstr "Compañía"
+
msgctxt "field:account.tax.line,create_date:"
msgid "Create Date"
msgstr "Fecha de Creación"
@@ -1960,6 +2194,46 @@ msgctxt "field:account.tax.line,write_uid:"
msgid "Write User"
msgstr "Modificado por Usuario"
+msgctxt "field:account.tax.line.template,amount:"
+msgid "Amount"
+msgstr "Valor"
+
+msgctxt "field:account.tax.line.template,code:"
+msgid "Code"
+msgstr "Código"
+
+msgctxt "field:account.tax.line.template,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:account.tax.line.template,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:account.tax.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.tax.line.template,line:"
+msgid "Line"
+msgstr "Línea"
+
+msgctxt "field:account.tax.line.template,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.tax.line.template,tax:"
+msgid "Tax"
+msgstr "Impuesto"
+
+msgctxt "field:account.tax.line.template,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:account.tax.line.template,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
msgctxt "field:account.tax.rule,company:"
msgid "Company"
msgstr "Compañia"
@@ -2240,6 +2514,10 @@ msgctxt "field:account.tax.template,type:"
msgid "Type"
msgstr "Tipo"
+msgctxt "field:account.tax.template,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Actualizar Precio Unitario"
+
msgctxt "field:account.tax.template,write_date:"
msgid "Write Date"
msgstr "Fecha de Modificación"
@@ -2292,6 +2570,10 @@ msgctxt "field:party.party,supplier_tax_rule:"
msgid "Supplier Tax Rule"
msgstr "Regla de Impuesto a Proveedor"
+msgctxt "help:account.account,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Visualizar solo el saldo en el informe de libro mayor"
+
msgctxt "help:account.account,reconcile:"
msgid ""
"Allow move lines of this account \n"
@@ -2314,6 +2596,10 @@ msgstr ""
"Impuesto por defecto para la codificación manual\n"
"de líneas de asientos para libros de tipo: \"gastos\" e \"ingresos\"."
+msgctxt "help:account.account.template,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Visualizar solo el saldo en el informe de libro mayor"
+
msgctxt "help:account.account.type,sequence:"
msgid "Use to order the account type"
msgstr "Usar para ordenar el tipo de cuenta."
@@ -2338,10 +2624,26 @@ msgctxt "help:account.move.line,second_currency:"
msgid "The second currency"
msgstr "La segunda moneda."
+msgctxt "help:account.move.line.template,description:"
+msgid "Keywords values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"Las sustituciones de la palabras claves son identificados por llaves ('{' y "
+"'}')"
+
msgctxt "help:account.move.print_general_journal.start,posted:"
msgid "Show only posted move"
msgstr "Mostrar únicamente asientos contabilizados"
+msgctxt "help:account.move.template,date:"
+msgid "Leave empty for today"
+msgstr "Dejar vacío por hoy"
+
+msgctxt "help:account.move.template,description:"
+msgid "Keyword values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"Las sustituciones de la palabras claves son identificados por llaves ('{' y "
+"'}')"
+
msgctxt "help:account.open_aged_balance.start,posted:"
msgid "Show only posted move"
msgstr "Mostrar únicamente asientos contabilizados"
@@ -2410,6 +2712,14 @@ msgctxt "help:account.tax,sequence:"
msgid "Use to order the taxes"
msgstr "Usar para ordenar los impuestos."
+msgctxt "help:account.tax,update_unit_price:"
+msgid ""
+"If checked then the unit price for further tax computation willbe modified "
+"by this tax"
+msgstr ""
+"Si es marcado entonces el precio unitario para el cálculo del impuesto será "
+"modificado por este impuesto. "
+
msgctxt "help:account.tax.code.open_chart.start,fiscalyear:"
msgid "Leave empty for all open fiscal year"
msgstr "Dejar vacío para abrir todos los años fiscales."
@@ -2674,10 +2984,18 @@ msgctxt "model:account.move,name:"
msgid "Account Move"
msgstr "Asiento Contable"
+msgctxt "model:account.move.cancel.default,name:"
+msgid "Cancel Moves"
+msgstr "Anular Asientos"
+
msgctxt "model:account.move.line,name:"
msgid "Account Move Line"
msgstr "Línea de Asiento"
+msgctxt "model:account.move.line.template,name:"
+msgid "Account Move Line Template"
+msgstr "Plantilla de Línea de Asiento"
+
msgctxt "model:account.move.open_journal.ask,name:"
msgid "Open Journal Ask"
msgstr "Abrir Libro Contable Pregunta"
@@ -2694,6 +3012,22 @@ msgctxt "model:account.move.reconciliation,name:"
msgid "Account Move Reconciliation Lines"
msgstr "Líneas Conciliación de Asiento"
+msgctxt "model:account.move.template,name:"
+msgid "Account Move Template"
+msgstr "Plantilla de Asiento"
+
+msgctxt "model:account.move.template.create.keywords,name:"
+msgid "Create Move from Template"
+msgstr "Crear Plantilla de Asiento"
+
+msgctxt "model:account.move.template.create.template,name:"
+msgid "Create Move from Template"
+msgstr "Crear Asiento desde Plantilla"
+
+msgctxt "model:account.move.template.keyword,name:"
+msgid "Account Move Template Keyword"
+msgstr "Plantilla de Asiento Clave"
+
msgctxt "model:account.open_aged_balance.start,name:"
msgid "Open Aged Balance"
msgstr "Abrir Cartera Vencida"
@@ -2754,6 +3088,10 @@ msgctxt "model:account.tax.line,name:"
msgid "Tax Line"
msgstr "Línea de Impuesto"
+msgctxt "model:account.tax.line.template,name:"
+msgid "Account Tax Line Template"
+msgstr "Plantilla de Línea de Impuesto"
+
msgctxt "model:account.tax.rule,name:"
msgid "Tax Rule"
msgstr "Regla de Impuesto"
@@ -2898,6 +3236,14 @@ msgctxt "model:ir.action,name:act_move_reconciliation_lines"
msgid "Reconciliation Lines"
msgstr "Conciliación de Líneas"
+msgctxt "model:ir.action,name:act_move_template_create"
+msgid "Create Move from Template"
+msgstr "Crear Asiento desde Plantilla"
+
+msgctxt "model:ir.action,name:act_move_template_form"
+msgid "Account Move Template"
+msgstr "Plantilla de Asiento"
+
msgctxt "model:ir.action,name:act_open_account"
msgid "Open Move Account"
msgstr "Abrir Asiento Contable"
@@ -3128,7 +3474,7 @@ msgstr "Balance No-Diferido"
msgctxt "model:ir.ui.menu,name:menu_charts"
msgid "Charts"
-msgstr "Plan de Cuentas"
+msgstr "Balances en Cuentas"
msgctxt "model:ir.ui.menu,name:menu_close_fiscalyear"
msgid "Close Fiscal Year"
@@ -3190,6 +3536,14 @@ msgctxt "model:ir.ui.menu,name:menu_move_form"
msgid "Account Moves"
msgstr "Asientos Contables"
+msgctxt "model:ir.ui.menu,name:menu_move_template_create"
+msgid "Create Move from Template"
+msgstr "Crear Asiento desde Plantilla"
+
+msgctxt "model:ir.ui.menu,name:menu_move_template_form"
+msgid "Account Move Template"
+msgstr "Plantilla de Asiento"
+
msgctxt "model:ir.ui.menu,name:menu_open_balance_sheet"
msgid "Balance Sheet"
msgstr "Estado de Situación Financiera"
@@ -3710,6 +4064,30 @@ msgctxt "selection:account.move.line,state:"
msgid "Valid"
msgstr "Válido"
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Credit"
+msgstr "Crédito"
+
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Debit"
+msgstr "Débito"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Char"
+msgstr "Caracter"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Date"
+msgstr "Fecha"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Numeric"
+msgstr "Numerico"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Party"
+msgstr "Tercero"
+
msgctxt "selection:account.open_aged_balance.start,balance_type:"
msgid "Both"
msgstr "Ambos"
@@ -3990,6 +4368,22 @@ msgctxt "view:account.journal:"
msgid "Journals"
msgstr "Libros Contables"
+msgctxt "view:account.move.cancel.default:"
+msgid "Cancel Moves"
+msgstr "Anular Asientos"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Template"
+msgstr "Plantilla de Línea de Asiento"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Templates"
+msgstr ""
+
+msgctxt "view:account.move.line.template:"
+msgid "Other Info"
+msgstr "Info Adicional"
+
msgctxt "view:account.move.line:"
msgid "Account Move Line"
msgstr "Línea de Asiento"
@@ -4030,6 +4424,31 @@ msgctxt "view:account.move.reconciliation:"
msgid "Reconciliations"
msgstr "Conciliaciones"
+msgctxt "view:account.move.template.create.template:"
+msgid "Create Move from Template"
+msgstr "Crear Asiento desde Plantilla"
+
+#, fuzzy
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keyword"
+msgstr "Plantilla de Asiento Clave"
+
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keywords"
+msgstr ""
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Template"
+msgstr "Plantilla de Asiento"
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Templates"
+msgstr "Plantillas de Asiento"
+
+msgctxt "view:account.move.template:"
+msgid "Template"
+msgstr "Plantilla"
+
msgctxt "view:account.move:"
msgid "Account Move"
msgstr "Asiento Contable"
@@ -4138,6 +4557,14 @@ msgctxt "view:account.tax.group:"
msgid "Tax Groups"
msgstr "Grupos de Impuestos"
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Template"
+msgstr "Plantilla de Línea de Impuesto"
+
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Templates"
+msgstr "Plantillas de Línea de Impuesto"
+
msgctxt "view:account.tax.line:"
msgid "Account Tax Line"
msgstr "Cuenta de Línea de Impuesto"
@@ -4271,7 +4698,7 @@ msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:account.create_chart,start,account:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:account.create_chart,start,end:"
@@ -4279,7 +4706,7 @@ msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,balance:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,end:"
@@ -4294,6 +4721,14 @@ msgctxt "wizard_button:account.fiscalyear.close,start,end:"
msgid "Cancel"
msgstr "Cancelar"
+msgctxt "wizard_button:account.move.cancel,default,cancel:"
+msgid "OK"
+msgstr "Aceptar"
+
+msgctxt "wizard_button:account.move.cancel,default,end:"
+msgid "Cancel"
+msgstr "Cancelar"
+
msgctxt "wizard_button:account.move.open_journal,ask,end:"
msgid "Cancel"
msgstr "Cancelar"
@@ -4318,6 +4753,22 @@ msgctxt "wizard_button:account.move.reconcile_lines,writeoff,reconcile:"
msgid "Reconcile"
msgstr "Conciliar"
+msgctxt "wizard_button:account.move.template.create,keywords,create_:"
+msgid "Create"
+msgstr "Crear"
+
+msgctxt "wizard_button:account.move.template.create,keywords,end:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "wizard_button:account.move.template.create,template,end:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "wizard_button:account.move.template.create,template,keywords:"
+msgid "Next"
+msgstr "Siguiente"
+
msgctxt "wizard_button:account.open_aged_balance,start,end:"
msgid "Cancel"
msgstr "Cancelar"
@@ -4403,5 +4854,5 @@ msgid "Update"
msgstr "Actualizar"
msgctxt "wizard_button:account.update_chart,succeed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
diff --git a/locale/es_EC.po b/locale/es_EC.po
index db00874..7c6fccf 100644
--- a/locale/es_EC.po
+++ b/locale/es_EC.po
@@ -21,12 +21,12 @@ msgstr "No puede eliminar cuentas que tienen hijas."
msgctxt "error:account.fiscalyear:"
msgid "Fiscal year \"%(first)s\" and \"%(second)s\" have the same post move sequence."
msgstr ""
-"El año fiscal \"%(first)s\" y \"%(second)s\" tienen la misma secuencia de "
-"asiento confirmado."
+"Los años fiscales \"%(first)s\" y \"%(second)s\" tienen la misma secuencia "
+"de asiento contabilizado."
msgctxt "error:account.fiscalyear:"
msgid "Fiscal year \"%(first)s\" and \"%(second)s\" overlap."
-msgstr "El año fiscal \"%(first)s\" y \"%(second)s\" se superponen."
+msgstr "Los años fiscales \"%(first)s\" y \"%(second)s\" se superponen."
msgctxt "error:account.fiscalyear:"
msgid "No fiscal year defined for \"%s\"."
@@ -100,13 +100,17 @@ msgstr "Se requiere el Tercero en la línea \"%s\""
msgctxt "error:account.move.line:"
msgid "Party must not be set on line \"%s\""
-msgstr "El Tercero no debe ser establecido en la línea \"%s\""
+msgstr "El Tercero no se debe definir en la línea \"%s\""
msgctxt "error:account.move.line:"
msgid "Wrong credit/debit values."
msgstr "Valores de crédito/débito erróneos."
msgctxt "error:account.move.line:"
+msgid "Wrong second currency sign."
+msgstr "Signo de moneda secundaria incorrecto"
+
+msgctxt "error:account.move.line:"
msgid "You can not add/modify lines in closed journal period \"%s\"."
msgstr ""
"No puede añadir/modificar líneas en el libro diario con período cerrado "
@@ -136,6 +140,10 @@ msgstr ""
"No puede modificar las líneas del asiento \"%s\" porque ya está "
"contabilizado."
+msgctxt "error:account.move.line:"
+msgid "wrong_second_currency_sign"
+msgstr "Signo de moneda secundaria incorrecto."
+
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not create a reconciliation where debit \"%(debit)s\" and credit "
@@ -162,19 +170,19 @@ msgid ""
"\"%(account1)s\" is different from \"%(account2)s\"."
msgstr ""
"No puede conciliar línea \"%(line)s\" porque la cuenta \"%(account1)s\" es "
-"diferente de la cuenta \"%(account2)s\"."
+"diferente de \"%(account2)s\"."
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not reconcile line \"%(line)s\" because it's party \"%(party1)s\" is"
-" different from %(party2)s\"."
+" different from \"%(party2)s\"."
msgstr ""
"No puede conciliar la línea \"%(line)s\" porque el tercero \"%(party1)s\" es"
-" diferente del tercero \"%(party2)s\"."
+" diferente de \"%(party2)s\"."
msgctxt "error:account.move.reconciliation:"
msgid "You can not reconcile line \"%s\" because it is not in valid state."
-msgstr "No puede conciliar la línea \"%s\" porque no está en estado válido."
+msgstr "No puede conciliar la línea \"%s\" porque no está en un estado válido."
msgctxt "error:account.move:"
msgid ""
@@ -185,18 +193,12 @@ msgstr ""
"¿Utilizar el período actual?"
msgctxt "error:account.move:"
-msgid "You can not create lines on accountsof different companies in move \"%s\"."
-msgstr ""
-"No puede crear líneas en cuentas de diferentes empresas en el asiento "
-"\"%s\"."
-
-msgctxt "error:account.move:"
msgid ""
"You can not create move \"%(move)s\" because it's date is outside its "
"period."
msgstr ""
-"No puede crear los asientos \"%(move)s\" porque su fecha está fuera de su "
-"período."
+"No puede crear los asientos \"%(move)s\" porque la fecha se encuentra fuera "
+"del período."
msgctxt "error:account.move:"
msgid "You can not modify move \"%s\" because it is already posted."
@@ -208,12 +210,12 @@ msgstr "No puede contabilizar el asiento \"%s\" porque está descuadrado."
msgctxt "error:account.move:"
msgid "You can not post move \"%s\" because it is empty."
-msgstr "No puede confirmar el asiento \"%s\" porque está vacío."
+msgstr "No puede contabilizar el asiento \"%s\" porque está vacío."
msgctxt "error:account.move:"
msgid "You can not set posted move \"%(move)s\" to draft in journal \"%(journal)s\"."
msgstr ""
-"No puede convertir el asiento contabilizado \"%(move)s\" a borrador en el "
+"No puede establecer a borrador el asiento contabilizado \"%(move)s\" en el "
"libro diario \"%(journal)s\"."
msgctxt "error:account.move:"
@@ -221,7 +223,7 @@ msgid ""
"You can not set to draft move \"%(move)s\" because period \"%(period)s\" is "
"closed."
msgstr ""
-"No puede convertir a borrador el asiento \"%(move)s\" porque el período "
+"No puede establecer a borrador el asiento \"%(move)s\" porque el período "
"\"%(period)s\" está cerrado."
msgctxt "error:account.open_aged_balance:"
@@ -237,14 +239,6 @@ msgid "\"%(first)s\" and \"%(second)s\" periods overlap."
msgstr "Los períodos \"%(first)s\" y \"%(second)s\" se superponen."
msgctxt "error:account.period:"
-msgid ""
-"Company of sequence \"%(sequence)s\" does not match the company of period "
-"\"%(period)s\" to which it is assigned to."
-msgstr ""
-"La empresa de la secuencia \"%(sequence)s\" no coincide con la empresa del "
-"período \"%(period)s\" a la cual está asignada."
-
-msgctxt "error:account.period:"
msgid "Dates of period \"%s\" are outside are outside it's fiscal year dates."
msgstr ""
"Las fechas del período \"%s\" están fuera de las fechas de su año fiscal. "
@@ -289,6 +283,22 @@ msgstr ""
"No puede abrir el período \"%(period)s\" porque su año fiscal "
"\"%(fiscalyear)s\" está cerrado."
+msgctxt "error:account.tax.template:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+"\"Actualizar Precio Unitario\" no se puede establecer en el impuesto "
+"\"%(template)s\" el cual tiene un padre."
+
+msgctxt "error:account.tax:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+"\"Actualizar Precio Unitario\" no se puede establecer en el impuesto "
+"\"%(template)s\" el cual tiene un padre."
+
msgctxt "field:account.account,active:"
msgid "Active"
msgstr "Activo"
@@ -341,6 +351,10 @@ msgctxt "field:account.account,deferrals:"
msgid "Deferrals"
msgstr "Diferidos"
+msgctxt "field:account.account,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Balance del Libro Mayor"
+
msgctxt "field:account.account,id:"
msgid "ID"
msgstr "ID"
@@ -443,7 +457,7 @@ msgstr "Cuenta"
msgctxt "field:account.account.deferral,balance:"
msgid "Balance"
-msgstr "Saldo"
+msgstr "Balance"
msgctxt "field:account.account.deferral,create_date:"
msgid "Create Date"
@@ -505,6 +519,10 @@ msgctxt "field:account.account.template,deferral:"
msgid "Deferral"
msgstr "Diferido"
+msgctxt "field:account.account.template,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Balance del Libro Mayor"
+
msgctxt "field:account.account.template,id:"
msgid "ID"
msgstr "ID"
@@ -583,7 +601,7 @@ msgstr "Modificado por Usuario"
msgctxt "field:account.account.type,amount:"
msgid "Amount"
-msgstr "Valor"
+msgstr "Importe"
msgctxt "field:account.account.type,balance_sheet:"
msgid "Balance Sheet"
@@ -735,7 +753,7 @@ msgstr "Modificado por Usuario"
msgctxt "field:account.create_chart.account,account_template:"
msgid "Account Template"
-msgstr "Plantilla de cuenta"
+msgstr "Plantilla de Cuenta"
msgctxt "field:account.create_chart.account,company:"
msgid "Company"
@@ -857,6 +875,10 @@ msgctxt "field:account.fiscalyear-account.move.line,write_uid:"
msgid "Write User"
msgstr "Modificado por Usuario"
+msgctxt "field:account.fiscalyear.balance_non_deferral.start,company:"
+msgid "Company"
+msgstr "Empresa"
+
msgctxt "field:account.fiscalyear.balance_non_deferral.start,credit_account:"
msgid "Credit Account"
msgstr "Cuenta de Crédito"
@@ -934,8 +956,8 @@ msgid "Type"
msgstr "Tipo"
msgctxt "field:account.journal,update_posted:"
-msgid "Allow cancelling moves"
-msgstr "Permitir cancelar asientos"
+msgid "Allow updating posted moves"
+msgstr "Permitir actualización de asientos contablizados"
msgctxt "field:account.journal,view:"
msgid "View"
@@ -1109,6 +1131,10 @@ msgctxt "field:account.journal.view.column,write_uid:"
msgid "Write User"
msgstr "Modificado por Usuario"
+msgctxt "field:account.move,company:"
+msgid "Company"
+msgstr "Empresa"
+
msgctxt "field:account.move,create_date:"
msgid "Create Date"
msgstr "Fecha de Creación"
@@ -1151,7 +1177,7 @@ msgstr "Período"
msgctxt "field:account.move,post_date:"
msgid "Post Date"
-msgstr "Fecha de Confirmación"
+msgstr "Fecha de Contabilización"
msgctxt "field:account.move,post_number:"
msgid "Post Number"
@@ -1173,13 +1199,33 @@ msgctxt "field:account.move,write_uid:"
msgid "Write User"
msgstr "Modificado por Usuario"
+msgctxt "field:account.move.cancel.default,description:"
+msgid "Description"
+msgstr "Descripción"
+
+msgctxt "field:account.move.cancel.default,id:"
+msgid "ID"
+msgstr "ID"
+
msgctxt "field:account.move.line,account:"
msgid "Account"
msgstr "Cuenta"
+msgctxt "field:account.move.line,amount:"
+msgid "Amount"
+msgstr "Importe"
+
+msgctxt "field:account.move.line,amount_currency:"
+msgid "Amount Currency"
+msgstr "Modeda del Importe"
+
+msgctxt "field:account.move.line,amount_currency_digits:"
+msgid "Amount Currency Digits"
+msgstr "Decimales de Modeda del Importe"
+
msgctxt "field:account.move.line,amount_second_currency:"
msgid "Amount Second Currency"
-msgstr "Valor en Segunda Moneda"
+msgstr "Importe en Moneda Secundaria"
msgctxt "field:account.move.line,create_date:"
msgid "Create Date"
@@ -1281,6 +1327,62 @@ msgctxt "field:account.move.line,write_uid:"
msgid "Write User"
msgstr "Modificado por Usuario"
+msgctxt "field:account.move.line.template,account:"
+msgid "Account"
+msgstr "Cuenta"
+
+msgctxt "field:account.move.line.template,amount:"
+msgid "Amount"
+msgstr "Importe"
+
+msgctxt "field:account.move.line.template,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:account.move.line.template,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:account.move.line.template,description:"
+msgid "Description"
+msgstr "Descripción"
+
+msgctxt "field:account.move.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.line.template,move:"
+msgid "Move"
+msgstr "Asiento"
+
+msgctxt "field:account.move.line.template,operation:"
+msgid "Operation"
+msgstr "Operación"
+
+msgctxt "field:account.move.line.template,party:"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "field:account.move.line.template,party_required:"
+msgid "Party Required"
+msgstr "Se Requiere el Tercero"
+
+msgctxt "field:account.move.line.template,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.line.template,taxes:"
+msgid "Taxes"
+msgstr "Impuestos"
+
+msgctxt "field:account.move.line.template,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:account.move.line.template,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
msgctxt "field:account.move.open_journal.ask,id:"
msgid "ID"
msgstr "ID"
@@ -1315,7 +1417,7 @@ msgstr "Fecha Final"
msgctxt "field:account.move.reconcile_lines.writeoff,amount:"
msgid "Amount"
-msgstr "Valor"
+msgstr "Importe"
msgctxt "field:account.move.reconcile_lines.writeoff,currency_digits:"
msgid "Currency Digits"
@@ -1369,6 +1471,130 @@ msgctxt "field:account.move.reconciliation,write_uid:"
msgid "Write User"
msgstr "Modificado por Usuario"
+msgctxt "field:account.move.template,active:"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:account.move.template,company:"
+msgid "Company"
+msgstr "Empresa"
+
+msgctxt "field:account.move.template,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:account.move.template,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:account.move.template,date:"
+msgid "Date"
+msgstr "Fecha"
+
+msgctxt "field:account.move.template,description:"
+msgid "Description"
+msgstr "Descripción"
+
+msgctxt "field:account.move.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template,journal:"
+msgid "Journal"
+msgstr "Libro Diario"
+
+msgctxt "field:account.move.template,keywords:"
+msgid "Keywords"
+msgstr "Palabras clave"
+
+msgctxt "field:account.move.template,lines:"
+msgid "Lines"
+msgstr "Líneas"
+
+msgctxt "field:account.move.template,name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:account.move.template,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
+msgctxt "field:account.move.template.create.keywords,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,period:"
+msgid "Period"
+msgstr "Período"
+
+msgctxt "field:account.move.template.create.template,template:"
+msgid "Template"
+msgstr "Plantilla"
+
+msgctxt "field:account.move.template.keyword,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:account.move.template.keyword,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:account.move.template.keyword,digits:"
+msgid "Digits"
+msgstr "Decimales"
+
+msgctxt "field:account.move.template.keyword,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.keyword,move:"
+msgid "Move"
+msgstr "Asiento"
+
+msgctxt "field:account.move.template.keyword,name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template.keyword,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template.keyword,required:"
+msgid "Required"
+msgstr "Requerido"
+
+msgctxt "field:account.move.template.keyword,sequence:"
+msgid "Sequence"
+msgstr "Secuencia"
+
+msgctxt "field:account.move.template.keyword,string:"
+msgid "String"
+msgstr "Descripción"
+
+msgctxt "field:account.move.template.keyword,type_:"
+msgid "Type"
+msgstr "Tipo"
+
+msgctxt "field:account.move.template.keyword,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:account.move.template.keyword,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
msgctxt "field:account.open_aged_balance.start,balance_type:"
msgid "Type"
msgstr "Tipo"
@@ -1635,7 +1861,7 @@ msgstr "Activo"
msgctxt "field:account.tax,amount:"
msgid "Amount"
-msgstr "Valor"
+msgstr "Importe"
msgctxt "field:account.tax,childs:"
msgid "Children"
@@ -1745,6 +1971,10 @@ msgctxt "field:account.tax,type:"
msgid "Type"
msgstr "Tipo"
+msgctxt "field:account.tax,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Actualizar Precio Unitario"
+
msgctxt "field:account.tax,write_date:"
msgid "Write Date"
msgstr "Fecha de Modificación"
@@ -1835,7 +2065,7 @@ msgstr "Períodos"
msgctxt "field:account.tax.code.template,account:"
msgid "Account Template"
-msgstr "Plantilla de cuenta"
+msgstr "Plantilla de Cuenta"
msgctxt "field:account.tax.code.template,childs:"
msgid "Children"
@@ -1919,12 +2149,16 @@ msgstr "Modificado por Usuario"
msgctxt "field:account.tax.line,amount:"
msgid "Amount"
-msgstr "Valor"
+msgstr "Importe"
msgctxt "field:account.tax.line,code:"
msgid "Code"
msgstr "Código"
+msgctxt "field:account.tax.line,company:"
+msgid "Company"
+msgstr "Empresa"
+
msgctxt "field:account.tax.line,create_date:"
msgid "Create Date"
msgstr "Fecha de Creación"
@@ -1961,6 +2195,46 @@ msgctxt "field:account.tax.line,write_uid:"
msgid "Write User"
msgstr "Modificado por Usuario"
+msgctxt "field:account.tax.line.template,amount:"
+msgid "Amount"
+msgstr "Importe"
+
+msgctxt "field:account.tax.line.template,code:"
+msgid "Code"
+msgstr "Código"
+
+msgctxt "field:account.tax.line.template,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:account.tax.line.template,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:account.tax.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.tax.line.template,line:"
+msgid "Line"
+msgstr "Línea"
+
+msgctxt "field:account.tax.line.template,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.tax.line.template,tax:"
+msgid "Tax"
+msgstr "Impuesto"
+
+msgctxt "field:account.tax.line.template,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:account.tax.line.template,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
msgctxt "field:account.tax.rule,company:"
msgid "Company"
msgstr "Empresa"
@@ -2143,7 +2417,7 @@ msgstr "Plantilla de Cuenta"
msgctxt "field:account.tax.template,amount:"
msgid "Amount"
-msgstr "Valor"
+msgstr "Importe"
msgctxt "field:account.tax.template,childs:"
msgid "Children"
@@ -2241,6 +2515,10 @@ msgctxt "field:account.tax.template,type:"
msgid "Type"
msgstr "Tipo"
+msgctxt "field:account.tax.template,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Actualizar Precio Unitario"
+
msgctxt "field:account.tax.template,write_date:"
msgid "Write Date"
msgstr "Fecha de Modificación"
@@ -2293,18 +2571,22 @@ msgctxt "field:party.party,supplier_tax_rule:"
msgid "Supplier Tax Rule"
msgstr "Regla de Impuesto de Proveedor"
+msgctxt "help:account.account,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Mostrar únicamente el balance en el informe del libro mayor"
+
msgctxt "help:account.account,reconcile:"
msgid ""
"Allow move lines of this account \n"
"to be reconciled."
-msgstr "Permite conciliar las líneas de asientos de esta cuenta."
+msgstr "Permite conciliar las líneas de asiento de esta cuenta."
msgctxt "help:account.account,second_currency:"
msgid ""
"Force all moves for this account \n"
"to have this secondary currency."
msgstr ""
-"Fuerza el uso de la segunda moneda \n"
+"Fuerza el uso de esta moneda secundaria\n"
"en todos los asientos de esta cuenta."
msgctxt "help:account.account,taxes:"
@@ -2315,6 +2597,10 @@ msgstr ""
"Impuesto por defecto para la codificación manual\n"
"de líneas de asientos para libros diarios de tipo: \"gastos\" e \"ingresos\"."
+msgctxt "help:account.account.template,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Mostrar únicamente el balance en el informe del libro mayor"
+
msgctxt "help:account.account.type,sequence:"
msgid "Use to order the account type"
msgstr "Utilice para ordenar el tipo de cuenta."
@@ -2325,7 +2611,7 @@ msgstr "También conocido como Número de Folio"
msgctxt "help:account.move.line,amount_second_currency:"
msgid "The amount expressed in a second currency"
-msgstr "La cantidad expresada en la segunda moneda."
+msgstr "El importe expresado en la moneda secundaria"
msgctxt "help:account.move.line,maturity_date:"
msgid ""
@@ -2333,16 +2619,32 @@ msgid ""
"You can put the limit date for the payment."
msgstr ""
"Este campo se utiliza en las líneas por pagar y por cobrar.\n"
-"Puede establecer la fecha límite para el pago."
+"Puede poner la fecha límite para el pago."
msgctxt "help:account.move.line,second_currency:"
msgid "The second currency"
msgstr "La segunda moneda"
+msgctxt "help:account.move.line.template,description:"
+msgid "Keywords values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"Las palabras clave a sustituir por valores se identifican escribiéndolas "
+"dentro de llaves ('{' y '}')."
+
msgctxt "help:account.move.print_general_journal.start,posted:"
msgid "Show only posted move"
msgstr "Muestra sólo asientos confirmados."
+msgctxt "help:account.move.template,date:"
+msgid "Leave empty for today"
+msgstr "Dejarlo vacío para hoy"
+
+msgctxt "help:account.move.template,description:"
+msgid "Keyword values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"Las palabras clave a sustituir por valores se identifican escribiéndolas "
+"dentro de llaves ('{' y '}')."
+
msgctxt "help:account.open_aged_balance.start,posted:"
msgid "Show only posted move"
msgstr "Muestra sólo asientos confirmados."
@@ -2353,7 +2655,7 @@ msgstr "Muestra sólo asientos confirmados."
msgctxt "help:account.open_chart.start,fiscalyear:"
msgid "Leave empty for all open fiscal year"
-msgstr "Dejarlo vacío para todos los años fiscales abiertos."
+msgstr "Dejarlo vacío para todos los años fiscales abiertos"
msgctxt "help:account.open_chart.start,posted:"
msgid "Show posted moves only"
@@ -2411,14 +2713,22 @@ msgctxt "help:account.tax,sequence:"
msgid "Use to order the taxes"
msgstr "Utilice para ordenar los impuestos."
+msgctxt "help:account.tax,update_unit_price:"
+msgid ""
+"If checked then the unit price for further tax computation willbe modified "
+"by this tax"
+msgstr ""
+"Si está marcado, entonces el precio unitario para posteriores cálculos de "
+"impuesto será modificado por este impuesto"
+
msgctxt "help:account.tax.code.open_chart.start,fiscalyear:"
msgid "Leave empty for all open fiscal year"
-msgstr "Dejarlo vacío para abrir todos los años fiscales."
+msgstr "Dejarlo vacío para todos los años fiscales abiertos"
msgctxt "help:account.tax.code.open_chart.start,periods:"
msgid "Leave empty for all periods of all open fiscal year"
msgstr ""
-"Dejarlo vacío para todos los períodos de todos los años fiscales abiertos."
+"Dejarlo vacío para todos los períodos de todos los años fiscales abiertos"
msgctxt "help:account.tax.rule.line,origin_tax:"
msgid ""
@@ -2567,7 +2877,7 @@ msgstr "A largo plazo"
msgctxt ""
"model:account.account.type.template,name:account_type_template_minimal"
msgid "Minimal Account Type Chart"
-msgstr "Plan de tipos de cuenta mínimo"
+msgstr "Plan de Tipos de Cuenta Mínimo"
msgctxt ""
"model:account.account.type.template,name:account_type_template_off_balance"
@@ -2615,21 +2925,25 @@ msgctxt "model:account.journal,name:"
msgid "Journal"
msgstr "Libro Diario"
+#, fuzzy
msgctxt "model:account.journal,name:journal_cash"
msgid "Cash"
msgstr "Efectivo"
+#, fuzzy
msgctxt "model:account.journal,name:journal_expense"
msgid "Expense"
msgstr "Gastos"
+#, fuzzy
msgctxt "model:account.journal,name:journal_revenue"
msgid "Revenue"
msgstr "Ingresos"
+#, fuzzy
msgctxt "model:account.journal,name:journal_stock"
msgid "Stock"
-msgstr "Existencias"
+msgstr "Stock"
msgctxt "model:account.journal.period,name:"
msgid "Journal - Period"
@@ -2675,10 +2989,18 @@ msgctxt "model:account.move,name:"
msgid "Account Move"
msgstr "Asiento Contable"
+msgctxt "model:account.move.cancel.default,name:"
+msgid "Cancel Moves"
+msgstr "Cancelar Asientos"
+
msgctxt "model:account.move.line,name:"
msgid "Account Move Line"
msgstr "Línea de Asiento Contable"
+msgctxt "model:account.move.line.template,name:"
+msgid "Account Move Line Template"
+msgstr "Plantilla de Línea de Asiento Contable"
+
msgctxt "model:account.move.open_journal.ask,name:"
msgid "Open Journal Ask"
msgstr "Solicitar el Libro Diario a Abrir"
@@ -2695,6 +3017,22 @@ msgctxt "model:account.move.reconciliation,name:"
msgid "Account Move Reconciliation Lines"
msgstr "Líneas de Conciliación de Asientos Contables"
+msgctxt "model:account.move.template,name:"
+msgid "Account Move Template"
+msgstr "Plantilla de Asiento Contable"
+
+msgctxt "model:account.move.template.create.keywords,name:"
+msgid "Create Move from Template"
+msgstr "Crear Asiento desde Plantilla"
+
+msgctxt "model:account.move.template.create.template,name:"
+msgid "Create Move from Template"
+msgstr "Crear Asiento desde Plantilla"
+
+msgctxt "model:account.move.template.keyword,name:"
+msgid "Account Move Template Keyword"
+msgstr "Palabra clave de plantilla de asiento contable"
+
msgctxt "model:account.open_aged_balance.start,name:"
msgid "Open Aged Balance"
msgstr "Abrir Cartera Vencida"
@@ -2755,6 +3093,10 @@ msgctxt "model:account.tax.line,name:"
msgid "Tax Line"
msgstr "Línea de Impuesto"
+msgctxt "model:account.tax.line.template,name:"
+msgid "Account Tax Line Template"
+msgstr "Plantilla de Línea de Impuesto Contable"
+
msgctxt "model:account.tax.rule,name:"
msgid "Tax Rule"
msgstr "Regla de Impuesto"
@@ -2783,6 +3125,10 @@ msgctxt "model:account.update_chart.succeed,name:"
msgid "Update Chart"
msgstr "Actualizar Plan de Cuentas"
+msgctxt "model:ir.action,name:"
+msgid "Payable Lines"
+msgstr "Líneas por Pagar"
+
msgctxt "model:ir.action,name:act_account_balance_sheet_tree"
msgid "Balance Sheet"
msgstr "Estado de Situación Financiera"
@@ -2801,7 +3147,7 @@ msgstr "Cuentas"
msgctxt "model:ir.action,name:act_account_template_tree"
msgid "Account Templates"
-msgstr "Plantillas de cuenta"
+msgstr "Plantillas de Cuenta"
msgctxt "model:ir.action,name:act_account_tree"
msgid "Accounts"
@@ -2813,7 +3159,7 @@ msgstr "Cuentas"
msgctxt "model:ir.action,name:act_account_type_list"
msgid "Account Types"
-msgstr "Tipos de cuenta"
+msgstr "Tipos de Cuenta"
msgctxt "model:ir.action,name:act_account_type_template_tree"
msgid "Account Type Templates"
@@ -2821,7 +3167,7 @@ msgstr "Plantillas de Tipo de Cuenta"
msgctxt "model:ir.action,name:act_account_type_tree"
msgid "Account Types"
-msgstr "Tipos de cuenta"
+msgstr "Tipos de Cuenta"
msgctxt "model:ir.action,name:act_balance_non_deferral"
msgid "Balance Non-Deferral"
@@ -2885,7 +3231,7 @@ msgstr "Asientos Contables"
msgctxt "model:ir.action,name:act_move_line_form"
msgid "Account Move Lines"
-msgstr "Líneas de Asientos Contables"
+msgstr "Líneas de Asiento Contable"
msgctxt "model:ir.action,name:act_move_line_payable_receivable"
msgid "Payable/Receivable Lines"
@@ -2895,6 +3241,14 @@ msgctxt "model:ir.action,name:act_move_reconciliation_lines"
msgid "Reconciliation Lines"
msgstr "Líneas de Conciliación"
+msgctxt "model:ir.action,name:act_move_template_create"
+msgid "Create Move from Template"
+msgstr "Crear Asiento desde Plantilla"
+
+msgctxt "model:ir.action,name:act_move_template_form"
+msgid "Account Move Template"
+msgstr "Plantilla de Asiento Contable"
+
msgctxt "model:ir.action,name:act_open_account"
msgid "Open Move Account"
msgstr "Abrir Cuenta del Asiento"
@@ -3105,7 +3459,7 @@ msgstr "Cuentas"
msgctxt "model:ir.ui.menu,name:menu_account_type_list"
msgid "Account Types"
-msgstr "Tipos de cuenta"
+msgstr "Tipos de Cuenta"
msgctxt "model:ir.ui.menu,name:menu_account_type_template_tree"
msgid "Account Type Templates"
@@ -3165,7 +3519,7 @@ msgstr "Libros Diarios"
msgctxt "model:ir.ui.menu,name:menu_journal_period_form"
msgid "Close Journals - Periods"
-msgstr "Cerrar Libros Diarios- Períodos"
+msgstr "Cerrar Libros Diarios - Períodos"
msgctxt "model:ir.ui.menu,name:menu_journal_period_tree"
msgid "Journals - Periods"
@@ -3177,7 +3531,7 @@ msgstr "Libros Diarios - Períodos"
msgctxt "model:ir.ui.menu,name:menu_journal_type_form"
msgid "Journal Types"
-msgstr "Tipos de Libros Diarios"
+msgstr "Tipos de Libro Diario"
msgctxt "model:ir.ui.menu,name:menu_journal_view_form"
msgid "Journal Views"
@@ -3187,6 +3541,14 @@ msgctxt "model:ir.ui.menu,name:menu_move_form"
msgid "Account Moves"
msgstr "Asientos Contables"
+msgctxt "model:ir.ui.menu,name:menu_move_template_create"
+msgid "Create Move from Template"
+msgstr "Crear Asiento desde Plantilla"
+
+msgctxt "model:ir.ui.menu,name:menu_move_template_form"
+msgid "Account Move Template"
+msgstr "Plantilla de Asiento Contable"
+
msgctxt "model:ir.ui.menu,name:menu_open_balance_sheet"
msgid "Balance Sheet"
msgstr "Estado de Situación Financiera"
@@ -3617,7 +3979,7 @@ msgstr "Ingresos"
msgctxt "selection:account.account,kind:"
msgid "Stock"
-msgstr "Existencias"
+msgstr "Stock"
msgctxt "selection:account.account,kind:"
msgid "View"
@@ -3645,7 +4007,7 @@ msgstr "Ingresos"
msgctxt "selection:account.account.template,kind:"
msgid "Stock"
-msgstr "Existencias"
+msgstr "Stock"
msgctxt "selection:account.account.template,kind:"
msgid "View"
@@ -3707,6 +4069,30 @@ msgctxt "selection:account.move.line,state:"
msgid "Valid"
msgstr "Válido"
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Credit"
+msgstr "Crédito"
+
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Debit"
+msgstr "Débito"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Char"
+msgstr "Texto"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Date"
+msgstr "Fecha"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Numeric"
+msgstr "Numérico"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Party"
+msgstr "Tercero"
+
msgctxt "selection:account.open_aged_balance.start,balance_type:"
msgid "Both"
msgstr "Ambos"
@@ -3833,15 +4219,15 @@ msgstr "Plantilla de Tipo de Cuenta"
msgctxt "view:account.account.type.template:"
msgid "Account Types Templates"
-msgstr "Plantillas de Tipo de Cuenta"
+msgstr "Plantillas de Tipos de Cuenta"
msgctxt "view:account.account.type:"
msgid "Account Type"
-msgstr "Tipo de cuenta"
+msgstr "Tipo de Cuenta"
msgctxt "view:account.account.type:"
msgid "Account Types"
-msgstr "Tipos de cuenta"
+msgstr "Tipos de Cuenta"
msgctxt "view:account.account.type:"
msgid "Balance Sheet"
@@ -3987,6 +4373,22 @@ msgctxt "view:account.journal:"
msgid "Journals"
msgstr "Libros Diarios"
+msgctxt "view:account.move.cancel.default:"
+msgid "Cancel Moves"
+msgstr "Cancelar Asientos"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Template"
+msgstr "Plantilla de Línea de Asiento Contable"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Templates"
+msgstr "Plantillas de Línea de Asiento Contable"
+
+msgctxt "view:account.move.line.template:"
+msgid "Other Info"
+msgstr "Información Adicional"
+
msgctxt "view:account.move.line:"
msgid "Account Move Line"
msgstr "Línea de Asiento Contable"
@@ -4027,6 +4429,30 @@ msgctxt "view:account.move.reconciliation:"
msgid "Reconciliations"
msgstr "Conciliaciones"
+msgctxt "view:account.move.template.create.template:"
+msgid "Create Move from Template"
+msgstr "Crear Asiento desde Plantilla"
+
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keyword"
+msgstr "Palabra clave de plantilla de asiento contable"
+
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keywords"
+msgstr "Palabra clave de plantilla de asiento contable"
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Template"
+msgstr "Plantilla de Asiento Contable"
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Templates"
+msgstr "Plantillas de Asiento Contable"
+
+msgctxt "view:account.move.template:"
+msgid "Template"
+msgstr "Plantilla"
+
msgctxt "view:account.move:"
msgid "Account Move"
msgstr "Asiento Contable"
@@ -4049,7 +4475,7 @@ msgstr "Abrir Cartera Vencida"
msgctxt "view:account.open_aged_balance.start:"
msgid "Terms"
-msgstr "Plazos"
+msgstr "Términos"
msgctxt "view:account.open_balance_sheet.start:"
msgid "Open Balance Sheet"
@@ -4085,7 +4511,7 @@ msgstr "Imprimir Balance de Comprobación"
msgctxt "view:account.reconcile.show:"
msgid "Amount"
-msgstr "Valor"
+msgstr "Importe"
msgctxt "view:account.reconcile.show:"
msgid "Reconcile"
@@ -4129,12 +4555,20 @@ msgstr "Códigos de Impuesto"
msgctxt "view:account.tax.group:"
msgid "Tax Group"
-msgstr "Grupo de Impuestos"
+msgstr "Grupo de Impuesto"
msgctxt "view:account.tax.group:"
msgid "Tax Groups"
msgstr "Grupos de Impuestos"
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Template"
+msgstr "Plantilla de Línea de Impuesto Contable"
+
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Templates"
+msgstr "Plantillas de Línea de Impuesto Contable"
+
msgctxt "view:account.tax.line:"
msgid "Account Tax Line"
msgstr "Línea de Impuesto Contable"
@@ -4157,7 +4591,7 @@ msgstr "Línea de Regla de Impuesto"
msgctxt "view:account.tax.rule.line:"
msgid "Tax Rule Lines"
-msgstr "Línea de Regla de Impuesto"
+msgstr "Líneas de Regla de Impuesto"
msgctxt "view:account.tax.rule.template:"
msgid "Tax Rule Template"
@@ -4268,7 +4702,7 @@ msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:account.create_chart,start,account:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:account.create_chart,start,end:"
@@ -4276,7 +4710,7 @@ msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,balance:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,end:"
@@ -4291,6 +4725,14 @@ msgctxt "wizard_button:account.fiscalyear.close,start,end:"
msgid "Cancel"
msgstr "Cancelar"
+msgctxt "wizard_button:account.move.cancel,default,cancel:"
+msgid "OK"
+msgstr "Aceptar"
+
+msgctxt "wizard_button:account.move.cancel,default,end:"
+msgid "Cancel"
+msgstr "Cancelar"
+
msgctxt "wizard_button:account.move.open_journal,ask,end:"
msgid "Cancel"
msgstr "Cancelar"
@@ -4315,6 +4757,22 @@ msgctxt "wizard_button:account.move.reconcile_lines,writeoff,reconcile:"
msgid "Reconcile"
msgstr "Conciliar"
+msgctxt "wizard_button:account.move.template.create,keywords,create_:"
+msgid "Create"
+msgstr "Crear"
+
+msgctxt "wizard_button:account.move.template.create,keywords,end:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "wizard_button:account.move.template.create,template,end:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "wizard_button:account.move.template.create,template,keywords:"
+msgid "Next"
+msgstr "Siguiente"
+
msgctxt "wizard_button:account.open_aged_balance,start,end:"
msgid "Cancel"
msgstr "Cancelar"
@@ -4400,5 +4858,5 @@ msgid "Update"
msgstr "Actualizar"
msgctxt "wizard_button:account.update_chart,succeed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index 2c01c7b..73ea170 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -12,17 +12,17 @@ msgstr "No puede modificar los registros del cierre contable."
msgctxt "error:account.account:"
msgid "You can not delete account \"%s\" because it has move lines."
-msgstr "No puede borrar la cuenta \"%s\" porque tiene apuntes."
+msgstr "No puede eliminar la cuenta \"%s\" porque tiene apuntes."
msgctxt "error:account.account:"
msgid "You can not delete accounts that have children."
-msgstr "No puede borrar cuentas que tienen hijas."
+msgstr "No puede eliminar cuentas que tienen hijas."
msgctxt "error:account.fiscalyear:"
msgid "Fiscal year \"%(first)s\" and \"%(second)s\" have the same post move sequence."
msgstr ""
"Los ejercicios fiscales \"%(first)s\" y \"%(second)s\" tienen la misma "
-"secuencia de asiento confirmado."
+"secuencia de asiento contabilizado."
msgctxt "error:account.fiscalyear:"
msgid "Fiscal year \"%(first)s\" and \"%(second)s\" overlap."
@@ -39,8 +39,8 @@ msgstr "El balance de la cuenta \"%s\" debe ser cero."
msgctxt "error:account.fiscalyear:"
msgid "You can not change the post move sequence in fiscal year \"%s\"."
msgstr ""
-"No puede cambiar la secuencia de asientos confirmados en el ejercicio fiscal"
-" \"%s\"."
+"No puede cambiar la secuencia de asientos contabilizados en el ejercicio "
+"fiscal \"%s\"."
msgctxt "error:account.fiscalyear:"
msgid ""
@@ -65,7 +65,8 @@ msgstr "No puede crear un diario - período en el período cerrado \"%s\"."
msgctxt "error:account.journal.period:"
msgid "You can not modify/delete journal - period \"%s\" because it has moves."
msgstr ""
-"No puede modificar/borrar el diario - período \"%s\" porque tiene asientos."
+"No puede modificar/eliminar el diario - período \"%s\" porque tiene "
+"asientos."
msgctxt "error:account.journal.period:"
msgid ""
@@ -105,6 +106,10 @@ msgid "Wrong credit/debit values."
msgstr "Valores de haber/debe erróneos."
msgctxt "error:account.move.line:"
+msgid "Wrong second currency sign."
+msgstr "El signo de la segunda moneda es incorrecto."
+
+msgctxt "error:account.move.line:"
msgid "You can not add/modify lines in closed journal period \"%s\"."
msgstr "No puede añadir/modificar apuntes en el diario período cerrado \"%s\"."
@@ -126,7 +131,12 @@ msgstr "No puede modificar el apunte \"%s\" porque ya está conciliado."
msgctxt "error:account.move.line:"
msgid "You can not modify lines of move \"%s\" because it is already posted."
msgstr ""
-"No puede modificar los apuntes del asiento \"%s\" porque ya está confirmado."
+"No puede modificar los apuntes del asiento \"%s\" porque ya está "
+"contabilizado."
+
+msgctxt "error:account.move.line:"
+msgid "wrong_second_currency_sign"
+msgstr "Signo de segunda moneda incorrecto"
msgctxt "error:account.move.reconciliation:"
msgid ""
@@ -159,10 +169,10 @@ msgstr ""
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not reconcile line \"%(line)s\" because it's party \"%(party1)s\" is"
-" different from %(party2)s\"."
+" different from \"%(party2)s\"."
msgstr ""
-"No puede conciliar el apunte \"%(line)s\" porque el tercero \"%(party1)s\" "
-"es diferente de \"%(party2)s\"."
+"No puede conciliar el apunte \"%(line)s\" porque su tercero \"%(party1)s\" "
+"es distinto de \"%(party2)s\"."
msgctxt "error:account.move.reconciliation:"
msgid "You can not reconcile line \"%s\" because it is not in valid state."
@@ -177,12 +187,6 @@ msgstr ""
"¿Quiere usar el período actual?"
msgctxt "error:account.move:"
-msgid "You can not create lines on accountsof different companies in move \"%s\"."
-msgstr ""
-"No puede crear apuntes con cuentas de diferentes empresas en el asiento "
-"\"%s\"."
-
-msgctxt "error:account.move:"
msgid ""
"You can not create move \"%(move)s\" because it's date is outside its "
"period."
@@ -192,21 +196,21 @@ msgstr ""
msgctxt "error:account.move:"
msgid "You can not modify move \"%s\" because it is already posted."
-msgstr "No puede modificar el asiento \"%s\" porque ya está confirmado."
+msgstr "No puede modificar el asiento \"%s\" porque ya está contabilizado."
msgctxt "error:account.move:"
msgid "You can not post move \"%s\" because it is an unbalanced."
-msgstr "No puede confirmar el asiento \"%s\" porque está descuadrado."
+msgstr "No puede contabilizar el asiento \"%s\" porque está descuadrado."
msgctxt "error:account.move:"
msgid "You can not post move \"%s\" because it is empty."
-msgstr "No puede confirmar el asiento \"%s\" porque está vacío."
+msgstr "No puede contabilizar el asiento \"%s\" porque está vacío."
msgctxt "error:account.move:"
msgid "You can not set posted move \"%(move)s\" to draft in journal \"%(journal)s\"."
msgstr ""
-"No puede cambiar a borrador el asiento confirmado \"%(move)s\" en el diario "
-"\"%(journal)s\"."
+"No puede cambiar a borrador el asiento contabilizado \"%(move)s\" en el "
+"diario \"%(journal)s\"."
msgctxt "error:account.move:"
msgid ""
@@ -229,14 +233,6 @@ msgid "\"%(first)s\" and \"%(second)s\" periods overlap."
msgstr "Los períodos \"%(first)s\" y \"%(second)s\" se superponen."
msgctxt "error:account.period:"
-msgid ""
-"Company of sequence \"%(sequence)s\" does not match the company of period "
-"\"%(period)s\" to which it is assigned to."
-msgstr ""
-"La empresa de la secuencia \"%(sequence)s\" no coincide con la empresa del "
-"período \"%(period)s\" a la que está asignada."
-
-msgctxt "error:account.period:"
msgid "Dates of period \"%s\" are outside are outside it's fiscal year dates."
msgstr "Las fechas del período \"%s\" están fuera de su ejercicio fiscal."
@@ -253,16 +249,16 @@ msgid ""
"You can not change the post move sequence of period \"%s\" because there are"
" already posted moves in the period."
msgstr ""
-"No puede cambiar la secuencia de asientos confirmados del período \"%s\" "
-"porque ya hay asientos confirmados en el período."
+"No puede cambiar la secuencia de asientos contabilizados del período \"%s\" "
+"porque ya hay asientos contabilizados en el período."
msgctxt "error:account.period:"
msgid ""
"You can not close period \"%(period)s\" because there are non posted moves "
"\"%(move)s\" in this period."
msgstr ""
-"No puede cerrar el período \"%(period)s\" porque hay asientos no confirmados"
-" \"%(move)s\" en este período."
+"No puede cerrar el período \"%(period)s\" porque hay asientos no "
+"contabilizados \"%(move)s\" en este período."
msgctxt "error:account.period:"
msgid "You can not create a period on fiscal year \"%s\" because it is closed."
@@ -271,7 +267,7 @@ msgstr ""
msgctxt "error:account.period:"
msgid "You can not modify/delete period \"%s\" because it has moves."
-msgstr "No puede modificar/borrar el período \"%s\" porque tiene asientos."
+msgstr "No puede modificar/eliminar el período \"%s\" porque tiene asientos."
msgctxt "error:account.period:"
msgid ""
@@ -281,6 +277,22 @@ msgstr ""
"No puede abrir el período \"%(period)s\" porque su ejercicio fiscal "
"\"%(fiscalyear)s\" está cerrado."
+msgctxt "error:account.tax.template:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+"\"Actualizar precio unidad\" no se puede aplicar al impuesto "
+"\"%(template)s\" porqué tiene padre."
+
+msgctxt "error:account.tax:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+"\"Actualizar precio unidad\" no se puede aplicar al impuesto "
+"\"%(template)s\" porqué tiene padre."
+
msgctxt "field:account.account,active:"
msgid "Active"
msgstr "Activo"
@@ -333,6 +345,10 @@ msgctxt "field:account.account,deferrals:"
msgid "Deferrals"
msgstr "Cierres"
+msgctxt "field:account.account,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Saldo en el libro mayor"
+
msgctxt "field:account.account,id:"
msgid "ID"
msgstr "ID"
@@ -497,6 +513,10 @@ msgctxt "field:account.account.template,deferral:"
msgid "Deferral"
msgstr "Cierre"
+msgctxt "field:account.account.template,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Saldo en el libro mayor"
+
msgctxt "field:account.account.template,id:"
msgid "ID"
msgstr "ID"
@@ -795,7 +815,7 @@ msgstr "Períodos"
msgctxt "field:account.fiscalyear,post_move_sequence:"
msgid "Post Move Sequence"
-msgstr "Secuencia de asiento confirmado"
+msgstr "Secuencia de asiento contabilizado"
msgctxt "field:account.fiscalyear,rec_name:"
msgid "Name"
@@ -849,6 +869,10 @@ msgctxt "field:account.fiscalyear-account.move.line,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:account.fiscalyear.balance_non_deferral.start,company:"
+msgid "Company"
+msgstr "Empresa"
+
msgctxt "field:account.fiscalyear.balance_non_deferral.start,credit_account:"
msgid "Credit Account"
msgstr "Cuenta haber"
@@ -926,7 +950,7 @@ msgid "Type"
msgstr "Tipo"
msgctxt "field:account.journal,update_posted:"
-msgid "Allow cancelling moves"
+msgid "Allow updating posted moves"
msgstr "Permitir cancelar asientos"
msgctxt "field:account.journal,view:"
@@ -1101,6 +1125,10 @@ msgctxt "field:account.journal.view.column,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:account.move,company:"
+msgid "Company"
+msgstr "Empresa"
+
msgctxt "field:account.move,create_date:"
msgid "Create Date"
msgstr "Fecha creación"
@@ -1143,11 +1171,11 @@ msgstr "Período"
msgctxt "field:account.move,post_date:"
msgid "Post Date"
-msgstr "Fecha confirmación"
+msgstr "Fecha contabilización"
msgctxt "field:account.move,post_number:"
msgid "Post Number"
-msgstr "Número confirmado"
+msgstr "Número contabilización"
msgctxt "field:account.move,rec_name:"
msgid "Name"
@@ -1165,10 +1193,30 @@ msgctxt "field:account.move,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:account.move.cancel.default,description:"
+msgid "Description"
+msgstr "Descripción"
+
+msgctxt "field:account.move.cancel.default,id:"
+msgid "ID"
+msgstr "ID"
+
msgctxt "field:account.move.line,account:"
msgid "Account"
msgstr "Cuenta"
+msgctxt "field:account.move.line,amount:"
+msgid "Amount"
+msgstr "Importe"
+
+msgctxt "field:account.move.line,amount_currency:"
+msgid "Amount Currency"
+msgstr "Moneda del importe"
+
+msgctxt "field:account.move.line,amount_currency_digits:"
+msgid "Amount Currency Digits"
+msgstr "Decimales de la moneda del importe"
+
msgctxt "field:account.move.line,amount_second_currency:"
msgid "Amount Second Currency"
msgstr "Importe moneda secundaria"
@@ -1255,7 +1303,7 @@ msgstr "Segunda moneda"
msgctxt "field:account.move.line,second_currency_digits:"
msgid "Second Currency Digits"
-msgstr "Decimales segunda moneda"
+msgstr "Decimales de la segunda moneda"
msgctxt "field:account.move.line,state:"
msgid "State"
@@ -1273,6 +1321,62 @@ msgctxt "field:account.move.line,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:account.move.line.template,account:"
+msgid "Account"
+msgstr "Cuenta"
+
+msgctxt "field:account.move.line.template,amount:"
+msgid "Amount"
+msgstr "Importe"
+
+msgctxt "field:account.move.line.template,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:account.move.line.template,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:account.move.line.template,description:"
+msgid "Description"
+msgstr "Descripción"
+
+msgctxt "field:account.move.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.line.template,move:"
+msgid "Move"
+msgstr "Asiento"
+
+msgctxt "field:account.move.line.template,operation:"
+msgid "Operation"
+msgstr "Operación"
+
+msgctxt "field:account.move.line.template,party:"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "field:account.move.line.template,party_required:"
+msgid "Party Required"
+msgstr "Tercero requerido"
+
+msgctxt "field:account.move.line.template,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.line.template,taxes:"
+msgid "Taxes"
+msgstr "Impuestos"
+
+msgctxt "field:account.move.line.template,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:account.move.line.template,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
msgctxt "field:account.move.open_journal.ask,id:"
msgid "ID"
msgstr "ID"
@@ -1299,7 +1403,7 @@ msgstr "ID"
msgctxt "field:account.move.print_general_journal.start,posted:"
msgid "Posted Move"
-msgstr "Asiento confirmado"
+msgstr "Asiento contabilizado"
msgctxt "field:account.move.print_general_journal.start,to_date:"
msgid "To Date"
@@ -1311,7 +1415,7 @@ msgstr "Importe"
msgctxt "field:account.move.reconcile_lines.writeoff,currency_digits:"
msgid "Currency Digits"
-msgstr "Decimales de moneda"
+msgstr "Decimales de la moneda"
msgctxt "field:account.move.reconcile_lines.writeoff,date:"
msgid "Date"
@@ -1361,6 +1465,130 @@ msgctxt "field:account.move.reconciliation,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:account.move.template,active:"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:account.move.template,company:"
+msgid "Company"
+msgstr "Empresa"
+
+msgctxt "field:account.move.template,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:account.move.template,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:account.move.template,date:"
+msgid "Date"
+msgstr "Fecha"
+
+msgctxt "field:account.move.template,description:"
+msgid "Description"
+msgstr "Descripción"
+
+msgctxt "field:account.move.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template,journal:"
+msgid "Journal"
+msgstr "Diario"
+
+msgctxt "field:account.move.template,keywords:"
+msgid "Keywords"
+msgstr "Acciones de teclado"
+
+msgctxt "field:account.move.template,lines:"
+msgid "Lines"
+msgstr "Líneas"
+
+msgctxt "field:account.move.template,name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:account.move.template,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:account.move.template.create.keywords,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,period:"
+msgid "Period"
+msgstr "Período"
+
+msgctxt "field:account.move.template.create.template,template:"
+msgid "Template"
+msgstr "Plantilla"
+
+msgctxt "field:account.move.template.keyword,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:account.move.template.keyword,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:account.move.template.keyword,digits:"
+msgid "Digits"
+msgstr "Decimales"
+
+msgctxt "field:account.move.template.keyword,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.keyword,move:"
+msgid "Move"
+msgstr "Asiento"
+
+msgctxt "field:account.move.template.keyword,name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template.keyword,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.move.template.keyword,required:"
+msgid "Required"
+msgstr "Requerido"
+
+msgctxt "field:account.move.template.keyword,sequence:"
+msgid "Sequence"
+msgstr "Secuencia"
+
+msgctxt "field:account.move.template.keyword,string:"
+msgid "String"
+msgstr "Etiqueta"
+
+msgctxt "field:account.move.template.keyword,type_:"
+msgid "Type"
+msgstr "Tipo"
+
+msgctxt "field:account.move.template.keyword,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:account.move.template.keyword,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
msgctxt "field:account.open_aged_balance.start,balance_type:"
msgid "Type"
msgstr "Tipo"
@@ -1375,7 +1603,7 @@ msgstr "ID"
msgctxt "field:account.open_aged_balance.start,posted:"
msgid "Posted Move"
-msgstr "Asiento confirmado"
+msgstr "Asiento contabilizado"
msgctxt "field:account.open_aged_balance.start,term1:"
msgid "First Term"
@@ -1407,7 +1635,7 @@ msgstr "ID"
msgctxt "field:account.open_balance_sheet.start,posted:"
msgid "Posted Move"
-msgstr "Asiento confirmado"
+msgstr "Asiento contabilizado"
msgctxt "field:account.open_chart.start,fiscalyear:"
msgid "Fiscal Year"
@@ -1419,7 +1647,7 @@ msgstr "ID"
msgctxt "field:account.open_chart.start,posted:"
msgid "Posted Moves"
-msgstr "Asiento confirmado"
+msgstr "Asiento contabilizado"
msgctxt "field:account.open_income_statement.start,company:"
msgid "Company"
@@ -1439,7 +1667,7 @@ msgstr "ID"
msgctxt "field:account.open_income_statement.start,posted:"
msgid "Posted Move"
-msgstr "Asiento confirmado"
+msgstr "Asiento contabilizado"
msgctxt "field:account.open_income_statement.start,start_period:"
msgid "Start Period"
@@ -1459,7 +1687,7 @@ msgstr "ID"
msgctxt "field:account.open_third_party_balance.start,posted:"
msgid "Posted Move"
-msgstr "Asiento confirmado"
+msgstr "Asiento contabilizado"
msgctxt "field:account.period,code:"
msgid "Code"
@@ -1495,7 +1723,7 @@ msgstr "Nombre"
msgctxt "field:account.period,post_move_sequence:"
msgid "Post Move Sequence"
-msgstr "Secuencia de asiento confirmado"
+msgstr "Secuencia de asiento contabilizado"
msgctxt "field:account.period,rec_name:"
msgid "Name"
@@ -1543,7 +1771,7 @@ msgstr "ID"
msgctxt "field:account.print_general_ledger.start,posted:"
msgid "Posted Move"
-msgstr "Asiento confirmado"
+msgstr "Asiento contabilizado"
msgctxt "field:account.print_general_ledger.start,start_period:"
msgid "Start Period"
@@ -1571,7 +1799,7 @@ msgstr "ID"
msgctxt "field:account.print_trial_balance.start,posted:"
msgid "Posted Move"
-msgstr "Asiento confirmado"
+msgstr "Asiento contabilizado"
msgctxt "field:account.print_trial_balance.start,start_period:"
msgid "Start Period"
@@ -1737,6 +1965,10 @@ msgctxt "field:account.tax,type:"
msgid "Type"
msgstr "Tipo"
+msgctxt "field:account.tax,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Actualizar precio unidad"
+
msgctxt "field:account.tax,write_date:"
msgid "Write Date"
msgstr "Fecha modificación"
@@ -1917,6 +2149,10 @@ msgctxt "field:account.tax.line,code:"
msgid "Code"
msgstr "Código"
+msgctxt "field:account.tax.line,company:"
+msgid "Company"
+msgstr "Empresa"
+
msgctxt "field:account.tax.line,create_date:"
msgid "Create Date"
msgstr "Fecha creación"
@@ -1953,6 +2189,46 @@ msgctxt "field:account.tax.line,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:account.tax.line.template,amount:"
+msgid "Amount"
+msgstr "Importe"
+
+msgctxt "field:account.tax.line.template,code:"
+msgid "Code"
+msgstr "Código"
+
+msgctxt "field:account.tax.line.template,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:account.tax.line.template,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:account.tax.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.tax.line.template,line:"
+msgid "Line"
+msgstr "Línea"
+
+msgctxt "field:account.tax.line.template,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.tax.line.template,tax:"
+msgid "Tax"
+msgstr "Impuesto"
+
+msgctxt "field:account.tax.line.template,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:account.tax.line.template,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
msgctxt "field:account.tax.rule,company:"
msgid "Company"
msgstr "Empresa"
@@ -2233,6 +2509,10 @@ msgctxt "field:account.tax.template,type:"
msgid "Type"
msgstr "Tipo"
+msgctxt "field:account.tax.template,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Actualizar precio unitario"
+
msgctxt "field:account.tax.template,write_date:"
msgid "Write Date"
msgstr "Fecha modificación"
@@ -2285,6 +2565,10 @@ msgctxt "field:party.party,supplier_tax_rule:"
msgid "Supplier Tax Rule"
msgstr "Regla de impuesto de proveedor"
+msgctxt "help:account.account,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Sólo muestra el saldo en el libro mayor."
+
msgctxt "help:account.account,reconcile:"
msgid ""
"Allow move lines of this account \n"
@@ -2307,6 +2591,10 @@ msgstr ""
"Impuesto por defecto para la codificación manual\n"
"de apuntes para diarios de tipo: \"gastos\" e \"ingresos\"."
+msgctxt "help:account.account.template,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Sólo muestra el saldo en el libro mayor."
+
msgctxt "help:account.account.type,sequence:"
msgid "Use to order the account type"
msgstr "Sirve para ordenar el tipo de cuenta."
@@ -2331,17 +2619,33 @@ msgctxt "help:account.move.line,second_currency:"
msgid "The second currency"
msgstr "La segunda moneda."
+msgctxt "help:account.move.line.template,description:"
+msgid "Keywords values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"Las palabras clave a sustituir por valores se identifican escribiéndolas "
+"dentro de llaves ('{' y '}')."
+
msgctxt "help:account.move.print_general_journal.start,posted:"
msgid "Show only posted move"
-msgstr "Muestra sólo asientos confirmados."
+msgstr "Muestra sólo asientos contabilizados."
+
+msgctxt "help:account.move.template,date:"
+msgid "Leave empty for today"
+msgstr "Dejarlo vacío para hoy."
+
+msgctxt "help:account.move.template,description:"
+msgid "Keyword values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"Las palabras clave a sustituir por valores se identifican escribiéndolas "
+"dentro de llaves ('{' y '}')."
msgctxt "help:account.open_aged_balance.start,posted:"
msgid "Show only posted move"
-msgstr "Muestra sólo asientos confirmados."
+msgstr "Muestra sólo asientos contabilizados."
msgctxt "help:account.open_balance_sheet.start,posted:"
msgid "Show only posted move"
-msgstr "Muestra sólo asientos confirmados."
+msgstr "Muestra sólo asientos contabilizados."
msgctxt "help:account.open_chart.start,fiscalyear:"
msgid "Leave empty for all open fiscal year"
@@ -2349,15 +2653,15 @@ msgstr "Dejarlo vacío para todos los ejercicios fiscales abiertos."
msgctxt "help:account.open_chart.start,posted:"
msgid "Show posted moves only"
-msgstr "Muestra sólo asientos confirmados."
+msgstr "Muestra sólo asientos contabilizados."
msgctxt "help:account.open_income_statement.start,posted:"
msgid "Show only posted move"
-msgstr "Muestra sólo asientos confirmados."
+msgstr "Muestra sólo asientos contabilizados."
msgctxt "help:account.open_third_party_balance.start,posted:"
msgid "Show only posted move"
-msgstr "Muestra sólo asientos confirmados."
+msgstr "Muestra sólo asientos contabilizados."
msgctxt "help:account.print_general_ledger.start,empty_account:"
msgid "With account without move"
@@ -2365,7 +2669,7 @@ msgstr "Con cuenta sin asiento."
msgctxt "help:account.print_general_ledger.start,posted:"
msgid "Show only posted move"
-msgstr "Muestra sólo asientos confirmados."
+msgstr "Muestra sólo asientos contabilizados."
msgctxt "help:account.print_trial_balance.start,empty_account:"
msgid "With account without move"
@@ -2373,7 +2677,7 @@ msgstr "Con cuenta sin asiento."
msgctxt "help:account.print_trial_balance.start,posted:"
msgid "Show only posted move"
-msgstr "Muestra sólo asientos confirmados."
+msgstr "Muestra sólo asientos contabilizados."
msgctxt "help:account.tax,amount:"
msgid "In company's currency"
@@ -2403,6 +2707,14 @@ msgctxt "help:account.tax,sequence:"
msgid "Use to order the taxes"
msgstr "Sirve para ordenar los impuestos."
+msgctxt "help:account.tax,update_unit_price:"
+msgid ""
+"If checked then the unit price for further tax computation willbe modified "
+"by this tax"
+msgstr ""
+"Si se marca el precio unidad utilizado por cálculos de impuestos adicionales"
+" será modificado por este impuesto."
+
msgctxt "help:account.tax.code.open_chart.start,fiscalyear:"
msgid "Leave empty for all open fiscal year"
msgstr "Dejarlo vacío para todos los ejercicios fiscales abiertos."
@@ -2668,10 +2980,18 @@ msgctxt "model:account.move,name:"
msgid "Account Move"
msgstr "Asiento contable"
+msgctxt "model:account.move.cancel.default,name:"
+msgid "Cancel Moves"
+msgstr "Cancelar asientos"
+
msgctxt "model:account.move.line,name:"
msgid "Account Move Line"
msgstr "Apunte contable"
+msgctxt "model:account.move.line.template,name:"
+msgid "Account Move Line Template"
+msgstr "Plantilla de apunte contable"
+
msgctxt "model:account.move.open_journal.ask,name:"
msgid "Open Journal Ask"
msgstr "Solicitar el diario a abrir"
@@ -2688,6 +3008,22 @@ msgctxt "model:account.move.reconciliation,name:"
msgid "Account Move Reconciliation Lines"
msgstr "Líneas de conciliación de apuntes contables"
+msgctxt "model:account.move.template,name:"
+msgid "Account Move Template"
+msgstr "Plantilla de asiento contable"
+
+msgctxt "model:account.move.template.create.keywords,name:"
+msgid "Create Move from Template"
+msgstr "Crear asiento desde plantilla"
+
+msgctxt "model:account.move.template.create.template,name:"
+msgid "Create Move from Template"
+msgstr "Crear asiento desde plantilla"
+
+msgctxt "model:account.move.template.keyword,name:"
+msgid "Account Move Template Keyword"
+msgstr "Palabra clave de plantilla de asiento contable"
+
msgctxt "model:account.open_aged_balance.start,name:"
msgid "Open Aged Balance"
msgstr "Abrir balance histórico"
@@ -2748,6 +3084,10 @@ msgctxt "model:account.tax.line,name:"
msgid "Tax Line"
msgstr "Línea de impuesto"
+msgctxt "model:account.tax.line.template,name:"
+msgid "Account Tax Line Template"
+msgstr "Plantilla de línea de impuesto contable"
+
msgctxt "model:account.tax.rule,name:"
msgid "Tax Rule"
msgstr "Regla de impuesto"
@@ -2892,6 +3232,14 @@ msgctxt "model:ir.action,name:act_move_reconciliation_lines"
msgid "Reconciliation Lines"
msgstr "Líneas de conciliación"
+msgctxt "model:ir.action,name:act_move_template_create"
+msgid "Create Move from Template"
+msgstr "Crear asiento desde plantilla"
+
+msgctxt "model:ir.action,name:act_move_template_form"
+msgid "Account Move Template"
+msgstr "Plantilla de asiento contable"
+
msgctxt "model:ir.action,name:act_open_account"
msgid "Open Move Account"
msgstr "Abrir cuenta del asiento"
@@ -3184,6 +3532,14 @@ msgctxt "model:ir.ui.menu,name:menu_move_form"
msgid "Account Moves"
msgstr "Asientos contables"
+msgctxt "model:ir.ui.menu,name:menu_move_template_create"
+msgid "Create Move from Template"
+msgstr "Crear asiento desde plantilla"
+
+msgctxt "model:ir.ui.menu,name:menu_move_template_form"
+msgid "Account Move Template"
+msgstr "Plantilla de asiento contable"
+
msgctxt "model:ir.ui.menu,name:menu_open_balance_sheet"
msgid "Balance Sheet"
msgstr "Balance general"
@@ -3474,7 +3830,7 @@ msgstr "Origen:"
msgctxt "odt:account.move.general_journal:"
msgid "Posted"
-msgstr "Confirmado"
+msgstr "Contabilizado"
msgctxt "odt:account.move.general_journal:"
msgid "Print Date:"
@@ -3686,7 +4042,7 @@ msgstr "Borrador"
msgctxt "selection:account.move,state:"
msgid "Posted"
-msgstr "Confirmado"
+msgstr "Contabilizado"
msgctxt "selection:account.move.line,move_state:"
msgid "Draft"
@@ -3694,7 +4050,7 @@ msgstr "Borrador"
msgctxt "selection:account.move.line,move_state:"
msgid "Posted"
-msgstr "Confirmado"
+msgstr "Contabilizado"
msgctxt "selection:account.move.line,state:"
msgid "Draft"
@@ -3704,6 +4060,30 @@ msgctxt "selection:account.move.line,state:"
msgid "Valid"
msgstr "Correcto"
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Credit"
+msgstr "Haber"
+
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Debit"
+msgstr "Debe"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Char"
+msgstr "Texto"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Date"
+msgstr "Fecha"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Numeric"
+msgstr "Numérico"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Party"
+msgstr "Tercero"
+
msgctxt "selection:account.open_aged_balance.start,balance_type:"
msgid "Both"
msgstr "Ambos"
@@ -3984,6 +4364,22 @@ msgctxt "view:account.journal:"
msgid "Journals"
msgstr "Diarios"
+msgctxt "view:account.move.cancel.default:"
+msgid "Cancel Moves"
+msgstr "Cancelar asientos"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Template"
+msgstr "Plantilla de apunte contable"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Templates"
+msgstr "Plantillas de apunte contable"
+
+msgctxt "view:account.move.line.template:"
+msgid "Other Info"
+msgstr "Información adicional"
+
msgctxt "view:account.move.line:"
msgid "Account Move Line"
msgstr "Apunte contable"
@@ -4024,6 +4420,30 @@ msgctxt "view:account.move.reconciliation:"
msgid "Reconciliations"
msgstr "Conciliaciones"
+msgctxt "view:account.move.template.create.template:"
+msgid "Create Move from Template"
+msgstr "Crear asiento desde plantilla"
+
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keyword"
+msgstr "Palabra clave de plantilla de asiento contable"
+
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keywords"
+msgstr "Palabras claves de plantilla de asiento contable"
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Template"
+msgstr "Plantilla de asiento contable"
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Templates"
+msgstr "Plantillas de asiento contable"
+
+msgctxt "view:account.move.template:"
+msgid "Template"
+msgstr "Plantilla"
+
msgctxt "view:account.move:"
msgid "Account Move"
msgstr "Asiento contable"
@@ -4038,7 +4458,7 @@ msgstr "Borrador"
msgctxt "view:account.move:"
msgid "Post"
-msgstr "Confirmar"
+msgstr "Contabilizar"
msgctxt "view:account.open_aged_balance.start:"
msgid "Open Aged Balance"
@@ -4132,6 +4552,14 @@ msgctxt "view:account.tax.group:"
msgid "Tax Groups"
msgstr "Grupos de impuesto"
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Template"
+msgstr "Plantilla de línea de impuesto contable"
+
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Templates"
+msgstr "Plantillas de línea de impuesto contable"
+
msgctxt "view:account.tax.line:"
msgid "Account Tax Line"
msgstr "Línea de impuesto contable"
@@ -4238,7 +4666,7 @@ msgstr "Actualizar plan contable"
msgctxt "view:account.update_chart.succeed:"
msgid "Update Chart of Accounts Succeed!"
-msgstr "Actualización del plan contable realizada correctamente."
+msgstr "La actualización del plan contable se ha realizado correctamente."
msgctxt "view:party.party:"
msgid "Account"
@@ -4265,7 +4693,7 @@ msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:account.create_chart,start,account:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:account.create_chart,start,end:"
@@ -4273,7 +4701,7 @@ msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,balance:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,end:"
@@ -4288,6 +4716,14 @@ msgctxt "wizard_button:account.fiscalyear.close,start,end:"
msgid "Cancel"
msgstr "Cancelar"
+msgctxt "wizard_button:account.move.cancel,default,cancel:"
+msgid "OK"
+msgstr "Aceptar"
+
+msgctxt "wizard_button:account.move.cancel,default,end:"
+msgid "Cancel"
+msgstr "Cancelar"
+
msgctxt "wizard_button:account.move.open_journal,ask,end:"
msgid "Cancel"
msgstr "Cancelar"
@@ -4312,6 +4748,22 @@ msgctxt "wizard_button:account.move.reconcile_lines,writeoff,reconcile:"
msgid "Reconcile"
msgstr "Conciliar"
+msgctxt "wizard_button:account.move.template.create,keywords,create_:"
+msgid "Create"
+msgstr "Crear"
+
+msgctxt "wizard_button:account.move.template.create,keywords,end:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "wizard_button:account.move.template.create,template,end:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "wizard_button:account.move.template.create,template,keywords:"
+msgid "Next"
+msgstr "Siguiente"
+
msgctxt "wizard_button:account.open_aged_balance,start,end:"
msgid "Cancel"
msgstr "Cancelar"
@@ -4397,5 +4849,5 @@ msgid "Update"
msgstr "Actualizar"
msgctxt "wizard_button:account.update_chart,succeed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
diff --git a/locale/fr_FR.po b/locale/fr_FR.po
index 9881551..be75144 100644
--- a/locale/fr_FR.po
+++ b/locale/fr_FR.po
@@ -111,6 +111,10 @@ msgid "Wrong credit/debit values."
msgstr "Valeurs de débit/crédit incorrectes."
msgctxt "error:account.move.line:"
+msgid "Wrong second currency sign."
+msgstr "Mauvais signe pour la devise secondaire"
+
+msgctxt "error:account.move.line:"
msgid "You can not add/modify lines in closed journal period \"%s\"."
msgstr ""
"Vous ne pouvez ajouter ou modifier des lignes dans la période de journal "
@@ -140,6 +144,10 @@ msgstr ""
"Vous ne pouvez modifier les lignes du mouvement « %s » car il est déjà "
"posté."
+msgctxt "error:account.move.line:"
+msgid "wrong_second_currency_sign"
+msgstr "wrong_second_currency_sign"
+
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not create a reconciliation where debit \"%(debit)s\" and credit "
@@ -171,10 +179,10 @@ msgstr ""
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not reconcile line \"%(line)s\" because it's party \"%(party1)s\" is"
-" different from %(party2)s\"."
+" different from \"%(party2)s\"."
msgstr ""
-"Vous ne pouvez réconcilier la ligne « %(line)s » car son tiers « %(party1)s"
-" » est différent de « %(party2)s »."
+"Vous ne pouvez pas réconcilier la ligne « %(line)s » parce que son tiers « "
+"%(party1)s » est différent de « %(party2)s »."
msgctxt "error:account.move.reconciliation:"
msgid "You can not reconcile line \"%s\" because it is not in valid state."
@@ -191,12 +199,6 @@ msgstr ""
"Utiliser la période courante ?"
msgctxt "error:account.move:"
-msgid "You can not create lines on accountsof different companies in move \"%s\"."
-msgstr ""
-"Vous ne pouvez créer des lignes sur des comptes de différentes sociétés dans"
-" le mouvement « %s »."
-
-msgctxt "error:account.move:"
msgid ""
"You can not create move \"%(move)s\" because it's date is outside its "
"period."
@@ -243,14 +245,6 @@ msgid "\"%(first)s\" and \"%(second)s\" periods overlap."
msgstr "Les périodes « %(first)s » et « %(second)s » se chevauchent."
msgctxt "error:account.period:"
-msgid ""
-"Company of sequence \"%(sequence)s\" does not match the company of period "
-"\"%(period)s\" to which it is assigned to."
-msgstr ""
-"La société de la séquence « %(sequence)s » ne correspond à la société de la "
-"période « %(period)s » à laquelle elle est assignée."
-
-msgctxt "error:account.period:"
msgid "Dates of period \"%s\" are outside are outside it's fiscal year dates."
msgstr ""
"Les dates de la période « %s » sont en dehors des dates de son année "
@@ -300,6 +294,22 @@ msgstr ""
"Vous ne pouvez ouvrir la période « %(period)s » car son année fiscale « "
"%(fiscalyear)s » est clôturée."
+msgctxt "error:account.tax.template:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+"« Mettre à jour le prix unitaire » ne peut pas coché sur la taxe « "
+"%(template)s » qui a un parent."
+
+msgctxt "error:account.tax:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+"« Mettre à jour le prix unitaire » ne peut pas coché sur la taxe « "
+"%(template)s » qui a un parent."
+
msgctxt "field:account.account,active:"
msgid "Active"
msgstr "Actif"
@@ -338,7 +348,7 @@ msgstr "Devise"
msgctxt "field:account.account,currency_digits:"
msgid "Currency Digits"
-msgstr "Décimal de la devise"
+msgstr "Décimales de la devise"
msgctxt "field:account.account,debit:"
msgid "Debit"
@@ -352,6 +362,10 @@ msgctxt "field:account.account,deferrals:"
msgid "Deferrals"
msgstr "Reports"
+msgctxt "field:account.account,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Balance du grand livre"
+
msgctxt "field:account.account,id:"
msgid "ID"
msgstr "ID"
@@ -516,6 +530,10 @@ msgctxt "field:account.account.template,deferral:"
msgid "Deferral"
msgstr "Report"
+msgctxt "field:account.account.template,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Balance du grand livre"
+
msgctxt "field:account.account.template,id:"
msgid "ID"
msgstr "ID"
@@ -618,7 +636,7 @@ msgstr "Créé par"
msgctxt "field:account.account.type,currency_digits:"
msgid "Currency Digits"
-msgstr "Décimal de la devise"
+msgstr "Décimales de la devise"
msgctxt "field:account.account.type,display_balance:"
msgid "Display Balance"
@@ -722,11 +740,11 @@ msgstr "Créé par"
msgctxt "field:account.configuration,default_account_payable:"
msgid "Default Account Payable"
-msgstr "Compte à payer par défaut"
+msgstr "Compte fournisseur par défaut"
msgctxt "field:account.configuration,default_account_receivable:"
msgid "Default Account Receivable"
-msgstr "Compte à recevoir par défaut"
+msgstr "Compte client par défaut"
msgctxt "field:account.configuration,id:"
msgid "ID"
@@ -758,11 +776,11 @@ msgstr "ID"
msgctxt "field:account.create_chart.properties,account_payable:"
msgid "Default Payable Account"
-msgstr "Compte à payer par défaut"
+msgstr "Compte fournisseur par défaut"
msgctxt "field:account.create_chart.properties,account_receivable:"
msgid "Default Receivable Account"
-msgstr "Compte à recevoir par défaut"
+msgstr "Compte client par défaut"
msgctxt "field:account.create_chart.properties,company:"
msgid "Company"
@@ -868,6 +886,10 @@ msgctxt "field:account.fiscalyear-account.move.line,write_uid:"
msgid "Write User"
msgstr "Mis à jour par"
+msgctxt "field:account.fiscalyear.balance_non_deferral.start,company:"
+msgid "Company"
+msgstr "Société"
+
msgctxt "field:account.fiscalyear.balance_non_deferral.start,credit_account:"
msgid "Credit Account"
msgstr "Compte de crédit"
@@ -945,8 +967,8 @@ msgid "Type"
msgstr "Type"
msgctxt "field:account.journal,update_posted:"
-msgid "Allow cancelling moves"
-msgstr "Permettre d'annuler les mouvements"
+msgid "Allow updating posted moves"
+msgstr "Permettre de mettre à jour les mouvements postés"
msgctxt "field:account.journal,view:"
msgid "View"
@@ -1120,6 +1142,10 @@ msgctxt "field:account.journal.view.column,write_uid:"
msgid "Write User"
msgstr "Mis à jour par"
+msgctxt "field:account.move,company:"
+msgid "Company"
+msgstr "Société"
+
msgctxt "field:account.move,create_date:"
msgid "Create Date"
msgstr "Date de création"
@@ -1184,10 +1210,30 @@ msgctxt "field:account.move,write_uid:"
msgid "Write User"
msgstr "Mis à jour par"
+msgctxt "field:account.move.cancel.default,description:"
+msgid "Description"
+msgstr "Description"
+
+msgctxt "field:account.move.cancel.default,id:"
+msgid "ID"
+msgstr "ID"
+
msgctxt "field:account.move.line,account:"
msgid "Account"
msgstr "Compte"
+msgctxt "field:account.move.line,amount:"
+msgid "Amount"
+msgstr "Montant"
+
+msgctxt "field:account.move.line,amount_currency:"
+msgid "Amount Currency"
+msgstr "Montant en devise"
+
+msgctxt "field:account.move.line,amount_currency_digits:"
+msgid "Amount Currency Digits"
+msgstr "Décimales de la devise du montant"
+
msgctxt "field:account.move.line,amount_second_currency:"
msgid "Amount Second Currency"
msgstr "Montant en devise secondaire"
@@ -1292,6 +1338,62 @@ msgctxt "field:account.move.line,write_uid:"
msgid "Write User"
msgstr "Mis à jour par"
+msgctxt "field:account.move.line.template,account:"
+msgid "Account"
+msgstr "Compte"
+
+msgctxt "field:account.move.line.template,amount:"
+msgid "Amount"
+msgstr "Montant"
+
+msgctxt "field:account.move.line.template,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:account.move.line.template,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:account.move.line.template,description:"
+msgid "Description"
+msgstr "Description"
+
+msgctxt "field:account.move.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.line.template,move:"
+msgid "Move"
+msgstr "Mouvement"
+
+msgctxt "field:account.move.line.template,operation:"
+msgid "Operation"
+msgstr "Opération"
+
+msgctxt "field:account.move.line.template,party:"
+msgid "Party"
+msgstr "Tiers"
+
+msgctxt "field:account.move.line.template,party_required:"
+msgid "Party Required"
+msgstr "Tiers requis"
+
+msgctxt "field:account.move.line.template,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:account.move.line.template,taxes:"
+msgid "Taxes"
+msgstr "Taxes"
+
+msgctxt "field:account.move.line.template,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:account.move.line.template,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
msgctxt "field:account.move.open_journal.ask,id:"
msgid "ID"
msgstr "ID"
@@ -1380,6 +1482,130 @@ msgctxt "field:account.move.reconciliation,write_uid:"
msgid "Write User"
msgstr "Mis à jour par"
+msgctxt "field:account.move.template,active:"
+msgid "Active"
+msgstr "Actif"
+
+msgctxt "field:account.move.template,company:"
+msgid "Company"
+msgstr "Société"
+
+msgctxt "field:account.move.template,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:account.move.template,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:account.move.template,date:"
+msgid "Date"
+msgstr "Date"
+
+msgctxt "field:account.move.template,description:"
+msgid "Description"
+msgstr "Description"
+
+msgctxt "field:account.move.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template,journal:"
+msgid "Journal"
+msgstr "Journal"
+
+msgctxt "field:account.move.template,keywords:"
+msgid "Keywords"
+msgstr "Mots-clés"
+
+msgctxt "field:account.move.template,lines:"
+msgid "Lines"
+msgstr "Lignes"
+
+msgctxt "field:account.move.template,name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:account.move.template,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:account.move.template,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:account.move.template,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:account.move.template.create.keywords,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,period:"
+msgid "Period"
+msgstr "Période"
+
+msgctxt "field:account.move.template.create.template,template:"
+msgid "Template"
+msgstr "Modèle"
+
+msgctxt "field:account.move.template.keyword,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:account.move.template.keyword,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:account.move.template.keyword,digits:"
+msgid "Digits"
+msgstr "Chiffres"
+
+msgctxt "field:account.move.template.keyword,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.keyword,move:"
+msgid "Move"
+msgstr "Mouvement"
+
+msgctxt "field:account.move.template.keyword,name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:account.move.template.keyword,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:account.move.template.keyword,required:"
+msgid "Required"
+msgstr "Requis"
+
+msgctxt "field:account.move.template.keyword,sequence:"
+msgid "Sequence"
+msgstr "Séquence"
+
+msgctxt "field:account.move.template.keyword,string:"
+msgid "String"
+msgstr "Chaîne de caractères"
+
+msgctxt "field:account.move.template.keyword,type_:"
+msgid "Type"
+msgstr "Type"
+
+msgctxt "field:account.move.template.keyword,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:account.move.template.keyword,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
msgctxt "field:account.open_aged_balance.start,balance_type:"
msgid "Type"
msgstr "Type"
@@ -1756,6 +1982,10 @@ msgctxt "field:account.tax,type:"
msgid "Type"
msgstr "Type"
+msgctxt "field:account.tax,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Mettre à jour le prix unitaire"
+
msgctxt "field:account.tax,write_date:"
msgid "Write Date"
msgstr "Date de mise à jour"
@@ -1790,7 +2020,7 @@ msgstr "Créé par"
msgctxt "field:account.tax.code,currency_digits:"
msgid "Currency Digits"
-msgstr "Décimal de la devise"
+msgstr "Décimales de la devise"
msgctxt "field:account.tax.code,description:"
msgid "Description"
@@ -1936,6 +2166,10 @@ msgctxt "field:account.tax.line,code:"
msgid "Code"
msgstr "Code"
+msgctxt "field:account.tax.line,company:"
+msgid "Company"
+msgstr "Société"
+
msgctxt "field:account.tax.line,create_date:"
msgid "Create Date"
msgstr "Date de création"
@@ -1972,6 +2206,46 @@ msgctxt "field:account.tax.line,write_uid:"
msgid "Write User"
msgstr "Mis à jour par"
+msgctxt "field:account.tax.line.template,amount:"
+msgid "Amount"
+msgstr "Montant"
+
+msgctxt "field:account.tax.line.template,code:"
+msgid "Code"
+msgstr "Code"
+
+msgctxt "field:account.tax.line.template,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:account.tax.line.template,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:account.tax.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.tax.line.template,line:"
+msgid "Line"
+msgstr "Ligne"
+
+msgctxt "field:account.tax.line.template,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:account.tax.line.template,tax:"
+msgid "Tax"
+msgstr "Taxe"
+
+msgctxt "field:account.tax.line.template,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:account.tax.line.template,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
msgctxt "field:account.tax.rule,company:"
msgid "Company"
msgstr "Société"
@@ -2252,6 +2526,10 @@ msgctxt "field:account.tax.template,type:"
msgid "Type"
msgstr "Type"
+msgctxt "field:account.tax.template,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Mettre à jour le prix unitaire"
+
msgctxt "field:account.tax.template,write_date:"
msgid "Write Date"
msgstr "Date de mise à jour"
@@ -2274,11 +2552,11 @@ msgstr "ID"
msgctxt "field:party.party,account_payable:"
msgid "Account Payable"
-msgstr "Compte à payer"
+msgstr "Compte fournisseur"
msgctxt "field:party.party,account_receivable:"
msgid "Account Receivable"
-msgstr "Compte à recevoir"
+msgstr "Compte client"
msgctxt "field:party.party,customer_tax_rule:"
msgid "Customer Tax Rule"
@@ -2304,6 +2582,10 @@ msgctxt "field:party.party,supplier_tax_rule:"
msgid "Supplier Tax Rule"
msgstr "Règle de taxe fournisseur"
+msgctxt "help:account.account,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Afficher seulement la balance dans le grand livre"
+
msgctxt "help:account.account,reconcile:"
msgid ""
"Allow move lines of this account \n"
@@ -2326,6 +2608,10 @@ msgstr ""
"Taxe par défaut pour les lignes de mouvement manuelles\n"
"pour le type de journal: « charge » et « produit »"
+msgctxt "help:account.account.template,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Afficher seulement la balance dans le grand livre"
+
msgctxt "help:account.account.type,sequence:"
msgid "Use to order the account type"
msgstr "Utilisé pour trier les types de compte"
@@ -2350,10 +2636,26 @@ msgctxt "help:account.move.line,second_currency:"
msgid "The second currency"
msgstr "La devise secondaire"
+msgctxt "help:account.move.line.template,description:"
+msgid "Keywords values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"Les subsitutions des mots-clès par leurs valeurs sont identifées par des "
+"accolades ('{' et '}')"
+
msgctxt "help:account.move.print_general_journal.start,posted:"
msgid "Show only posted move"
msgstr "Montrer seulement les mouvements postés"
+msgctxt "help:account.move.template,date:"
+msgid "Leave empty for today"
+msgstr "Laissez vide pour aujourd'hui"
+
+msgctxt "help:account.move.template,description:"
+msgid "Keyword values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"Les substitutions des valeurs des mots-clés sont identifiées par des "
+"accolades (« { » et « } »)"
+
msgctxt "help:account.open_aged_balance.start,posted:"
msgid "Show only posted move"
msgstr "Montrer seulement les mouvements postés"
@@ -2422,6 +2724,14 @@ msgctxt "help:account.tax,sequence:"
msgid "Use to order the taxes"
msgstr "Utilisé pour trier les taxes"
+msgctxt "help:account.tax,update_unit_price:"
+msgid ""
+"If checked then the unit price for further tax computation willbe modified "
+"by this tax"
+msgstr ""
+"Si cochée alors le prix unitaire pour le calcul des taxes suivantes sera "
+"modifiée par cette taxe"
+
msgctxt "help:account.tax.code.open_chart.start,fiscalyear:"
msgid "Leave empty for all open fiscal year"
msgstr "laisser vide pour toute les années fiscales ouvertes"
@@ -2479,11 +2789,11 @@ msgstr "Compte de charges"
msgctxt "model:account.account.template,name:account_template_payable"
msgid "Main Payable"
-msgstr "Compte de paiements"
+msgstr "Compte fournisseur"
msgctxt "model:account.account.template,name:account_template_receivable"
msgid "Main Receivable"
-msgstr "Compte à recevoir"
+msgstr "Compte client"
msgctxt "model:account.account.template,name:account_template_revenue"
msgid "Main Revenue"
@@ -2526,7 +2836,7 @@ msgstr "Cash"
msgctxt ""
"model:account.account.type.template,name:account_type_template_asset_current_receivable"
msgid "Receivable"
-msgstr "À recevoir"
+msgstr "Compte client"
msgctxt ""
"model:account.account.type.template,name:account_type_template_asset_long_term"
@@ -2561,7 +2871,7 @@ msgstr "Courant"
msgctxt ""
"model:account.account.type.template,name:account_type_template_liability_current_payable"
msgid "Payable"
-msgstr "À payer"
+msgstr "Fournisseur"
msgctxt ""
"model:account.account.type.template,name:account_type_template_liability_current_tax"
@@ -2684,10 +2994,18 @@ msgctxt "model:account.move,name:"
msgid "Account Move"
msgstr "Mouvement comptable"
+msgctxt "model:account.move.cancel.default,name:"
+msgid "Cancel Moves"
+msgstr "Annuler les mouvements"
+
msgctxt "model:account.move.line,name:"
msgid "Account Move Line"
msgstr "Ligne de mouvement comptable"
+msgctxt "model:account.move.line.template,name:"
+msgid "Account Move Line Template"
+msgstr "Modèle de ligne de mouvement comptable"
+
msgctxt "model:account.move.open_journal.ask,name:"
msgid "Open Journal Ask"
msgstr "Ouvrir le journal - Demande"
@@ -2704,6 +3022,22 @@ msgctxt "model:account.move.reconciliation,name:"
msgid "Account Move Reconciliation Lines"
msgstr "Lignes de reconciliation de mouvement comptable"
+msgctxt "model:account.move.template,name:"
+msgid "Account Move Template"
+msgstr "Modèle de mouvement comptable"
+
+msgctxt "model:account.move.template.create.keywords,name:"
+msgid "Create Move from Template"
+msgstr "Créer un mouvement depuis un modèle"
+
+msgctxt "model:account.move.template.create.template,name:"
+msgid "Create Move from Template"
+msgstr "Créer un mouvement depuis un modèle"
+
+msgctxt "model:account.move.template.keyword,name:"
+msgid "Account Move Template Keyword"
+msgstr "Mot-clé de modèle de mouvement comptable"
+
msgctxt "model:account.open_aged_balance.start,name:"
msgid "Open Aged Balance"
msgstr "Ouvrir la balance âgée"
@@ -2764,6 +3098,10 @@ msgctxt "model:account.tax.line,name:"
msgid "Tax Line"
msgstr "Ligne de taxe"
+msgctxt "model:account.tax.line.template,name:"
+msgid "Account Tax Line Template"
+msgstr "Modèle de ligne de taxe comptable"
+
msgctxt "model:account.tax.rule,name:"
msgid "Tax Rule"
msgstr "Règle de taxe"
@@ -2908,6 +3246,14 @@ msgctxt "model:ir.action,name:act_move_reconciliation_lines"
msgid "Reconciliation Lines"
msgstr "Lignes de réconciliation"
+msgctxt "model:ir.action,name:act_move_template_create"
+msgid "Create Move from Template"
+msgstr "Créer un mouvement depuis un modèle"
+
+msgctxt "model:ir.action,name:act_move_template_form"
+msgid "Account Move Template"
+msgstr "Modèle de mouvement comptable"
+
msgctxt "model:ir.action,name:act_open_account"
msgid "Open Move Account"
msgstr "Ouvrir le compte"
@@ -3200,6 +3546,14 @@ msgctxt "model:ir.ui.menu,name:menu_move_form"
msgid "Account Moves"
msgstr "Mouvements comptables"
+msgctxt "model:ir.ui.menu,name:menu_move_template_create"
+msgid "Create Move from Template"
+msgstr "Créer un mouvement depuis un modèle"
+
+msgctxt "model:ir.ui.menu,name:menu_move_template_form"
+msgid "Account Move Template"
+msgstr "Modèle de mouvement comptable"
+
msgctxt "model:ir.ui.menu,name:menu_open_balance_sheet"
msgid "Balance Sheet"
msgstr "Bilan"
@@ -3618,11 +3972,11 @@ msgstr "Autre"
msgctxt "selection:account.account,kind:"
msgid "Payable"
-msgstr "À payer"
+msgstr "Fournisseur"
msgctxt "selection:account.account,kind:"
msgid "Receivable"
-msgstr "À recevoir"
+msgstr "Compte client"
msgctxt "selection:account.account,kind:"
msgid "Revenue"
@@ -3646,11 +4000,11 @@ msgstr "Autre"
msgctxt "selection:account.account.template,kind:"
msgid "Payable"
-msgstr "À payer"
+msgstr "Fournisseur"
msgctxt "selection:account.account.template,kind:"
msgid "Receivable"
-msgstr "À recevoir"
+msgstr "Compte client"
msgctxt "selection:account.account.template,kind:"
msgid "Revenue"
@@ -3720,6 +4074,30 @@ msgctxt "selection:account.move.line,state:"
msgid "Valid"
msgstr "Valide"
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Credit"
+msgstr "Crédit"
+
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Debit"
+msgstr "Débit"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Char"
+msgstr "Caractères"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Date"
+msgstr "Date"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Numeric"
+msgstr "Numérique"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Party"
+msgstr "Tiers"
+
msgctxt "selection:account.open_aged_balance.start,balance_type:"
msgid "Both"
msgstr "Les deux"
@@ -4000,6 +4378,22 @@ msgctxt "view:account.journal:"
msgid "Journals"
msgstr "Journaux"
+msgctxt "view:account.move.cancel.default:"
+msgid "Cancel Moves"
+msgstr "Annuler les mouvements"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Template"
+msgstr "Modèle de ligne de mouvement comptable"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Templates"
+msgstr "Modèles de ligne de mouvement comptable"
+
+msgctxt "view:account.move.line.template:"
+msgid "Other Info"
+msgstr "Autre information"
+
msgctxt "view:account.move.line:"
msgid "Account Move Line"
msgstr "Ligne de mouvement comptable"
@@ -4040,6 +4434,30 @@ msgctxt "view:account.move.reconciliation:"
msgid "Reconciliations"
msgstr "Réconciliations"
+msgctxt "view:account.move.template.create.template:"
+msgid "Create Move from Template"
+msgstr "Créer un Mouvement depuis un Modèle"
+
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keyword"
+msgstr "Mot-clé de modèle de mouvement comptable"
+
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keywords"
+msgstr "Mots-clés de modèle de mouvement comptable"
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Template"
+msgstr "Modèle de mouvement comptable"
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Templates"
+msgstr "Modèles de mouvement comptable"
+
+msgctxt "view:account.move.template:"
+msgid "Template"
+msgstr "Modèle"
+
msgctxt "view:account.move:"
msgid "Account Move"
msgstr "Mouvement comptable"
@@ -4148,6 +4566,14 @@ msgctxt "view:account.tax.group:"
msgid "Tax Groups"
msgstr "Groupes de taxes"
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Template"
+msgstr "Modèle de ligne de tax comptable"
+
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Templates"
+msgstr "Modèles de ligne de tax comptable"
+
msgctxt "view:account.tax.line:"
msgid "Account Tax Line"
msgstr "Ligne comptable de taxe"
@@ -4281,16 +4707,16 @@ msgid "Cancel"
msgstr "Annuler"
msgctxt "wizard_button:account.create_chart,start,account:"
-msgid "Ok"
-msgstr "Ok"
+msgid "OK"
+msgstr "OK"
msgctxt "wizard_button:account.create_chart,start,end:"
msgid "Cancel"
msgstr "Annuler"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,balance:"
-msgid "Ok"
-msgstr "Ok"
+msgid "OK"
+msgstr "OK"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,end:"
msgid "Cancel"
@@ -4304,6 +4730,14 @@ msgctxt "wizard_button:account.fiscalyear.close,start,end:"
msgid "Cancel"
msgstr "Annuler"
+msgctxt "wizard_button:account.move.cancel,default,cancel:"
+msgid "OK"
+msgstr "OK"
+
+msgctxt "wizard_button:account.move.cancel,default,end:"
+msgid "Cancel"
+msgstr "Annuler"
+
msgctxt "wizard_button:account.move.open_journal,ask,end:"
msgid "Cancel"
msgstr "Annuler"
@@ -4328,6 +4762,22 @@ msgctxt "wizard_button:account.move.reconcile_lines,writeoff,reconcile:"
msgid "Reconcile"
msgstr "Réconcilier"
+msgctxt "wizard_button:account.move.template.create,keywords,create_:"
+msgid "Create"
+msgstr "Créer"
+
+msgctxt "wizard_button:account.move.template.create,keywords,end:"
+msgid "Cancel"
+msgstr "Annuler"
+
+msgctxt "wizard_button:account.move.template.create,template,end:"
+msgid "Cancel"
+msgstr "Annuler"
+
+msgctxt "wizard_button:account.move.template.create,template,keywords:"
+msgid "Next"
+msgstr "Suivant"
+
msgctxt "wizard_button:account.open_aged_balance,start,end:"
msgid "Cancel"
msgstr "Annuler"
@@ -4413,5 +4863,5 @@ msgid "Update"
msgstr "Mise à jour"
msgctxt "wizard_button:account.update_chart,succeed,end:"
-msgid "Ok"
-msgstr "Ok"
+msgid "OK"
+msgstr "OK"
diff --git a/locale/nl_NL.po b/locale/nl_NL.po
index 092c04d..e59bad2 100644
--- a/locale/nl_NL.po
+++ b/locale/nl_NL.po
@@ -93,6 +93,10 @@ msgid "Wrong credit/debit values."
msgstr ""
msgctxt "error:account.move.line:"
+msgid "Wrong second currency sign."
+msgstr ""
+
+msgctxt "error:account.move.line:"
msgid "You can not add/modify lines in closed journal period \"%s\"."
msgstr ""
@@ -114,6 +118,10 @@ msgctxt "error:account.move.line:"
msgid "You can not modify lines of move \"%s\" because it is already posted."
msgstr ""
+msgctxt "error:account.move.line:"
+msgid "wrong_second_currency_sign"
+msgstr ""
+
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not create a reconciliation where debit \"%(debit)s\" and credit "
@@ -139,7 +147,7 @@ msgstr ""
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not reconcile line \"%(line)s\" because it's party \"%(party1)s\" is"
-" different from %(party2)s\"."
+" different from \"%(party2)s\"."
msgstr ""
msgctxt "error:account.move.reconciliation:"
@@ -153,10 +161,6 @@ msgid ""
msgstr ""
msgctxt "error:account.move:"
-msgid "You can not create lines on accountsof different companies in move \"%s\"."
-msgstr ""
-
-msgctxt "error:account.move:"
msgid ""
"You can not create move \"%(move)s\" because it's date is outside its "
"period."
@@ -198,12 +202,6 @@ msgid "\"%(first)s\" and \"%(second)s\" periods overlap."
msgstr ""
msgctxt "error:account.period:"
-msgid ""
-"Company of sequence \"%(sequence)s\" does not match the company of period "
-"\"%(period)s\" to which it is assigned to."
-msgstr ""
-
-msgctxt "error:account.period:"
msgid "Dates of period \"%s\" are outside are outside it's fiscal year dates."
msgstr ""
@@ -241,6 +239,18 @@ msgid ""
"\"%(fiscalyear)s\" is closed."
msgstr ""
+msgctxt "error:account.tax.template:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+
+msgctxt "error:account.tax:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+
msgctxt "field:account.account,active:"
msgid "Active"
msgstr "Actief"
@@ -293,6 +303,10 @@ msgctxt "field:account.account,deferrals:"
msgid "Deferrals"
msgstr "Historie"
+msgctxt "field:account.account,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr ""
+
msgctxt "field:account.account,id:"
msgid "ID"
msgstr ""
@@ -459,6 +473,10 @@ msgctxt "field:account.account.template,deferral:"
msgid "Deferral"
msgstr "Historisch"
+msgctxt "field:account.account.template,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr ""
+
msgctxt "field:account.account.template,id:"
msgid "ID"
msgstr ""
@@ -815,6 +833,11 @@ msgctxt "field:account.fiscalyear-account.move.line,write_uid:"
msgid "Write User"
msgstr ""
+#, fuzzy
+msgctxt "field:account.fiscalyear.balance_non_deferral.start,company:"
+msgid "Company"
+msgstr "Bedrijf"
+
msgctxt "field:account.fiscalyear.balance_non_deferral.start,credit_account:"
msgid "Credit Account"
msgstr ""
@@ -894,8 +917,9 @@ msgctxt "field:account.journal,type:"
msgid "Type"
msgstr "Type"
+#, fuzzy
msgctxt "field:account.journal,update_posted:"
-msgid "Allow cancelling moves"
+msgid "Allow updating posted moves"
msgstr "Sta annuleren van boekingen toe"
msgctxt "field:account.journal,view:"
@@ -1070,6 +1094,11 @@ msgctxt "field:account.journal.view.column,write_uid:"
msgid "Write User"
msgstr ""
+#, fuzzy
+msgctxt "field:account.move,company:"
+msgid "Company"
+msgstr "Bedrijf"
+
msgctxt "field:account.move,create_date:"
msgid "Create Date"
msgstr ""
@@ -1136,10 +1165,32 @@ msgctxt "field:account.move,write_uid:"
msgid "Write User"
msgstr ""
+#, fuzzy
+msgctxt "field:account.move.cancel.default,description:"
+msgid "Description"
+msgstr "Specificatie"
+
+msgctxt "field:account.move.cancel.default,id:"
+msgid "ID"
+msgstr ""
+
msgctxt "field:account.move.line,account:"
msgid "Account"
msgstr "Rekening"
+#, fuzzy
+msgctxt "field:account.move.line,amount:"
+msgid "Amount"
+msgstr "Bedrag"
+
+msgctxt "field:account.move.line,amount_currency:"
+msgid "Amount Currency"
+msgstr ""
+
+msgctxt "field:account.move.line,amount_currency_digits:"
+msgid "Amount Currency Digits"
+msgstr ""
+
msgctxt "field:account.move.line,amount_second_currency:"
msgid "Amount Second Currency"
msgstr "Bedrag alternatieve valuta"
@@ -1245,6 +1296,69 @@ msgctxt "field:account.move.line,write_uid:"
msgid "Write User"
msgstr ""
+#, fuzzy
+msgctxt "field:account.move.line.template,account:"
+msgid "Account"
+msgstr "Rekeningen"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,amount:"
+msgid "Amount"
+msgstr "Bedrag"
+
+msgctxt "field:account.move.line.template,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:account.move.line.template,create_uid:"
+msgid "Create User"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.line.template,description:"
+msgid "Description"
+msgstr "Specificatie"
+
+msgctxt "field:account.move.line.template,id:"
+msgid "ID"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.line.template,move:"
+msgid "Move"
+msgstr "Boeking"
+
+msgctxt "field:account.move.line.template,operation:"
+msgid "Operation"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.line.template,party:"
+msgid "Party"
+msgstr "Relaties"
+
+msgctxt "field:account.move.line.template,party_required:"
+msgid "Party Required"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.line.template,rec_name:"
+msgid "Name"
+msgstr "Naam bijlage"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,taxes:"
+msgid "Taxes"
+msgstr "Belastingen"
+
+msgctxt "field:account.move.line.template,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:account.move.line.template,write_uid:"
+msgid "Write User"
+msgstr ""
+
msgctxt "field:account.move.open_journal.ask,id:"
msgid "ID"
msgstr ""
@@ -1340,6 +1454,147 @@ msgid "Write User"
msgstr ""
#, fuzzy
+msgctxt "field:account.move.template,active:"
+msgid "Active"
+msgstr "Actief"
+
+#, fuzzy
+msgctxt "field:account.move.template,company:"
+msgid "Company"
+msgstr "Bedrijf"
+
+msgctxt "field:account.move.template,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:account.move.template,create_uid:"
+msgid "Create User"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.template,date:"
+msgid "Date"
+msgstr "Vervaldatum"
+
+#, fuzzy
+msgctxt "field:account.move.template,description:"
+msgid "Description"
+msgstr "Specificatie"
+
+msgctxt "field:account.move.template,id:"
+msgid "ID"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.template,journal:"
+msgid "Journal"
+msgstr "Dagboek"
+
+#, fuzzy
+msgctxt "field:account.move.template,keywords:"
+msgid "Keywords"
+msgstr "Trefwoorden"
+
+#, fuzzy
+msgctxt "field:account.move.template,lines:"
+msgid "Lines"
+msgstr "Transacties"
+
+#, fuzzy
+msgctxt "field:account.move.template,name:"
+msgid "Name"
+msgstr "Naam bijlage"
+
+#, fuzzy
+msgctxt "field:account.move.template,rec_name:"
+msgid "Name"
+msgstr "Naam bijlage"
+
+msgctxt "field:account.move.template,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:account.move.template,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:account.move.template.create.keywords,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:account.move.template.create.template,id:"
+msgid "ID"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.template.create.template,period:"
+msgid "Period"
+msgstr "Periode"
+
+#, fuzzy
+msgctxt "field:account.move.template.create.template,template:"
+msgid "Template"
+msgstr "Sjabloon"
+
+msgctxt "field:account.move.template.keyword,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,digits:"
+msgid "Digits"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,id:"
+msgid "ID"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,move:"
+msgid "Move"
+msgstr "Boeking"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,name:"
+msgid "Name"
+msgstr "Naam bijlage"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,rec_name:"
+msgid "Name"
+msgstr "Naam bijlage"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,required:"
+msgid "Required"
+msgstr "Vereist"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,sequence:"
+msgid "Sequence"
+msgstr "Reeks"
+
+msgctxt "field:account.move.template.keyword,string:"
+msgid "String"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,type_:"
+msgid "Type"
+msgstr "Type"
+
+msgctxt "field:account.move.template.keyword,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:account.move.template.keyword,write_uid:"
+msgid "Write User"
+msgstr ""
+
+#, fuzzy
msgctxt "field:account.open_aged_balance.start,balance_type:"
msgid "Type"
msgstr "Type"
@@ -1743,6 +1998,10 @@ msgctxt "field:account.tax,type:"
msgid "Type"
msgstr "Type"
+msgctxt "field:account.tax,update_unit_price:"
+msgid "Update Unit Price"
+msgstr ""
+
msgctxt "field:account.tax,write_date:"
msgid "Write Date"
msgstr ""
@@ -1926,6 +2185,11 @@ msgctxt "field:account.tax.line,code:"
msgid "Code"
msgstr "Code"
+#, fuzzy
+msgctxt "field:account.tax.line,company:"
+msgid "Company"
+msgstr "Bedrijf"
+
msgctxt "field:account.tax.line,create_date:"
msgid "Create Date"
msgstr ""
@@ -1962,6 +2226,51 @@ msgctxt "field:account.tax.line,write_uid:"
msgid "Write User"
msgstr ""
+#, fuzzy
+msgctxt "field:account.tax.line.template,amount:"
+msgid "Amount"
+msgstr "Bedrag"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,code:"
+msgid "Code"
+msgstr "Code"
+
+msgctxt "field:account.tax.line.template,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:account.tax.line.template,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:account.tax.line.template,id:"
+msgid "ID"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,line:"
+msgid "Line"
+msgstr "Regel"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,rec_name:"
+msgid "Name"
+msgstr "Naam bijlage"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,tax:"
+msgid "Tax"
+msgstr "Belasting"
+
+msgctxt "field:account.tax.line.template,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:account.tax.line.template,write_uid:"
+msgid "Write User"
+msgstr ""
+
msgctxt "field:account.tax.rule,company:"
msgid "Company"
msgstr "Bedrijf"
@@ -2247,6 +2556,10 @@ msgctxt "field:account.tax.template,type:"
msgid "Type"
msgstr "Type"
+msgctxt "field:account.tax.template,update_unit_price:"
+msgid "Update Unit Price"
+msgstr ""
+
msgctxt "field:account.tax.template,write_date:"
msgid "Write Date"
msgstr ""
@@ -2299,6 +2612,10 @@ msgctxt "field:party.party,supplier_tax_rule:"
msgid "Supplier Tax Rule"
msgstr "Belastingregel inkopen"
+msgctxt "help:account.account,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr ""
+
msgctxt "help:account.account,reconcile:"
msgid ""
"Allow move lines of this account \n"
@@ -2319,6 +2636,10 @@ msgstr ""
"Standaard belasting voor handmatig coderen van boekingen\n"
"voor de dagboektypen: \"kosten\" en \"opbrengsten\""
+msgctxt "help:account.account.template,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr ""
+
msgctxt "help:account.account.type,sequence:"
msgid "Use to order the account type"
msgstr "Gebruiken om rekeningtype te ordenen"
@@ -2343,10 +2664,22 @@ msgctxt "help:account.move.line,second_currency:"
msgid "The second currency"
msgstr "De tweede valuta"
+msgctxt "help:account.move.line.template,description:"
+msgid "Keywords values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+
msgctxt "help:account.move.print_general_journal.start,posted:"
msgid "Show only posted move"
msgstr ""
+msgctxt "help:account.move.template,date:"
+msgid "Leave empty for today"
+msgstr ""
+
+msgctxt "help:account.move.template,description:"
+msgid "Keyword values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+
msgctxt "help:account.open_aged_balance.start,posted:"
msgid "Show only posted move"
msgstr ""
@@ -2415,6 +2748,12 @@ msgctxt "help:account.tax,sequence:"
msgid "Use to order the taxes"
msgstr "Gebruiken om belastingen te ordenen"
+msgctxt "help:account.tax,update_unit_price:"
+msgid ""
+"If checked then the unit price for further tax computation willbe modified "
+"by this tax"
+msgstr ""
+
msgctxt "help:account.tax.code.open_chart.start,fiscalyear:"
msgid "Leave empty for all open fiscal year"
msgstr ""
@@ -2679,10 +3018,18 @@ msgctxt "model:account.move,name:"
msgid "Account Move"
msgstr "Boeking"
+msgctxt "model:account.move.cancel.default,name:"
+msgid "Cancel Moves"
+msgstr ""
+
msgctxt "model:account.move.line,name:"
msgid "Account Move Line"
msgstr "Boekingsregel"
+msgctxt "model:account.move.line.template,name:"
+msgid "Account Move Line Template"
+msgstr ""
+
msgctxt "model:account.move.open_journal.ask,name:"
msgid "Open Journal Ask"
msgstr "Open dagboek vragen"
@@ -2700,6 +3047,22 @@ msgctxt "model:account.move.reconciliation,name:"
msgid "Account Move Reconciliation Lines"
msgstr "Afletterregels"
+msgctxt "model:account.move.template,name:"
+msgid "Account Move Template"
+msgstr ""
+
+msgctxt "model:account.move.template.create.keywords,name:"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:account.move.template.create.template,name:"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:account.move.template.keyword,name:"
+msgid "Account Move Template Keyword"
+msgstr ""
+
#, fuzzy
msgctxt "model:account.open_aged_balance.start,name:"
msgid "Open Aged Balance"
@@ -2766,6 +3129,10 @@ msgctxt "model:account.tax.line,name:"
msgid "Tax Line"
msgstr "Belasting regel"
+msgctxt "model:account.tax.line.template,name:"
+msgid "Account Tax Line Template"
+msgstr ""
+
msgctxt "model:account.tax.rule,name:"
msgid "Tax Rule"
msgstr "Belastingbepaling"
@@ -2914,6 +3281,14 @@ msgctxt "model:ir.action,name:act_move_reconciliation_lines"
msgid "Reconciliation Lines"
msgstr ""
+msgctxt "model:ir.action,name:act_move_template_create"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_move_template_form"
+msgid "Account Move Template"
+msgstr ""
+
msgctxt "model:ir.action,name:act_open_account"
msgid "Open Move Account"
msgstr "Boeking rekening openen"
@@ -3215,6 +3590,14 @@ msgctxt "model:ir.ui.menu,name:menu_move_form"
msgid "Account Moves"
msgstr "Boekingen"
+msgctxt "model:ir.ui.menu,name:menu_move_template_create"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_move_template_form"
+msgid "Account Move Template"
+msgstr ""
+
msgctxt "model:ir.ui.menu,name:menu_open_balance_sheet"
msgid "Balance Sheet"
msgstr "Balansoverzicht"
@@ -3786,6 +4169,34 @@ msgctxt "selection:account.move.line,state:"
msgid "Valid"
msgstr "Geldig"
+#, fuzzy
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Credit"
+msgstr "Credit"
+
+#, fuzzy
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Debit"
+msgstr "Debit"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Char"
+msgstr ""
+
+#, fuzzy
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Date"
+msgstr "Vervaldatum"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Numeric"
+msgstr ""
+
+#, fuzzy
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Party"
+msgstr "Relaties"
+
msgctxt "selection:account.open_aged_balance.start,balance_type:"
msgid "Both"
msgstr ""
@@ -4368,7 +4779,7 @@ msgstr "Annuleren"
#, fuzzy
msgctxt "wizard_button:account.create_chart,start,account:"
-msgid "Ok"
+msgid "OK"
msgstr "Oké"
#, fuzzy
@@ -4378,7 +4789,7 @@ msgstr "Annuleren"
#, fuzzy
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,balance:"
-msgid "Ok"
+msgid "OK"
msgstr "Oké"
#, fuzzy
@@ -4396,6 +4807,16 @@ msgctxt "wizard_button:account.fiscalyear.close,start,end:"
msgid "Cancel"
msgstr "Annuleren"
+#, fuzzy
+msgctxt "wizard_button:account.move.cancel,default,cancel:"
+msgid "OK"
+msgstr "Oké"
+
+#, fuzzy
+msgctxt "wizard_button:account.move.cancel,default,end:"
+msgid "Cancel"
+msgstr "Annuleren"
+
msgctxt "wizard_button:account.move.open_journal,ask,end:"
msgid "Cancel"
msgstr "Annuleren"
@@ -4422,6 +4843,24 @@ msgctxt "wizard_button:account.move.reconcile_lines,writeoff,reconcile:"
msgid "Reconcile"
msgstr "Afletteren"
+msgctxt "wizard_button:account.move.template.create,keywords,create_:"
+msgid "Create"
+msgstr ""
+
+#, fuzzy
+msgctxt "wizard_button:account.move.template.create,keywords,end:"
+msgid "Cancel"
+msgstr "Annuleren"
+
+#, fuzzy
+msgctxt "wizard_button:account.move.template.create,template,end:"
+msgid "Cancel"
+msgstr "Annuleren"
+
+msgctxt "wizard_button:account.move.template.create,template,keywords:"
+msgid "Next"
+msgstr ""
+
#, fuzzy
msgctxt "wizard_button:account.open_aged_balance,start,end:"
msgid "Cancel"
@@ -4523,5 +4962,5 @@ msgstr ""
#, fuzzy
msgctxt "wizard_button:account.update_chart,succeed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Oké"
diff --git a/locale/ru_RU.po b/locale/ru_RU.po
index 7d3451e..7f45038 100644
--- a/locale/ru_RU.po
+++ b/locale/ru_RU.po
@@ -105,6 +105,10 @@ msgid "Wrong credit/debit values."
msgstr "Некорректные значения кредит/дебет."
msgctxt "error:account.move.line:"
+msgid "Wrong second currency sign."
+msgstr ""
+
+msgctxt "error:account.move.line:"
msgid "You can not add/modify lines in closed journal period \"%s\"."
msgstr "Вы не можете добавить/изменить строки в закрытом периоде \"%s\"."
@@ -128,6 +132,10 @@ msgctxt "error:account.move.line:"
msgid "You can not modify lines of move \"%s\" because it is already posted."
msgstr "Вы не можете изменить строки проводки \"%s\" так как она уже проведена."
+msgctxt "error:account.move.line:"
+msgid "wrong_second_currency_sign"
+msgstr ""
+
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not create a reconciliation where debit \"%(debit)s\" and credit "
@@ -159,10 +167,8 @@ msgstr ""
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not reconcile line \"%(line)s\" because it's party \"%(party1)s\" is"
-" different from %(party2)s\"."
+" different from \"%(party2)s\"."
msgstr ""
-"Вы не можете сверить строку \"%(line)s\" так как её контрагент "
-"\"%(party1)s\" отличается от \"%(party2)s\"."
msgctxt "error:account.move.reconciliation:"
msgid "You can not reconcile line \"%s\" because it is not in valid state."
@@ -175,11 +181,6 @@ msgid ""
msgstr ""
msgctxt "error:account.move:"
-msgid "You can not create lines on accountsof different companies in move \"%s\"."
-msgstr ""
-"Вы не можете создать строки для счетов разных организаций в проводке \"%s\"."
-
-msgctxt "error:account.move:"
msgid ""
"You can not create move \"%(move)s\" because it's date is outside its "
"period."
@@ -224,14 +225,6 @@ msgid "\"%(first)s\" and \"%(second)s\" periods overlap."
msgstr "Периоды \"%(first)s\" и \"%(second)s\" пересекаются."
msgctxt "error:account.period:"
-msgid ""
-"Company of sequence \"%(sequence)s\" does not match the company of period "
-"\"%(period)s\" to which it is assigned to."
-msgstr ""
-"Организация в нумерации \"%(sequence)s\" не соответствует организации в "
-"периоде \"%(period)s\", к которому она принадлежит."
-
-msgctxt "error:account.period:"
msgid "Dates of period \"%s\" are outside are outside it's fiscal year dates."
msgstr "Даты периода \"%s\" находятся вне пределов финансового года."
@@ -274,6 +267,18 @@ msgstr ""
"Вы не можете открыть период \"%(period)s\" так как финансовый год "
"\"%(fiscalyear)s\" уже закрыт."
+msgctxt "error:account.tax.template:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+
+msgctxt "error:account.tax:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr ""
+
msgctxt "field:account.account,active:"
msgid "Active"
msgstr "Действующий"
@@ -326,6 +331,10 @@ msgctxt "field:account.account,deferrals:"
msgid "Deferrals"
msgstr "Отсрочки"
+msgctxt "field:account.account,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr ""
+
msgctxt "field:account.account,id:"
msgid "ID"
msgstr "ID"
@@ -491,6 +500,10 @@ msgctxt "field:account.account.template,deferral:"
msgid "Deferral"
msgstr "Отсрочка"
+msgctxt "field:account.account.template,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr ""
+
msgctxt "field:account.account.template,id:"
msgid "ID"
msgstr "ID"
@@ -843,6 +856,11 @@ msgctxt "field:account.fiscalyear-account.move.line,write_uid:"
msgid "Write User"
msgstr "Изменено пользователем"
+#, fuzzy
+msgctxt "field:account.fiscalyear.balance_non_deferral.start,company:"
+msgid "Company"
+msgstr "Учет.орг."
+
msgctxt "field:account.fiscalyear.balance_non_deferral.start,credit_account:"
msgid "Credit Account"
msgstr ""
@@ -923,8 +941,9 @@ msgctxt "field:account.journal,type:"
msgid "Type"
msgstr "Тип"
+#, fuzzy
msgctxt "field:account.journal,update_posted:"
-msgid "Allow cancelling moves"
+msgid "Allow updating posted moves"
msgstr "Разрешить отмену проводок"
msgctxt "field:account.journal,view:"
@@ -1099,6 +1118,11 @@ msgctxt "field:account.journal.view.column,write_uid:"
msgid "Write User"
msgstr "Изменено пользователем"
+#, fuzzy
+msgctxt "field:account.move,company:"
+msgid "Company"
+msgstr "Учет.орг."
+
msgctxt "field:account.move,create_date:"
msgid "Create Date"
msgstr "Дата создания"
@@ -1163,10 +1187,33 @@ msgctxt "field:account.move,write_uid:"
msgid "Write User"
msgstr "Изменено пользователем"
+#, fuzzy
+msgctxt "field:account.move.cancel.default,description:"
+msgid "Description"
+msgstr "Описание"
+
+#, fuzzy
+msgctxt "field:account.move.cancel.default,id:"
+msgid "ID"
+msgstr "ID"
+
msgctxt "field:account.move.line,account:"
msgid "Account"
msgstr "Счет"
+#, fuzzy
+msgctxt "field:account.move.line,amount:"
+msgid "Amount"
+msgstr "Сумма"
+
+msgctxt "field:account.move.line,amount_currency:"
+msgid "Amount Currency"
+msgstr ""
+
+msgctxt "field:account.move.line,amount_currency_digits:"
+msgid "Amount Currency Digits"
+msgstr ""
+
msgctxt "field:account.move.line,amount_second_currency:"
msgid "Amount Second Currency"
msgstr "Сумма во второй валюте"
@@ -1271,6 +1318,74 @@ msgctxt "field:account.move.line,write_uid:"
msgid "Write User"
msgstr "Изменено пользователем"
+#, fuzzy
+msgctxt "field:account.move.line.template,account:"
+msgid "Account"
+msgstr "Счет"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,amount:"
+msgid "Amount"
+msgstr "Сумма"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,description:"
+msgid "Description"
+msgstr "Описание"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,move:"
+msgid "Move"
+msgstr "Перемещение"
+
+msgctxt "field:account.move.line.template,operation:"
+msgid "Operation"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.line.template,party:"
+msgid "Party"
+msgstr "Организации"
+
+msgctxt "field:account.move.line.template,party_required:"
+msgid "Party Required"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.line.template,rec_name:"
+msgid "Name"
+msgstr "Правило оплаты"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,taxes:"
+msgid "Taxes"
+msgstr "Налоги"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
+
+#, fuzzy
+msgctxt "field:account.move.line.template,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
+
msgctxt "field:account.move.open_journal.ask,id:"
msgid "ID"
msgstr "ID"
@@ -1362,6 +1477,159 @@ msgctxt "field:account.move.reconciliation,write_uid:"
msgid "Write User"
msgstr "Изменено пользователем"
+#, fuzzy
+msgctxt "field:account.move.template,active:"
+msgid "Active"
+msgstr "Действующий"
+
+#, fuzzy
+msgctxt "field:account.move.template,company:"
+msgid "Company"
+msgstr "Учет.орг."
+
+#, fuzzy
+msgctxt "field:account.move.template,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
+
+#, fuzzy
+msgctxt "field:account.move.template,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
+
+#, fuzzy
+msgctxt "field:account.move.template,date:"
+msgid "Date"
+msgstr "Дата"
+
+#, fuzzy
+msgctxt "field:account.move.template,description:"
+msgid "Description"
+msgstr "Описание"
+
+#, fuzzy
+msgctxt "field:account.move.template,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt "field:account.move.template,journal:"
+msgid "Journal"
+msgstr "Журнал"
+
+#, fuzzy
+msgctxt "field:account.move.template,keywords:"
+msgid "Keywords"
+msgstr "Ключевые слова"
+
+#, fuzzy
+msgctxt "field:account.move.template,lines:"
+msgid "Lines"
+msgstr "Строки"
+
+#, fuzzy
+msgctxt "field:account.move.template,name:"
+msgid "Name"
+msgstr "Правило оплаты"
+
+#, fuzzy
+msgctxt "field:account.move.template,rec_name:"
+msgid "Name"
+msgstr "Правило оплаты"
+
+#, fuzzy
+msgctxt "field:account.move.template,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
+
+#, fuzzy
+msgctxt "field:account.move.template,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
+
+#, fuzzy
+msgctxt "field:account.move.template.create.keywords,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt "field:account.move.template.create.template,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt "field:account.move.template.create.template,period:"
+msgid "Period"
+msgstr "Период"
+
+#, fuzzy
+msgctxt "field:account.move.template.create.template,template:"
+msgid "Template"
+msgstr "Шаблон"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
+
+msgctxt "field:account.move.template.keyword,digits:"
+msgid "Digits"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,move:"
+msgid "Move"
+msgstr "Перемещение"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,name:"
+msgid "Name"
+msgstr "Правило оплаты"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,rec_name:"
+msgid "Name"
+msgstr "Правило оплаты"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,required:"
+msgid "Required"
+msgstr "Обязательный"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,sequence:"
+msgid "Sequence"
+msgstr "Последовательность"
+
+msgctxt "field:account.move.template.keyword,string:"
+msgid "String"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,type_:"
+msgid "Type"
+msgstr "Тип"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
+
+#, fuzzy
+msgctxt "field:account.move.template.keyword,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
+
msgctxt "field:account.open_aged_balance.start,balance_type:"
msgid "Type"
msgstr "Тип"
@@ -1753,6 +2021,10 @@ msgctxt "field:account.tax,type:"
msgid "Type"
msgstr "Тип"
+msgctxt "field:account.tax,update_unit_price:"
+msgid "Update Unit Price"
+msgstr ""
+
msgctxt "field:account.tax,write_date:"
msgid "Write Date"
msgstr "Дата изменения"
@@ -1933,6 +2205,11 @@ msgctxt "field:account.tax.line,code:"
msgid "Code"
msgstr "Код"
+#, fuzzy
+msgctxt "field:account.tax.line,company:"
+msgid "Company"
+msgstr "Учет.орг."
+
msgctxt "field:account.tax.line,create_date:"
msgid "Create Date"
msgstr "Дата создания"
@@ -1969,6 +2246,56 @@ msgctxt "field:account.tax.line,write_uid:"
msgid "Write User"
msgstr "Изменено пользователем"
+#, fuzzy
+msgctxt "field:account.tax.line.template,amount:"
+msgid "Amount"
+msgstr "Сумма"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,code:"
+msgid "Code"
+msgstr "Код языка"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,line:"
+msgid "Line"
+msgstr "Строка"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,rec_name:"
+msgid "Name"
+msgstr "Правило оплаты"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,tax:"
+msgid "Tax"
+msgstr "Налоги"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
+
+#, fuzzy
+msgctxt "field:account.tax.line.template,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
+
msgctxt "field:account.tax.rule,company:"
msgid "Company"
msgstr "Организация"
@@ -2252,6 +2579,10 @@ msgctxt "field:account.tax.template,type:"
msgid "Type"
msgstr "Тип"
+msgctxt "field:account.tax.template,update_unit_price:"
+msgid "Update Unit Price"
+msgstr ""
+
msgctxt "field:account.tax.template,write_date:"
msgid "Write Date"
msgstr "Дата изменения"
@@ -2304,6 +2635,10 @@ msgctxt "field:party.party,supplier_tax_rule:"
msgid "Supplier Tax Rule"
msgstr "Правило налогов поставщика"
+msgctxt "help:account.account,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr ""
+
msgctxt "help:account.account,reconcile:"
msgid ""
"Allow move lines of this account \n"
@@ -2324,6 +2659,10 @@ msgstr ""
"Налоги по умолчанию для ручного расчета проводок для типов журналов: "
"\"расходы\" и \"доходы\"."
+msgctxt "help:account.account.template,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr ""
+
msgctxt "help:account.account.type,sequence:"
msgid "Use to order the account type"
msgstr "Используется для сортировки типов счетов"
@@ -2348,10 +2687,22 @@ msgctxt "help:account.move.line,second_currency:"
msgid "The second currency"
msgstr "Вторичная валюта"
+msgctxt "help:account.move.line.template,description:"
+msgid "Keywords values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+
msgctxt "help:account.move.print_general_journal.start,posted:"
msgid "Show only posted move"
msgstr "Показать только завершенные проводки"
+msgctxt "help:account.move.template,date:"
+msgid "Leave empty for today"
+msgstr ""
+
+msgctxt "help:account.move.template,description:"
+msgid "Keyword values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+
msgctxt "help:account.open_aged_balance.start,posted:"
msgid "Show only posted move"
msgstr "Показать только завершенные проводки"
@@ -2421,6 +2772,12 @@ msgctxt "help:account.tax,sequence:"
msgid "Use to order the taxes"
msgstr "Используется для сортировки налогов"
+msgctxt "help:account.tax,update_unit_price:"
+msgid ""
+"If checked then the unit price for further tax computation willbe modified "
+"by this tax"
+msgstr ""
+
msgctxt "help:account.tax.code.open_chart.start,fiscalyear:"
msgid "Leave empty for all open fiscal year"
msgstr "Оставьте пустым для всех открытых финансовых годов"
@@ -2684,10 +3041,18 @@ msgctxt "model:account.move,name:"
msgid "Account Move"
msgstr "Проводка"
+msgctxt "model:account.move.cancel.default,name:"
+msgid "Cancel Moves"
+msgstr ""
+
msgctxt "model:account.move.line,name:"
msgid "Account Move Line"
msgstr "Строчка проводки"
+msgctxt "model:account.move.line.template,name:"
+msgid "Account Move Line Template"
+msgstr ""
+
msgctxt "model:account.move.open_journal.ask,name:"
msgid "Open Journal Ask"
msgstr "Открыть журнал запросов"
@@ -2704,6 +3069,22 @@ msgctxt "model:account.move.reconciliation,name:"
msgid "Account Move Reconciliation Lines"
msgstr "Строчки сверки проводок"
+msgctxt "model:account.move.template,name:"
+msgid "Account Move Template"
+msgstr ""
+
+msgctxt "model:account.move.template.create.keywords,name:"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:account.move.template.create.template,name:"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:account.move.template.keyword,name:"
+msgid "Account Move Template Keyword"
+msgstr ""
+
msgctxt "model:account.open_aged_balance.start,name:"
msgid "Open Aged Balance"
msgstr "Открыть сальдовый отчет"
@@ -2765,6 +3146,10 @@ msgctxt "model:account.tax.line,name:"
msgid "Tax Line"
msgstr "Строка налога"
+msgctxt "model:account.tax.line.template,name:"
+msgid "Account Tax Line Template"
+msgstr ""
+
msgctxt "model:account.tax.rule,name:"
msgid "Tax Rule"
msgstr "Правило налога"
@@ -2909,6 +3294,14 @@ msgctxt "model:ir.action,name:act_move_reconciliation_lines"
msgid "Reconciliation Lines"
msgstr ""
+msgctxt "model:ir.action,name:act_move_template_create"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_move_template_form"
+msgid "Account Move Template"
+msgstr ""
+
msgctxt "model:ir.action,name:act_open_account"
msgid "Open Move Account"
msgstr "Открыть счет проводок"
@@ -3204,6 +3597,14 @@ msgctxt "model:ir.ui.menu,name:menu_move_form"
msgid "Account Moves"
msgstr "Проводки"
+msgctxt "model:ir.ui.menu,name:menu_move_template_create"
+msgid "Create Move from Template"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_move_template_form"
+msgid "Account Move Template"
+msgstr ""
+
msgctxt "model:ir.ui.menu,name:menu_open_balance_sheet"
msgid "Balance Sheet"
msgstr "Балансовый отчет"
@@ -3724,6 +4125,34 @@ msgctxt "selection:account.move.line,state:"
msgid "Valid"
msgstr "Верный"
+#, fuzzy
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Credit"
+msgstr "Кредит"
+
+#, fuzzy
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Debit"
+msgstr "Дебет"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Char"
+msgstr ""
+
+#, fuzzy
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Date"
+msgstr "Дата"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Numeric"
+msgstr ""
+
+#, fuzzy
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Party"
+msgstr "Организации"
+
msgctxt "selection:account.open_aged_balance.start,balance_type:"
msgid "Both"
msgstr "Оба"
@@ -4288,7 +4717,7 @@ msgid "Cancel"
msgstr "Отменить"
msgctxt "wizard_button:account.create_chart,start,account:"
-msgid "Ok"
+msgid "OK"
msgstr "Ок"
msgctxt "wizard_button:account.create_chart,start,end:"
@@ -4297,7 +4726,7 @@ msgstr "Отменить"
#, fuzzy
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,balance:"
-msgid "Ok"
+msgid "OK"
msgstr "Ок"
#, fuzzy
@@ -4313,6 +4742,16 @@ msgctxt "wizard_button:account.fiscalyear.close,start,end:"
msgid "Cancel"
msgstr "Отменить"
+#, fuzzy
+msgctxt "wizard_button:account.move.cancel,default,cancel:"
+msgid "OK"
+msgstr "Ок"
+
+#, fuzzy
+msgctxt "wizard_button:account.move.cancel,default,end:"
+msgid "Cancel"
+msgstr "Отменить"
+
msgctxt "wizard_button:account.move.open_journal,ask,end:"
msgid "Cancel"
msgstr "Отменить"
@@ -4337,6 +4776,26 @@ msgctxt "wizard_button:account.move.reconcile_lines,writeoff,reconcile:"
msgid "Reconcile"
msgstr "Сверка"
+#, fuzzy
+msgctxt "wizard_button:account.move.template.create,keywords,create_:"
+msgid "Create"
+msgstr "Создать"
+
+#, fuzzy
+msgctxt "wizard_button:account.move.template.create,keywords,end:"
+msgid "Cancel"
+msgstr "Отменить"
+
+#, fuzzy
+msgctxt "wizard_button:account.move.template.create,template,end:"
+msgid "Cancel"
+msgstr "Отменить"
+
+#, fuzzy
+msgctxt "wizard_button:account.move.template.create,template,keywords:"
+msgid "Next"
+msgstr "Далее"
+
msgctxt "wizard_button:account.open_aged_balance,start,end:"
msgid "Cancel"
msgstr "Отменить"
@@ -4424,5 +4883,5 @@ msgid "Update"
msgstr "Обновить"
msgctxt "wizard_button:account.update_chart,succeed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Ок"
diff --git a/locale/sl_SI.po b/locale/sl_SI.po
index 17cfbf8..3a529b1 100644
--- a/locale/sl_SI.po
+++ b/locale/sl_SI.po
@@ -101,6 +101,10 @@ msgid "Wrong credit/debit values."
msgstr "Napačne vrednosti za debet/kredit."
msgctxt "error:account.move.line:"
+msgid "Wrong second currency sign."
+msgstr "Napačen predznak druge valute."
+
+msgctxt "error:account.move.line:"
msgid "You can not add/modify lines in closed journal period \"%s\"."
msgstr ""
"Postavk dnevnika na zaključenem obdobju \"%s\" ni možno "
@@ -124,6 +128,10 @@ msgctxt "error:account.move.line:"
msgid "You can not modify lines of move \"%s\" because it is already posted."
msgstr "Postavk \"%s\" ni možno popravljati, ker so že knjižene."
+msgctxt "error:account.move.line:"
+msgid "wrong_second_currency_sign"
+msgstr "Napačen predznak druge valute"
+
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not create a reconciliation where debit \"%(debit)s\" and credit "
@@ -155,10 +163,10 @@ msgstr ""
msgctxt "error:account.move.reconciliation:"
msgid ""
"You can not reconcile line \"%(line)s\" because it's party \"%(party1)s\" is"
-" different from %(party2)s\"."
+" different from \"%(party2)s\"."
msgstr ""
-"Postavke \"%(line)s\" ni možni uskladiti zaradi partnerja \"%(party1)s\" na "
-"postavki, ki je različen od %(party2)s\"."
+"Postavke \"%(line)s\" ni možno uskladiti, ker je partner \"%(party1)s\" "
+"različen od \"%(party2)s\"."
msgctxt "error:account.move.reconciliation:"
msgid "You can not reconcile line \"%s\" because it is not in valid state."
@@ -173,10 +181,6 @@ msgstr ""
"Vzamem trenutno obdobje?"
msgctxt "error:account.move:"
-msgid "You can not create lines on accountsof different companies in move \"%s\"."
-msgstr "Postavk na kontih različnih družb v knjižbi \"%s\" ni možno izdelati."
-
-msgctxt "error:account.move:"
msgid ""
"You can not create move \"%(move)s\" because it's date is outside its "
"period."
@@ -222,14 +226,6 @@ msgid "\"%(first)s\" and \"%(second)s\" periods overlap."
msgstr "Obdobji \"%(first)s\" in \"%(second)s\" se prekrivata."
msgctxt "error:account.period:"
-msgid ""
-"Company of sequence \"%(sequence)s\" does not match the company of period "
-"\"%(period)s\" to which it is assigned to."
-msgstr ""
-"Družba štetja \"%(sequence)s\" se ne ujema s družbo dodeljenga obdobja "
-"\"%(period)s\"."
-
-msgctxt "error:account.period:"
msgid "Dates of period \"%s\" are outside are outside it's fiscal year dates."
msgstr "Datumi obdobja \"%s\" so izven časovnega okvira poslovnega leta."
@@ -272,6 +268,18 @@ msgstr ""
"Obdobja \"%(period)s\" ni možno odpirati zaradi zaključenega poslovnega leta"
" \"%(fiscalyear)s\"."
+msgctxt "error:account.tax.template:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr "Popravka cene ni možno nastaviti na poddavek \"%(template)s\"."
+
+msgctxt "error:account.tax:"
+msgid ""
+"\"Update Unit Price\" can not be set on tax \"%(template)s\" which has a "
+"parent."
+msgstr "Popravka cene ni možno nastaviti na poddavek \"%(template)s\"."
+
msgctxt "field:account.account,active:"
msgid "Active"
msgstr "Aktivno"
@@ -324,6 +332,10 @@ msgctxt "field:account.account,deferrals:"
msgid "Deferrals"
msgstr "Odlogi"
+msgctxt "field:account.account,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Bilance glavne knjige"
+
msgctxt "field:account.account,id:"
msgid "ID"
msgstr "ID"
@@ -488,6 +500,10 @@ msgctxt "field:account.account.template,deferral:"
msgid "Deferral"
msgstr "Odlog"
+msgctxt "field:account.account.template,general_ledger_balance:"
+msgid "General Ledger Balance"
+msgstr "Bilance glavne knjige"
+
msgctxt "field:account.account.template,id:"
msgid "ID"
msgstr "ID"
@@ -840,6 +856,10 @@ msgctxt "field:account.fiscalyear-account.move.line,write_uid:"
msgid "Write User"
msgstr "Zapisal"
+msgctxt "field:account.fiscalyear.balance_non_deferral.start,company:"
+msgid "Company"
+msgstr "Družba"
+
msgctxt "field:account.fiscalyear.balance_non_deferral.start,credit_account:"
msgid "Credit Account"
msgstr "Kreditni konto"
@@ -917,8 +937,8 @@ msgid "Type"
msgstr "Tip"
msgctxt "field:account.journal,update_posted:"
-msgid "Allow cancelling moves"
-msgstr "Dovoli storniranje knjižb"
+msgid "Allow updating posted moves"
+msgstr "Dovoli posodobitev knjižb"
msgctxt "field:account.journal,view:"
msgid "View"
@@ -1092,6 +1112,10 @@ msgctxt "field:account.journal.view.column,write_uid:"
msgid "Write User"
msgstr "Zapisal"
+msgctxt "field:account.move,company:"
+msgid "Company"
+msgstr "Družba"
+
msgctxt "field:account.move,create_date:"
msgid "Create Date"
msgstr "Izdelano"
@@ -1156,10 +1180,30 @@ msgctxt "field:account.move,write_uid:"
msgid "Write User"
msgstr "Zapisal"
+msgctxt "field:account.move.cancel.default,description:"
+msgid "Description"
+msgstr "Opis"
+
+msgctxt "field:account.move.cancel.default,id:"
+msgid "ID"
+msgstr "ID"
+
msgctxt "field:account.move.line,account:"
msgid "Account"
msgstr "Konto"
+msgctxt "field:account.move.line,amount:"
+msgid "Amount"
+msgstr "Znesek"
+
+msgctxt "field:account.move.line,amount_currency:"
+msgid "Amount Currency"
+msgstr "Valuta zneska"
+
+msgctxt "field:account.move.line,amount_currency_digits:"
+msgid "Amount Currency Digits"
+msgstr "Decimalke zneska"
+
msgctxt "field:account.move.line,amount_second_currency:"
msgid "Amount Second Currency"
msgstr "Znesek v drugi valuti"
@@ -1264,6 +1308,62 @@ msgctxt "field:account.move.line,write_uid:"
msgid "Write User"
msgstr "Zapisal"
+msgctxt "field:account.move.line.template,account:"
+msgid "Account"
+msgstr "Konto"
+
+msgctxt "field:account.move.line.template,amount:"
+msgid "Amount"
+msgstr "Znesek"
+
+msgctxt "field:account.move.line.template,create_date:"
+msgid "Create Date"
+msgstr "Izdelano"
+
+msgctxt "field:account.move.line.template,create_uid:"
+msgid "Create User"
+msgstr "Izdelal"
+
+msgctxt "field:account.move.line.template,description:"
+msgid "Description"
+msgstr "Opis"
+
+msgctxt "field:account.move.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.line.template,move:"
+msgid "Move"
+msgstr "Knjižba"
+
+msgctxt "field:account.move.line.template,operation:"
+msgid "Operation"
+msgstr "Operacija"
+
+msgctxt "field:account.move.line.template,party:"
+msgid "Party"
+msgstr "Partner"
+
+msgctxt "field:account.move.line.template,party_required:"
+msgid "Party Required"
+msgstr "Partner obvezen"
+
+msgctxt "field:account.move.line.template,rec_name:"
+msgid "Name"
+msgstr "Ime"
+
+msgctxt "field:account.move.line.template,taxes:"
+msgid "Taxes"
+msgstr "Davki"
+
+msgctxt "field:account.move.line.template,write_date:"
+msgid "Write Date"
+msgstr "Zapisano"
+
+msgctxt "field:account.move.line.template,write_uid:"
+msgid "Write User"
+msgstr "Zapisal"
+
msgctxt "field:account.move.open_journal.ask,id:"
msgid "ID"
msgstr "ID"
@@ -1352,6 +1452,130 @@ msgctxt "field:account.move.reconciliation,write_uid:"
msgid "Write User"
msgstr "Zapisal"
+msgctxt "field:account.move.template,active:"
+msgid "Active"
+msgstr "Aktivno"
+
+msgctxt "field:account.move.template,company:"
+msgid "Company"
+msgstr "Družba"
+
+msgctxt "field:account.move.template,create_date:"
+msgid "Create Date"
+msgstr "Izdelano"
+
+msgctxt "field:account.move.template,create_uid:"
+msgid "Create User"
+msgstr "Izdelal"
+
+msgctxt "field:account.move.template,date:"
+msgid "Date"
+msgstr "Datum"
+
+msgctxt "field:account.move.template,description:"
+msgid "Description"
+msgstr "Opis"
+
+msgctxt "field:account.move.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template,journal:"
+msgid "Journal"
+msgstr "Dnevnik"
+
+msgctxt "field:account.move.template,keywords:"
+msgid "Keywords"
+msgstr "Ključne besede"
+
+msgctxt "field:account.move.template,lines:"
+msgid "Lines"
+msgstr "Postavke"
+
+msgctxt "field:account.move.template,name:"
+msgid "Name"
+msgstr "Naziv"
+
+msgctxt "field:account.move.template,rec_name:"
+msgid "Name"
+msgstr "Ime"
+
+msgctxt "field:account.move.template,write_date:"
+msgid "Write Date"
+msgstr "Zapisano"
+
+msgctxt "field:account.move.template,write_uid:"
+msgid "Write User"
+msgstr "Zapisal"
+
+msgctxt "field:account.move.template.create.keywords,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.create.template,period:"
+msgid "Period"
+msgstr "Obdobje"
+
+msgctxt "field:account.move.template.create.template,template:"
+msgid "Template"
+msgstr "Predloga"
+
+msgctxt "field:account.move.template.keyword,create_date:"
+msgid "Create Date"
+msgstr "Izdelano"
+
+msgctxt "field:account.move.template.keyword,create_uid:"
+msgid "Create User"
+msgstr "Izdelal"
+
+msgctxt "field:account.move.template.keyword,digits:"
+msgid "Digits"
+msgstr "Decimalke"
+
+msgctxt "field:account.move.template.keyword,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.move.template.keyword,move:"
+msgid "Move"
+msgstr "Knjižba"
+
+msgctxt "field:account.move.template.keyword,name:"
+msgid "Name"
+msgstr "Naziv"
+
+msgctxt "field:account.move.template.keyword,rec_name:"
+msgid "Name"
+msgstr "Ime"
+
+msgctxt "field:account.move.template.keyword,required:"
+msgid "Required"
+msgstr "Obvezno"
+
+msgctxt "field:account.move.template.keyword,sequence:"
+msgid "Sequence"
+msgstr "Zap.št."
+
+msgctxt "field:account.move.template.keyword,string:"
+msgid "String"
+msgstr "Niz"
+
+msgctxt "field:account.move.template.keyword,type_:"
+msgid "Type"
+msgstr "Tip"
+
+msgctxt "field:account.move.template.keyword,write_date:"
+msgid "Write Date"
+msgstr "Zapisano"
+
+msgctxt "field:account.move.template.keyword,write_uid:"
+msgid "Write User"
+msgstr "Zapisal"
+
msgctxt "field:account.open_aged_balance.start,balance_type:"
msgid "Type"
msgstr "Tip"
@@ -1570,11 +1794,11 @@ msgstr "Od"
msgctxt "field:account.reconcile.show,account:"
msgid "Account"
-msgstr "Računovodstvo"
+msgstr "Konto"
msgctxt "field:account.reconcile.show,accounts:"
msgid "Account"
-msgstr "Računovodstvo"
+msgstr "Konto"
msgctxt "field:account.reconcile.show,currency_digits:"
msgid "Currency Digits"
@@ -1728,6 +1952,10 @@ msgctxt "field:account.tax,type:"
msgid "Type"
msgstr "Tip"
+msgctxt "field:account.tax,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Popravek cene"
+
msgctxt "field:account.tax,write_date:"
msgid "Write Date"
msgstr "Zapisano"
@@ -1908,6 +2136,10 @@ msgctxt "field:account.tax.line,code:"
msgid "Code"
msgstr "Šifra"
+msgctxt "field:account.tax.line,company:"
+msgid "Company"
+msgstr "Družba"
+
msgctxt "field:account.tax.line,create_date:"
msgid "Create Date"
msgstr "Izdelano"
@@ -1944,6 +2176,46 @@ msgctxt "field:account.tax.line,write_uid:"
msgid "Write User"
msgstr "Zapisal"
+msgctxt "field:account.tax.line.template,amount:"
+msgid "Amount"
+msgstr "Znesek"
+
+msgctxt "field:account.tax.line.template,code:"
+msgid "Code"
+msgstr "Šifra"
+
+msgctxt "field:account.tax.line.template,create_date:"
+msgid "Create Date"
+msgstr "Izdelano"
+
+msgctxt "field:account.tax.line.template,create_uid:"
+msgid "Create User"
+msgstr "Izdelal"
+
+msgctxt "field:account.tax.line.template,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.tax.line.template,line:"
+msgid "Line"
+msgstr "Postavka"
+
+msgctxt "field:account.tax.line.template,rec_name:"
+msgid "Name"
+msgstr "Ime"
+
+msgctxt "field:account.tax.line.template,tax:"
+msgid "Tax"
+msgstr "Davek"
+
+msgctxt "field:account.tax.line.template,write_date:"
+msgid "Write Date"
+msgstr "Zapisano"
+
+msgctxt "field:account.tax.line.template,write_uid:"
+msgid "Write User"
+msgstr "Zapisal"
+
msgctxt "field:account.tax.rule,company:"
msgid "Company"
msgstr "Družba"
@@ -2224,6 +2496,10 @@ msgctxt "field:account.tax.template,type:"
msgid "Type"
msgstr "Tip"
+msgctxt "field:account.tax.template,update_unit_price:"
+msgid "Update Unit Price"
+msgstr "Popravek cene"
+
msgctxt "field:account.tax.template,write_date:"
msgid "Write Date"
msgstr "Zapisano"
@@ -2276,6 +2552,10 @@ msgctxt "field:party.party,supplier_tax_rule:"
msgid "Supplier Tax Rule"
msgstr "Davčno pravilo dobavitelja"
+msgctxt "help:account.account,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Prikaži samo bilanco na izpisu glavne knjige"
+
msgctxt "help:account.account,reconcile:"
msgid ""
"Allow move lines of this account \n"
@@ -2296,6 +2576,10 @@ msgstr ""
"Privzeti davek pri ročno vnešenih postavkah \n"
"za dnevnike tipa \"odhodek\" in \"prihodek\""
+msgctxt "help:account.account.template,general_ledger_balance:"
+msgid "Display only the balance in the general ledger report"
+msgstr "Prikaži samo bilanco na izpisu glavne knjige"
+
msgctxt "help:account.account.type,sequence:"
msgid "Use to order the account type"
msgstr "Za razvrščanje tipov kontov"
@@ -2320,10 +2604,24 @@ msgctxt "help:account.move.line,second_currency:"
msgid "The second currency"
msgstr "Druga valuta"
+msgctxt "help:account.move.line.template,description:"
+msgid "Keywords values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"Zamenjave ključnih besed so označene z vijugastimi oklepaji ('{' in '}')"
+
msgctxt "help:account.move.print_general_journal.start,posted:"
msgid "Show only posted move"
msgstr "Prikaži samo knjižene postavke"
+msgctxt "help:account.move.template,date:"
+msgid "Leave empty for today"
+msgstr "Za današnji dan pusti prazno"
+
+msgctxt "help:account.move.template,description:"
+msgid "Keyword values substitutions are identified by braces ('{' and '}')"
+msgstr ""
+"Zamenjave ključnih besed so označene z vijugastimi oklepaji ('{' in '}')"
+
msgctxt "help:account.open_aged_balance.start,posted:"
msgid "Show only posted move"
msgstr "Prikaži samo knjižene postavke"
@@ -2392,6 +2690,12 @@ msgctxt "help:account.tax,sequence:"
msgid "Use to order the taxes"
msgstr "Za razvrščanje davkov"
+msgctxt "help:account.tax,update_unit_price:"
+msgid ""
+"If checked then the unit price for further tax computation willbe modified "
+"by this tax"
+msgstr "Če je vključeno, se bo cena osveževala pri bodočih izračunih davkov"
+
msgctxt "help:account.tax.code.open_chart.start,fiscalyear:"
msgid "Leave empty for all open fiscal year"
msgstr "Prazno za vsa odprta poslovna leta"
@@ -2489,7 +2793,7 @@ msgstr "Kratkoročno"
msgctxt ""
"model:account.account.type.template,name:account_type_template_asset_current_cash"
msgid "Cash"
-msgstr "Denarna sredstva"
+msgstr "Denar"
msgctxt ""
"model:account.account.type.template,name:account_type_template_asset_current_receivable"
@@ -2594,7 +2898,7 @@ msgstr "Dnevnik"
msgctxt "model:account.journal,name:journal_cash"
msgid "Cash"
-msgstr "Denarna sredstva"
+msgstr "Denar"
msgctxt "model:account.journal,name:journal_expense"
msgid "Expense"
@@ -2618,7 +2922,7 @@ msgstr "Tip dnevnika"
msgctxt "model:account.journal.type,name:journal_type_cash"
msgid "Cash"
-msgstr "Denarna sredstva"
+msgstr "Denar"
msgctxt "model:account.journal.type,name:journal_type_expense"
msgid "Expense"
@@ -2652,10 +2956,18 @@ msgctxt "model:account.move,name:"
msgid "Account Move"
msgstr "Knjižba"
+msgctxt "model:account.move.cancel.default,name:"
+msgid "Cancel Moves"
+msgstr "Preklic knjižb"
+
msgctxt "model:account.move.line,name:"
msgid "Account Move Line"
msgstr "Postavka knjižbe"
+msgctxt "model:account.move.line.template,name:"
+msgid "Account Move Line Template"
+msgstr "Predloga postavke knjižbe"
+
msgctxt "model:account.move.open_journal.ask,name:"
msgid "Open Journal Ask"
msgstr "Odpri dnevnik"
@@ -2672,6 +2984,22 @@ msgctxt "model:account.move.reconciliation,name:"
msgid "Account Move Reconciliation Lines"
msgstr "Usklajene postavke knjižbe"
+msgctxt "model:account.move.template,name:"
+msgid "Account Move Template"
+msgstr "Predloga knjižbe"
+
+msgctxt "model:account.move.template.create.keywords,name:"
+msgid "Create Move from Template"
+msgstr "Izdelava knjižbe iz predloge"
+
+msgctxt "model:account.move.template.create.template,name:"
+msgid "Create Move from Template"
+msgstr "Izdelava knjižbe iz predloge"
+
+msgctxt "model:account.move.template.keyword,name:"
+msgid "Account Move Template Keyword"
+msgstr "Ključna beseda predloge knjižbe"
+
msgctxt "model:account.open_aged_balance.start,name:"
msgid "Open Aged Balance"
msgstr "Odpri bilanco zapadlih postavk"
@@ -2732,6 +3060,10 @@ msgctxt "model:account.tax.line,name:"
msgid "Tax Line"
msgstr "Davčna postavka"
+msgctxt "model:account.tax.line.template,name:"
+msgid "Account Tax Line Template"
+msgstr "Predloga davčne postavke"
+
msgctxt "model:account.tax.rule,name:"
msgid "Tax Rule"
msgstr "Davčno pravilo"
@@ -2872,6 +3204,14 @@ msgctxt "model:ir.action,name:act_move_reconciliation_lines"
msgid "Reconciliation Lines"
msgstr "Postavke uskladitve"
+msgctxt "model:ir.action,name:act_move_template_create"
+msgid "Create Move from Template"
+msgstr "Izdelava knjižbe iz predloge"
+
+msgctxt "model:ir.action,name:act_move_template_form"
+msgid "Account Move Template"
+msgstr "Predloga knjižbe"
+
msgctxt "model:ir.action,name:act_open_account"
msgid "Open Move Account"
msgstr "Odpri konto postavke"
@@ -3160,6 +3500,14 @@ msgctxt "model:ir.ui.menu,name:menu_move_form"
msgid "Account Moves"
msgstr "Knjižbe"
+msgctxt "model:ir.ui.menu,name:menu_move_template_create"
+msgid "Create Move from Template"
+msgstr "Izdelava knjižbe iz predloge"
+
+msgctxt "model:ir.ui.menu,name:menu_move_template_form"
+msgid "Account Move Template"
+msgstr "Predloga knjižbe"
+
msgctxt "model:ir.ui.menu,name:menu_open_balance_sheet"
msgid "Balance Sheet"
msgstr "Bilanca stanja"
@@ -3680,6 +4028,30 @@ msgctxt "selection:account.move.line,state:"
msgid "Valid"
msgstr "Odobreno"
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Credit"
+msgstr "Kredit"
+
+msgctxt "selection:account.move.line.template,operation:"
+msgid "Debit"
+msgstr "Debet"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Char"
+msgstr "Znakovni"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Date"
+msgstr "Datum"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Numeric"
+msgstr "Numerični"
+
+msgctxt "selection:account.move.template.keyword,type_:"
+msgid "Party"
+msgstr "Partner"
+
msgctxt "selection:account.open_aged_balance.start,balance_type:"
msgid "Both"
msgstr "Vse"
@@ -3958,6 +4330,22 @@ msgctxt "view:account.journal:"
msgid "Journals"
msgstr "Dnevniki"
+msgctxt "view:account.move.cancel.default:"
+msgid "Cancel Moves"
+msgstr "Preklic knjižb"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Template"
+msgstr "Predloga postavke knjižbe"
+
+msgctxt "view:account.move.line.template:"
+msgid "Account Move Line Templates"
+msgstr "Predloge postavk knjižbe"
+
+msgctxt "view:account.move.line.template:"
+msgid "Other Info"
+msgstr "Drugo"
+
msgctxt "view:account.move.line:"
msgid "Account Move Line"
msgstr "Postavka knjižbe"
@@ -3998,6 +4386,30 @@ msgctxt "view:account.move.reconciliation:"
msgid "Reconciliations"
msgstr "Uskladitve"
+msgctxt "view:account.move.template.create.template:"
+msgid "Create Move from Template"
+msgstr "Izdelava knjižbe iz predloge"
+
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keyword"
+msgstr "Ključna beseda predloge postavke knjižbe"
+
+msgctxt "view:account.move.template.keyword:"
+msgid "Account Move Template Keywords"
+msgstr "Ključne besede predloge postavke knjižbe"
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Template"
+msgstr "Predloga postavke knjižbe"
+
+msgctxt "view:account.move.template:"
+msgid "Account Move Templates"
+msgstr "Predloge postavk knjižb"
+
+msgctxt "view:account.move.template:"
+msgid "Template"
+msgstr "Predloga"
+
msgctxt "view:account.move:"
msgid "Account Move"
msgstr "Knjižba"
@@ -4106,6 +4518,14 @@ msgctxt "view:account.tax.group:"
msgid "Tax Groups"
msgstr "Davčne skupine"
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Template"
+msgstr "Predloga davčne postavke"
+
+msgctxt "view:account.tax.line.template:"
+msgid "Account Tax Line Templates"
+msgstr "Predloge davčnih postavk"
+
msgctxt "view:account.tax.line:"
msgid "Account Tax Line"
msgstr "Davčna postavka"
@@ -4239,7 +4659,7 @@ msgid "Cancel"
msgstr "Prekliči"
msgctxt "wizard_button:account.create_chart,start,account:"
-msgid "Ok"
+msgid "OK"
msgstr "V redu"
msgctxt "wizard_button:account.create_chart,start,end:"
@@ -4247,7 +4667,7 @@ msgid "Cancel"
msgstr "Prekliči"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,balance:"
-msgid "Ok"
+msgid "OK"
msgstr "V redu"
msgctxt "wizard_button:account.fiscalyear.balance_non_deferral,start,end:"
@@ -4262,6 +4682,14 @@ msgctxt "wizard_button:account.fiscalyear.close,start,end:"
msgid "Cancel"
msgstr "Prekliči"
+msgctxt "wizard_button:account.move.cancel,default,cancel:"
+msgid "OK"
+msgstr "V redu"
+
+msgctxt "wizard_button:account.move.cancel,default,end:"
+msgid "Cancel"
+msgstr "Prekliči"
+
msgctxt "wizard_button:account.move.open_journal,ask,end:"
msgid "Cancel"
msgstr "Prekliči"
@@ -4286,6 +4714,22 @@ msgctxt "wizard_button:account.move.reconcile_lines,writeoff,reconcile:"
msgid "Reconcile"
msgstr "Uskladi"
+msgctxt "wizard_button:account.move.template.create,keywords,create_:"
+msgid "Create"
+msgstr "Izdelaj"
+
+msgctxt "wizard_button:account.move.template.create,keywords,end:"
+msgid "Cancel"
+msgstr "Prekliči"
+
+msgctxt "wizard_button:account.move.template.create,template,end:"
+msgid "Cancel"
+msgstr "Prekliči"
+
+msgctxt "wizard_button:account.move.template.create,template,keywords:"
+msgid "Next"
+msgstr "Naprej"
+
msgctxt "wizard_button:account.open_aged_balance,start,end:"
msgid "Cancel"
msgstr "Prekliči"
@@ -4371,5 +4815,5 @@ msgid "Update"
msgstr "Posodobitev"
msgctxt "wizard_button:account.update_chart,succeed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "V redu"
diff --git a/move.py b/move.py
index a9500e9..3ad1d2b 100644
--- a/move.py
+++ b/move.py
@@ -1,15 +1,12 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from decimal import Decimal
import datetime
from itertools import groupby, combinations
from operator import itemgetter
from collections import defaultdict
-try:
- from sql import Null
-except ImportError:
- Null = None
+from sql import Null
from sql.aggregate import Sum
from sql.conditionals import Coalesce, Case
@@ -18,7 +15,7 @@ from trytond.wizard import Wizard, StateTransition, StateView, StateAction, \
Button
from trytond.report import Report
from trytond import backend
-from trytond.pyson import Eval, Bool, PYSONEncoder
+from trytond.pyson import Eval, Bool, PYSONEncoder, If
from trytond.transaction import Transaction
from trytond.pool import Pool, PoolMeta
from trytond.rpc import RPC
@@ -30,7 +27,7 @@ __all__ = ['Move', 'Reconciliation', 'Line', 'OpenJournalAsk',
'ReconcileLinesWriteOff', 'ReconcileLines',
'UnreconcileLines',
'Reconcile', 'ReconcileShow',
- 'CancelMoves',
+ 'CancelMoves', 'CancelMovesDefault',
'FiscalYearLine', 'FiscalYear2',
'PrintGeneralJournalStart', 'PrintGeneralJournal', 'GeneralJournal']
__metaclass__ = PoolMeta
@@ -52,8 +49,13 @@ class Move(ModelSQL, ModelView):
number = fields.Char('Number', required=True, readonly=True)
post_number = fields.Char('Post Number', readonly=True,
help='Also known as Folio Number')
+ company = fields.Many2One('company.company', 'Company', required=True,
+ states=_MOVE_STATES, depends=_MOVE_DEPENDS)
period = fields.Many2One('account.period', 'Period', required=True,
- states=_MOVE_STATES, depends=_MOVE_DEPENDS, select=True)
+ domain=[
+ ('company', '=', Eval('company', -1)),
+ ],
+ states=_MOVE_STATES, depends=_MOVE_DEPENDS + ['company'], select=True)
journal = fields.Many2One('account.journal', 'Journal', required=True,
states=_MOVE_STATES, depends=_MOVE_DEPENDS)
date = fields.Date('Effective Date', required=True, states=_MOVE_STATES,
@@ -68,7 +70,10 @@ class Move(ModelSQL, ModelView):
('posted', 'Posted'),
], 'State', required=True, readonly=True, select=True)
lines = fields.One2Many('account.move.line', 'move', 'Lines',
- states=_MOVE_STATES, depends=_MOVE_DEPENDS,
+ domain=[
+ ('account.company', '=', Eval('company', -1)),
+ ],
+ states=_MOVE_STATES, depends=_MOVE_DEPENDS + ['company'],
context={
'journal': Eval('journal'),
'period': Eval('period'),
@@ -90,8 +95,6 @@ class Move(ModelSQL, ModelView):
'"%(move)s" to draft in journal "%(journal)s".'),
'modify_posted_move': ('You can not modify move "%s" because '
'it is already posted.'),
- 'company_in_move': ('You can not create lines on accounts'
- 'of different companies in move "%s".'),
'date_outside_period': ('You can not create move "%(move)s" '
'because it\'s date is outside its period.'),
'draft_closed_period': ('You can not set to draft move '
@@ -114,6 +117,12 @@ class Move(ModelSQL, ModelView):
TableHandler = backend.get('TableHandler')
cursor = Transaction().cursor
table = TableHandler(cursor, cls, module_name)
+ sql_table = cls.__table__()
+ pool = Pool()
+ Period = pool.get('account.period')
+ period = Period.__table__()
+ FiscalYear = pool.get('account.fiscalyear')
+ fiscalyear = FiscalYear.__table__()
# Migration from 2.4:
# - name renamed into number
@@ -123,8 +132,19 @@ class Move(ModelSQL, ModelView):
if table.column_exist('reference'):
table.column_rename('reference', 'post_number')
+ created_company = not table.column_exist('company')
+
super(Move, cls).__register__(module_name)
+ # Migration from 3.4: new company field
+ if created_company:
+ # Don't use UPDATE FROM because SQLite nor MySQL support it.
+ value = period.join(fiscalyear,
+ condition=period.fiscalyear == fiscalyear.id).select(
+ fiscalyear.company,
+ where=period.id == sql_table.period)
+ cursor.execute(*sql_table.update([sql_table.company], [value]))
+
table = TableHandler(cursor, cls, module_name)
table.index_action(['journal', 'period'], 'add')
@@ -132,6 +152,10 @@ class Move(ModelSQL, ModelView):
table.index_action('create_date', action='add')
@staticmethod
+ def default_company():
+ return Transaction().context.get('company')
+
+ @staticmethod
def default_period():
Period = Pool().get('account.period')
return Period.find(Transaction().context.get('company'),
@@ -189,17 +213,8 @@ class Move(ModelSQL, ModelView):
def validate(cls, moves):
super(Move, cls).validate(moves)
for move in moves:
- move.check_company()
move.check_date()
- def check_company(self):
- company_id = -1
- for line in self.lines:
- if company_id < 0:
- company_id = line.account.company.id
- if line.account.company.id != company_id:
- self.raise_user_error('company_in_move', (self.rec_name,))
-
def check_date(self):
if (self.date < self.period.start_date
or self.date > self.period.end_date):
@@ -216,7 +231,11 @@ class Move(ModelSQL, ModelView):
@classmethod
def search_rec_name(cls, name, clause):
- return ['OR',
+ if clause[1].startswith('!') or clause[1].startswith('not '):
+ bool_op = 'AND'
+ else:
+ bool_op = 'OR'
+ return [bool_op,
('post_number',) + tuple(clause[1:]),
(cls._rec_name,) + tuple(clause[1:]),
]
@@ -293,17 +312,10 @@ class Move(ModelSQL, ModelView):
'''
pool = Pool()
MoveLine = pool.get('account.move.line')
- User = pool.get('res.user')
line = MoveLine.__table__()
cursor = Transaction().cursor
- if (Transaction().user == 0
- and Transaction().context.get('user')):
- user = Transaction().context.get('user')
- else:
- user = Transaction().user
- company = User(user).company
amounts = {}
move2draft_lines = {}
for sub_move_ids in grouped_slice([m.id for m in moves]):
@@ -331,7 +343,7 @@ class Move(ModelSQL, ModelView):
if not isinstance(amount, Decimal):
amount = Decimal(amount)
draft_lines = MoveLine.browse(move2draft_lines.get(move.id, []))
- if not company.currency.is_zero(amount):
+ if not move.company.currency.is_zero(amount):
draft_moves.append(move.id)
continue
if not draft_lines:
@@ -370,28 +382,20 @@ class Move(ModelSQL, ModelView):
})
return default
- def cancel(self):
+ def cancel(self, default=None):
'Return a cancel move'
- pool = Pool()
- Line = pool.get('account.move.line')
- TaxLine = pool.get('account.tax.line')
- default = self._cancel_default()
+ if default is None:
+ default = {}
+ default.update(self._cancel_default())
cancel_move, = self.copy([self], default=default)
- lines = []
- tax_lines = []
for line in cancel_move.lines:
line.debit *= -1
line.credit *= -1
- lines.extend(([line], line._save_values))
- line._values = None
for tax_line in line.tax_lines:
tax_line.amount *= -1
- tax_lines.extend(([tax_line], tax_line._save_values))
- tax_line._values = None
- if lines:
- Line.write(*lines)
- if tax_lines:
- TaxLine.write(*tax_lines)
+ line.tax_lines = line.tax_lines # Force tax_lines changing
+ cancel_move.lines = cancel_move.lines # Force lines changing
+ cancel_move.save()
return cancel_move
@classmethod
@@ -473,7 +477,7 @@ class Reconciliation(ModelSQL, ModelView):
'configured as not reconcilable.'),
'reconciliation_different_parties': ('You can not reconcile '
'line "%(line)s" because it\'s party "%(party1)s" is '
- 'different from %(party2)s".'),
+ 'different from "%(party2)s".'),
'reconciliation_unbalanced': ('You can not create a '
'reconciliation where debit "%(debit)s" and credit '
'"%(credit)s" differ.'),
@@ -585,8 +589,8 @@ class Line(ModelSQL, ModelView):
'get_move_field', setter='set_move_field',
searcher='search_move_field')
amount_second_currency = fields.Numeric('Amount Second Currency',
- digits=(16, Eval('second_currency_digits', 2)),
- help='The amount expressed in a second currency',
+ digits=(16, Eval('second_currency_digits', 2)),
+ help='The amount expressed in a second currency',
states={
'required': Bool(Eval('second_currency')),
},
@@ -602,8 +606,8 @@ class Line(ModelSQL, ModelView):
'required': Eval('party_required', False),
'invisible': ~Eval('party_required', False),
},
- depends=['party_required'])
- party_required= fields.Function(fields.Boolean('Party Required'),
+ depends=['party_required'], ondelete='RESTRICT')
+ party_required = fields.Function(fields.Boolean('Party Required'),
'on_change_with_party_required')
maturity_date = fields.Date('Maturity Date',
help='This field is used for payable and receivable lines. \n'
@@ -623,6 +627,14 @@ class Line(ModelSQL, ModelView):
'get_currency_digits')
second_currency_digits = fields.Function(fields.Integer(
'Second Currency Digits'), 'get_currency_digits')
+ amount = fields.Function(fields.Numeric('Amount',
+ digits=(16, Eval('amount_currency_digits', 2)),
+ depends=['amount_currency_digits']),
+ 'get_amount')
+ amount_currency = fields.Function(fields.Many2One('currency.currency',
+ 'Amount Currency'), 'get_amount_currency')
+ amount_currency_digits = fields.Function(fields.Integer(
+ 'Amount Currency Digits'), 'get_amount_currency')
@classmethod
def __setup__(cls):
@@ -635,6 +647,10 @@ class Line(ModelSQL, ModelView):
('credit_debit',
'CHECK(credit * debit = 0.0)',
'Wrong credit/debit values.'),
+ ('second_currency_sign',
+ 'CHECK(COALESCE(amount_second_currency, 0) '
+ '* (debit - credit) >= 0)',
+ 'wrong_second_currency_sign'),
]
cls.__rpc__.update({
'on_write': RPC(instantiate=0),
@@ -657,6 +673,7 @@ class Line(ModelSQL, ModelView):
'already_reconciled': 'Line "%s" (%d) already reconciled.',
'party_required': 'Party is required on line "%s"',
'party_set': 'Party must not be set on line "%s"',
+ 'wrong_second_currency_sign': 'Wrong second currency sign.',
})
@classmethod
@@ -735,7 +752,7 @@ class Line(ModelSQL, ModelView):
with_rec_name=with_rec_name)
if 'move' not in fields:
- #Not manual entry
+ # Not manual entry
if 'date' in values:
values = values.copy()
del values['date']
@@ -915,56 +932,56 @@ class Line(ModelSQL, ModelView):
return Move.get_origin()
@fields.depends('account', 'debit', 'credit', 'tax_lines', 'journal',
- 'move')
+ 'move', 'amount_second_currency')
def on_change_debit(self):
- changes = {}
Journal = Pool().get('account.journal')
if self.journal or Transaction().context.get('journal'):
journal = self.journal or Journal(Transaction().context['journal'])
if journal.type in ('expense', 'revenue'):
- changes['tax_lines'] = self._compute_tax_lines(journal.type)
- if not changes['tax_lines']:
- del changes['tax_lines']
+ self._compute_tax_lines(journal.type)
if self.debit:
- changes['credit'] = Decimal('0.0')
- return changes
+ self.credit = Decimal('0.0')
+ self._amount_second_currency_sign()
@fields.depends('account', 'debit', 'credit', 'tax_lines', 'journal',
- 'move')
+ 'move', 'amount_second_currency')
def on_change_credit(self):
- changes = {}
Journal = Pool().get('account.journal')
if self.journal or Transaction().context.get('journal'):
journal = self.journal or Journal(Transaction().context['journal'])
if journal.type in ('expense', 'revenue'):
- changes['tax_lines'] = self._compute_tax_lines(journal.type)
- if not changes['tax_lines']:
- del changes['tax_lines']
+ self._compute_tax_lines(journal.type)
if self.credit:
- changes['debit'] = Decimal('0.0')
- return changes
+ self.debit = Decimal('0.0')
+ self._amount_second_currency_sign()
+
+ @fields.depends('amount_second_currency', 'debit', 'credit')
+ def on_change_amount_second_currency(self):
+ self._amount_second_currency_sign()
+
+ def _amount_second_currency_sign(self):
+ 'Set correct sign to amount_second_currency'
+ if self.amount_second_currency:
+ self.amount_second_currency = \
+ self.amount_second_currency.copy_sign(self.debit - self.credit)
@fields.depends('account', 'debit', 'credit', 'tax_lines', 'journal',
'move')
def on_change_account(self):
Journal = Pool().get('account.journal')
- changes = {}
if Transaction().context.get('journal'):
journal = Journal(Transaction().context['journal'])
if journal.type in ('expense', 'revenue'):
- changes['tax_lines'] = self._compute_tax_lines(journal.type)
- if not changes['tax_lines']:
- del changes['tax_lines']
+ self._compute_tax_lines(journal.type)
if self.account:
- changes['currency_digits'] = self.account.currency_digits
+ self.currency_digits = self.account.currency_digits
if self.account.second_currency:
- changes['second_currency_digits'] = \
+ self.second_currency_digits = \
self.account.second_currency.digits
if not self.account.party_required:
- changes['party'] = None
- return changes
+ self.party = None
@fields.depends('account')
def on_change_with_party_required(self, name=None):
@@ -973,17 +990,14 @@ class Line(ModelSQL, ModelView):
return False
def _compute_tax_lines(self, journal_type):
- res = {}
pool = Pool()
- TaxCode = pool.get('account.tax.code')
Tax = pool.get('account.tax')
TaxLine = pool.get('account.tax.line')
if self.move:
- #Only for first line
- return res
- if self.tax_lines:
- res['remove'] = [x['id'] for x in self.tax_lines]
+ # Only for first line
+ return
+ tax_lines = []
if self.account:
debit = self.debit or Decimal('0.0')
credit = self.credit or Decimal('0.0')
@@ -1012,36 +1026,33 @@ class Line(ModelSQL, ModelView):
for code_id, tax_id in base_amounts:
if not base_amounts[code_id, tax_id]:
continue
- value = TaxLine.default_get(TaxLine._fields.keys())
- value.update({
- 'amount': base_amounts[code_id, tax_id],
- 'currency_digits': self.account.currency_digits,
- 'code': code_id,
- 'code.rec_name': TaxCode(code_id).rec_name,
- 'tax': tax_id,
- 'tax.rec_name': Tax(tax_id).rec_name,
- })
- res.setdefault('add', []).append(value)
- return res
+ tax_line = TaxLine(**TaxLine.default_get(
+ TaxLine._fields.keys()))
+
+ tax_line.amount = base_amounts[code_id, tax_id],
+ tax_line.currency_digits = self.account.currency_digits
+ tax_line.code = code_id
+ tax_line.tax = tax_id
+ tax_lines.append(tax_line)
+ self.tax_lines = tax_lines
@fields.depends('move', 'party', 'account', 'debit', 'credit', 'journal')
def on_change_party(self):
Journal = Pool().get('account.journal')
cursor = Transaction().cursor
- res = {}
if (not self.party) or self.account:
- return res
+ return
if not self.party.account_receivable \
or not self.party.account_payable:
- return res
+ return
if self.party and (not self.debit) and (not self.credit):
type_name = self.__class__.debit.sql_type().base
table = self.__table__()
column = Coalesce(Sum(Coalesce(table.debit, 0)
- Coalesce(table.credit, 0)), 0).cast(type_name)
- where = ((table.reconciliation == None)
+ where = ((table.reconciliation == Null)
& (table.party == self.party.id))
cursor.execute(*table.select(column,
where=where
@@ -1052,16 +1063,14 @@ class Line(ModelSQL, ModelView):
amount = Decimal(str(amount))
if not self.party.account_receivable.currency.is_zero(amount):
if amount > Decimal('0.0'):
- res['credit'] = \
+ self.credit = \
self.party.account_receivable.currency.round(amount)
- res['debit'] = Decimal('0.0')
+ self.debit = Decimal('0.0')
else:
- res['credit'] = Decimal('0.0')
- res['debit'] = \
+ self.credit = Decimal('0.0')
+ self.debit = \
- self.party.account_receivable.currency.round(amount)
- res['account'] = self.party.account_receivable.id
- res['account.rec_name'] = \
- self.party.account_receivable.rec_name
+ self.account = self.party.account_receivable
else:
cursor.execute(*table.select(column,
where=where
@@ -1069,40 +1078,30 @@ class Line(ModelSQL, ModelView):
amount = cursor.fetchone()[0]
if not self.party.account_payable.currency.is_zero(amount):
if amount > Decimal('0.0'):
- res['credit'] = \
+ self.credit = \
self.party.account_payable.currency.round(amount)
- res['debit'] = Decimal('0.0')
+ self.debit = Decimal('0.0')
else:
- res['credit'] = Decimal('0.0')
- res['debit'] = \
+ self.credit = Decimal('0.0')
+ self.debit = \
- self.party.account_payable.currency.round(amount)
- res['account'] = self.party.account_payable.id
- res['account.rec_name'] = \
- self.party.account_payable.rec_name
+ self.account = self.party.account_payable
if self.party and self.debit:
if self.debit > Decimal('0.0'):
- if 'account' not in res:
- res['account'] = self.party.account_receivable.id
- res['account.rec_name'] = \
- self.party.account_receivable.rec_name
+ if not self.account:
+ self.account = self.party.account_receivable
else:
- if 'account' not in res:
- res['account'] = self.party.account_payable.id
- res['account.rec_name'] = \
- self.party.account_payable.rec_name
+ if not self.account:
+ self.account = self.party.account_payable
if self.party and self.credit:
if self.credit > Decimal('0.0'):
- if 'account' not in res:
- res['account'] = self.party.account_payable.id
- res['account.rec_name'] = \
- self.party.account_payable.rec_name
+ if not self.account:
+ self.account = self.party.account_payable
else:
- if 'account' not in res:
- res['account'] = self.party.account_receivable.id
- res['account.rec_name'] = \
- self.party.account_receivable.rec_name
+ if not self.account:
+ self.account = self.party.account_receivable
journal = None
if self.journal:
@@ -1111,16 +1110,11 @@ class Line(ModelSQL, ModelView):
journal = Journal(Transaction().context.get('journal'))
if journal and self.party:
if journal.type == 'revenue':
- if 'account' not in res:
- res['account'] = self.party.account_receivable.id
- res['account.rec_name'] = \
- self.party.account_receivable.rec_name
+ if not self.account:
+ self.account = self.party.account_receivable
elif journal.type == 'expense':
- if 'account' not in res:
- res['account'] = self.party.account_payable.id
- res['account.rec_name'] = \
- self.party.account_payable.rec_name
- return res
+ if not self.account:
+ self.account = self.party.account_payable
def get_move_field(self, name):
field = getattr(self.__class__, name)
@@ -1171,6 +1165,23 @@ class Line(ModelSQL, ModelView):
order_origin = _order_move_field('origin')
order_move_state = _order_move_field('state')
+ def get_amount(self, name):
+ sign = 1 if self.account.type.display_balance == 'debit-credit' else -1
+ if self.amount_second_currency is not None:
+ return self.amount_second_currency * sign
+ else:
+ return self.debit - self.credit * sign
+
+ def get_amount_currency(self, name):
+ if self.second_currency:
+ currency = self.second_currency
+ else:
+ currency = self.account.currency
+ if name == 'amount_currency':
+ return currency.id
+ elif name == 'amount_currency_digits':
+ return currency.digits
+
def get_rec_name(self, name):
if self.debit > self.credit:
return self.account.rec_name
@@ -1199,6 +1210,7 @@ class Line(ModelSQL, ModelView):
fiscalyears = FiscalYear.search([
('start_date', '<=', Transaction().context['date']),
('end_date', '>=', Transaction().context['date']),
+ ('company', '=', Transaction().context.get('company')),
], limit=1)
fiscalyear_id = fiscalyears and fiscalyears[0].id or 0
@@ -1245,6 +1257,7 @@ class Line(ModelSQL, ModelView):
if not Transaction().context.get('fiscalyear'):
fiscalyears = FiscalYear.search([
('state', '=', 'open'),
+ ('company', '=', Transaction().context.get('company')),
])
fiscalyear_ids = [f.id for f in fiscalyears] or [0]
else:
@@ -1428,6 +1441,34 @@ class Line(ModelSQL, ModelView):
return value + ': ' + journal_period.rec_name
@classmethod
+ def view_toolbar_get(cls):
+ pool = Pool()
+ Template = pool.get('account.move.template')
+
+ toolbar = super(Line, cls).view_toolbar_get()
+
+ # Add a wizard entry for each templates
+ context = Transaction().context
+ company = context.get('company')
+ journal = context.get('journal')
+ period = context.get('period')
+ if company and journal and period:
+ templates = Template.search([
+ ('company', '=', company),
+ ('journal', '=', journal),
+ ])
+ for template in templates:
+ action = toolbar['action']
+ # Use template id for action id to auto-select the template
+ action.append({
+ 'name': template.name,
+ 'type': 'ir.action.wizard',
+ 'wiz_name': 'account.move.template.create',
+ 'id': template.id,
+ })
+ return toolbar
+
+ @classmethod
def fields_view_get(cls, view_id=None, view_type='form'):
Journal = Pool().get('account.journal')
result = super(Line, cls).fields_view_get(view_id=view_id,
@@ -1467,6 +1508,11 @@ class Line(ModelSQL, ModelView):
return result
@classmethod
+ def view_attributes(cls):
+ return [('/tree[@on_write="on_write"]', 'colors',
+ If(Eval('state') == 'draft', 'red', 'black'))]
+
+ @classmethod
def reconcile(cls, lines, journal=None, date=None, account=None,
description=None):
pool = Pool()
@@ -1480,7 +1526,7 @@ class Line(ModelSQL, ModelView):
cls.raise_user_error('already_reconciled',
error_args=(line.move.number, line.id,))
- lines = lines[:]
+ lines = list(lines)
reconcile_account = None
reconcile_party = None
amount = Decimal('0.0')
@@ -1862,7 +1908,7 @@ class Reconcile(Wizard):
def _default_lines(self):
'Return the larger list of lines which can be reconciled'
currency = self.show.account.company.currency
- chunk = config.getint('account', 'reconciliation_chunk', 10)
+ chunk = config.getint('account', 'reconciliation_chunk', default=10)
# Combination is exponential so it must be limited to small number
default = []
for lines in grouped_slice(self._all_lines(), chunk):
@@ -1895,10 +1941,11 @@ class Reconcile(Wizard):
class ReconcileShow(ModelView):
'Reconcile'
__name__ = 'account.reconcile.show'
- accounts = fields.One2Many('account.account', None, 'Account',
+ accounts = fields.Many2Many('account.account', None, None, 'Account',
readonly=True)
account = fields.Many2One('account.account', 'Account', readonly=True)
- parties = fields.One2Many('party.party', None, 'Parties', readonly=True)
+ parties = fields.Many2Many('party.party', None, None, 'Parties',
+ readonly=True)
party = fields.Many2One('party.party', 'Party', readonly=True)
lines = fields.Many2Many('account.move.line', None, None, 'Lines',
domain=[
@@ -1943,9 +1990,20 @@ class ReconcileShow(ModelView):
class CancelMoves(Wizard):
'Cancel Moves'
__name__ = 'account.move.cancel'
- start_state = 'cancel'
+ start_state = 'default'
+ default = StateView('account.move.cancel.default',
+ 'account.move_cancel_default_view_form', [
+ Button('Cancel', 'end', 'tryton-cancel'),
+ Button('OK', 'cancel', 'tryton-ok', default=True),
+ ])
cancel = StateTransition()
+ def default_cancel(self, move):
+ default = {}
+ if self.default.description:
+ default['description'] = self.default.description
+ return default
+
def transition_cancel(self):
pool = Pool()
Move = pool.get('account.move')
@@ -1953,7 +2011,8 @@ class CancelMoves(Wizard):
moves = Move.browse(Transaction().context['active_ids'])
for move in moves:
- cancel_move = move.cancel()
+ default = self.default_cancel(move)
+ cancel_move = move.cancel(default=default)
to_reconcile = defaultdict(list)
for line in move.lines + cancel_move.lines:
if line.account.reconcile:
@@ -1963,6 +2022,12 @@ class CancelMoves(Wizard):
return 'end'
+class CancelMovesDefault(ModelView):
+ 'Cancel Moves'
+ __name__ = 'account.move.cancel.default'
+ description = fields.Char('Description')
+
+
class FiscalYearLine(ModelSQL):
'Fiscal Year - Move Line'
__name__ = 'account.fiscalyear-account.move.line'
@@ -2044,15 +2109,16 @@ class GeneralJournal(Report):
order=[('date', 'ASC'), ('id', 'ASC')])
@classmethod
- def parse(cls, report, moves, data, localcontext):
+ def get_context(cls, records, data):
+ report_context = super(GeneralJournal, cls).get_context(records, data)
+
Company = Pool().get('company.company')
company = Company(data['company'])
- localcontext['company'] = company
- localcontext['digits'] = company.currency.digits
- localcontext['from_date'] = data['from_date']
- localcontext['to_date'] = data['to_date']
+ report_context['company'] = company
+ report_context['digits'] = company.currency.digits
+ report_context['from_date'] = data['from_date']
+ report_context['to_date'] = data['to_date']
- return super(GeneralJournal, cls).parse(report, moves, data,
- localcontext)
+ return report_context
diff --git a/move.xml b/move.xml
index 0c1ba90..86283ca 100644
--- a/move.xml
+++ b/move.xml
@@ -16,8 +16,12 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_move_form">
<field name="name">Account Moves</field>
<field name="res_model">account.move</field>
- <field name="domain">[('period.fiscalyear.company.id', '=', Eval('context', {}).get('company', -1))]</field>
- <field name="search_value">[('create_date', '>=', DateTime(hour=0, minute=0, second=0, microsecond=0, delta_years=-1))]</field>
+ <field name="domain"
+ eval="[('company', '=', Eval('context', {}).get('company', -1))]"
+ pyson="1"/>
+ <field name="search_value"
+ eval="[('create_date', '>=', DateTime(hour=0, minute=0, second=0, microsecond=0, delta_years=-1))]"
+ pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_move_form_view1">
<field name="sequence" eval="10"/>
@@ -84,7 +88,9 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_move_reconciliation_lines">
<field name="name">Reconciliation Lines</field>
<field name="res_model">account.move.line</field>
- <field name="domain">[('reconciliation', 'in', Eval('active_ids'))]</field>
+ <field name="domain"
+ eval="[('reconciliation', 'in', Eval('active_ids'))]"
+ pyson="1"/>
</record>
<record model="ir.action.keyword" id="act_move_reconciliation_lines_keyword1">
<field name="keyword">form_relate</field>
@@ -163,6 +169,13 @@ this repository contains the full copyright notices and license terms. -->
<field name="name">move_line_tree_move</field>
</record>
+ <record model="ir.ui.view" id="move_line_view_list_payable_receivable">
+ <field name="model">account.move.line</field>
+ <field name="type">tree</field>
+ <field name="priority" eval="30"/>
+ <field name="name">move_line_list_payable_receivable</field>
+ </record>
+
<record model="ir.action.act_window" id="act_move_line_form">
<field name="name">Account Move Lines</field>
<field name="res_model">account.move.line</field>
@@ -192,20 +205,33 @@ this repository contains the full copyright notices and license terms. -->
id="act_move_line_payable_receivable">
<field name="name">Payable/Receivable Lines</field>
<field name="res_model">account.move.line</field>
- <field name="domain">[('party', 'in', Eval('active_ids')), ('account.kind', 'in', ['payable', 'receivable']), ('reconciliation', '=', None)]</field>
+ <field name="domain"
+ eval="[('party', 'in', Eval('active_ids')), ('account.kind', 'in', ['payable', 'receivable'])]"
+ pyson="1"/>
+ <field name="search_value"
+ eval="[('reconciliation', '=', None)]" pyson="1"/>
+ <field name="order" eval="[('date', 'DESC')]" pyson="1"/>
+ </record>
+ <record model="ir.action.act_window.view"
+ id="act_move_line_payable_receivable_view1">
+ <field name="sequence" eval="10"/>
+ <field name="view" ref="move_line_view_list_payable_receivable"/>
+ <field name="act_window" ref="act_move_line_payable_receivable"/>
</record>
<record model="ir.action.act_window.domain"
id="act_move_line_payable_receivable_domain_payable">
<field name="name">Payable</field>
<field name="sequence" eval="10"/>
- <field name="domain">[('account.kind', '=', 'payable')]</field>
+ <field name="domain"
+ eval="[('account.kind', '=', 'payable')]" pyson="1"/>
<field name="act_window" ref="act_move_line_payable_receivable"/>
</record>
<record model="ir.action.act_window.domain"
id="act_move_line_payable_receivable_domain_receivable">
<field name="name">Receivable</field>
<field name="sequence" eval="20"/>
- <field name="domain">[('account.kind', '=', 'receivable')]</field>
+ <field name="domain"
+ eval="[('account.kind', '=', 'receivable')]" pyson="1"/>
<field name="act_window" ref="act_move_line_payable_receivable"/>
</record>
<record model="ir.action.act_window.domain"
@@ -310,6 +336,12 @@ this repository contains the full copyright notices and license terms. -->
<field name="action" ref="act_cancel_moves"/>
</record>
+ <record model="ir.ui.view" id="move_cancel_default_view_form">
+ <field name="model">account.move.cancel.default</field>
+ <field name="type">form</field>
+ <field name="name">move_cancel_default_form</field>
+ </record>
+
<record model="ir.ui.view" id="print_general_journal_start_view_form">
<field name="model">account.move.print_general_journal.start</field>
<field name="type">form</field>
diff --git a/move_template.py b/move_template.py
new file mode 100644
index 0000000..8e08832
--- /dev/null
+++ b/move_template.py
@@ -0,0 +1,363 @@
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
+from xml.sax.saxutils import quoteattr
+from decimal import Decimal
+
+from simpleeval import simple_eval
+from sql import Null
+
+from trytond.model import ModelSQL, ModelView, fields
+from trytond.pyson import Eval
+from trytond.wizard import (Wizard, StateView, StateAction, StateTransition,
+ Button)
+from trytond.transaction import Transaction
+from trytond.pool import Pool
+from trytond.tools import decistmt
+
+__all__ = ['MoveTemplate', 'MoveTemplateKeyword',
+ 'MoveLineTemplate', 'TaxLineTemplate',
+ 'CreateMove', 'CreateMoveTemplate', 'CreateMoveKeywords']
+
+
+class MoveTemplate(ModelSQL, ModelView):
+ 'Account Move Template'
+ __name__ = 'account.move.template'
+ name = fields.Char('Name', required=True, translate=True)
+ keywords = fields.One2Many('account.move.template.keyword', 'move',
+ 'Keywords')
+ company = fields.Many2One('company.company', 'Company', required=True)
+ journal = fields.Many2One('account.journal', 'Journal', required=True)
+ date = fields.Char('Date', help='Leave empty for today')
+ description = fields.Char('Description',
+ help="Keyword values substitutions are identified "
+ "by braces ('{' and '}')")
+ lines = fields.One2Many('account.move.line.template', 'move', 'Lines',
+ domain=[
+ ('account.company', '=', Eval('company', -1)),
+ ],
+ depends=['company'])
+ active = fields.Boolean('Active')
+
+ @staticmethod
+ def default_company():
+ return Transaction().context.get('company')
+
+ @staticmethod
+ def default_active():
+ return True
+
+ def get_move(self, values):
+ 'Return the move for the keyword values'
+ pool = Pool()
+ Move = pool.get('account.move')
+ Keyword = pool.get('account.move.template.keyword')
+
+ move = Move()
+ move.company = self.company
+ move.journal = self.journal
+ if self.date:
+ move.date = values.get(self.date)
+ if self.description:
+ move.description = self.description.format(
+ **dict(Keyword.format_values(self, values)))
+ move.lines = [l.get_line(values) for l in self.lines]
+
+ return move
+
+
+class MoveTemplateKeyword(ModelSQL, ModelView):
+ 'Account Move Template Keyword'
+ __name__ = 'account.move.template.keyword'
+ name = fields.Char('Name', required=True)
+ string = fields.Char('String', required=True, translate=True)
+ move = fields.Many2One('account.move.template', 'Move', required=True)
+ sequence = fields.Integer('Sequence')
+ type_ = fields.Selection([
+ ('char', 'Char'),
+ ('numeric', 'Numeric'),
+ ('date', 'Date'),
+ ('party', 'Party'),
+ ], 'Type')
+ required = fields.Boolean('Required')
+ digits = fields.Integer('Digits', states={
+ 'invisible': Eval('type_') != 'numeric',
+ 'required': Eval('type_') == 'numeric',
+ }, depends=['type_'])
+
+ @classmethod
+ def __setup__(cls):
+ super(MoveTemplateKeyword, cls).__setup__()
+ cls._order.insert(0, ('sequence', 'ASC'))
+
+ @staticmethod
+ def order_sequence(tables):
+ table, _ = tables[None]
+ return [table.sequence == Null, table.sequence]
+
+ @staticmethod
+ def default_required():
+ return False
+
+ def get_field(self):
+ field = getattr(self, '_get_field_%s' % self.type_)()
+ field.update({
+ 'name': self.name,
+ 'string': self.string,
+ 'required': self.required,
+ })
+ return field
+
+ def _get_field_char(self):
+ return {'type': 'char'}
+
+ def _get_field_numeric(self):
+ return {'type': 'numeric', 'digits': (16, self.digits)}
+
+ def _format_numeric(self, lang, value):
+ if value:
+ return lang.format(lang, '%.*f', (self.digits, value), True)
+ else:
+ return ''
+
+ def _get_field_date(self):
+ return {'type': 'date'}
+
+ def _format_date(self, lang, value):
+ if value:
+ return lang.strftime(value, lang.code, lang.date)
+ else:
+ return ''
+
+ def _get_field_party(self):
+ return {
+ 'type': 'many2one',
+ 'relation': 'party.party',
+ }
+
+ def _format_party(self, lang, value):
+ pool = Pool()
+ Party = pool.get('party.party')
+ if value:
+ return Party(value).rec_name
+ else:
+ return ''
+
+ @staticmethod
+ def format_values(template, values):
+ "Yield key and formatted value"
+ pool = Pool()
+ Lang = pool.get('ir.lang')
+
+ lang, = Lang.search([
+ ('code', '=', Transaction().language),
+ ])
+ keywords = {k.name: k for k in template.keywords}
+
+ for k, v in values.iteritems():
+ keyword = keywords[k]
+ func = getattr(keyword, '_format_%s' % keyword.type_, None)
+ if func:
+ yield k, func(lang, v)
+ else:
+ yield k, v
+
+
+class MoveLineTemplate(ModelSQL, ModelView):
+ 'Account Move Line Template'
+ __name__ = 'account.move.line.template'
+ move = fields.Many2One('account.move.template', 'Move', required=True)
+ operation = fields.Selection([
+ ('debit', 'Debit'),
+ ('credit', 'Credit'),
+ ], 'Operation', required=True)
+ amount = fields.Char('Amount', required=True)
+ account = fields.Many2One('account.account', 'Account', required=True,
+ domain=[
+ ('kind', '!=', 'view'),
+ ('company', '=', Eval('_parent_move', {}).get('company', -1)),
+ ])
+ party = fields.Char('Party',
+ states={
+ 'required': Eval('party_required', False),
+ 'invisible': ~Eval('party_required', False),
+ },
+ depends=['party_required'])
+ party_required = fields.Function(fields.Boolean('Party Required'),
+ 'on_change_with_party_required')
+ description = fields.Char('Description',
+ help="Keywords values substitutions are identified "
+ "by braces ('{' and '}')")
+ taxes = fields.One2Many('account.tax.line.template', 'line', 'Taxes')
+
+ @fields.depends('account')
+ def on_change_with_party_required(self, name=None):
+ if self.account:
+ return self.account.party_required
+ return False
+
+ def get_line(self, values):
+ 'Return the move line for the keyword values'
+ pool = Pool()
+ Line = pool.get('account.move.line')
+ Keyword = pool.get('account.move.template.keyword')
+
+ line = Line()
+ amount = simple_eval(decistmt(self.amount),
+ functions={'Decimal': Decimal}, names=values)
+ amount = self.move.company.currency.round(amount)
+ if self.operation == 'debit':
+ line.debit = amount
+ else:
+ line.credit = amount
+ line.account = self.account
+ if self.party:
+ line.party = values.get(self.party)
+ if self.description:
+ line.description = self.description.format(
+ **dict(Keyword.format_values(self.move, values)))
+ line.tax_lines = [t.get_line(values) for t in self.taxes]
+
+ return line
+
+
+class TaxLineTemplate(ModelSQL, ModelView):
+ 'Account Tax Line Template'
+ __name__ = 'account.tax.line.template'
+ line = fields.Many2One('account.move.line.template', 'Line', required=True)
+ amount = fields.Char('Amount', required=True)
+ code = fields.Many2One('account.tax.code', 'Code', required=True,
+ domain=[
+ ('company', '=', Eval('_parent_line', {}
+ ).get('_parent_move', {}).get('company', -1)),
+ ])
+ tax = fields.Many2One('account.tax', 'Tax',
+ domain=[
+ ('company', '=', Eval('_parent_line', {}
+ ).get('_parent_move', {}).get('company', -1)),
+ ])
+
+ def get_line(self, values):
+ 'Return the tax line for the keyword values'
+ pool = Pool()
+ TaxLine = pool.get('account.tax.line')
+
+ line = TaxLine()
+ amount = simple_eval(decistmt(self.amount),
+ functions={'Decimal': Decimal}, names=values)
+ amount = self.line.move.company.currency.round(amount)
+ line.amount = amount
+ line.code = self.code
+ line.tax = self.tax
+ return line
+
+
+class KeywordStateView(StateView):
+
+ def get_view(self, wizard, state_name):
+ template = wizard.template.template
+ fields = {}
+ view = {
+ 'model': 'account.move.template.create.keywords',
+ 'view_id': 0,
+ 'fields': fields,
+ }
+ field_template = ('<label name=%(name)s/>'
+ '<field name=%(name)s/>')
+ view['arch'] = ('<?xml version="1.0"?>'
+ '<form col="2" string=%s>%s</form>' % (
+ quoteattr(template.name),
+ ''.join(field_template % {'name': quoteattr(keyword.name)}
+ for keyword in template.keywords)
+ ))
+ for keyword in template.keywords:
+ fields[keyword.name] = keyword.get_field()
+ return view
+
+ def get_defaults(self, wizard, state_name, fields):
+ return {}
+
+
+class CreateMove(Wizard):
+ 'Create Move from Template'
+ __name__ = 'account.move.template.create'
+ start = StateTransition()
+ template = StateView('account.move.template.create.template',
+ 'account.move_template_create_template_view_form', [
+ Button('Cancel', 'end', 'tryton-cancel'),
+ Button('Next', 'keywords', 'tryton-go-next', default=True),
+ ])
+ keywords = KeywordStateView('account.move.template.create.keywords',
+ None, [
+ Button('Cancel', 'end', 'tryton-cancel'),
+ Button('Create', 'create_', 'tryton-ok', default=True),
+ ])
+ create_ = StateTransition()
+ open_ = StateAction('account.act_move_form')
+
+ def create_move(self):
+ template = self.template.template
+ values = {}
+ for keyword in template.keywords:
+ values[keyword.name] = getattr(self.keywords, keyword.name, None)
+ move = template.get_move(values)
+ move.period = self.template.period
+ move.save()
+ return move
+
+ def transition_start(self):
+ context = Transaction().context
+ model = context.get('active_model')
+ action_id = context.get('action_id')
+ period = context.get('period')
+ if model == 'account.move.line':
+ # Template id is used as action
+ self.template.template = action_id
+ self.template.period = period
+ return 'keywords'
+ else:
+ return 'template'
+
+ def transition_create_(self):
+ model = Transaction().context.get('active_model')
+ if model:
+ self.create_move()
+ return 'end'
+ else:
+ return 'open_'
+
+ def do_open_(self, action):
+ move = self.create_move()
+ action['res_id'] = [move.id]
+ return action, {}
+
+ def end(self):
+ # XXX only for model account.move.line
+ return 'reload'
+
+
+class CreateMoveTemplate(ModelView):
+ 'Create Move from Template'
+ __name__ = 'account.move.template.create.template'
+ template = fields.Many2One('account.move.template', 'Template',
+ required=True,
+ domain=[
+ ('company', '=', Eval('context', {}).get('company', -1)),
+ ])
+ period = fields.Many2One('account.period', 'Period', required=True,
+ domain=[
+ ('state', '!=', 'close'),
+ ('fiscalyear.company.id', '=',
+ Eval('context', {}).get('company', 0)),
+ ])
+
+ @staticmethod
+ def default_period():
+ pool = Pool()
+ Period = pool.get('account.period')
+ company = Transaction().context.get('company')
+ return Period.find(company, exception=False)
+
+
+class CreateMoveKeywords(ModelView):
+ 'Create Move from Template'
+ __name__ = 'account.move.template.create.keywords'
diff --git a/move_template.xml b/move_template.xml
new file mode 100644
index 0000000..51658ac
--- /dev/null
+++ b/move_template.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<tryton>
+ <data>
+ <record model="ir.ui.view" id="move_template_view_form">
+ <field name="model">account.move.template</field>
+ <field name="type">form</field>
+ <field name="name">move_template_form</field>
+ </record>
+ <record model="ir.ui.view" id="move_template_view_list">
+ <field name="model">account.move.template</field>
+ <field name="type">tree</field>
+ <field name="name">move_template_list</field>
+ </record>
+ <record model="ir.action.act_window" id="act_move_template_form">
+ <field name="name">Account Move Template</field>
+ <field name="res_model">account.move.template</field>
+ <field name="domain"
+ eval="[('company', '=', Eval('context', {}).get('company', -1))]"
+ pyson="1"/>
+ </record>
+ <record model="ir.action.act_window.view"
+ id="act_move_template_form_view1">
+ <field name="sequence" eval="10"/>
+ <field name="view" ref="move_template_view_list"/>
+ <field name="act_window" ref="act_move_template_form"/>
+ </record>
+ <record model="ir.action.act_window.view"
+ id="act_move_template_form_view2">
+ <field name="sequence" eval="20"/>
+ <field name="view" ref="move_template_view_form"/>
+ <field name="act_window" ref="act_move_template_form"/>
+ </record>
+ <menuitem parent="menu_journal_configuration"
+ action="act_move_template_form" id="menu_move_template_form"/>
+
+ <record model="ir.model.access" id="access_move_template">
+ <field name="model" search="[('model', '=', 'account.move.template')]"/>
+ <field name="perm_read" eval="False"/>
+ <field name="perm_write" eval="False"/>
+ <field name="perm_create" eval="False"/>
+ <field name="perm_delete" eval="False"/>
+ </record>
+ <record model="ir.model.access" id="access_move_template_account">
+ <field name="model" search="[('model', '=', 'account.move.template')]"/>
+ <field name="group" ref="group_account"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="False"/>
+ <field name="perm_create" eval="False"/>
+ <field name="perm_delete" eval="False"/>
+ </record>
+ <record model="ir.model.access" id="access_move_template_account_admin">
+ <field name="model" search="[('model', '=', 'account.move.template')]"/>
+ <field name="group" ref="group_account_admin"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="True"/>
+ <field name="perm_create" eval="True"/>
+ <field name="perm_delete" eval="True"/>
+ </record>
+
+ <record model="ir.ui.view" id="move_template_keyword_view_form">
+ <field name="model">account.move.template.keyword</field>
+ <field name="type">form</field>
+ <field name="name">move_template_keyword_form</field>
+ </record>
+ <record model="ir.ui.view" id="move_template_keyword_view_list">
+ <field name="model">account.move.template.keyword</field>
+ <field name="type">tree</field>
+ <field name="priority" eval="10"/>
+ <field name="name">move_template_keyword_list</field>
+ </record>
+ <record model="ir.ui.view" id="move_template_keyword_view_list_sequence">
+ <field name="model">account.move.template.keyword</field>
+ <field name="type">tree</field>
+ <field name="priority" eval="20"/>
+ <field name="name">move_template_keyword_list_sequence</field>
+ </record>
+
+ <record model="ir.model.access" id="access_move_template_keyword">
+ <field name="model" search="[('model', '=', 'account.move.template.keyword')]"/>
+ <field name="perm_read" eval="False"/>
+ <field name="perm_write" eval="False"/>
+ <field name="perm_create" eval="False"/>
+ <field name="perm_delete" eval="False"/>
+ </record>
+ <record model="ir.model.access" id="access_move_template_keyword_account">
+ <field name="model" search="[('model', '=', 'account.move.template.keyword')]"/>
+ <field name="group" ref="group_account"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="False"/>
+ <field name="perm_create" eval="False"/>
+ <field name="perm_delete" eval="False"/>
+ </record>
+ <record model="ir.model.access" id="access_move_template_keyword_account_admin">
+ <field name="model" search="[('model', '=', 'account.move.template.keyword')]"/>
+ <field name="group" ref="group_account_admin"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="True"/>
+ <field name="perm_create" eval="True"/>
+ <field name="perm_delete" eval="True"/>
+ </record>
+
+ <record model="ir.ui.view" id="move_line_template_view_form">
+ <field name="model">account.move.line.template</field>
+ <field name="type">form</field>
+ <field name="name">move_line_template_form</field>
+ </record>
+ <record model="ir.ui.view" id="move_line_template_view_list">
+ <field name="model">account.move.line.template</field>
+ <field name="type">tree</field>
+ <field name="name">move_line_template_list</field>
+ </record>
+
+ <record model="ir.model.access" id="access_move_line_template">
+ <field name="model" search="[('model', '=', 'account.move.line.template')]"/>
+ <field name="perm_read" eval="False"/>
+ <field name="perm_write" eval="False"/>
+ <field name="perm_create" eval="False"/>
+ <field name="perm_delete" eval="False"/>
+ </record>
+ <record model="ir.model.access" id="access_move_line_template_account">
+ <field name="model" search="[('model', '=', 'account.move.line.template')]"/>
+ <field name="group" ref="group_account"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="False"/>
+ <field name="perm_create" eval="False"/>
+ <field name="perm_delete" eval="False"/>
+ </record>
+ <record model="ir.model.access" id="access_move_line_template_account_admin">
+ <field name="model" search="[('model', '=', 'account.move.line.template')]"/>
+ <field name="group" ref="group_account_admin"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="True"/>
+ <field name="perm_create" eval="True"/>
+ <field name="perm_delete" eval="True"/>
+ </record>
+
+ <record model="ir.ui.view" id="tax_line_template_view_form">
+ <field name="model">account.tax.line.template</field>
+ <field name="type">form</field>
+ <field name="name">tax_line_template_form</field>
+ </record>
+ <record model="ir.ui.view" id="tax_line_template_view_list">
+ <field name="model">account.tax.line.template</field>
+ <field name="type">tree</field>
+ <field name="name">tax_line_template_list</field>
+ </record>
+
+ <record model="ir.model.access" id="access_tax_line_template">
+ <field name="model" search="[('model', '=', 'account.tax.line.template')]"/>
+ <field name="perm_read" eval="False"/>
+ <field name="perm_write" eval="False"/>
+ <field name="perm_create" eval="False"/>
+ <field name="perm_delete" eval="False"/>
+ </record>
+ <record model="ir.model.access" id="access_tax_line_template_account">
+ <field name="model" search="[('model', '=', 'account.tax.line.template')]"/>
+ <field name="group" ref="group_account"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="False"/>
+ <field name="perm_create" eval="False"/>
+ <field name="perm_delete" eval="False"/>
+ </record>
+ <record model="ir.model.access" id="access_tax_line_template_account_admin">
+ <field name="model" search="[('model', '=', 'account.tax.line.template')]"/>
+ <field name="group" ref="group_account_admin"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="True"/>
+ <field name="perm_create" eval="True"/>
+ <field name="perm_delete" eval="True"/>
+ </record>
+
+ <record model="ir.ui.view" id="move_template_create_template_view_form">
+ <field name="model">account.move.template.create.template</field>
+ <field name="type">form</field>
+ <field name="name">move_template_create_template_form</field>
+ </record>
+
+ <record model="ir.action.wizard" id="act_move_template_create">
+ <field name="name">Create Move from Template</field>
+ <field name="wiz_name">account.move.template.create</field>
+ </record>
+ <menuitem parent="menu_entries" action="act_move_template_create"
+ id="menu_move_template_create"/>
+ </data>
+</tryton>
diff --git a/party.py b/party.py
index c7f2d7b..c96ffee 100644
--- a/party.py
+++ b/party.py
@@ -1,7 +1,8 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from decimal import Decimal
-from sql import Literal
+
+from sql import Literal, Null
from sql.aggregate import Sum
from sql.conditionals import Coalesce
@@ -9,6 +10,7 @@ from trytond.model import fields
from trytond.pyson import Eval, Bool
from trytond.transaction import Transaction
from trytond.pool import Pool, PoolMeta
+from trytond.tools import reduce_ids, grouped_slice
__all__ = ['Party']
__metaclass__ = PoolMeta
@@ -66,7 +68,7 @@ class Party:
'''
Function to compute receivable, payable (today or not) for party ids.
'''
- res = {}
+ result = {}
pool = Pool()
MoveLine = pool.get('account.move.line')
Account = pool.get('account.account')
@@ -81,50 +83,50 @@ class Party:
if name not in ('receivable', 'payable',
'receivable_today', 'payable_today'):
raise Exception('Bad argument')
- res[name] = dict((p.id, Decimal('0.0')) for p in parties)
+ result[name] = dict((p.id, Decimal('0.0')) for p in parties)
- user_id = Transaction().user
- if user_id == 0 and 'user' in Transaction().context:
- user_id = Transaction().context['user']
- user = User(user_id)
+ user = User(Transaction().user)
if not user.company:
- return res
+ return result
company_id = user.company.id
line_query, _ = MoveLine.query_get(line)
+ amount = Sum(Coalesce(line.debit, 0) - Coalesce(line.credit, 0))
for name in names:
code = name
- today_query = Literal(True)
+ today_where = Literal(True)
if name in ('receivable_today', 'payable_today'):
code = name[:-6]
- today_query = ((line.maturity_date <= Date.today())
- | (line.maturity_date == None))
-
- cursor.execute(*line.join(account,
- condition=account.id == line.account
- ).select(line.party,
- Sum(Coalesce(line.debit, 0) - Coalesce(line.credit, 0)),
- where=account.active
- & (account.kind == code)
- & line.party.in_([p.id for p in parties])
- & (line.reconciliation == None)
- & (account.company == company_id)
- & line_query & today_query,
- group_by=line.party))
- for party_id, sum in cursor.fetchall():
- # SQLite uses float for SUM
- if not isinstance(sum, Decimal):
- sum = Decimal(str(sum))
- res[name][party_id] = sum
- return res
+ today_where = ((line.maturity_date <= Date.today())
+ | (line.maturity_date == Null))
+ for sub_parties in grouped_slice(parties):
+ sub_ids = [p.id for p in sub_parties]
+ party_where = reduce_ids(line.party, sub_ids)
+ cursor.execute(*line.join(account,
+ condition=account.id == line.account
+ ).select(line.party, amount,
+ where=(account.active
+ & (account.kind == code)
+ & (line.reconciliation == Null)
+ & (account.company == company_id)
+ & line_query
+ & party_where
+ & today_where
+ & (account.kind == code)),
+ group_by=line.party))
+ for party, value in cursor.fetchall():
+ # SQLite uses float for SUM
+ if not isinstance(value, Decimal):
+ value = Decimal(str(value))
+ result[name][party] = value
+ return result
@classmethod
def search_receivable_payable(cls, name, clause):
pool = Pool()
MoveLine = pool.get('account.move.line')
Account = pool.get('account.account')
- Company = pool.get('company.company')
User = pool.get('res.user')
Date = pool.get('ir.date')
@@ -135,33 +137,17 @@ class Party:
'receivable_today', 'payable_today'):
raise Exception('Bad argument')
- company_id = None
- user_id = Transaction().user
- if user_id == 0 and 'user' in Transaction().context:
- user_id = Transaction().context['user']
- user = User(user_id)
- if Transaction().context.get('company'):
- child_companies = Company.search([
- ('parent', 'child_of', [user.main_company.id]),
- ])
- if Transaction().context['company'] in child_companies:
- company_id = Transaction().context['company']
-
- if not company_id:
- if user.company:
- company_id = user.company.id
- elif user.main_company:
- company_id = user.main_company.id
-
- if not company_id:
+ user = User(Transaction().user)
+ if not user.company:
return []
+ company_id = user.company.id
code = name
today_query = Literal(True)
if name in ('receivable_today', 'payable_today'):
code = name[:-6]
today_query = ((line.maturity_date <= Date.today())
- | (line.maturity_date == None))
+ | (line.maturity_date == Null))
line_query, _ = MoveLine.query_get(line)
Operator = fields.SQL_OPERATORS[clause[1]]
@@ -170,8 +156,8 @@ class Party:
).select(line.party,
where=account.active
& (account.kind == code)
- & (line.party != None)
- & (line.reconciliation == None)
+ & (line.party != Null)
+ & (line.reconciliation == Null)
& (account.company == company_id)
& line_query & today_query,
group_by=line.party,
diff --git a/period.py b/period.py
index 7d5dd1a..b8cc16f 100644
--- a/period.py
+++ b/period.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from trytond.model import ModelView, ModelSQL, fields
from trytond.wizard import Wizard, StateTransition
from trytond.pyson import Eval
@@ -34,15 +34,21 @@ class Period(ModelSQL, ModelView):
('close', 'Close'),
], 'State', readonly=True, required=True)
post_move_sequence = fields.Many2One('ir.sequence', 'Post Move Sequence',
- domain=[('code', '=', 'account.move')],
- context={'code': 'account.move'})
+ domain=[
+ ('code', '=', 'account.move'),
+ ['OR',
+ ('company', '=', None),
+ ('company', '=', Eval('company', -1)),
+ ],
+ ],
+ depends=['company'])
type = fields.Selection([
('standard', 'Standard'),
('adjustment', 'Adjustment'),
], 'Type', required=True,
states=_STATES, depends=_DEPENDS, select=True)
company = fields.Function(fields.Many2One('company.company', 'Company',),
- 'get_company', searcher='search_company')
+ 'on_change_with_company', searcher='search_company')
@classmethod
def __register__(cls, module_name):
@@ -78,9 +84,6 @@ class Period(ModelSQL, ModelView):
'overlap.'),
'check_move_sequence': ('Period "%(first)s" and "%(second)s" '
'have the same sequence.'),
- 'check_move_sequence_company': ('Company of sequence '
- '"%(sequence)s" does not match the company of period '
- '"%(period)s" to which it is assigned to.'),
'fiscalyear_dates': ('Dates of period "%s" are outside '
'are outside it\'s fiscal year dates.'),
})
@@ -93,8 +96,10 @@ class Period(ModelSQL, ModelView):
def default_type():
return 'standard'
- def get_company(self, name):
- return self.fiscalyear.company.id
+ @fields.depends('fiscalyear')
+ def on_change_with_company(self, name=None):
+ if self.fiscalyear:
+ return self.fiscalyear.company.id
@classmethod
def search_company(cls, name, clause):
@@ -148,12 +153,6 @@ class Period(ModelSQL, ModelView):
'first': self.rec_name,
'second': periods[0].rec_name,
})
- if (self.post_move_sequence.company and
- self.post_move_sequence.company != self.fiscalyear.company):
- self.raise_user_error('check_move_sequence_company', {
- 'sequence': self.post_move_sequence.rec_name,
- 'period': self.rec_name,
- })
@classmethod
def find(cls, company_id, date=None, exception=True, test_state=True):
@@ -251,9 +250,14 @@ class Period(ModelSQL, ModelView):
actions = iter(args)
args = []
for periods, values in zip(actions, actions):
- for key in values.keys():
+ for key, value in values.iteritems():
if key in ('start_date', 'end_date', 'fiscalyear'):
- cls._check(periods)
+ def modified(period):
+ if key in ['start_date', 'end_date']:
+ return getattr(period, key) != value
+ else:
+ return period.fiscalyear .id != value
+ cls._check(filter(modified, periods))
break
if values.get('state') == 'open':
for period in periods:
@@ -295,10 +299,10 @@ class Period(ModelSQL, ModelView):
unposted_move, = unposted_moves
cls.raise_user_error('close_period_non_posted_move', {
'period': unposted_move.period.rec_name,
- 'move': unposted_move.rec_name,
+ 'move': unposted_move.rec_name,
})
- #First close the period to be sure
- #it will not have new journal.period created between.
+ # First close the period to be sure
+ # it will not have new journal.period created between.
cls.write(periods, {
'state': 'close',
})
@@ -320,7 +324,11 @@ class Period(ModelSQL, ModelView):
@classmethod
def search_rec_name(cls, name, clause):
- return ['OR',
+ if clause[1].startswith('!') or clause[1].startswith('not '):
+ bool_op = 'AND'
+ else:
+ bool_op = 'OR'
+ return [bool_op,
('code',) + tuple(clause[1:]),
(cls._rec_name,) + tuple(clause[1:]),
]
diff --git a/period.xml b/period.xml
index 5b93f8f..7da9762 100644
--- a/period.xml
+++ b/period.xml
@@ -16,7 +16,9 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_period_form">
<field name="name">Periods</field>
<field name="res_model">account.period</field>
- <field name="domain">[('fiscalyear.company.id', '=', Eval('context', {}).get('company', -1))]</field>
+ <field name="domain"
+ eval="[('fiscalyear.company.id', '=', Eval('context', {}).get('company', -1))]"
+ pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_period_form_view1">
<field name="sequence" eval="10"/>
@@ -71,7 +73,9 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_period_form2">
<field name="name">Periods</field>
<field name="res_model">account.period</field>
- <field name="domain">[('state', 'in', ['open']), ('fiscalyear.company.id', '=', Eval('context', {}).get('company', -1))]</field>
+ <field name="domain"
+ eval="[('state', 'in', ['open']), ('fiscalyear.company.id', '=', Eval('context', {}).get('company', -1))]"
+ pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_period_form2_view1">
<field name="sequence" eval="10"/>
@@ -91,7 +95,9 @@ this repository contains the full copyright notices and license terms. -->
<field name="global_p" eval="True"/>
</record>
<record model="ir.rule" id="rule_period1">
- <field name="domain">[('company', '=', user.company.id if user.company else None)]</field>
+ <field name="domain"
+ eval="[('company', '=', Eval('user', {}).get('company', None))]"
+ pyson="1"/>
<field name="rule_group" ref="rule_group_period"/>
</record>
</data>
diff --git a/setup.py b/setup.py
index 663f810..d125976 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from setuptools import setup
import re
@@ -41,7 +41,7 @@ if minor_version % 2:
'hg+http://hg.tryton.org/modules/%s#egg=%s-%s' % (
name[8:], name, version))
-requires = ['python-dateutil', 'python-sql']
+requires = ['python-dateutil', 'python-sql >= 0.4', 'simpleeval']
for dep in info.get('depends', []):
if not re.match(r'(ir|res|webdav)(\W|$)', dep):
requires.append(get_require_version('trytond_%s' % dep))
@@ -92,6 +92,8 @@ setup(name=name,
'Natural Language :: Spanish',
'Operating System :: OS Independent',
'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: Implementation :: CPython',
+ 'Programming Language :: Python :: Implementation :: PyPy',
'Topic :: Office/Business',
'Topic :: Office/Business :: Financial :: Accounting',
],
diff --git a/tax.py b/tax.py
index 0ad69a7..38b772a 100644
--- a/tax.py
+++ b/tax.py
@@ -1,8 +1,12 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
import datetime
+from collections import namedtuple
from decimal import Decimal
+
+from sql import Null
from sql.aggregate import Sum
+from itertools import groupby
from trytond.model import ModelView, ModelSQL, MatchMixin, fields
from trytond.wizard import Wizard, StateView, StateAction, Button
@@ -231,7 +235,11 @@ class TaxCode(ModelSQL, ModelView):
@classmethod
def search_rec_name(cls, name, clause):
- return ['OR',
+ if clause[1].startswith('!') or clause[1].startswith('not '):
+ bool_op = 'AND'
+ else:
+ bool_op = 'OR'
+ return [bool_op,
('code',) + tuple(clause[1:]),
(cls._rec_name,) + tuple(clause[1:]),
]
@@ -366,6 +374,11 @@ class TaxTemplate(ModelSQL, ModelView):
('fixed', 'Fixed'),
('none', 'None'),
], 'Type', required=True)
+ update_unit_price = fields.Boolean('Update Unit Price',
+ states={
+ 'invisible': Bool(Eval('parent')),
+ },
+ depends=['parent'])
parent = fields.Many2One('account.tax.template', 'Parent')
childs = fields.One2Many('account.tax.template', 'parent', 'Children')
invoice_account = fields.Many2One('account.account.template',
@@ -394,6 +407,10 @@ class TaxTemplate(ModelSQL, ModelView):
super(TaxTemplate, cls).__setup__()
cls._order.insert(0, ('sequence', 'ASC'))
cls._order.insert(0, ('account', 'ASC'))
+ cls._error_messages.update({
+ 'update_unit_price_with_parent': ('"Update Unit Price" can '
+ 'not be set on tax "%(template)s" which has a parent.'),
+ })
@classmethod
def __register__(cls, module_name):
@@ -405,7 +422,7 @@ class TaxTemplate(ModelSQL, ModelView):
# Migration from 1.0 group is no more required
table.not_null_action('group', action='remove')
- #Migration from 2.4: drop required on sequence
+ # Migration from 2.4: drop required on sequence
table.not_null_action('sequence', action='remove')
# Migration from 2.8: rename percentage into rate
@@ -416,10 +433,22 @@ class TaxTemplate(ModelSQL, ModelView):
values=[sql_table.percentage / 100]))
table.drop_column('percentage')
+ @classmethod
+ def validate(cls, tax_templates):
+ super(TaxTemplate, cls).validate(tax_templates)
+ for tax_template in tax_templates:
+ tax_template.check_update_unit_price()
+
+ def check_update_unit_price(self):
+ if self.update_unit_price and self.parent:
+ self.raise_user_error('update_unit_price_with_parent', {
+ 'template': self.rec_name,
+ })
+
@staticmethod
def order_sequence(tables):
table, _ = tables[None]
- return [table.sequence == None, table.sequence]
+ return [table.sequence == Null, table.sequence]
@staticmethod
def default_type():
@@ -445,6 +474,10 @@ class TaxTemplate(ModelSQL, ModelView):
def default_credit_note_tax_sign():
return Decimal('1')
+ @staticmethod
+ def default_update_unit_price():
+ return False
+
def _get_tax_value(self, tax=None):
'''
Set values for tax creation.
@@ -453,7 +486,7 @@ class TaxTemplate(ModelSQL, ModelView):
for field in ('name', 'description', 'sequence', 'amount',
'rate', 'type', 'invoice_base_sign', 'invoice_tax_sign',
'credit_note_base_sign', 'credit_note_tax_sign',
- 'start_date', 'end_date'):
+ 'start_date', 'end_date', 'update_unit_price'):
if not tax or getattr(tax, field) != getattr(self, field):
res[field] = getattr(self, field)
for field in ('group',):
@@ -595,6 +628,13 @@ class Tax(ModelSQL, ModelView):
('fixed', 'Fixed'),
('none', 'None'),
], 'Type', required=True)
+ update_unit_price = fields.Boolean('Update Unit Price',
+ states={
+ 'invisible': Bool(Eval('parent')),
+ },
+ depends=['parent'],
+ help=('If checked then the unit price for further tax computation will'
+ 'be modified by this tax'))
parent = fields.Many2One('account.tax', 'Parent', ondelete='CASCADE')
childs = fields.One2Many('account.tax', 'parent', 'Children')
company = fields.Many2One('company.company', 'Company', required=True,
@@ -625,9 +665,13 @@ class Tax(ModelSQL, ModelView):
depends=['company', 'type'])
invoice_base_code = fields.Many2One('account.tax.code',
'Invoice Base Code',
+ domain=[
+ ('company', '=', Eval('company', -1)),
+ ],
states={
'readonly': Eval('type') == 'none',
- }, depends=['type'])
+ },
+ depends=['type', 'company'])
invoice_base_sign = fields.Numeric('Invoice Base Sign', digits=(2, 0),
help='Usualy 1 or -1',
states={
@@ -636,9 +680,13 @@ class Tax(ModelSQL, ModelView):
}, depends=['type'])
invoice_tax_code = fields.Many2One('account.tax.code',
'Invoice Tax Code',
+ domain=[
+ ('company', '=', Eval('company', -1)),
+ ],
states={
'readonly': Eval('type') == 'none',
- }, depends=['type'])
+ },
+ depends=['type', 'company'])
invoice_tax_sign = fields.Numeric('Invoice Tax Sign', digits=(2, 0),
help='Usualy 1 or -1',
states={
@@ -647,9 +695,13 @@ class Tax(ModelSQL, ModelView):
}, depends=['type'])
credit_note_base_code = fields.Many2One('account.tax.code',
'Credit Note Base Code',
+ domain=[
+ ('company', '=', Eval('company', -1)),
+ ],
states={
'readonly': Eval('type') == 'none',
- }, depends=['type'])
+ },
+ depends=['type', 'company'])
credit_note_base_sign = fields.Numeric('Credit Note Base Sign',
digits=(2, 0), help='Usualy 1 or -1',
states={
@@ -658,9 +710,13 @@ class Tax(ModelSQL, ModelView):
}, depends=['type'])
credit_note_tax_code = fields.Many2One('account.tax.code',
'Credit Note Tax Code',
+ domain=[
+ ('company', '=', Eval('company', -1)),
+ ],
states={
'readonly': Eval('type') == 'none',
- }, depends=['type'])
+ },
+ depends=['type', 'company'])
credit_note_tax_sign = fields.Numeric('Credit Note Tax Sign',
digits=(2, 0), help='Usualy 1 or -1',
states={
@@ -673,6 +729,10 @@ class Tax(ModelSQL, ModelView):
def __setup__(cls):
super(Tax, cls).__setup__()
cls._order.insert(0, ('sequence', 'ASC'))
+ cls._error_messages.update({
+ 'update_unit_price_with_parent': ('"Update Unit Price" can '
+ 'not be set on tax "%(template)s" which has a parent.'),
+ })
@classmethod
def __register__(cls, module_name):
@@ -695,10 +755,22 @@ class Tax(ModelSQL, ModelView):
values=[sql_table.percentage / 100]))
table.drop_column('percentage')
+ @classmethod
+ def validate(cls, taxes):
+ super(Tax, cls).validate(taxes)
+ for tax in taxes:
+ tax.check_update_unit_price()
+
+ def check_update_unit_price(self):
+ if self.parent and self.update_unit_price:
+ self.raise_user_error('update_unit_price_with_parent', {
+ 'tax': self.rec_name,
+ })
+
@staticmethod
def order_sequence(tables):
table, _ = tables[None]
- return [table.sequence == None, table.sequence]
+ return [table.sequence == Null, table.sequence]
@staticmethod
def default_active():
@@ -729,6 +801,10 @@ class Tax(ModelSQL, ModelView):
return Decimal('1')
@staticmethod
+ def default_update_unit_price():
+ return False
+
+ @staticmethod
def default_company():
return Transaction().context.get('company')
@@ -754,26 +830,81 @@ class Tax(ModelSQL, ModelView):
'tax': self,
}
+ def _group_taxes(self):
+ 'Key method used to group taxes'
+ return (self.sequence,)
+
@classmethod
def _unit_compute(cls, taxes, price_unit, date):
res = []
+ for _, group_taxes in groupby(taxes, key=cls._group_taxes):
+ unit_price_variation = 0
+ for tax in group_taxes:
+ start_date = tax.start_date or datetime.date.min
+ end_date = tax.end_date or datetime.date.max
+ if not (start_date <= date <= end_date):
+ continue
+ if tax.type != 'none':
+ value = tax._process_tax(price_unit)
+ res.append(value)
+ if tax.update_unit_price:
+ unit_price_variation += value['amount']
+ if len(tax.childs):
+ res.extend(cls._unit_compute(tax.childs, price_unit, date))
+ price_unit += unit_price_variation
+ return res
+
+ @classmethod
+ def _reverse_rate_amount(cls, taxes, date):
+ rate, amount = 0, 0
for tax in taxes:
start_date = tax.start_date or datetime.date.min
end_date = tax.end_date or datetime.date.max
if not (start_date <= date <= end_date):
continue
- if tax.type != 'none':
- res.append(tax._process_tax(price_unit))
- if len(tax.childs):
- res.extend(cls._unit_compute(tax.childs, price_unit, date))
- return res
+
+ if tax.type == 'percentage':
+ rate += tax.rate
+ elif tax.type == 'fixed':
+ amount += tax.amount
+
+ if tax.childs:
+ child_rate, child_amount = cls._reverse_rate_amount(
+ tax.childs, date)
+ rate += child_rate
+ amount += child_amount
+ return rate, amount
+
+ @classmethod
+ def _reverse_unit_compute(cls, price_unit, taxes, date):
+ rate, amount = 0, 0
+ update_unit_price = False
+ unit_price_variation_amount = 0
+ unit_price_variation_rate = 0
+ for _, group_taxes in groupby(taxes, key=cls._group_taxes):
+ group_taxes = list(group_taxes)
+ g_rate, g_amount = cls._reverse_rate_amount(group_taxes, date)
+ if update_unit_price:
+ g_amount += unit_price_variation_amount * g_rate
+ g_rate += unit_price_variation_rate * g_rate
+
+ g_update_unit_price = any(t.update_unit_price for t in group_taxes)
+ update_unit_price |= g_update_unit_price
+ if g_update_unit_price:
+ unit_price_variation_amount += g_amount
+ unit_price_variation_rate += g_rate
+
+ rate += g_rate
+ amount += g_amount
+
+ return (price_unit - amount) / (1 + rate)
@classmethod
- def sort_taxes(cls, taxes):
+ def sort_taxes(cls, taxes, reverse=False):
'''
Return a list of taxes sorted
'''
- return sorted(taxes, key=lambda t: (t.sequence, t.id))
+ return sorted(taxes, key=lambda t: (t.sequence, t.id), reverse=reverse)
@classmethod
def compute(cls, taxes, price_unit, quantity, date=None):
@@ -796,6 +927,18 @@ class Tax(ModelSQL, ModelView):
row['amount'] *= quantity
return res
+ @classmethod
+ def reverse_compute(cls, price_unit, taxes, date=None):
+ '''
+ Reverse compute the price_unit for taxes at the date.
+ '''
+ pool = Pool()
+ Date = pool.get('ir.date')
+ if date is None:
+ date = Date.today()
+ taxes = cls.sort_taxes(taxes)
+ return cls._reverse_unit_compute(price_unit, taxes, date)
+
def update_tax(self, template2tax_code, template2account,
template2tax=None):
'''
@@ -908,6 +1051,113 @@ class Tax(ModelSQL, ModelView):
template2tax=template2tax)
+class _TaxKey(dict):
+
+ def __init__(self, **kwargs):
+ self.update(kwargs)
+
+ def _key(self):
+ return (self['base_code'], self['base_sign'],
+ self['tax_code'], self['tax_sign'],
+ self['account'], self['tax'])
+
+ def __eq__(self, other):
+ if isinstance(other, _TaxKey):
+ return self._key() == other._key()
+ return self._key() == other
+
+ def __hash__(self):
+ return hash(self._key())
+
+_TaxableLine = namedtuple('_TaxableLine', ('taxes', 'unit_price', 'quantity'))
+
+
+class TaxableMixin(object):
+
+ @property
+ def taxable_lines(self):
+ """A list of tuples where
+ - the first element is the taxes applicable
+ - the second element is the line unit price
+ - the third element is the line quantity
+ """
+ return []
+
+ @property
+ def tax_type(self):
+ "The taxation type it can be 'invoice' or 'credit_note'"
+ return None
+
+ @property
+ def currency(self):
+ "The currency used by the taxable object"
+ return None
+
+ @property
+ def tax_date(self):
+ "Date to use when computing the tax"
+ pool = Pool()
+ Date = pool.get('ir.date')
+ return Date.today()
+
+ def _get_tax_context(self):
+ return {}
+
+ @staticmethod
+ def _compute_tax_line(type_, amount, base, tax):
+ assert type_ in ('invoice', 'credit_note')
+
+ line = {}
+ line['manual'] = False
+ line['description'] = tax.description
+ line['base'] = base
+ line['amount'] = amount
+ line['tax'] = tax.id if tax else None
+
+ for attribute in ['base_code', 'tax_code', 'account']:
+ value = getattr(tax, '%s_%s' % (type_, attribute), None)
+ line[attribute] = value.id if value else None
+
+ for attribute in ['base_sign', 'tax_sign']:
+ value = getattr(tax, '%s_%s' % (type_, attribute), None)
+ line[attribute] = value
+
+ return _TaxKey(**line)
+
+ def _round_taxes(self, taxes):
+ if not self.currency:
+ return
+ for taxline in taxes.itervalues():
+ for attribute in ('base', 'amount'):
+ taxline[attribute] = self.currency.round(taxline[attribute])
+
+ def _get_taxes(self):
+ pool = Pool()
+ Tax = pool.get('account.tax')
+ Configuration = pool.get('account.configuration')
+
+ config = Configuration(1)
+ taxes = {}
+ with Transaction().set_context(self._get_tax_context()):
+ taxable_lines = [_TaxableLine(*params)
+ for params in self.taxable_lines]
+ for line in taxable_lines:
+ l_taxes = Tax.compute(line.taxes, line.unit_price,
+ line.quantity, self.tax_date)
+ for tax in l_taxes:
+ taxline = self._compute_tax_line(self.tax_type, **tax)
+ if taxline not in taxes:
+ taxes[taxline] = taxline
+ else:
+ taxes[taxline]['base'] += taxline['base']
+ taxes[taxline]['amount'] += taxline['amount']
+ if config.tax_rounding == 'line':
+ self._round_taxes(taxes)
+ if config.tax_rounding == 'document':
+ self._round_taxes(taxes)
+ return taxes
+
+
class TaxLine(ModelSQL, ModelView):
'Tax Line'
__name__ = 'account.tax.line'
@@ -917,11 +1167,21 @@ class TaxLine(ModelSQL, ModelView):
amount = fields.Numeric('Amount', digits=(16, Eval('currency_digits', 2)),
required=True, depends=['currency_digits'])
code = fields.Many2One('account.tax.code', 'Code', select=True,
- required=True)
+ required=True,
+ domain=[
+ ('company', '=', Eval('company', -1)),
+ ],
+ depends=['company'])
tax = fields.Many2One('account.tax', 'Tax', select=True,
- ondelete='RESTRICT')
+ ondelete='RESTRICT',
+ domain=[
+ ('company', '=', Eval('company', -1)),
+ ],
+ depends=['company'])
move_line = fields.Many2One('account.move.line', 'Move Line',
required=True, select=True, ondelete='CASCADE')
+ company = fields.Function(fields.Many2One('company.company', 'Company'),
+ 'on_change_with_company')
@fields.depends('move_line')
def on_change_with_currency_digits(self, name=None):
@@ -931,9 +1191,12 @@ class TaxLine(ModelSQL, ModelView):
@fields.depends('tax')
def on_change_tax(self):
- return {
- 'code': None,
- }
+ self.code = None
+
+ @fields.depends('_parent_move_line.account')
+ def on_change_with_company(self, name=None):
+ if self.move_line:
+ return self.move_line.account.company.id
class TaxRuleTemplate(ModelSQL, ModelView):
@@ -1142,7 +1405,7 @@ class TaxRuleLineTemplate(ModelSQL, ModelView):
@staticmethod
def order_sequence(tables):
table, _ = tables[None]
- return [table.sequence == None, table.sequence]
+ return [table.sequence == Null, table.sequence]
def _get_tax_rule_line_value(self, rule_line=None):
'''
@@ -1256,7 +1519,7 @@ class TaxRuleLine(ModelSQL, ModelView, MatchMixin):
@staticmethod
def order_sequence(tables):
table, _ = tables[None]
- return [table.sequence == None, table.sequence]
+ return [table.sequence == Null, table.sequence]
def match(self, pattern):
if 'group' in pattern and not self.group:
diff --git a/tax.xml b/tax.xml
index 1cb87f9..a487f5b 100644
--- a/tax.xml
+++ b/tax.xml
@@ -63,7 +63,7 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_tax_code_template_tree">
<field name="name">Tax Codes Templates</field>
<field name="res_model">account.tax.code.template</field>
- <field name="domain">[('parent', '=', None)]</field>
+ <field name="domain" eval="[('parent', '=', None)]" pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_tax_code_template_tree_view1">
<field name="sequence" eval="10"/>
@@ -101,7 +101,7 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_tax_code_tree">
<field name="name">Tax Codes</field>
<field name="res_model">account.tax.code</field>
- <field name="domain">[('parent', '=', None)]</field>
+ <field name="domain" eval="[('parent', '=', None)]" pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_tax_code_tree_view1">
<field name="sequence" eval="10"/>
@@ -143,7 +143,7 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_tax_code_tree2">
<field name="name">Tax Codes</field>
<field name="res_model">account.tax.code</field>
- <field name="domain">[('parent', '=', None)]</field>
+ <field name="domain" eval="[('parent', '=', None)]" pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_tax_code_tree2_view1">
<field name="sequence" eval="10"/>
@@ -182,7 +182,9 @@ this repository contains the full copyright notices and license terms. -->
<field name="global_p" eval="True" />
</record>
<record model="ir.rule" id="rule_tax_code1">
- <field name="domain">[('company', '=', user.company.id if user.company else None)]</field>
+ <field name="domain"
+ eval="[('company', '=', Eval('user', {}).get('company', None))]"
+ pyson="1"/>
<field name="rule_group" ref="rule_group_tax_code" />
</record>
@@ -202,7 +204,7 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_tax_template_tree">
<field name="name">Taxes Templates</field>
<field name="res_model">account.tax.template</field>
- <field name="domain">[('parent', '=', None)]</field>
+ <field name="domain" eval="[('parent', '=', None)]" pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_tax_template_tree_view1">
<field name="sequence" eval="10"/>
@@ -247,7 +249,9 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_tax_tree">
<field name="name">Taxes</field>
<field name="res_model">account.tax</field>
- <field name="domain">[('company', '=', Eval('company')), ('parent', '=', None)]</field>
+ <field name="domain"
+ eval="[('company', '=', Eval('company')), ('parent', '=', None)]"
+ pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_tax_tree_view1">
<field name="sequence" eval="10"/>
@@ -265,7 +269,9 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_tax_list">
<field name="name">Taxes</field>
<field name="res_model">account.tax</field>
- <field name="domain">[('company', '=', Eval('company')), ('parent', '=', None)]</field>
+ <field name="domain"
+ eval="[('company', '=', Eval('company')), ('parent', '=', None)]"
+ pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_tax_list_view1">
<field name="sequence" eval="10"/>
@@ -302,7 +308,9 @@ this repository contains the full copyright notices and license terms. -->
<field name="global_p" eval="True"/>
</record>
<record model="ir.rule" id="rule_tax1">
- <field name="domain">[('company', '=', user.company.id if user.company else None)]</field>
+ <field name="domain"
+ eval="[('company', '=', Eval('user', {}).get('company', None))]"
+ pyson="1"/>
<field name="rule_group" ref="rule_group_tax"/>
</record>
@@ -409,7 +417,8 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_tax_rule_form">
<field name="name">Tax Rules</field>
<field name="res_model">account.tax.rule</field>
- <field name="domain">[('company', '=', Eval('company'))]</field>
+ <field name="domain" eval="[('company', '=', Eval('company'))]"
+ pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_tax_rule_form_view1">
<field name="sequence" eval="10"/>
@@ -445,7 +454,9 @@ this repository contains the full copyright notices and license terms. -->
<field name="global_p" eval="True"/>
</record>
<record model="ir.rule" id="rule_tax_rule1">
- <field name="domain">[('company', '=', user.company.id if user.company else None)]</field>
+ <field name="domain"
+ eval="[('company', '=', Eval('user', {}).get('company', None))]"
+ pyson="1"/>
<field name="rule_group" ref="rule_group_tax_rule"/>
</record>
diff --git a/tests/__init__.py b/tests/__init__.py
index 24b6dac..0c2c72d 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from .test_account import suite
diff --git a/tests/scenario_account_reconciliation.rst b/tests/scenario_account_reconciliation.rst
index 8e4e3d7..d871240 100644
--- a/tests/scenario_account_reconciliation.rst
+++ b/tests/scenario_account_reconciliation.rst
@@ -2,16 +2,16 @@
Account Reconciliation Scenario
===============================
-=============
-General Setup
-=============
-
Imports::
>>> import datetime
>>> from dateutil.relativedelta import relativedelta
>>> from decimal import Decimal
>>> from proteus import config, Model, Wizard
+ >>> from trytond.modules.company.tests.tools import create_company, \
+ ... get_company
+ >>> from trytond.modules.account.tests.tools import create_fiscalyear, \
+ ... create_chart, get_accounts
>>> today = datetime.date.today()
Create database::
@@ -22,94 +22,31 @@ Create database::
Install account::
>>> Module = Model.get('ir.module.module')
- >>> modules = Module.find([
+ >>> module, = Module.find([
... ('name', '=', 'account'),
... ])
- >>> Module.install([x.id for x in modules], config.context)
+ >>> module.click('install')
>>> Wizard('ir.module.module.install_upgrade').execute('upgrade')
Create company::
- >>> Currency = Model.get('currency.currency')
- >>> CurrencyRate = Model.get('currency.currency.rate')
- >>> Company = Model.get('company.company')
- >>> Party = Model.get('party.party')
- >>> company_config = Wizard('company.company.config')
- >>> company_config.execute('company')
- >>> company = company_config.form
- >>> party = Party(name='Dunder Mifflin')
- >>> party.save()
- >>> company.party = party
- >>> currencies = Currency.find([('code', '=', 'USD')])
- >>> if not currencies:
- ... currency = Currency(name='U.S. Dollar', symbol='$', code='USD',
- ... rounding=Decimal('0.01'), mon_grouping='[3, 3, 0]',
- ... mon_decimal_point='.', mon_thousands_sep=',')
- ... currency.save()
- ... CurrencyRate(date=today + relativedelta(month=1, day=1),
- ... rate=Decimal('1.0'), currency=currency).save()
- ... else:
- ... currency, = currencies
- >>> company.currency = currency
- >>> company_config.execute('add')
- >>> company, = Company.find()
-
-Reload the context::
-
- >>> User = Model.get('res.user')
- >>> config._context = User.get_preferences(True, config.context)
+ >>> _ = create_company()
+ >>> company = get_company()
Create fiscal year::
- >>> FiscalYear = Model.get('account.fiscalyear')
- >>> Sequence = Model.get('ir.sequence')
- >>> SequenceStrict = Model.get('ir.sequence.strict')
- >>> fiscalyear = FiscalYear(name='%s' % today.year)
- >>> fiscalyear.start_date = today + relativedelta(month=1, day=1)
- >>> fiscalyear.end_date = today + relativedelta(month=12, day=31)
- >>> fiscalyear.company = company
- >>> post_move_sequence = Sequence(name='%s' % today.year,
- ... code='account.move', company=company)
- >>> post_move_sequence.save()
- >>> fiscalyear.post_move_sequence = post_move_sequence
- >>> fiscalyear.save()
- >>> FiscalYear.create_period([fiscalyear.id], config.context)
+ >>> fiscalyear = create_fiscalyear(company)
+ >>> fiscalyear.click('create_period')
>>> period = fiscalyear.periods[0]
Create chart of accounts::
- >>> AccountTemplate = Model.get('account.account.template')
- >>> Account = Model.get('account.account')
- >>> account_template, = AccountTemplate.find([('parent', '=', None)])
- >>> create_chart = Wizard('account.create_chart')
- >>> create_chart.execute('account')
- >>> create_chart.form.account_template = account_template
- >>> create_chart.form.company = company
- >>> create_chart.execute('create_account')
- >>> receivable, = Account.find([
- ... ('kind', '=', 'receivable'),
- ... ('company', '=', company.id),
- ... ])
- >>> payable, = Account.find([
- ... ('kind', '=', 'payable'),
- ... ('company', '=', company.id),
- ... ])
- >>> revenue, = Account.find([
- ... ('kind', '=', 'revenue'),
- ... ('company', '=', company.id),
- ... ])
- >>> expense, = Account.find([
- ... ('kind', '=', 'expense'),
- ... ('company', '=', company.id),
- ... ])
- >>> cash, = Account.find([
- ... ('kind', '=', 'other'),
- ... ('company', '=', company.id),
- ... ('name', '=', 'Main Cash'),
- ... ])
- >>> create_chart.form.account_receivable = receivable
- >>> create_chart.form.account_payable = payable
- >>> create_chart.execute('create_properties')
+ >>> _ = create_chart(company)
+ >>> accounts = get_accounts(company)
+ >>> receivable = accounts['receivable']
+ >>> revenue = accounts['revenue']
+ >>> expense = accounts['expense']
+ >>> cash = accounts['cash']
Create parties::
@@ -198,6 +135,7 @@ Create Moves for writeoff reconciliation::
Reconcile Lines with writeoff::
+ >>> Sequence = Model.get('ir.sequence')
>>> sequence_journal, = Sequence.find([('code', '=', 'account.journal')])
>>> journal_writeoff = Journal(name='Write-Off', type='write-off',
... sequence=sequence_journal,
diff --git a/tests/scenario_move_cancel.rst b/tests/scenario_move_cancel.rst
index 140d3c0..e1429d7 100644
--- a/tests/scenario_move_cancel.rst
+++ b/tests/scenario_move_cancel.rst
@@ -2,16 +2,16 @@
Move Cancel Scenario
====================
-=============
-General Setup
-=============
-
Imports::
>>> import datetime
>>> from dateutil.relativedelta import relativedelta
>>> from decimal import Decimal
>>> from proteus import config, Model, Wizard
+ >>> from trytond.modules.company.tests.tools import create_company, \
+ ... get_company
+ >>> from trytond.modules.account.tests.tools import create_fiscalyear, \
+ ... create_chart, get_accounts
>>> today = datetime.date.today()
Create database::
@@ -22,85 +22,29 @@ Create database::
Install account::
>>> Module = Model.get('ir.module.module')
- >>> modules = Module.find([
+ >>> module, = Module.find([
... ('name', '=', 'account'),
... ])
- >>> Module.install([x.id for x in modules], config.context)
+ >>> module.click('install')
>>> Wizard('ir.module.module.install_upgrade').execute('upgrade')
Create company::
- >>> Currency = Model.get('currency.currency')
- >>> CurrencyRate = Model.get('currency.currency.rate')
- >>> Company = Model.get('company.company')
- >>> Party = Model.get('party.party')
- >>> company_config = Wizard('company.company.config')
- >>> company_config.execute('company')
- >>> company = company_config.form
- >>> party = Party(name='Dunder Mifflin')
- >>> party.save()
- >>> company.party = party
- >>> currencies = Currency.find([('code', '=', 'USD')])
- >>> if not currencies:
- ... currency = Currency(name='U.S. Dollar', symbol='$', code='USD',
- ... rounding=Decimal('0.01'), mon_grouping='[3, 3, 0]',
- ... mon_decimal_point='.', mon_thousands_sep=',')
- ... currency.save()
- ... CurrencyRate(date=today + relativedelta(month=1, day=1),
- ... rate=Decimal('1.0'), currency=currency).save()
- ... else:
- ... currency, = currencies
- >>> company.currency = currency
- >>> company_config.execute('add')
- >>> company, = Company.find()
-
-Reload the context::
-
- >>> User = Model.get('res.user')
- >>> config._context = User.get_preferences(True, config.context)
+ >>> _ = create_company()
+ >>> company = get_company()
Create fiscal year::
- >>> FiscalYear = Model.get('account.fiscalyear')
- >>> Sequence = Model.get('ir.sequence')
- >>> SequenceStrict = Model.get('ir.sequence.strict')
- >>> fiscalyear = FiscalYear(name='%s' % today.year)
- >>> fiscalyear.start_date = today + relativedelta(month=1, day=1)
- >>> fiscalyear.end_date = today + relativedelta(month=12, day=31)
- >>> fiscalyear.company = company
- >>> post_move_sequence = Sequence(name='%s' % today.year,
- ... code='account.move', company=company)
- >>> post_move_sequence.save()
- >>> fiscalyear.post_move_sequence = post_move_sequence
- >>> fiscalyear.save()
- >>> FiscalYear.create_period([fiscalyear.id], config.context)
+ >>> fiscalyear = create_fiscalyear(company)
+ >>> fiscalyear.click('create_period')
>>> period = fiscalyear.periods[0]
Create chart of accounts::
- >>> AccountTemplate = Model.get('account.account.template')
- >>> Account = Model.get('account.account')
- >>> account_template, = AccountTemplate.find([('parent', '=', None)])
- >>> create_chart = Wizard('account.create_chart')
- >>> create_chart.execute('account')
- >>> create_chart.form.account_template = account_template
- >>> create_chart.form.company = company
- >>> create_chart.execute('create_account')
- >>> receivable, = Account.find([
- ... ('kind', '=', 'receivable'),
- ... ('company', '=', company.id),
- ... ])
- >>> payable, = Account.find([
- ... ('kind', '=', 'payable'),
- ... ('company', '=', company.id),
- ... ])
- >>> revenue, = Account.find([
- ... ('kind', '=', 'revenue'),
- ... ('company', '=', company.id),
- ... ])
- >>> create_chart.form.account_receivable = receivable
- >>> create_chart.form.account_payable = payable
- >>> create_chart.execute('create_properties')
+ >>> _ = create_chart(company)
+ >>> accounts = get_accounts(company)
+ >>> receivable = accounts['receivable']
+ >>> revenue = accounts['revenue']
Create parties::
@@ -140,6 +84,8 @@ Create Move to cancel::
Cancel Move::
>>> cancel_move = Wizard('account.move.cancel', [move])
+ >>> cancel_move.form.description = 'Cancel'
+ >>> cancel_move.execute('cancel')
>>> cancel_move.state
'end'
>>> move.reload()
@@ -150,6 +96,8 @@ Cancel Move::
... if l.move != move]
>>> cancel_move.origin == move
True
+ >>> cancel_move.description
+ u'Cancel'
>>> revenue.reload()
>>> revenue.credit
Decimal('0.00')
diff --git a/tests/scenario_move_template.rst b/tests/scenario_move_template.rst
new file mode 100644
index 0000000..d1e8fa6
--- /dev/null
+++ b/tests/scenario_move_template.rst
@@ -0,0 +1,127 @@
+======================
+Move Template Scenario
+======================
+
+Imports::
+
+ >>> from decimal import Decimal
+ >>> from proteus import config, Model, Wizard
+ >>> from trytond.modules.company.tests.tools import create_company, \
+ ... get_company
+ >>> from trytond.modules.account.tests.tools import create_fiscalyear, \
+ ... create_chart, get_accounts, create_tax, set_tax_code
+
+Create database::
+
+ >>> config = config.set_trytond()
+ >>> config.pool.test = True
+
+Install account::
+
+ >>> Module = Model.get('ir.module.module')
+ >>> module, = Module.find([
+ ... ('name', '=', 'account'),
+ ... ])
+ >>> module.click('install')
+ >>> Wizard('ir.module.module.install_upgrade').execute('upgrade')
+
+Create company::
+
+ >>> _ = create_company()
+ >>> company = get_company()
+
+Create fiscal year::
+
+ >>> fiscalyear = create_fiscalyear(company)
+ >>> fiscalyear.click('create_period')
+ >>> period = fiscalyear.periods[0]
+
+Create chart of accounts::
+
+ >>> _ = create_chart(company)
+ >>> accounts = get_accounts(company)
+ >>> payable = accounts['payable']
+ >>> expense = accounts['expense']
+ >>> tax = accounts['tax']
+
+Create tax with code::
+
+ >>> tax = set_tax_code(create_tax(Decimal('0.1')))
+ >>> tax.save()
+
+Create parties::
+
+ >>> Party = Model.get('party.party')
+ >>> supplier = Party(name='Supplier')
+ >>> supplier.save()
+
+Create Template::
+
+ >>> MoveTemplate = Model.get('account.move.template')
+ >>> Journal = Model.get('account.journal')
+ >>> template = MoveTemplate()
+ >>> template.name = 'Test'
+ >>> template.journal, = Journal.find([
+ ... ('code', '=', 'CASH'),
+ ... ])
+ >>> _ = template.keywords.new(name='party', string='Party',
+ ... type_='party')
+ >>> _ = template.keywords.new(name='description', string='Description',
+ ... type_='char')
+ >>> _ = template.keywords.new(name='amount', string='Amount',
+ ... type_='numeric', digits=2)
+ >>> template.description = '{party} - {description}'
+ >>> line = template.lines.new()
+ >>> line.operation = 'credit'
+ >>> line.account = payable
+ >>> line.party = 'party'
+ >>> line.amount = 'amount'
+ >>> line = template.lines.new()
+ >>> line.operation = 'debit'
+ >>> line.account = expense
+ >>> line.amount = 'amount / 1.1'
+ >>> ttax = line.taxes.new()
+ >>> ttax.amount = line.amount
+ >>> ttax.code = tax.invoice_base_code
+ >>> ttax.tax = tax
+ >>> line = template.lines.new()
+ >>> line.operation = 'debit'
+ >>> line.account = tax.invoice_account
+ >>> line.amount = 'amount * (1 - 1/1.1)'
+ >>> ttax = line.taxes.new()
+ >>> ttax.amount = line.amount
+ >>> ttax.code = tax.invoice_tax_code
+ >>> ttax.tax = tax
+ >>> template.save()
+
+Create Move::
+
+ >>> create_move = Wizard('account.move.template.create')
+ >>> create_move.form.template = template
+ >>> create_move.execute('keywords')
+ >>> data = {}
+ >>> keywords = data['keywords'] = {}
+ >>> keywords['party'] = supplier.id
+ >>> keywords['description'] = 'Test'
+ >>> keywords['amount'] = Decimal('12.24')
+ >>> context = create_move._context.copy()
+ >>> context.update(create_move._config.context)
+ >>> _ = create_move._proxy.execute(create_move.session_id, data, 'create_',
+ ... context)
+
+.. note:: using custom call because proteus doesn't support fake model
+
+Check the Move::
+
+ >>> Move = Model.get('account.move')
+ >>> move, = Move.find([])
+ >>> len(move.lines)
+ 3
+ >>> sorted((l.debit, l.credit) for l in move.lines)
+ [(Decimal('0'), Decimal('12.24')), (Decimal('1.11'), Decimal('0')), (Decimal('11.13'), Decimal('0'))]
+ >>> move.description
+ u'Supplier - Test'
+ >>> tax.invoice_base_code.sum
+ Decimal('11.13')
+ >>> tax.invoice_tax_code.sum
+ Decimal('1.11')
diff --git a/tests/scenario_reports.rst b/tests/scenario_reports.rst
new file mode 100644
index 0000000..d0f3010
--- /dev/null
+++ b/tests/scenario_reports.rst
@@ -0,0 +1,96 @@
+========================
+Account Reports Scenario
+========================
+
+Imports::
+
+ >>> import datetime
+ >>> from dateutil.relativedelta import relativedelta
+ >>> from decimal import Decimal
+ >>> from proteus import config, Model, Wizard, Report
+ >>> from trytond.modules.company.tests.tools import create_company, \
+ ... get_company
+ >>> from trytond.modules.account.tests.tools import create_fiscalyear, \
+ ... create_chart, get_accounts
+ >>> today = datetime.date.today()
+
+Create database::
+
+ >>> config = config.set_trytond()
+ >>> config.pool.test = True
+
+Install account::
+
+ >>> Module = Model.get('ir.module.module')
+ >>> module, = Module.find([
+ ... ('name', '=', 'account'),
+ ... ])
+ >>> module.click('install')
+ >>> Wizard('ir.module.module.install_upgrade').execute('upgrade')
+
+Create company::
+
+ >>> _ = create_company()
+ >>> company = get_company()
+
+Create fiscal year::
+
+ >>> fiscalyear = create_fiscalyear(company)
+ >>> fiscalyear.click('create_period')
+ >>> period = fiscalyear.periods[0]
+
+Create chart of accounts::
+
+ >>> _ = create_chart(company)
+ >>> accounts = get_accounts(company)
+ >>> receivable = accounts['receivable']
+ >>> revenue = accounts['revenue']
+ >>> expense = accounts['expense']
+ >>> cash = accounts['cash']
+
+Create parties::
+
+ >>> Party = Model.get('party.party')
+ >>> party = Party(name='Party')
+ >>> party.save()
+
+Create a moves::
+
+ >>> Journal = Model.get('account.journal')
+ >>> Move = Model.get('account.move')
+ >>> journal_revenue, = Journal.find([
+ ... ('code', '=', 'REV'),
+ ... ])
+ >>> journal_cash, = Journal.find([
+ ... ('code', '=', 'CASH'),
+ ... ])
+ >>> move = Move()
+ >>> move.period = period
+ >>> move.journal = journal_revenue
+ >>> move.date = period.start_date
+ >>> line = move.lines.new()
+ >>> line.account = revenue
+ >>> line.credit = Decimal(10)
+ >>> line = move.lines.new()
+ >>> line.account = receivable
+ >>> line.debit = Decimal(10)
+ >>> line.party = party
+ >>> move.save()
+
+Print some reports::
+
+ >>> print_general_ledger = Wizard('account.print_general_ledger')
+ >>> print_general_ledger.form.start_period = None
+ >>> print_general_ledger.form.end_period = None
+ >>> print_general_ledger.execute('print_')
+
+ >>> print_trial_balance = Wizard('account.print_trial_balance')
+ >>> print_trial_balance.form.start_period = None
+ >>> print_trial_balance.form.end_period = None
+ >>> print_trial_balance.execute('print_')
+
+ >>> third_party_balance = Wizard('account.open_third_party_balance')
+ >>> third_party_balance.execute('print_')
+
+ >>> aged_balance = Wizard('account.open_aged_balance')
+ >>> aged_balance.execute('print_')
diff --git a/tests/test_account.py b/tests/test_account.py
index 1c5d54e..f2ccb86 100644
--- a/tests/test_account.py
+++ b/tests/test_account.py
@@ -1,22 +1,24 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
import unittest
import doctest
import datetime
from decimal import Decimal
from dateutil.relativedelta import relativedelta
+from trytond.pool import Pool
import trytond.tests.test_tryton
-from trytond.tests.test_tryton import test_view, test_depends
+from trytond.tests.test_tryton import ModuleTestCase
from trytond.tests.test_tryton import doctest_setup, doctest_teardown
from trytond.tests.test_tryton import POOL, DB_NAME, USER, CONTEXT
from trytond.transaction import Transaction
-class AccountTestCase(unittest.TestCase):
+class AccountTestCase(ModuleTestCase):
'Test Account module'
+ module = 'account'
def setUp(self):
- trytond.tests.test_tryton.install_module('account')
+ super(AccountTestCase, self).setUp()
self.account_template = POOL.get('account.account.template')
self.tax_code_template = POOL.get('account.tax.code.template')
self.tax_template = POOL.get('account.tax.code.template')
@@ -36,14 +38,6 @@ class AccountTestCase(unittest.TestCase):
self.tax = POOL.get('account.tax')
self.party = POOL.get('party.party')
- def test0005views(self):
- 'Test views'
- test_view('account')
-
- def test0006depends(self):
- 'Test depends'
- test_depends()
-
def test0010account_chart(self):
'Test creation of minimal chart of accounts'
with Transaction().start(DB_NAME, USER,
@@ -325,7 +319,7 @@ class AccountTestCase(unittest.TestCase):
transaction.cursor.rollback()
def test0040tax_compute(self):
- 'Test tax compute'
+ 'Test tax compute/reverse_compute'
with Transaction().start(DB_NAME, USER, context=CONTEXT):
today = datetime.date.today()
@@ -368,6 +362,10 @@ class AccountTestCase(unittest.TestCase):
'tax': child2,
}])
+ self.assertEqual(
+ self.tax.reverse_compute(Decimal('130'), [tax]),
+ Decimal('100'))
+
child1.end_date = today + relativedelta(days=5)
child1.save()
self.assertEqual(self.tax.compute([tax], Decimal('100'), 2, today),
@@ -381,6 +379,10 @@ class AccountTestCase(unittest.TestCase):
'tax': child2,
}])
+ self.assertEqual(
+ self.tax.reverse_compute(Decimal('130'), [tax], today),
+ Decimal('100'))
+
child1.start_date = today + relativedelta(days=1)
child1.save()
self.assertEqual(self.tax.compute([tax], Decimal('100'), 2, today),
@@ -389,6 +391,9 @@ class AccountTestCase(unittest.TestCase):
'amount': Decimal('20'),
'tax': child2,
}])
+ self.assertEqual(
+ self.tax.reverse_compute(Decimal('110'), [tax], today),
+ Decimal('100'))
self.assertEqual(self.tax.compute([tax], Decimal('100'), 2,
today + relativedelta(days=1)), [{
'base': Decimal('200'),
@@ -399,6 +404,10 @@ class AccountTestCase(unittest.TestCase):
'amount': Decimal('20'),
'tax': child2,
}])
+ self.assertEqual(
+ self.tax.reverse_compute(
+ Decimal('130'), [tax], today + relativedelta(days=1)),
+ Decimal('100'))
self.assertEqual(self.tax.compute([tax], Decimal('100'), 2,
today + relativedelta(days=5)), [{
'base': Decimal('200'),
@@ -409,12 +418,20 @@ class AccountTestCase(unittest.TestCase):
'amount': Decimal('20'),
'tax': child2,
}])
+ self.assertEqual(
+ self.tax.reverse_compute(Decimal('130'), [tax],
+ today + relativedelta(days=5)),
+ Decimal('100'))
self.assertEqual(self.tax.compute([tax], Decimal('100'), 2,
today + relativedelta(days=6)), [{
'base': Decimal('200'),
'amount': Decimal('20'),
'tax': child2,
}])
+ self.assertEqual(
+ self.tax.reverse_compute(Decimal('110'), [tax],
+ today + relativedelta(days=6)),
+ Decimal('100'))
child1.end_date = None
child1.save()
@@ -428,6 +445,320 @@ class AccountTestCase(unittest.TestCase):
'amount': Decimal('20'),
'tax': child2,
}])
+ self.assertEqual(
+ self.tax.reverse_compute(Decimal('130'), [tax],
+ today + relativedelta(days=6)),
+ Decimal('100'))
+
+ ecotax1 = self.tax()
+ ecotax1.name = ecotax1.description = 'EcoTax 1'
+ ecotax1.type = 'fixed'
+ ecotax1.amount = Decimal(5)
+ ecotax1.invoice_account = tax_account
+ ecotax1.credit_note_account = tax_account
+ ecotax1.sequence = 10
+ ecotax1.save()
+
+ vat0 = self.tax()
+ vat0.name = vat0.description = 'VAT0'
+ vat0.type = 'percentage'
+ vat0.rate = Decimal('0.1')
+ vat0.invoice_account = tax_account
+ vat0.credit_note_account = tax_account
+ vat0.sequence = 5
+ vat0.save()
+
+ vat1 = self.tax()
+ vat1.name = vat1.description = 'VAT1'
+ vat1.type = 'percentage'
+ vat1.rate = Decimal('0.2')
+ vat1.invoice_account = tax_account
+ vat1.credit_note_account = tax_account
+ vat1.sequence = 20
+ vat1.save()
+
+ self.assertEqual(
+ self.tax.compute([vat0, ecotax1, vat1], Decimal(100), 1),
+ [{
+ 'base': Decimal(100),
+ 'amount': Decimal(10),
+ 'tax': vat0,
+ }, {
+ 'base': Decimal(100),
+ 'amount': Decimal(5),
+ 'tax': ecotax1,
+ }, {
+ 'base': Decimal(100),
+ 'amount': Decimal(20),
+ 'tax': vat1,
+ }])
+ self.assertEqual(
+ self.tax.reverse_compute(Decimal(135), [vat0, ecotax1, vat1]),
+ Decimal(100))
+
+ def test0045tax_compute_with_update_unit_price(self):
+ 'Test tax compute with unit_price modifying tax'
+ with Transaction().start(DB_NAME, USER, context=CONTEXT):
+ tax_account, = self.account.search([
+ ('name', '=', 'Main Tax'),
+ ])
+ ecotax1 = self.tax()
+ ecotax1.name = ecotax1.description = 'EcoTax 1'
+ ecotax1.type = 'fixed'
+ ecotax1.amount = Decimal(5)
+ ecotax1.invoice_account = tax_account
+ ecotax1.credit_note_account = tax_account
+ ecotax1.update_unit_price = True
+ ecotax1.sequence = 10
+ ecotax1.save()
+
+ vat1 = self.tax()
+ vat1.name = vat1.description = 'VAT1'
+ vat1.type = 'percentage'
+ vat1.rate = Decimal('0.2')
+ vat1.invoice_account = tax_account
+ vat1.credit_note_account = tax_account
+ vat1.sequence = 20
+ vat1.save()
+
+ self.assertEqual(
+ self.tax.compute([ecotax1, vat1], Decimal(100), 5),
+ [{
+ 'base': Decimal(500),
+ 'amount': Decimal(25),
+ 'tax': ecotax1,
+ }, {
+ 'base': Decimal(525),
+ 'amount': Decimal(105),
+ 'tax': vat1,
+ }])
+ self.assertEqual(
+ self.tax.reverse_compute(Decimal(126), [ecotax1, vat1]),
+ Decimal(100))
+
+ ecotax2 = self.tax()
+ ecotax2.name = ecotax2.description = 'EcoTax 2'
+ ecotax2.type = 'percentage'
+ ecotax2.rate = Decimal('0.5')
+ ecotax2.invoice_account = tax_account
+ ecotax2.credit_note_account = tax_account
+ ecotax2.update_unit_price = True
+ ecotax2.sequence = 10
+ ecotax2.save()
+
+ self.assertEqual(
+ self.tax.compute([ecotax1, ecotax2, vat1], Decimal(100), 1),
+ [{
+ 'base': Decimal(100),
+ 'amount': Decimal(5),
+ 'tax': ecotax1,
+ }, {
+ 'base': Decimal(100),
+ 'amount': Decimal(50),
+ 'tax': ecotax2,
+ }, {
+ 'base': Decimal(155),
+ 'amount': Decimal(31),
+ 'tax': vat1,
+ }])
+ self.assertEqual(
+ self.tax.reverse_compute(Decimal(186),
+ [ecotax1, ecotax2, vat1]),
+ Decimal(100))
+
+ vat0 = self.tax()
+ vat0.name = vat0.description = 'VAT0'
+ vat0.type = 'percentage'
+ vat0.rate = Decimal('0.1')
+ vat0.invoice_account = tax_account
+ vat0.credit_note_account = tax_account
+ vat0.sequence = 5
+ vat0.save()
+
+ self.assertEqual(
+ self.tax.compute([vat0, ecotax1, vat1], Decimal(100), 1),
+ [{
+ 'base': Decimal(100),
+ 'amount': Decimal(10),
+ 'tax': vat0,
+ }, {
+ 'base': Decimal(100),
+ 'amount': Decimal(5),
+ 'tax': ecotax1,
+ }, {
+ 'base': Decimal(105),
+ 'amount': Decimal(21),
+ 'tax': vat1,
+ }])
+ self.assertEqual(
+ self.tax.reverse_compute(Decimal(136),
+ [vat0, ecotax1, vat1]),
+ Decimal(100))
+
+ self.assertEqual(
+ self.tax.compute([vat0, ecotax1, ecotax2, vat1],
+ Decimal(100), 1),
+ [{
+ 'base': Decimal(100),
+ 'amount': Decimal(10),
+ 'tax': vat0,
+ }, {
+ 'base': Decimal(100),
+ 'amount': Decimal(5),
+ 'tax': ecotax1,
+ }, {
+ 'base': Decimal(100),
+ 'amount': Decimal(50),
+ 'tax': ecotax2,
+ }, {
+ 'base': Decimal(155),
+ 'amount': Decimal(31),
+ 'tax': vat1,
+ }])
+ self.assertEqual(
+ self.tax.reverse_compute(Decimal(196),
+ [vat0, ecotax1, ecotax2, vat1]),
+ Decimal(100))
+
+ vat2 = self.tax()
+ vat2.name = vat2.description = 'VAT2'
+ vat2.type = 'percentage'
+ vat2.rate = Decimal('0.3')
+ vat2.invoice_account = tax_account
+ vat2.credit_note_account = tax_account
+ vat2.sequence = 30
+ vat2.save()
+
+ self.assertEqual(
+ self.tax.compute([vat0, ecotax1, vat1, vat2],
+ Decimal(100), 1),
+ [{
+ 'base': Decimal(100),
+ 'amount': Decimal(10),
+ 'tax': vat0,
+ }, {
+ 'base': Decimal(100),
+ 'amount': Decimal(5),
+ 'tax': ecotax1,
+ }, {
+ 'base': Decimal(105),
+ 'amount': Decimal(21),
+ 'tax': vat1,
+ }, {
+ 'base': Decimal(105),
+ 'amount': Decimal('31.5'),
+ 'tax': vat2,
+ }])
+ self.assertEqual(
+ self.tax.reverse_compute(Decimal('167.5'),
+ [vat0, ecotax1, vat1, vat2]),
+ Decimal(100))
+
+ ecotax3 = self.tax()
+ ecotax3.name = ecotax3.description = 'ECOTAX3'
+ ecotax3.type = 'percentage'
+ ecotax3.rate = Decimal('0.4')
+ ecotax3.invoice_account = tax_account
+ ecotax3.credit_note_account = tax_account
+ ecotax3.update_unit_price = True
+ ecotax3.sequence = 25
+ ecotax3.save()
+
+ self.assertEqual(
+ self.tax.compute([vat0, ecotax1, vat1, ecotax3, vat2],
+ Decimal(100), 1),
+ [{
+ 'base': Decimal(100),
+ 'amount': Decimal(10),
+ 'tax': vat0,
+ }, {
+ 'base': Decimal(100),
+ 'amount': Decimal(5),
+ 'tax': ecotax1,
+ }, {
+ 'base': Decimal(105),
+ 'amount': Decimal(21),
+ 'tax': vat1,
+ }, {
+ 'base': Decimal(105),
+ 'amount': Decimal('42'),
+ 'tax': ecotax3,
+ }, {
+ 'base': Decimal(147),
+ 'amount': Decimal('44.1'),
+ 'tax': vat2
+ }])
+ self.assertEqual(
+ self.tax.reverse_compute(Decimal('222.1'),
+ [vat0, ecotax1, vat1, ecotax3, vat2]),
+ Decimal(100))
+
+ def test0050_receivable_payable(self):
+ 'Test party receivable payable'
+ with Transaction().start(DB_NAME, USER, context=CONTEXT):
+ pool = Pool()
+ Party = pool.get('party.party')
+ fiscalyear, = self.fiscalyear.search([])
+ period = fiscalyear.periods[0]
+ journal_revenue, = self.journal.search([
+ ('code', '=', 'REV'),
+ ])
+ journal_expense, = self.journal.search([
+ ('code', '=', 'EXP'),
+ ])
+ revenue, = self.account.search([
+ ('kind', '=', 'revenue'),
+ ])
+ receivable, = self.account.search([
+ ('kind', '=', 'receivable'),
+ ])
+ expense, = self.account.search([
+ ('kind', '=', 'expense'),
+ ])
+ payable, = self.account.search([
+ ('kind', '=', 'payable'),
+ ])
+ party, = Party.create([{
+ 'name': 'Receivable/Payable party',
+ }])
+ tomorrow = datetime.date.today() + datetime.timedelta(days=1)
+
+ def get_move(journal, amount, credit_account, debit_account, party,
+ maturity_date=None):
+ return {
+ 'period': period.id,
+ 'journal': journal.id,
+ 'date': period.start_date,
+ 'lines': [
+ ('create', [{
+ 'account': credit_account.id,
+ 'credit': amount,
+ }, {
+ 'account': debit_account.id,
+ 'debit': amount,
+ 'party': party.id,
+ 'maturity_date': maturity_date,
+ }]),
+ ],
+ }
+ vlist = [
+ get_move(journal_revenue, Decimal(100), revenue, receivable,
+ party),
+ get_move(journal_expense, Decimal(30), expense, payable,
+ party),
+ get_move(journal_revenue, Decimal(200), revenue, receivable,
+ party, tomorrow),
+ get_move(journal_revenue, Decimal(60), expense, payable,
+ party, tomorrow),
+ ]
+ moves = self.move.create(vlist)
+ self.move.post(moves)
+
+ party = Party(party.id)
+ self.assertEqual(party.receivable, Decimal('300'))
+ self.assertEqual(party.receivable_today, Decimal('100'))
+ self.assertEqual(party.payable, Decimal('90'))
+ self.assertEqual(party.payable_today, Decimal('30'))
def suite():
@@ -446,4 +777,12 @@ def suite():
'scenario_move_cancel.rst',
setUp=doctest_setup, tearDown=doctest_teardown, encoding='utf-8',
optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
+ suite.addTests(doctest.DocFileSuite(
+ 'scenario_move_template.rst',
+ setUp=doctest_setup, tearDown=doctest_teardown, encoding='utf-8',
+ optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
+ suite.addTests(doctest.DocFileSuite(
+ 'scenario_reports.rst',
+ setUp=doctest_setup, tearDown=doctest_teardown, encoding='utf-8',
+ optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
return suite
diff --git a/tests/tools.py b/tests/tools.py
new file mode 100644
index 0000000..381fa95
--- /dev/null
+++ b/tests/tools.py
@@ -0,0 +1,124 @@
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
+import datetime
+
+from dateutil.relativedelta import relativedelta
+
+from proteus import Model, Wizard
+
+from trytond.modules.company.tests.tools import get_company
+
+__all__ = ['create_fiscalyear', 'create_chart', 'get_accounts',
+ 'create_tax', 'set_tax_code']
+
+
+def create_fiscalyear(company=None, today=None, config=None):
+ "Create a fiscal year for the company on today"
+ FiscalYear = Model.get('account.fiscalyear', config=config)
+ Sequence = Model.get('ir.sequence', config=config)
+
+ if not company:
+ company = get_company()
+
+ if not today:
+ today = datetime.date.today()
+
+ fiscalyear = FiscalYear(name=str(today.year))
+ fiscalyear.start_date = today + relativedelta(month=1, day=1)
+ fiscalyear.end_date = today + relativedelta(month=12, day=31)
+ fiscalyear.company = company
+
+ post_move_sequence = Sequence(name=str(today.year), code='account.move',
+ company=company)
+ post_move_sequence.save()
+ fiscalyear.post_move_sequence = post_move_sequence
+ return fiscalyear
+
+
+def create_chart(company=None, config=None):
+ "Create chart of accounts"
+ AccountTemplate = Model.get('account.account.template', config=config)
+
+ if not company:
+ company = get_company()
+
+ account_template, = AccountTemplate.find([('parent', '=', None)])
+
+ create_chart = Wizard('account.create_chart')
+ create_chart.execute('account')
+ create_chart.form.account_template = account_template
+ create_chart.form.company = company
+ create_chart.execute('create_account')
+
+ accounts = get_accounts(company, config=config)
+
+ create_chart.form.account_receivable = accounts['receivable']
+ create_chart.form.account_payable = accounts['payable']
+ create_chart.execute('create_properties')
+ return create_chart
+
+
+def get_accounts(company=None, config=None):
+ "Return accounts per kind"
+ Account = Model.get('account.account', config=config)
+
+ if not company:
+ company = get_company()
+
+ accounts = Account.find([
+ ('kind', 'in', ['receivable', 'payable', 'revenue', 'expense']),
+ ('company', '=', company.id),
+ ])
+ accounts = {a.kind: a for a in accounts}
+ cash, = Account.find([
+ ('kind', '=', 'other'),
+ ('company', '=', company.id),
+ ('name', '=', 'Main Cash'),
+ ])
+ accounts['cash'] = cash
+ tax, = Account.find([
+ ('kind', '=', 'other'),
+ ('company', '=', company.id),
+ ('name', '=', 'Main Tax'),
+ ])
+ accounts['tax'] = tax
+ return accounts
+
+
+def create_tax(rate, company=None, config=None):
+ "Create a tax of rate"
+ Tax = Model.get('account.tax', config=config)
+
+ if not company:
+ company = get_company()
+
+ accounts = get_accounts(company)
+
+ tax = Tax()
+ tax.name = 'Tax %s' % rate
+ tax.description = tax.name
+ tax.type = 'percentage'
+ tax.rate = rate
+ tax.invoice_account = accounts['tax']
+ tax.credit_note_account = accounts['tax']
+ return tax
+
+
+def set_tax_code(tax, config=None):
+ "Set code on tax"
+ TaxCode = Model.get('account.tax.code', config=config)
+ invoice_base_code = TaxCode(name='Invoice Base')
+ invoice_base_code.save()
+ invoice_tax_code = TaxCode(name='Invoice Tax')
+ invoice_tax_code.save()
+ credit_note_base_code = TaxCode(name='Credit Note Base')
+ credit_note_base_code.save()
+ credit_note_tax_code = TaxCode(name='Credit Note Tax')
+ credit_note_tax_code.save()
+
+ tax.invoice_base_code = invoice_base_code
+ tax.invoice_tax_code = invoice_tax_code
+ tax.credit_note_base_code = credit_note_base_code
+ tax.credit_note_tax_code = credit_note_tax_code
+
+ return tax
diff --git a/third_party_balance.odt b/third_party_balance.odt
index 26328c1..9b6a0c8 100644
Binary files a/third_party_balance.odt and b/third_party_balance.odt differ
diff --git a/trial_balance.odt b/trial_balance.odt
index 018cb14..dfc0bc7 100644
Binary files a/trial_balance.odt and b/trial_balance.odt differ
diff --git a/tryton.cfg b/tryton.cfg
index bb978e4..aae50aa 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
[tryton]
-version=3.4.2
+version=3.6.0
depends:
company
currency
@@ -13,5 +13,6 @@ xml:
period.xml
journal.xml
move.xml
+ move_template.xml
tax.xml
party.xml
diff --git a/trytond_account.egg-info/PKG-INFO b/trytond_account.egg-info/PKG-INFO
index 89221d2..9b3d1b0 100644
--- a/trytond_account.egg-info/PKG-INFO
+++ b/trytond_account.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond-account
-Version: 3.4.2
+Version: 3.6.0
Summary: Tryton module for accounting
Home-page: http://www.tryton.org/
Author: Tryton
Author-email: issue_tracker at tryton.org
License: GPL-3
-Download-URL: http://downloads.tryton.org/3.4/
+Download-URL: http://downloads.tryton.org/3.6/
Description: trytond_account
===============
@@ -64,5 +64,7 @@ Classifier: Natural Language :: Slovenian
Classifier: Natural Language :: Spanish
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Office/Business
Classifier: Topic :: Office/Business :: Financial :: Accounting
diff --git a/trytond_account.egg-info/SOURCES.txt b/trytond_account.egg-info/SOURCES.txt
index 1cf07a5..68a382e 100644
--- a/trytond_account.egg-info/SOURCES.txt
+++ b/trytond_account.egg-info/SOURCES.txt
@@ -12,6 +12,7 @@ general_journal.odt
general_ledger.odt
journal.xml
move.xml
+move_template.xml
party.xml
period.xml
setup.py
@@ -33,6 +34,8 @@ tryton.cfg
./journal.xml
./move.py
./move.xml
+./move_template.py
+./move_template.xml
./party.py
./party.xml
./period.py
@@ -58,7 +61,10 @@ tryton.cfg
./tests/__init__.py
./tests/scenario_account_reconciliation.rst
./tests/scenario_move_cancel.rst
+./tests/scenario_move_template.rst
+./tests/scenario_reports.rst
./tests/test_account.py
+./tests/tools.py
./view/account_balance_sheet_tree.xml
./view/account_deferral_form.xml
./view/account_deferral_tree.xml
@@ -96,13 +102,23 @@ tryton.cfg
./view/journal_view_column_list_sequence.xml
./view/journal_view_form.xml
./view/journal_view_tree.xml
+./view/move_cancel_default_form.xml
./view/move_form.xml
./view/move_line_form.xml
./view/move_line_form_move.xml
+./view/move_line_list_payable_receivable.xml
+./view/move_line_template_form.xml
+./view/move_line_template_list.xml
./view/move_line_tree.xml
./view/move_line_tree_move.xml
./view/move_reconciliation_form.xml
./view/move_reconciliation_tree.xml
+./view/move_template_create_template_form.xml
+./view/move_template_form.xml
+./view/move_template_keyword_form.xml
+./view/move_template_keyword_list.xml
+./view/move_template_keyword_list_sequence.xml
+./view/move_template_list.xml
./view/move_tree.xml
./view/open_aged_balance_start_form.xml
./view/open_balance_sheet_start_form.xml
@@ -130,6 +146,8 @@ tryton.cfg
./view/tax_group_form.xml
./view/tax_group_tree.xml
./view/tax_line_form.xml
+./view/tax_line_template_form.xml
+./view/tax_line_template_list.xml
./view/tax_line_tree.xml
./view/tax_list.xml
./view/tax_rule_form.xml
@@ -162,6 +180,8 @@ locale/ru_RU.po
locale/sl_SI.po
tests/scenario_account_reconciliation.rst
tests/scenario_move_cancel.rst
+tests/scenario_move_template.rst
+tests/scenario_reports.rst
trytond_account.egg-info/PKG-INFO
trytond_account.egg-info/SOURCES.txt
trytond_account.egg-info/dependency_links.txt
@@ -206,13 +226,23 @@ view/journal_view_column_list.xml
view/journal_view_column_list_sequence.xml
view/journal_view_form.xml
view/journal_view_tree.xml
+view/move_cancel_default_form.xml
view/move_form.xml
view/move_line_form.xml
view/move_line_form_move.xml
+view/move_line_list_payable_receivable.xml
+view/move_line_template_form.xml
+view/move_line_template_list.xml
view/move_line_tree.xml
view/move_line_tree_move.xml
view/move_reconciliation_form.xml
view/move_reconciliation_tree.xml
+view/move_template_create_template_form.xml
+view/move_template_form.xml
+view/move_template_keyword_form.xml
+view/move_template_keyword_list.xml
+view/move_template_keyword_list_sequence.xml
+view/move_template_list.xml
view/move_tree.xml
view/open_aged_balance_start_form.xml
view/open_balance_sheet_start_form.xml
@@ -240,6 +270,8 @@ view/tax_form.xml
view/tax_group_form.xml
view/tax_group_tree.xml
view/tax_line_form.xml
+view/tax_line_template_form.xml
+view/tax_line_template_list.xml
view/tax_line_tree.xml
view/tax_list.xml
view/tax_rule_form.xml
diff --git a/trytond_account.egg-info/requires.txt b/trytond_account.egg-info/requires.txt
index c1e3b87..e89f0df 100644
--- a/trytond_account.egg-info/requires.txt
+++ b/trytond_account.egg-info/requires.txt
@@ -1,6 +1,7 @@
python-dateutil
-python-sql
-trytond_company >= 3.4, < 3.5
-trytond_currency >= 3.4, < 3.5
-trytond_party >= 3.4, < 3.5
-trytond >= 3.4, < 3.5
\ No newline at end of file
+python-sql >= 0.4
+simpleeval
+trytond_company >= 3.6, < 3.7
+trytond_currency >= 3.6, < 3.7
+trytond_party >= 3.6, < 3.7
+trytond >= 3.6, < 3.7
\ No newline at end of file
diff --git a/view/account_form.xml b/view/account_form.xml
index 828787a..8f26178 100644
--- a/view/account_form.xml
+++ b/view/account_form.xml
@@ -28,6 +28,8 @@ this repository contains the full copyright notices and license terms. -->
<field name="second_currency"/>
<label name="party_required"/>
<field name="party_required"/>
+ <label name="general_ledger_balance"/>
+ <field name="general_ledger_balance"/>
<field name="taxes" colspan="4"/>
</page>
<page string="Children" id="children">
diff --git a/view/account_type_list.xml b/view/account_type_list.xml
index 8d79002..14612a7 100644
--- a/view/account_type_list.xml
+++ b/view/account_type_list.xml
@@ -2,5 +2,5 @@
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tree string="Account Types">
- <field name="name"/>
+ <field name="rec_name"/>
</tree>
diff --git a/view/account_type_template_list.xml b/view/account_type_template_list.xml
index a3c9948..b80de6b 100644
--- a/view/account_type_template_list.xml
+++ b/view/account_type_template_list.xml
@@ -2,5 +2,5 @@
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tree string="Account Types Templates">
- <field name="name"/>
+ <field name="rec_name"/>
</tree>
diff --git a/view/account_type_list.xml b/view/move_cancel_default_form.xml
similarity index 60%
copy from view/account_type_list.xml
copy to view/move_cancel_default_form.xml
index 8d79002..04a892f 100644
--- a/view/account_type_list.xml
+++ b/view/move_cancel_default_form.xml
@@ -1,6 +1,7 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
-<tree string="Account Types">
- <field name="name"/>
-</tree>
+<form string="Cancel Moves">
+ <label name="description"/>
+ <field name="description" colspan="3"/>
+</form>
diff --git a/view/move_form.xml b/view/move_form.xml
index a219a39..4cc3b74 100644
--- a/view/move_form.xml
+++ b/view/move_form.xml
@@ -2,6 +2,9 @@
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<form string="Account Move" cursor="journal">
+ <label name="company"/>
+ <field name="company"/>
+ <newline/>
<label name="number"/>
<field name="number"/>
<label name="post_number"/>
diff --git a/view/move_tree.xml b/view/move_line_list_payable_receivable.xml
similarity index 56%
copy from view/move_tree.xml
copy to view/move_line_list_payable_receivable.xml
index a5b2c66..65f1764 100644
--- a/view/move_tree.xml
+++ b/view/move_line_list_payable_receivable.xml
@@ -1,14 +1,13 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
-<tree string="Account Moves">
- <field name="number"/>
- <field name="post_number"/>
- <field name="journal"/>
- <field name="period"/>
+<tree string="Account Move Lines">
<field name="date"/>
- <field name="post_date"/>
+ <field name="party"/>
+ <field name="amount"/>
+ <field name="amount_currency"/>
<field name="origin"/>
<field name="description"/>
- <field name="state"/>
+ <field name="move_description"/>
+ <field name="reconciliation"/>
</tree>
diff --git a/view/move_line_template_form.xml b/view/move_line_template_form.xml
new file mode 100644
index 0000000..ed185e5
--- /dev/null
+++ b/view/move_line_template_form.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<form string="Account Move Line Template">
+ <label name="account"/>
+ <field name="account"/>
+ <label name="move"/>
+ <field name="move"/>
+ <label name="operation"/>
+ <field name="operation"/>
+ <label name="amount"/>
+ <field name="amount"/>
+ <label name="description"/>
+ <field name="description" colspan="3"/>
+ <notebook colspan="4">
+ <page string="Other Info" id="info">
+ <label name="party"/>
+ <field name="party"/>
+ </page>
+ <page name="taxes">
+ <field name="taxes" colspan="4"/>
+ </page>
+ </notebook>
+</form>
diff --git a/view/move_line_tree_move.xml b/view/move_line_template_list.xml
similarity index 60%
copy from view/move_line_tree_move.xml
copy to view/move_line_template_list.xml
index 5d96b7b..c70ad76 100644
--- a/view/move_line_tree_move.xml
+++ b/view/move_line_template_list.xml
@@ -1,13 +1,12 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
-<tree string="Account Move Lines" editable="top">
+<tree string="Account Move Line Templates" editable="top">
<field name="move"/>
- <field name="description"/>
- <field name="party"/>
<field name="account"/>
- <field name="debit" sum="Debit"/>
- <field name="credit" sum="Credit"/>
- <field name="tax_lines"/>
- <field name="reconciliation"/>
+ <field name="party"/>
+ <field name="operation"/>
+ <field name="amount"/>
+ <field name="description"/>
+ <field name="taxes"/>
</tree>
diff --git a/view/move_line_tree.xml b/view/move_line_tree.xml
index 5a5e336..22d9b74 100644
--- a/view/move_line_tree.xml
+++ b/view/move_line_tree.xml
@@ -1,16 +1,14 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
-<tree string="Account Move Lines" editable="top"
- on_write="on_write"
- colors="If(Equal(Eval('state'), 'draft'), 'red', 'black')">
+<tree string="Account Move Lines" editable="top" on_write="on_write">
<field name="move"/>
<field name="origin"/>
<field name="description"/>
<field name="move_description"/>
<field name="date"/>
- <field name="party"/>
<field name="account"/>
+ <field name="party"/>
<field name="debit" sum="Debit"/>
<field name="credit" sum="Credit"/>
<field name="tax_lines"/>
diff --git a/view/move_line_tree_move.xml b/view/move_line_tree_move.xml
index 5d96b7b..ec688b3 100644
--- a/view/move_line_tree_move.xml
+++ b/view/move_line_tree_move.xml
@@ -4,8 +4,8 @@ this repository contains the full copyright notices and license terms. -->
<tree string="Account Move Lines" editable="top">
<field name="move"/>
<field name="description"/>
- <field name="party"/>
<field name="account"/>
+ <field name="party"/>
<field name="debit" sum="Debit"/>
<field name="credit" sum="Credit"/>
<field name="tax_lines"/>
diff --git a/view/move_template_create_template_form.xml b/view/move_template_create_template_form.xml
new file mode 100644
index 0000000..f56a595
--- /dev/null
+++ b/view/move_template_create_template_form.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<form string="Create Move from Template" col="2">
+ <label name="template"/>
+ <field name="template" widget="selection"/>
+ <label name="period"/>
+ <field name="period"/>
+</form>
diff --git a/view/move_template_form.xml b/view/move_template_form.xml
new file mode 100644
index 0000000..a208334
--- /dev/null
+++ b/view/move_template_form.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<form string="Account Move Template">
+ <label name="name"/>
+ <field name="name"/>
+ <label name="active"/>
+ <field name="active"/>
+ <notebook>
+ <page string="Template" id="template">
+ <label name="company"/>
+ <field name="company"/>
+ <newline/>
+ <label name="journal"/>
+ <field name="journal"/>
+ <label name="date"/>
+ <field name="date"/>
+ <label name="description"/>
+ <field name="description" colspan="3"/>
+ <field name="lines" colspan="4"/>
+ </page>
+ <page name="keywords">
+ <field name="keywords" colspan="4"
+ view_ids="account.move_template_keyword_view_list_sequence"/>
+ </page>
+ </notebook>
+</form>
diff --git a/view/move_template_keyword_form.xml b/view/move_template_keyword_form.xml
new file mode 100644
index 0000000..f08a967
--- /dev/null
+++ b/view/move_template_keyword_form.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<form string="Account Move Template Keyword">
+ <label name="move"/>
+ <field name="move"/>
+ <newline/>
+ <label name="name"/>
+ <field name="name"/>
+ <label name="string"/>
+ <field name="string"/>
+ <label name="type_"/>
+ <field name="type_"/>
+ <label name="digits"/>
+ <field name="digits"/>
+ <label name="required"/>
+ <field name="required"/>
+</form>
diff --git a/view/account_type_list.xml b/view/move_template_keyword_list.xml
similarity index 61%
copy from view/account_type_list.xml
copy to view/move_template_keyword_list.xml
index 8d79002..44e67ab 100644
--- a/view/account_type_list.xml
+++ b/view/move_template_keyword_list.xml
@@ -1,6 +1,9 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
-<tree string="Account Types">
+<tree string="Account Move Template Keywords">
+ <field name="move"/>
<field name="name"/>
+ <field name="type_"/>
+ <field name="required"/>
</tree>
diff --git a/view/account_type_list.xml b/view/move_template_keyword_list_sequence.xml
similarity index 62%
copy from view/account_type_list.xml
copy to view/move_template_keyword_list_sequence.xml
index 8d79002..b073b5f 100644
--- a/view/account_type_list.xml
+++ b/view/move_template_keyword_list_sequence.xml
@@ -1,6 +1,8 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
-<tree string="Account Types">
+<tree string="Account Move Template Keywords" sequence="sequence">
<field name="name"/>
+ <field name="type_"/>
+ <field name="required"/>
</tree>
diff --git a/view/account_type_list.xml b/view/move_template_list.xml
similarity index 70%
copy from view/account_type_list.xml
copy to view/move_template_list.xml
index 8d79002..90bef51 100644
--- a/view/account_type_list.xml
+++ b/view/move_template_list.xml
@@ -1,6 +1,7 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
-<tree string="Account Types">
+<tree string="Account Move Templates">
<field name="name"/>
+ <field name="active" tree_invisible="1"/>
</tree>
diff --git a/view/move_tree.xml b/view/move_tree.xml
index a5b2c66..76e7617 100644
--- a/view/move_tree.xml
+++ b/view/move_tree.xml
@@ -2,6 +2,7 @@
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tree string="Account Moves">
+ <field name="company"/>
<field name="number"/>
<field name="post_number"/>
<field name="journal"/>
diff --git a/view/period_tree.xml b/view/period_tree.xml
index 72db805..39d14c3 100644
--- a/view/period_tree.xml
+++ b/view/period_tree.xml
@@ -2,6 +2,7 @@
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tree string="Periods">
+ <field name="company"/>
<field name="name"/>
<field name="code"/>
<field name="type"/>
diff --git a/view/tax_form.xml b/view/tax_form.xml
index dc1fb2e..24b8463 100644
--- a/view/tax_form.xml
+++ b/view/tax_form.xml
@@ -34,6 +34,9 @@ this repository contains the full copyright notices and license terms. -->
<label name="company"/>
<field name="company"/>
<newline/>
+ <label name="update_unit_price"/>
+ <field name="update_unit_price"/>
+ <newline/>
<label name="invoice_account"/>
<field name="invoice_account"/>
<newline/>
diff --git a/view/tax_line_template_form.xml b/view/tax_line_template_form.xml
new file mode 100644
index 0000000..76e420f
--- /dev/null
+++ b/view/tax_line_template_form.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<form string="Account Tax Line Template">
+ <label name="line"/>
+ <field name="line" colspan="3"/>
+ <label name="tax"/>
+ <field name="tax"/>
+ <label name="code"/>
+ <field name="code"/>
+ <label name="amount"/>
+ <field name="amount"/>
+</form>
diff --git a/view/period_tree.xml b/view/tax_line_template_list.xml
similarity index 59%
copy from view/period_tree.xml
copy to view/tax_line_template_list.xml
index 72db805..3cd8dd0 100644
--- a/view/period_tree.xml
+++ b/view/tax_line_template_list.xml
@@ -1,9 +1,9 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
-<tree string="Periods">
- <field name="name"/>
+<tree string="Account Tax Line Templates" editable="bottom">
+ <field name="tax"/>
<field name="code"/>
- <field name="type"/>
- <field name="state"/>
+ <field name="amount"/>
+ <field name="line"/>
</tree>
diff --git a/view/tax_template_form.xml b/view/tax_template_form.xml
index 93ab0ba..d963bec 100644
--- a/view/tax_template_form.xml
+++ b/view/tax_template_form.xml
@@ -32,6 +32,9 @@ this repository contains the full copyright notices and license terms. -->
</group>
</group>
<newline/>
+ <label name="update_unit_price"/>
+ <field name="update_unit_price"/>
+ <newline/>
<label name="invoice_account"/>
<field name="invoice_account"/>
<newline/>
--
tryton-modules-account
More information about the tryton-debian-vcs
mailing list