[MERGE] forward port of branch 8.0 up to ed1c173
This commit is contained in:
+20
-9
@@ -1,9 +1,20 @@
|
||||
graft debian
|
||||
graft doc
|
||||
graft setup
|
||||
graft openerp
|
||||
include README.md
|
||||
include LICENSE
|
||||
include openerp-*
|
||||
include odoo*
|
||||
global-exclude *pyc *~ # Exclude possible garbage from previous graft.
|
||||
recursive-include * *.css
|
||||
recursive-include * *.csv
|
||||
recursive-include * *.gif
|
||||
recursive-include * *.html
|
||||
recursive-include * *.jpeg
|
||||
recursive-include * *.jpg
|
||||
recursive-include * *.js
|
||||
recursive-include * *.md
|
||||
recursive-include * *.png
|
||||
recursive-include * *.po
|
||||
recursive-include * *.rng
|
||||
recursive-include * *.rst
|
||||
recursive-include * *.sass
|
||||
recursive-include * *.sql
|
||||
recursive-include * *.txt
|
||||
recursive-include * *.ttf
|
||||
recursive-include * *.woff
|
||||
recursive-include * *.xml
|
||||
recursive-include * *.yml
|
||||
recursive-exclude * *.py[co]
|
||||
@@ -3,21 +3,20 @@
|
||||
Odoo
|
||||
----
|
||||
|
||||
Odoo is a suite of web based open source business apps. More info at http://www.odoo.com
|
||||
Odoo is a suite of web based open source business apps.
|
||||
|
||||
The easiest way to play with it is the <a href="https://www.odoo.com/page/start">Odoo free trial</a>, email registration is NOT required, use the "skip this step" link on the registration page to skip it.
|
||||
It's main apps include an <a href="https://www.odoo.com/page/crm">Open Source CRM</a>, <a href="https://www.odoo.com/page/website-builder">Website Builder</a>, <a href="https://www.odoo.com/page/e-commerce">eCommerce</a>, <a href="https://www.odoo.com/page/project-management">Project Management</a>, <a href="https://www.odoo.com/page/accounting">Billing & Accounting</a>, <a href="https://www.odoo.com/page/point-of-sale">Point of Sale</a>, <a href="https://www.odoo.com/page/employees">Human Resources</a>, Marketing, Manufacturing, Purchase Management, ... Each application is standalone but you get a full featured <a href="https://www.odoo.com">Open Source ERP</a> if you install several apps as they integrate to each others.
|
||||
|
||||
|
||||
Getting started with Odoo development
|
||||
--------------------------------------
|
||||
|
||||
If you are a developer type the following command at your terminal [1]:
|
||||
If you are a developer type the following command at your terminal:
|
||||
|
||||
wget -O- https://raw.githubusercontent.com/odoo/odoo/master/odoo.py | python
|
||||
|
||||
Then follow <a href="https://doc.openerp.com/trunk/server/howto/howto_website/">the developer tutorial</a>
|
||||
|
||||
[1] You may want to check the content of the <a href="https://raw.githubusercontent.com/odoo/odoo/master/odoo.py">odoo.py file</a> before executing it.
|
||||
|
||||
|
||||
Packages, tarballs and installers
|
||||
@@ -27,7 +26,7 @@ Packages, tarballs and installers
|
||||
|
||||
Add this apt repository to your /etc/apt/sources.list file
|
||||
|
||||
deb http://nightly.openerp.com/8.0/deb/ ./
|
||||
deb http://nightly.openerp.com/8.0/nightly/deb/ ./
|
||||
|
||||
Then type:
|
||||
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
Odoo Accounting
|
||||
---------------
|
||||
|
||||
The Odoo <a href="https://www.odoo.com/page/accounting">Open Source Accounting</a> app allows a better way to
|
||||
collaborate with your accountants, your customers and control your suppliers.
|
||||
|
||||
Activate features on demand, from integrated analytic accounting to budget,
|
||||
assets and multiple companies consolidation.
|
||||
|
||||
A Smart User Interface
|
||||
----------------------
|
||||
|
||||
Record transactions in a few clicks and easily manage all financial activities
|
||||
in one place. Odoo's user interface is designed with productivity in mind.
|
||||
|
||||
A Better Way To Work – Together
|
||||
-------------------------------
|
||||
|
||||
Share access to your latest business numbers with your team and your accountant
|
||||
– so everyone is up to speed. From work, home or on the go.
|
||||
|
||||
Connect Your Bank Accounts
|
||||
--------------------------
|
||||
|
||||
Import your bank statements and reconcile them in just a few clicks. Prepare
|
||||
payment orders based on your supplier invoices and payment terms.
|
||||
|
||||
Electronic invoicing and automated follow-ups
|
||||
---------------------------------------------
|
||||
|
||||
Create and send professional invoices & get paid online. Get rid of the stress
|
||||
of having to constantly remind your debtors. Simply set-up and automate
|
||||
follow-ups to get paid quickly.
|
||||
|
||||
Sales Integration
|
||||
-----------------
|
||||
|
||||
Automatically create invoices from sales orders, delivery orders or base them
|
||||
on time and material. Re-invoice expenses on projects to your customer in just
|
||||
a few clicks.
|
||||
|
||||
|
||||
Purchase Integration
|
||||
--------------------
|
||||
|
||||
Control supplier invocies based on purchase orders. Get real-time inventory
|
||||
valuation reports automatically posted in your accounts.
|
||||
|
||||
Multi-Level Analytic Accounting
|
||||
-------------------------------
|
||||
|
||||
Integrate your analytic accounting operations with timesheets, projects,
|
||||
invoices, expenses, etc. No need to record transactions, all analytic entries
|
||||
are posted automatically following your business rules.
|
||||
|
||||
Everything you need to grow
|
||||
---------------------------
|
||||
|
||||
Manage your assets, track expenses, control budgets, multi-level analytic
|
||||
accounting; Odoo has all the features you need to sustain all your business
|
||||
activities.
|
||||
|
||||
Scale With Your Organization
|
||||
----------------------------
|
||||
|
||||
Odoo supports multiple currencies, multiple users with different access rights,
|
||||
multiple companies with real time consolidation and unlimited analytic plans.
|
||||
|
||||
@@ -47,7 +47,7 @@ Creates a dashboard for accountants that includes:
|
||||
Processes like maintaining general ledgers are done through the defined Financial Journals (entry move line or grouping is maintained through a journal)
|
||||
for a particular financial year and for preparation of vouchers there is a module named account_voucher.
|
||||
""",
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com/page/billing',
|
||||
'images' : ['images/accounts.jpeg','images/bank_statement.jpeg','images/cash_register.jpeg','images/chart_of_accounts.jpeg','images/customer_invoice.jpeg','images/journal_entries.jpeg'],
|
||||
'depends' : ['base_setup', 'product', 'analytic', 'board', 'edi', 'report'],
|
||||
'data': [
|
||||
|
||||
@@ -55,6 +55,19 @@ def check_cycle(self, cr, uid, ids, context=None):
|
||||
level -= 1
|
||||
return True
|
||||
|
||||
class res_company(osv.osv):
|
||||
_inherit = "res.company"
|
||||
_columns = {
|
||||
'income_currency_exchange_account_id': fields.many2one(
|
||||
'account.account',
|
||||
string="Gain Exchange Rate Account",
|
||||
domain="[('type', '=', 'other')]",),
|
||||
'expense_currency_exchange_account_id': fields.many2one(
|
||||
'account.account',
|
||||
string="Loss Exchange Rate Account",
|
||||
domain="[('type', '=', 'other')]",),
|
||||
}
|
||||
|
||||
class account_payment_term(osv.osv):
|
||||
_name = "account.payment.term"
|
||||
_description = "Payment Term"
|
||||
@@ -1648,7 +1661,8 @@ class account_move_reconcile(osv.osv):
|
||||
if not total:
|
||||
self.pool.get('account.move.line').write(cr, uid,
|
||||
map(lambda x: x.id, rec.line_partial_ids),
|
||||
{'reconcile_id': rec.id }
|
||||
{'reconcile_id': rec.id },
|
||||
context=context
|
||||
)
|
||||
return True
|
||||
|
||||
|
||||
@@ -24,6 +24,8 @@ from openerp.tools.translate import _
|
||||
import openerp.addons.decimal_precision as dp
|
||||
from openerp.report import report_sxw
|
||||
|
||||
import time
|
||||
|
||||
class account_bank_statement(osv.osv):
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
if vals.get('name', '/') == '/':
|
||||
@@ -255,8 +257,8 @@ class account_bank_statement(osv.osv):
|
||||
amt_cur = False
|
||||
if st_line.statement_id.currency.id != company_currency_id:
|
||||
amt_cur = st_line.amount
|
||||
cur_id = st_line.currency_id or st_line.statement_id.currency.id
|
||||
if st_line.currency_id and st_line.amount_currency:
|
||||
cur_id = st_line.statement_id.currency.id
|
||||
elif st_line.currency_id and st_line.amount_currency:
|
||||
amt_cur = st_line.amount_currency
|
||||
cur_id = st_line.currency_id.id
|
||||
return self._prepare_move_line_vals(cr, uid, st_line, move_id, debit, credit,
|
||||
@@ -348,7 +350,7 @@ class account_bank_statement(osv.osv):
|
||||
self.pool.get('account.move').post(cr, uid, move_ids, context=context)
|
||||
self.message_post(cr, uid, [st.id], body=_('Statement %s confirmed, journal items were created.') % (st.name,), context=context)
|
||||
self.link_bank_to_partner(cr, uid, ids, context=context)
|
||||
return self.write(cr, uid, ids, {'state': 'confirm'}, context=context)
|
||||
return self.write(cr, uid, ids, {'state': 'confirm', 'closing_date': time.strftime("%Y-%m-%d %H:%M:%S")}, context=context)
|
||||
|
||||
def button_cancel(self, cr, uid, ids, context=None):
|
||||
bnk_st_line_ids = []
|
||||
@@ -403,31 +405,9 @@ class account_bank_statement(osv.osv):
|
||||
'context':ctx,
|
||||
}
|
||||
|
||||
def number_of_lines_reconciled(self, cr, uid, id, context=None):
|
||||
def number_of_lines_reconciled(self, cr, uid, ids, context=None):
|
||||
bsl_obj = self.pool.get('account.bank.statement.line')
|
||||
return bsl_obj.search_count(cr, uid, [('statement_id', '=', id), ('journal_entry_id', '!=', False)], context=context)
|
||||
|
||||
def get_format_currency_js_function(self, cr, uid, id, context=None):
|
||||
""" Returns a string that can be used to instanciate a javascript function.
|
||||
That function formats a number according to the statement line's currency or the statement currency"""
|
||||
company_currency = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.currency_id
|
||||
st = id and self.browse(cr, uid, id, context=context)
|
||||
if not st:
|
||||
return
|
||||
statement_currency = st.journal_id.currency or company_currency
|
||||
digits = 2 # TODO : from currency_obj
|
||||
function = ""
|
||||
done_currencies = []
|
||||
for st_line in st.line_ids:
|
||||
st_line_currency = st_line.currency_id or statement_currency
|
||||
if st_line_currency.id not in done_currencies:
|
||||
if st_line_currency.position == 'after':
|
||||
return_str = "return amount.toFixed(" + str(digits) + ") + ' " + st_line_currency.symbol + "';"
|
||||
else:
|
||||
return_str = "return '" + st_line_currency.symbol + " ' + amount.toFixed(" + str(digits) + ");"
|
||||
function += "if (currency_id === " + str(st_line_currency.id) + "){ " + return_str + " }"
|
||||
done_currencies.append(st_line_currency.id)
|
||||
return function
|
||||
return bsl_obj.search_count(cr, uid, [('statement_id', 'in', ids), ('journal_entry_id', '!=', False)], context=context)
|
||||
|
||||
def link_bank_to_partner(self, cr, uid, ids, context=None):
|
||||
for statement in self.browse(cr, uid, ids, context=context):
|
||||
@@ -437,6 +417,15 @@ class account_bank_statement(osv.osv):
|
||||
|
||||
class account_bank_statement_line(osv.osv):
|
||||
|
||||
def unlink(self, cr, uid, ids, context=None):
|
||||
for item in self.browse(cr, uid, ids, context=context):
|
||||
if item.journal_entry_id:
|
||||
raise osv.except_osv(
|
||||
_('Invalid Action!'),
|
||||
_('In order to delete a bank statement line, you must first cancel it to delete related journal items.')
|
||||
)
|
||||
return super(account_bank_statement_line, self).unlink(cr, uid, ids, context=context)
|
||||
|
||||
def cancel(self, cr, uid, ids, context=None):
|
||||
account_move_obj = self.pool.get('account.move')
|
||||
move_ids = []
|
||||
@@ -454,100 +443,102 @@ class account_bank_statement_line(osv.osv):
|
||||
account_move_obj.button_cancel(cr, uid, move_ids, context=context)
|
||||
account_move_obj.unlink(cr, uid, move_ids, context)
|
||||
|
||||
def get_data_for_reconciliations(self, cr, uid, ids, context=None):
|
||||
""" Used to instanciate a batch of reconciliations in a single request """
|
||||
# Build a list of reconciliations data
|
||||
def get_data_for_reconciliations(self, cr, uid, ids, excluded_ids=None, search_reconciliation_proposition=True, context=None):
|
||||
""" Returns the data required to display a reconciliation, for each statement line id in ids """
|
||||
ret = []
|
||||
statement_line_done = {}
|
||||
mv_line_ids_selected = []
|
||||
for st_line in self.browse(cr, uid, ids, context=context):
|
||||
# look for structured communication first
|
||||
exact_match_id = self.search_structured_com(cr, uid, st_line, context=context)
|
||||
if exact_match_id:
|
||||
reconciliation_data = {
|
||||
'st_line': self.get_statement_line_for_reconciliation(cr, uid, st_line.id, context),
|
||||
'reconciliation_proposition': self.make_counter_part_lines(cr, uid, st_line, [exact_match_id], context=context)
|
||||
}
|
||||
for mv_line in reconciliation_data['reconciliation_proposition']:
|
||||
mv_line_ids_selected.append(mv_line['id'])
|
||||
statement_line_done[st_line.id] = reconciliation_data
|
||||
|
||||
for st_line_id in ids:
|
||||
if statement_line_done.get(st_line_id):
|
||||
ret.append(statement_line_done.get(st_line_id))
|
||||
else:
|
||||
reconciliation_data = {
|
||||
'st_line': self.get_statement_line_for_reconciliation(cr, uid, st_line_id, context),
|
||||
'reconciliation_proposition': self.get_reconciliation_proposition(cr, uid, st_line_id, mv_line_ids_selected, context)
|
||||
}
|
||||
for mv_line in reconciliation_data['reconciliation_proposition']:
|
||||
mv_line_ids_selected.append(mv_line['id'])
|
||||
ret.append(reconciliation_data)
|
||||
if excluded_ids is None:
|
||||
excluded_ids = []
|
||||
|
||||
for st_line in self.browse(cr, uid, ids, context=context):
|
||||
reconciliation_data = {}
|
||||
if search_reconciliation_proposition:
|
||||
reconciliation_proposition = self.get_reconciliation_proposition(cr, uid, st_line, excluded_ids=excluded_ids, context=context)
|
||||
for mv_line in reconciliation_proposition:
|
||||
excluded_ids.append(mv_line['id'])
|
||||
reconciliation_data['reconciliation_proposition'] = reconciliation_proposition
|
||||
else:
|
||||
reconciliation_data['reconciliation_proposition'] = []
|
||||
st_line = self.get_statement_line_for_reconciliation(cr, uid, st_line, context=context)
|
||||
reconciliation_data['st_line'] = st_line
|
||||
ret.append(reconciliation_data)
|
||||
|
||||
# Check if, now that 'candidate' move lines were selected, there are moves left for statement lines
|
||||
#for reconciliation_data in ret:
|
||||
# if not reconciliation_data['st_line']['has_no_partner']:
|
||||
# st_line = self.browse(cr, uid, reconciliation_data['st_line']['id'], context=context)
|
||||
# if not self.get_move_lines_counterparts(cr, uid, st_line, excluded_ids=mv_line_ids_selected, count=True, context=context):
|
||||
# reconciliation_data['st_line']['no_match'] = True
|
||||
return ret
|
||||
|
||||
def get_statement_line_for_reconciliation(self, cr, uid, id, context=None):
|
||||
""" Returns the data required by the bank statement reconciliation use case """
|
||||
line = self.browse(cr, uid, id, context=context)
|
||||
statement_currency = line.journal_id.currency or line.journal_id.company_id.currency_id
|
||||
amount = line.amount
|
||||
rml_parser = report_sxw.rml_parse(cr, uid, 'statement_line_widget', context=context)
|
||||
amount_str = line.amount > 0 and line.amount or -line.amount
|
||||
amount_str = rml_parser.formatLang(amount_str, currency_obj=statement_currency)
|
||||
amount_currency_str = ""
|
||||
if line.amount_currency and line.currency_id:
|
||||
amount_currency_str = amount_str
|
||||
amount_str = rml_parser.formatLang(line.amount_currency, currency_obj=line.currency_id)
|
||||
amount = line.amount_currency
|
||||
def get_statement_line_for_reconciliation(self, cr, uid, st_line, context=None):
|
||||
""" Returns the data required by the bank statement reconciliation widget to display a statement line """
|
||||
if context is None:
|
||||
context = {}
|
||||
statement_currency = st_line.journal_id.currency or st_line.journal_id.company_id.currency_id
|
||||
rml_parser = report_sxw.rml_parse(cr, uid, 'reconciliation_widget_asl', context=context)
|
||||
|
||||
if st_line.amount_currency and st_line.currency_id:
|
||||
amount = st_line.amount_currency
|
||||
amount_currency = st_line.amount
|
||||
amount_currency_str = amount_currency > 0 and amount_currency or -amount_currency
|
||||
amount_currency_str = rml_parser.formatLang(amount_currency_str, currency_obj=statement_currency)
|
||||
else:
|
||||
amount = st_line.amount
|
||||
amount_currency_str = ""
|
||||
amount_str = amount > 0 and amount or -amount
|
||||
amount_str = rml_parser.formatLang(amount_str, currency_obj=st_line.currency_id or statement_currency)
|
||||
|
||||
data = {
|
||||
'id': line.id,
|
||||
'ref': line.ref,
|
||||
'note': line.note or "",
|
||||
'name': line.name,
|
||||
'date': line.date,
|
||||
'id': st_line.id,
|
||||
'ref': st_line.ref,
|
||||
'note': st_line.note or "",
|
||||
'name': st_line.name,
|
||||
'date': st_line.date,
|
||||
'amount': amount,
|
||||
'amount_str': amount_str,
|
||||
'currency_id': line.currency_id.id or statement_currency.id,
|
||||
'no_match': self.get_move_lines_counterparts(cr, uid, line, count=True, context=context) == 0,
|
||||
'partner_id': line.partner_id.id,
|
||||
'statement_id': line.statement_id.id,
|
||||
'account_code': line.journal_id.default_debit_account_id.code,
|
||||
'account_name': line.journal_id.default_debit_account_id.name,
|
||||
'partner_name': line.partner_id.name,
|
||||
'amount_currency_str': amount_currency_str,
|
||||
'has_no_partner': not line.partner_id.id,
|
||||
'amount_str': amount_str, # Amount in the statement line currency
|
||||
'currency_id': st_line.currency_id.id or statement_currency.id,
|
||||
'partner_id': st_line.partner_id.id,
|
||||
'statement_id': st_line.statement_id.id,
|
||||
'account_code': st_line.journal_id.default_debit_account_id.code,
|
||||
'account_name': st_line.journal_id.default_debit_account_id.name,
|
||||
'partner_name': st_line.partner_id.name,
|
||||
'amount_currency_str': amount_currency_str, # Amount in the statement currency
|
||||
'has_no_partner': not st_line.partner_id.id,
|
||||
}
|
||||
if line.partner_id.id:
|
||||
data['open_balance_account_id'] = line.partner_id.property_account_payable.id
|
||||
if st_line.partner_id.id:
|
||||
if amount > 0:
|
||||
data['open_balance_account_id'] = line.partner_id.property_account_receivable.id
|
||||
data['open_balance_account_id'] = st_line.partner_id.property_account_receivable.id
|
||||
else:
|
||||
data['open_balance_account_id'] = st_line.partner_id.property_account_payable.id
|
||||
|
||||
return data
|
||||
|
||||
def search_structured_com(self, cr, uid, st_line, context=None):
|
||||
if not st_line.ref:
|
||||
return
|
||||
domain = [('ref', '=', st_line.ref)]
|
||||
if st_line.partner_id:
|
||||
domain += [('partner_id', '=', st_line.partner_id.id)]
|
||||
ids = self.pool.get('account.move.line').search(cr, uid, domain, limit=1, context=context)
|
||||
return ids and ids[0] or False
|
||||
|
||||
def get_reconciliation_proposition(self, cr, uid, id, excluded_ids=[], context=None):
|
||||
def get_reconciliation_proposition(self, cr, uid, st_line, excluded_ids=None, context=None):
|
||||
""" Returns move lines that constitute the best guess to reconcile a statement line. """
|
||||
st_line = self.browse(cr, uid, id, context=context)
|
||||
if excluded_ids is None:
|
||||
excluded_ids = []
|
||||
mv_line_pool = self.pool.get('account.move.line')
|
||||
|
||||
# Look for structured communication
|
||||
if st_line.name:
|
||||
structured_com_match_domain = [('ref', '=', st_line.name),('reconcile_id', '=', False),('state', '=', 'valid'),('account_id.reconcile', '=', True),('id', 'not in', excluded_ids)]
|
||||
match_id = mv_line_pool.search(cr, uid, structured_com_match_domain, offset=0, limit=1, context=context)
|
||||
if match_id:
|
||||
mv_line_br = mv_line_pool.browse(cr, uid, match_id, context=context)
|
||||
target_currency = st_line.currency_id or st_line.journal_id.currency or st_line.journal_id.company_id.currency_id
|
||||
mv_line = mv_line_pool.prepare_move_lines_for_reconciliation_widget(cr, uid, mv_line_br, target_currency=target_currency, target_date=st_line.date, context=context)[0]
|
||||
mv_line['has_no_partner'] = not bool(st_line.partner_id.id)
|
||||
# If the structured communication matches a move line that is associated with a partner, we can safely associate the statement line with the partner
|
||||
if (mv_line['partner_id']):
|
||||
self.write(cr, uid, st_line.id, {'partner_id': mv_line['partner_id']}, context=context)
|
||||
mv_line['has_no_partner'] = False
|
||||
return [mv_line]
|
||||
|
||||
# If there is no identified partner or structured communication, don't look further
|
||||
if not st_line.partner_id.id:
|
||||
return []
|
||||
|
||||
# Look for a move line whose amount matches the statement line's amount
|
||||
company_currency = st_line.journal_id.company_id.currency_id.id
|
||||
statement_currency = st_line.journal_id.currency.id or company_currency
|
||||
# either use the unsigned debit/credit fields or the signed amount_currency field
|
||||
sign = 1
|
||||
if statement_currency == company_currency:
|
||||
amount_field = 'credit'
|
||||
sign = -1
|
||||
if st_line.amount > 0:
|
||||
amount_field = 'debit'
|
||||
else:
|
||||
@@ -555,131 +546,74 @@ class account_bank_statement_line(osv.osv):
|
||||
if st_line.amount < 0:
|
||||
sign = -1
|
||||
|
||||
#we don't propose anything if there is no partner detected
|
||||
if not st_line.partner_id.id:
|
||||
return []
|
||||
# look for exact match
|
||||
exact_match_id = self.get_move_lines_counterparts(cr, uid, st_line, excluded_ids=excluded_ids, additional_domain=[(amount_field, '=', (sign * st_line.amount))])
|
||||
if exact_match_id:
|
||||
return exact_match_id
|
||||
match_id = self.get_move_lines_for_reconciliation(cr, uid, st_line, excluded_ids=excluded_ids, offset=0, limit=1, additional_domain=[(amount_field, '=', (sign * st_line.amount))])
|
||||
if match_id:
|
||||
return [match_id[0]]
|
||||
|
||||
# select oldest move lines
|
||||
if sign == -1:
|
||||
mv_lines = self.get_move_lines_counterparts(cr, uid, st_line, excluded_ids=excluded_ids, additional_domain=[(amount_field, '<', 0)])
|
||||
else:
|
||||
mv_lines = self.get_move_lines_counterparts(cr, uid, st_line, excluded_ids=excluded_ids, additional_domain=[(amount_field, '>', 0)])
|
||||
ret = []
|
||||
total = 0
|
||||
# get_move_lines_counterparts inverts debit and credit
|
||||
amount_field = 'debit' if amount_field == 'credit' else 'credit'
|
||||
for line in mv_lines:
|
||||
if total + line[amount_field] <= abs(st_line.amount):
|
||||
ret.append(line)
|
||||
total += line[amount_field]
|
||||
if total >= abs(st_line.amount):
|
||||
break
|
||||
return ret
|
||||
return []
|
||||
|
||||
def get_move_lines_counterparts_id(self, cr, uid, st_line_id, excluded_ids=[], additional_domain=[], count=False, context=None):
|
||||
def get_move_lines_for_reconciliation_by_statement_line_id(self, cr, uid, st_line_id, excluded_ids=None, str=False, offset=0, limit=None, count=False, additional_domain=None, context=None):
|
||||
""" Bridge between the web client reconciliation widget and get_move_lines_for_reconciliation (which expects a browse record) """
|
||||
if excluded_ids is None:
|
||||
excluded_ids = []
|
||||
if additional_domain is None:
|
||||
additional_domain = []
|
||||
st_line = self.browse(cr, uid, st_line_id, context=context)
|
||||
return self.get_move_lines_counterparts(cr, uid, st_line, excluded_ids, additional_domain, count, context=context)
|
||||
return self.get_move_lines_for_reconciliation(cr, uid, st_line, excluded_ids, str, offset, limit, count, additional_domain, context=context)
|
||||
|
||||
def get_move_lines_counterparts(self, cr, uid, st_line, excluded_ids=[], additional_domain=[], count=False, context=None):
|
||||
""" Find the move lines that could be used to reconcile a statement line and returns the counterpart that could be created to reconcile them
|
||||
If count is true, only returns the count.
|
||||
def get_move_lines_for_reconciliation(self, cr, uid, st_line, excluded_ids=None, str=False, offset=0, limit=None, count=False, additional_domain=None, context=None):
|
||||
""" Find the move lines that could be used to reconcile a statement line. If count is true, only returns the count.
|
||||
|
||||
:param st_line: the browse record of the statement line
|
||||
:param integers list excluded_ids: ids of move lines that should not be fetched
|
||||
:param string filter_str: string to filter lines
|
||||
:param integer offset: offset of the request
|
||||
:param integer limit: number of lines to fetch
|
||||
:param boolean count: just return the number of records
|
||||
:param tuples list domain: additional domain restrictions
|
||||
:param tuples list additional_domain: additional domain restrictions
|
||||
"""
|
||||
if excluded_ids is None:
|
||||
excluded_ids = []
|
||||
if additional_domain is None:
|
||||
additional_domain = []
|
||||
mv_line_pool = self.pool.get('account.move.line')
|
||||
|
||||
# Make domain
|
||||
domain = additional_domain + [('reconcile_id', '=', False),('state', '=', 'valid')]
|
||||
if st_line.partner_id.id:
|
||||
domain += [('partner_id', '=', st_line.partner_id.id),
|
||||
'|', ('account_id.type', '=', 'receivable'),
|
||||
('account_id.type', '=', 'payable')]
|
||||
else:
|
||||
domain += [('account_id.reconcile', '=', True)]
|
||||
#domain += [('account_id.reconcile', '=', True), ('account_id.type', '=', 'other')]
|
||||
domain += [('account_id.reconcile', '=', True), ('account_id.type', '=', 'other')]
|
||||
if str:
|
||||
domain += [('partner_id.name', 'ilike', str)]
|
||||
if excluded_ids:
|
||||
domain.append(('id', 'not in', excluded_ids))
|
||||
line_ids = mv_line_pool.search(cr, uid, domain, order="date_maturity asc, id asc", context=context)
|
||||
return self.make_counter_part_lines(cr, uid, st_line, line_ids, count=count, context=context)
|
||||
if str:
|
||||
domain += ['|', ('move_id.name', 'ilike', str), ('move_id.ref', 'ilike', str)]
|
||||
|
||||
def make_counter_part_lines(self, cr, uid, st_line, line_ids, count=False, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
mv_line_pool = self.pool.get('account.move.line')
|
||||
currency_obj = self.pool.get('res.currency')
|
||||
company_currency = st_line.journal_id.company_id.currency_id
|
||||
statement_currency = st_line.journal_id.currency or company_currency
|
||||
rml_parser = report_sxw.rml_parse(cr, uid, 'statement_line_counterpart_widget', context=context)
|
||||
#partially reconciled lines can be displayed only once
|
||||
reconcile_partial_ids = []
|
||||
# Get move lines
|
||||
line_ids = mv_line_pool.search(cr, uid, domain, offset=offset, limit=limit, order="date_maturity asc, id asc", context=context)
|
||||
lines = mv_line_pool.browse(cr, uid, line_ids, context=context)
|
||||
|
||||
# Either return number of lines
|
||||
if count:
|
||||
nb_lines = 0
|
||||
for line in mv_line_pool.browse(cr, uid, line_ids, context=context):
|
||||
reconcile_partial_ids = [] # for a partial reconciliation, take only one line
|
||||
for line in lines:
|
||||
if line.reconcile_partial_id and line.reconcile_partial_id.id in reconcile_partial_ids:
|
||||
continue
|
||||
nb_lines += 1
|
||||
if line.reconcile_partial_id:
|
||||
reconcile_partial_ids.append(line.reconcile_partial_id.id)
|
||||
return nb_lines
|
||||
|
||||
# Or return list of dicts representing the formatted move lines
|
||||
else:
|
||||
ret = []
|
||||
for line in mv_line_pool.browse(cr, uid, line_ids, context=context):
|
||||
if line.reconcile_partial_id and line.reconcile_partial_id.id in reconcile_partial_ids:
|
||||
continue
|
||||
amount_currency_str = ""
|
||||
if line.currency_id and line.amount_currency:
|
||||
amount_currency_str = rml_parser.formatLang(line.amount_currency, currency_obj=line.currency_id)
|
||||
ret_line = {
|
||||
'id': line.id,
|
||||
'name': line.move_id.name,
|
||||
'ref': line.move_id.ref,
|
||||
'account_code': line.account_id.code,
|
||||
'account_name': line.account_id.name,
|
||||
'account_type': line.account_id.type,
|
||||
'date_maturity': line.date_maturity,
|
||||
'date': line.date,
|
||||
'period_name': line.period_id.name,
|
||||
'journal_name': line.journal_id.name,
|
||||
'amount_currency_str': amount_currency_str,
|
||||
'partner_id': line.partner_id.id,
|
||||
'partner_name': line.partner_id.name,
|
||||
'has_no_partner': not bool(st_line.partner_id.id),
|
||||
}
|
||||
st_line_currency = st_line.currency_id or statement_currency
|
||||
if st_line.currency_id and line.currency_id and line.currency_id.id == st_line.currency_id.id:
|
||||
if line.amount_residual_currency < 0:
|
||||
ret_line['debit'] = 0
|
||||
ret_line['credit'] = -line.amount_residual_currency
|
||||
else:
|
||||
ret_line['debit'] = line.amount_residual_currency if line.credit != 0 else 0
|
||||
ret_line['credit'] = line.amount_residual_currency if line.debit != 0 else 0
|
||||
ret_line['amount_currency_str'] = rml_parser.formatLang(line.amount_residual, currency_obj=company_currency)
|
||||
else:
|
||||
if line.amount_residual < 0:
|
||||
ret_line['debit'] = 0
|
||||
ret_line['credit'] = -line.amount_residual
|
||||
else:
|
||||
ret_line['debit'] = line.amount_residual if line.credit != 0 else 0
|
||||
ret_line['credit'] = line.amount_residual if line.debit != 0 else 0
|
||||
ctx = context.copy()
|
||||
ctx.update({'date': st_line.date})
|
||||
ret_line['debit'] = currency_obj.compute(cr, uid, st_line_currency.id, company_currency.id, ret_line['debit'], context=ctx)
|
||||
ret_line['credit'] = currency_obj.compute(cr, uid, st_line_currency.id, company_currency.id, ret_line['credit'], context=ctx)
|
||||
ret_line['debit_str'] = rml_parser.formatLang(ret_line['debit'], currency_obj=st_line_currency)
|
||||
ret_line['credit_str'] = rml_parser.formatLang(ret_line['credit'], currency_obj=st_line_currency)
|
||||
ret.append(ret_line)
|
||||
if line.reconcile_partial_id:
|
||||
reconcile_partial_ids.append(line.reconcile_partial_id.id)
|
||||
return ret
|
||||
target_currency = st_line.currency_id or st_line.journal_id.currency or st_line.journal_id.company_id.currency_id
|
||||
mv_lines = mv_line_pool.prepare_move_lines_for_reconciliation_widget(cr, uid, lines, target_currency=target_currency, target_date=st_line.date, context=context)
|
||||
has_no_partner = not bool(st_line.partner_id.id)
|
||||
for line in mv_lines:
|
||||
line['has_no_partner'] = has_no_partner
|
||||
return mv_lines
|
||||
|
||||
def get_currency_rate_line(self, cr, uid, st_line, currency_diff, move_id, context=None):
|
||||
if currency_diff < 0:
|
||||
@@ -700,6 +634,7 @@ class account_bank_statement_line(osv.osv):
|
||||
'statement_id': st_line.statement_id.id,
|
||||
'debit': currency_diff < 0 and -currency_diff or 0,
|
||||
'credit': currency_diff > 0 and currency_diff or 0,
|
||||
'amount_currency': 0.0,
|
||||
'date': st_line.date,
|
||||
'account_id': account_id
|
||||
}
|
||||
@@ -733,22 +668,25 @@ class account_bank_statement_line(osv.osv):
|
||||
raise osv.except_osv(_('Error!'), _('A selected move line was already reconciled.'))
|
||||
|
||||
# Create the move
|
||||
move_name = st_line.statement_id.name + "/" + str(st_line.sequence)
|
||||
move_name = (st_line.statement_id.name or st_line.name) + "/" + str(st_line.sequence)
|
||||
move_vals = bs_obj._prepare_move(cr, uid, st_line, move_name, context=context)
|
||||
move_id = am_obj.create(cr, uid, move_vals, context=context)
|
||||
|
||||
# Create the move line for the statement line
|
||||
if st_line.statement_id.currency.id != company_currency.id:
|
||||
ctx = context.copy()
|
||||
ctx['date'] = st_line.date
|
||||
amount = currency_obj.compute(cr, uid, st_line.statement_id.currency.id, company_currency.id, st_line.amount_currency, context=ctx)
|
||||
if st_line.currency_id == company_currency:
|
||||
amount = st_line.amount_currency
|
||||
else:
|
||||
ctx = context.copy()
|
||||
ctx['date'] = st_line.date
|
||||
amount = currency_obj.compute(cr, uid, st_line.statement_id.currency.id, company_currency.id, st_line.amount, context=ctx)
|
||||
else:
|
||||
amount = st_line.amount
|
||||
bank_st_move_vals = bs_obj._prepare_bank_move_line(cr, uid, st_line, move_id, amount, company_currency.id, context=context)
|
||||
aml_obj.create(cr, uid, bank_st_move_vals, context=context)
|
||||
# Complete the dicts
|
||||
st_line_currency = st_line.currency_id or statement_currency
|
||||
st_line_currency_rate = st_line.currency_id and statement_currency.id == company_currency.id and (st_line.amount_currency / st_line.amount) or False
|
||||
st_line_currency_rate = st_line.currency_id and (st_line.amount_currency / st_line.amount) or False
|
||||
to_create = []
|
||||
for mv_line_dict in mv_line_dicts:
|
||||
if mv_line_dict.get('is_tax_line'):
|
||||
@@ -763,17 +701,21 @@ class account_bank_statement_line(osv.osv):
|
||||
mv_line = aml_obj.browse(cr, uid, mv_line_dict['counterpart_move_line_id'], context=context)
|
||||
mv_line_dict['account_id'] = mv_line.account_id.id
|
||||
if st_line_currency.id != company_currency.id:
|
||||
ctx = context.copy()
|
||||
ctx['date'] = st_line.date
|
||||
mv_line_dict['amount_currency'] = mv_line_dict['debit'] - mv_line_dict['credit']
|
||||
mv_line_dict['currency_id'] = st_line_currency.id
|
||||
if st_line.currency_id and statement_currency.id == company_currency.id and st_line_currency_rate:
|
||||
debit_at_current_rate = self.pool.get('res.currency').round(cr, uid, company_currency, mv_line_dict['debit'] / st_line_currency_rate)
|
||||
credit_at_current_rate = self.pool.get('res.currency').round(cr, uid, company_currency, mv_line_dict['credit'] / st_line_currency_rate)
|
||||
elif st_line.currency_id and st_line_currency_rate:
|
||||
debit_at_current_rate = currency_obj.compute(cr, uid, statement_currency.id, company_currency.id, mv_line_dict['debit'] / st_line_currency_rate, context=ctx)
|
||||
credit_at_current_rate = currency_obj.compute(cr, uid, statement_currency.id, company_currency.id, mv_line_dict['credit'] / st_line_currency_rate, context=ctx)
|
||||
else:
|
||||
debit_at_current_rate = currency_obj.compute(cr, uid, st_line_currency.id, company_currency.id, mv_line_dict['debit'], context=context)
|
||||
credit_at_current_rate = currency_obj.compute(cr, uid, st_line_currency.id, company_currency.id, mv_line_dict['credit'], context=context)
|
||||
debit_at_current_rate = currency_obj.compute(cr, uid, st_line_currency.id, company_currency.id, mv_line_dict['debit'], context=ctx)
|
||||
credit_at_current_rate = currency_obj.compute(cr, uid, st_line_currency.id, company_currency.id, mv_line_dict['credit'], context=ctx)
|
||||
if mv_line_dict.get('counterpart_move_line_id'):
|
||||
#post an account line that use the same currency rate than the counterpart (to balance the account) and post the difference in another line
|
||||
ctx = context.copy()
|
||||
ctx['date'] = mv_line.date
|
||||
debit_at_old_rate = currency_obj.compute(cr, uid, st_line_currency.id, company_currency.id, mv_line_dict['debit'], context=ctx)
|
||||
credit_at_old_rate = currency_obj.compute(cr, uid, st_line_currency.id, company_currency.id, mv_line_dict['credit'], context=ctx)
|
||||
@@ -781,13 +723,17 @@ class account_bank_statement_line(osv.osv):
|
||||
mv_line_dict['debit'] = debit_at_old_rate
|
||||
if debit_at_old_rate - debit_at_current_rate:
|
||||
currency_diff = debit_at_current_rate - debit_at_old_rate
|
||||
to_create.append(self.get_currency_rate_line(cr, uid, st_line, currency_diff, move_id, context=context))
|
||||
to_create.append(self.get_currency_rate_line(cr, uid, st_line, -currency_diff, move_id, context=context))
|
||||
if credit_at_old_rate - credit_at_current_rate:
|
||||
currency_diff = credit_at_current_rate - credit_at_old_rate
|
||||
to_create.append(self.get_currency_rate_line(cr, uid, st_line, currency_diff, move_id, context=context))
|
||||
else:
|
||||
mv_line_dict['debit'] = debit_at_current_rate
|
||||
mv_line_dict['credit'] = credit_at_current_rate
|
||||
elif statement_currency.id != company_currency.id:
|
||||
#statement is in foreign currency but the transaction is in company currency
|
||||
prorata_factor = (mv_line_dict['debit'] - mv_line_dict['credit']) / st_line.amount_currency
|
||||
mv_line_dict['amount_currency'] = prorata_factor * st_line.amount
|
||||
to_create.append(mv_line_dict)
|
||||
# Create move lines
|
||||
move_line_pairs_to_reconcile = []
|
||||
@@ -799,12 +745,9 @@ class account_bank_statement_line(osv.osv):
|
||||
new_aml_id = aml_obj.create(cr, uid, mv_line_dict, context=context)
|
||||
if counterpart_move_line_id != None:
|
||||
move_line_pairs_to_reconcile.append([new_aml_id, counterpart_move_line_id])
|
||||
|
||||
# Reconcile
|
||||
for pair in move_line_pairs_to_reconcile:
|
||||
# TODO : too slow
|
||||
aml_obj.reconcile_partial(cr, uid, pair, context=context)
|
||||
|
||||
# Mark the statement line as reconciled
|
||||
self.write(cr, uid, id, {'journal_entry_id': move_id}, context=context)
|
||||
|
||||
@@ -813,14 +756,14 @@ class account_bank_statement_line(osv.osv):
|
||||
# Unfortunately, that spawns a "no access rights" error ; it shouldn't.
|
||||
def _needaction_domain_get(self, cr, uid, context=None):
|
||||
user = self.pool.get("res.users").browse(cr, uid, uid)
|
||||
return ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('journal_entry_id', '=', False)]
|
||||
return ['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id]), ('journal_entry_id', '=', False)]
|
||||
|
||||
_order = "statement_id desc, sequence"
|
||||
_name = "account.bank.statement.line"
|
||||
_description = "Bank Statement Line"
|
||||
_inherit = ['ir.needaction_mixin']
|
||||
_columns = {
|
||||
'name': fields.char('Description', required=True),
|
||||
'name': fields.char('Communication', required=True),
|
||||
'date': fields.date('Date', required=True),
|
||||
'amount': fields.float('Amount', digits_compute=dp.get_precision('Account')),
|
||||
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||
@@ -828,7 +771,8 @@ class account_bank_statement_line(osv.osv):
|
||||
'account_id': fields.many2one('account.account', 'Account', help="This technical field can be used at the statement line creation/import time in order to avoid the reconciliation process on it later on. The statement line will simply create a counterpart on this account"),
|
||||
'statement_id': fields.many2one('account.bank.statement', 'Statement', select=True, required=True, ondelete='cascade'),
|
||||
'journal_id': fields.related('statement_id', 'journal_id', type='many2one', relation='account.journal', string='Journal', store=True, readonly=True),
|
||||
'ref': fields.char('Structured Communication'),
|
||||
'partner_name': fields.char('Partner Name', help="This field is used to record the third party name when importing bank statement in electronic format, when the partner doesn't exist yet in the database (or cannot be found)."),
|
||||
'ref': fields.char('Reference'),
|
||||
'note': fields.text('Notes'),
|
||||
'sequence': fields.integer('Sequence', select=True, help="Gives the sequence order when displaying a list of bank statement lines."),
|
||||
'company_id': fields.related('statement_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True),
|
||||
@@ -850,13 +794,13 @@ class account_statement_operation_template(osv.osv):
|
||||
'label': fields.char('Label'),
|
||||
'amount_type': fields.selection([('fixed', 'Fixed'),('percentage_of_total','Percentage of total amount'),('percentage_of_balance', 'Percentage of open balance')],
|
||||
'Amount type', required=True),
|
||||
'amount': fields.float('Amount', digits_compute=dp.get_precision('Account'), help="Leave to 0 to ignore."),
|
||||
'amount': fields.float('Amount', digits_compute=dp.get_precision('Account'), help="The amount will count as a debit if it is negative, as a credit if it is positive (except if amount type is 'Percentage of open balance').", required=True),
|
||||
'tax_id': fields.many2one('account.tax', 'Tax', ondelete='cascade'),
|
||||
'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account', ondelete='cascade'),
|
||||
}
|
||||
_defaults = {
|
||||
'amount_type': 'fixed',
|
||||
'amount': 0.0
|
||||
'amount_type': 'percentage_of_balance',
|
||||
'amount': 100.0
|
||||
}
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -77,7 +77,11 @@ class account_cash_statement(osv.osv):
|
||||
"""
|
||||
res = {}
|
||||
for statement in self.browse(cr, uid, ids, context=context):
|
||||
if (statement.journal_id.type not in ('cash',)) or (not statement.journal_id.cash_control):
|
||||
if (statement.journal_id.type not in ('cash',)):
|
||||
continue
|
||||
if not statement.journal_id.cash_control:
|
||||
if statement.balance_end_real <> statement.balance_end:
|
||||
statement.write({'balance_end_real' : statement.balance_end})
|
||||
continue
|
||||
start = end = 0
|
||||
for line in statement.details_ids:
|
||||
@@ -295,7 +299,6 @@ class account_cash_statement(osv.osv):
|
||||
return state=='open'
|
||||
|
||||
def button_confirm_cash(self, cr, uid, ids, context=None):
|
||||
super(account_cash_statement, self).button_confirm_bank(cr, uid, ids, context=context)
|
||||
absl_proxy = self.pool.get('account.bank.statement.line')
|
||||
|
||||
TABLES = ((_('Profit'), 'profit_account_id'), (_('Loss'), 'loss_account_id'),)
|
||||
@@ -303,27 +306,27 @@ class account_cash_statement(osv.osv):
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
if obj.difference == 0.0:
|
||||
continue
|
||||
|
||||
for item_label, item_account in TABLES:
|
||||
if getattr(obj.journal_id, item_account):
|
||||
raise osv.except_osv(_('Error!'),
|
||||
_('There is no %s Account on the journal %s.') % (item_label, obj.journal_id.name,))
|
||||
|
||||
is_profit = obj.difference < 0.0
|
||||
|
||||
account = getattr(obj.journal_id, TABLES[is_profit][1])
|
||||
elif obj.difference < 0.0:
|
||||
account = obj.journal_id.loss_account_id
|
||||
name = _('Loss')
|
||||
if not obj.journal_id.loss_account_id:
|
||||
raise osv.except_osv(_('Error!'), _('There is no Loss Account on the journal %s.') % (obj.journal_id.name,))
|
||||
else: # obj.difference > 0.0
|
||||
account = obj.journal_id.profit_account_id
|
||||
name = _('Profit')
|
||||
if not obj.journal_id.profit_account_id:
|
||||
raise osv.except_osv(_('Error!'), _('There is no Profit Account on the journal %s.') % (obj.journal_id.name,))
|
||||
|
||||
values = {
|
||||
'statement_id' : obj.id,
|
||||
'journal_id' : obj.journal_id.id,
|
||||
'account_id' : account.id,
|
||||
'amount' : obj.difference,
|
||||
'name' : 'Exceptional %s' % TABLES[is_profit][0],
|
||||
'name' : name,
|
||||
}
|
||||
|
||||
absl_proxy.create(cr, uid, values, context=context)
|
||||
|
||||
return self.write(cr, uid, ids, {'closing_date': time.strftime("%Y-%m-%d %H:%M:%S")}, context=context)
|
||||
return super(account_cash_statement, self).button_confirm_bank(cr, uid, ids, context=context)
|
||||
|
||||
|
||||
class account_journal(osv.osv):
|
||||
|
||||
@@ -83,7 +83,7 @@ class account_invoice(models.Model):
|
||||
return journal.currency or journal.company_id.currency_id
|
||||
|
||||
@api.model
|
||||
@api.returns('account.analytic.journal')
|
||||
@api.returns('account.analytic.journal', lambda r: r.id)
|
||||
def _get_journal_analytic(self, inv_type):
|
||||
""" Return the analytic journal corresponding to the given invoice type. """
|
||||
journal_type = TYPE2JOURNAL.get(inv_type, 'sale')
|
||||
@@ -91,14 +91,12 @@ class account_invoice(models.Model):
|
||||
if not journal:
|
||||
raise except_orm(_('No Analytic Journal!'),
|
||||
_("You must define an analytic journal of type '%s'!") % (journal_type,))
|
||||
return journal
|
||||
return journal[0]
|
||||
|
||||
@api.one
|
||||
@api.depends('account_id', 'move_id.line_id.account_id', 'move_id.line_id.reconcile_id')
|
||||
def _compute_reconciled(self):
|
||||
self.reconciled = self.test_paid()
|
||||
if not self.reconciled and self.state == 'paid':
|
||||
self.signal_workflow('open_test')
|
||||
|
||||
@api.model
|
||||
def _get_reference_type(self):
|
||||
@@ -116,7 +114,7 @@ class account_invoice(models.Model):
|
||||
def _compute_residual(self):
|
||||
nb_inv_in_partial_rec = max_invoice_id = 0
|
||||
self.residual = 0.0
|
||||
for line in self.move_id.line_id:
|
||||
for line in self.sudo().move_id.line_id:
|
||||
if line.account_id.type in ('receivable', 'payable'):
|
||||
if line.currency_id == self.currency_id:
|
||||
self.residual += line.amount_residual_currency
|
||||
@@ -179,6 +177,8 @@ class account_invoice(models.Model):
|
||||
def _compute_payments(self):
|
||||
partial_lines = lines = self.env['account.move.line']
|
||||
for line in self.move_id.line_id:
|
||||
if line.account_id != self.account_id:
|
||||
continue
|
||||
if line.reconcile_id:
|
||||
lines |= line.reconcile_id.line_id
|
||||
elif line.reconcile_partial_id:
|
||||
@@ -488,7 +488,7 @@ class account_invoice(models.Model):
|
||||
@api.multi
|
||||
def onchange_payment_term_date_invoice(self, payment_term_id, date_invoice):
|
||||
if not date_invoice:
|
||||
date_invoice = fields.Date.today()
|
||||
date_invoice = fields.Date.context_today(self)
|
||||
if not payment_term_id:
|
||||
# To make sure the invoice due date should contain due date which is
|
||||
# entered by user when there is no payment term defined
|
||||
@@ -574,8 +574,8 @@ class account_invoice(models.Model):
|
||||
if 'journal_id' in journal_defaults:
|
||||
values['journal_id'] = journal_defaults['journal_id']
|
||||
if not values.get('journal_id'):
|
||||
field_desc = journals.fields_get(['journal_id'])
|
||||
type_label = next(t for t, label in field_desc['journal_id']['selection'] if t == journal_type)
|
||||
field_desc = journals.fields_get(['type'])
|
||||
type_label = next(t for t, label in field_desc['type']['selection'] if t == journal_type)
|
||||
action = self.env.ref('account.action_account_journal_form')
|
||||
msg = _('Cannot find any account journal of type "%s" for this company, You should create one.\n Please go to Journal Configuration') % type_label
|
||||
raise RedirectWarning(msg, action.id, _('Go to the configuration panel'))
|
||||
@@ -645,10 +645,6 @@ class account_invoice(models.Model):
|
||||
invoice.check_total = invoice.amount_total
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
def _convert_ref(ref):
|
||||
return (ref or '').replace('/','')
|
||||
|
||||
@api.multi
|
||||
def _get_analytic_lines(self):
|
||||
""" Return a list of dict for creating analytic lines for self[0] """
|
||||
@@ -661,7 +657,7 @@ class account_invoice(models.Model):
|
||||
if self.type in ('in_invoice', 'in_refund'):
|
||||
ref = self.reference
|
||||
else:
|
||||
ref = self._convert_ref(self.number)
|
||||
ref = self.number
|
||||
if not self.journal_id.analytic_journal_id:
|
||||
raise except_orm(_('No Analytic Journal!'),
|
||||
_("You have to define an analytic journal on the '%s' journal!") % (self.journal_id.name,))
|
||||
@@ -729,7 +725,7 @@ class account_invoice(models.Model):
|
||||
total_currency = 0
|
||||
for line in invoice_move_lines:
|
||||
if self.currency_id != company_currency:
|
||||
currency = self.currency_id.with_context(date=self.date_invoice or fields.Date.today())
|
||||
currency = self.currency_id.with_context(date=self.date_invoice or fields.Date.context_today(self))
|
||||
line['currency_id'] = currency.id
|
||||
line['amount_currency'] = line['price']
|
||||
line['price'] = currency.compute(line['price'], company_currency)
|
||||
@@ -806,8 +802,7 @@ class account_invoice(models.Model):
|
||||
inv.check_tax_lines(compute_taxes)
|
||||
|
||||
# I disabled the check_total feature
|
||||
group_check_total = self.env.ref('account.group_supplier_inv_check_total')
|
||||
if self.env.user in group_check_total.users:
|
||||
if self.env['res.users'].has_group('account.group_supplier_inv_check_total'):
|
||||
if inv.type in ('in_invoice', 'in_refund') and abs(inv.check_total - inv.amount_total) >= (inv.currency_id.rounding / 2.0):
|
||||
raise except_orm(_('Bad Total!'), _('Please verify the price of the invoice!\nThe encoded total does not match the computed total.'))
|
||||
|
||||
@@ -828,7 +823,7 @@ class account_invoice(models.Model):
|
||||
if inv.type in ('in_invoice', 'in_refund'):
|
||||
ref = inv.reference
|
||||
else:
|
||||
ref = self._convert_ref(inv.number)
|
||||
ref = inv.number
|
||||
|
||||
diff_currency = inv.currency_id != company_currency
|
||||
# create one move line for the total and possibly adjust the other lines amount
|
||||
@@ -892,7 +887,7 @@ class account_invoice(models.Model):
|
||||
'ref': inv.reference or inv.name,
|
||||
'line_id': line,
|
||||
'journal_id': journal.id,
|
||||
'date': date,
|
||||
'date': inv.date_invoice,
|
||||
'narration': inv.comment,
|
||||
'company_id': inv.company_id.id,
|
||||
}
|
||||
@@ -956,11 +951,11 @@ class account_invoice(models.Model):
|
||||
|
||||
if inv.type in ('in_invoice', 'in_refund'):
|
||||
if not inv.reference:
|
||||
ref = self._convert_ref(inv.number)
|
||||
ref = inv.number
|
||||
else:
|
||||
ref = inv.reference
|
||||
else:
|
||||
ref = self._convert_ref(inv.number)
|
||||
ref = inv.number
|
||||
|
||||
self._cr.execute(""" UPDATE account_move SET ref=%s
|
||||
WHERE id=%s AND (ref IS NULL OR ref = '')""",
|
||||
@@ -1088,7 +1083,7 @@ class account_invoice(models.Model):
|
||||
values['journal_id'] = journal.id
|
||||
|
||||
values['type'] = TYPE2REFUND[invoice['type']]
|
||||
values['date_invoice'] = date or fields.Date.today()
|
||||
values['date_invoice'] = date or fields.Date.context_today(invoice)
|
||||
values['state'] = 'draft'
|
||||
values['number'] = False
|
||||
|
||||
@@ -1118,7 +1113,7 @@ class account_invoice(models.Model):
|
||||
SIGN = {'out_invoice': -1, 'in_invoice': 1, 'out_refund': 1, 'in_refund': -1}
|
||||
direction = SIGN[self.type]
|
||||
# take the chosen date
|
||||
date = self._context.get('date_p') or fields.Date.today()
|
||||
date = self._context.get('date_p') or fields.Date.context_today(self)
|
||||
|
||||
# Take the amount in currency and the currency of the payment
|
||||
if self._context.get('amount_currency') and self._context.get('currency_id'):
|
||||
@@ -1132,7 +1127,7 @@ class account_invoice(models.Model):
|
||||
if self.type in ('in_invoice', 'in_refund'):
|
||||
ref = self.reference
|
||||
else:
|
||||
ref = self._convert_ref(self.number)
|
||||
ref = self.number
|
||||
partner = self.partner_id._find_accounting_partner(self.partner_id)
|
||||
name = name or self.invoice_line.name or self.number
|
||||
# Pay attention to the sign for both debit/credit AND amount_currency
|
||||
@@ -1397,8 +1392,7 @@ class account_invoice_line(models.Model):
|
||||
res = []
|
||||
for line in inv.invoice_line:
|
||||
mres = self.move_line_get_item(line)
|
||||
if not mres:
|
||||
continue
|
||||
mres['invl_id'] = line.id
|
||||
res.append(mres)
|
||||
tax_code_found = False
|
||||
taxes = line.invoice_line_tax_id.compute_all(
|
||||
@@ -1507,7 +1501,7 @@ class account_invoice_tax(models.Model):
|
||||
company = self.env['res.company'].browse(company_id)
|
||||
if currency_id and company.currency_id:
|
||||
currency = self.env['res.currency'].browse(currency_id)
|
||||
currency = currency.with_context(date=date_invoice or fields.Date.today())
|
||||
currency = currency.with_context(date=date_invoice or fields.Date.context_today(self))
|
||||
base = currency.compute(base * factor, company.currency_id, round=False)
|
||||
return {'value': {'base_amount': base}}
|
||||
|
||||
@@ -1517,14 +1511,14 @@ class account_invoice_tax(models.Model):
|
||||
company = self.env['res.company'].browse(company_id)
|
||||
if currency_id and company.currency_id:
|
||||
currency = self.env['res.currency'].browse(currency_id)
|
||||
currency = currency.with_context(date=date_invoice or fields.Date.today())
|
||||
currency = currency.with_context(date=date_invoice or fields.Date.context_today(self))
|
||||
amount = currency.compute(amount * factor, company.currency_id, round=False)
|
||||
return {'value': {'tax_amount': amount}}
|
||||
|
||||
@api.v8
|
||||
def compute(self, invoice):
|
||||
tax_grouped = {}
|
||||
currency = invoice.currency_id.with_context(date=invoice.date_invoice or fields.Date.today())
|
||||
currency = invoice.currency_id.with_context(date=invoice.date_invoice or fields.Date.context_today(invoice))
|
||||
company_currency = invoice.company_id.currency_id
|
||||
for line in invoice.invoice_line:
|
||||
taxes = line.invoice_line_tax_id.compute_all(
|
||||
|
||||
@@ -446,6 +446,14 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Custom reports (aka filters) -->
|
||||
<record id="filter_invoice_salespersons" model="ir.filters">
|
||||
<field name="name">By Salespersons</field>
|
||||
<field name="model_id">account.invoice</field>
|
||||
<field name="user_id" eval="False"/>
|
||||
<field name="context">{'group_by': ['date_invoice:month', 'user_id']}</field>
|
||||
</record>
|
||||
|
||||
<record id="view_account_invoice_filter" model="ir.ui.view">
|
||||
<field name="name">account.invoice.select</field>
|
||||
<field name="model">account.invoice</field>
|
||||
@@ -463,14 +471,13 @@
|
||||
<separator/>
|
||||
<filter domain="[('user_id','=',uid)]" help="My Invoices"/>
|
||||
<group expand="0" string="Group By">
|
||||
<filter name="group_by_partner_id" string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter name="commercial_partner_id" string="Commercial Partner" domain="[]" context="{'group_by':'commercial_partner_id'}"/>
|
||||
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id'}"/>
|
||||
<filter string="Invoice Month" icon="terp-go-month" domain="[]" context="{'group_by':'date_invoice'}"/>
|
||||
<filter string="Due Month" icon="terp-go-month" domain="[]" context="{'group_by':'date_due'}"/>
|
||||
<filter name="group_by_partner_id" string="Partner" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Salesperson" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Category of Product" name="category_product" context="{'group_by':'categ_id','residual_invisible':True}"/>
|
||||
<filter string="Status" context="{'group_by':'state'}"/>
|
||||
<separator/>
|
||||
<filter string="Period" context="{'group_by':'period_id'}"/>
|
||||
<filter string="Due Month" context="{'group_by':'date_due'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -582,7 +589,7 @@
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to create a customer refund.
|
||||
Click to create a customer refund.
|
||||
</p><p>
|
||||
A refund is a document that credits an invoice completely or
|
||||
partially.
|
||||
|
||||
@@ -13,14 +13,12 @@
|
||||
<field name="flow_start">True</field>
|
||||
<field name="name">draft</field>
|
||||
</record>
|
||||
|
||||
<record id="act_proforma2" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf"/>
|
||||
<field name="name">proforma2</field>
|
||||
<field name="action">write({'state':'proforma2'})</field>
|
||||
<field name="kind">function</field>
|
||||
</record>
|
||||
|
||||
<record id="act_open" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf"/>
|
||||
<field name="name">open</field>
|
||||
@@ -35,7 +33,7 @@ invoice_validate()</field>
|
||||
<field name="name">re-open</field>
|
||||
<field name="action">write({'state':'open'})</field>
|
||||
<field name="kind">function</field>
|
||||
</record>
|
||||
</record>
|
||||
<record id="act_paid" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf"/>
|
||||
<field name="name">paid</field>
|
||||
@@ -61,9 +59,9 @@ write({'state':'cancel'})</field>
|
||||
<record id="t8" model="workflow.transition">
|
||||
<field name="act_from" ref="act_open"/>
|
||||
<field name="act_to" ref="act_paid"/>
|
||||
<field name="trigger_model">account.move.line</field>
|
||||
<field name="trigger_expr_id">move_line_id_payment_get()</field>
|
||||
<field name="condition">test_paid()</field>
|
||||
<field name="trigger_model"/>
|
||||
<field name="trigger_expr_id"/>
|
||||
<field name="condition">reconciled</field>
|
||||
</record>
|
||||
<record id="t9" model="workflow.transition">
|
||||
<field name="act_from" ref="act_draft"/>
|
||||
@@ -78,7 +76,8 @@ write({'state':'cancel'})</field>
|
||||
<record id="t13" model="workflow.transition">
|
||||
<field name="act_from" ref="act_paid"/>
|
||||
<field name="act_to" ref="act_open_test"/>
|
||||
<field name="signal">open_test</field>
|
||||
<field name="signal"/>
|
||||
<field name="condition">not reconciled</field>
|
||||
</record>
|
||||
<record id="t14" model="workflow.transition">
|
||||
<field name="act_from" ref="act_open_test"/>
|
||||
@@ -89,9 +88,9 @@ write({'state':'cancel'})</field>
|
||||
<record id="open_test_to_paid" model="workflow.transition">
|
||||
<field name="act_from" ref="act_open_test"/>
|
||||
<field name="act_to" ref="act_paid"/>
|
||||
<field name="trigger_model">account.move.line</field>
|
||||
<field name="trigger_expr_id">move_line_id_payment_get()</field>
|
||||
<field name="condition">test_paid()</field>
|
||||
<field name="trigger_model"/>
|
||||
<field name="trigger_expr_id"/>
|
||||
<field name="condition">reconciled</field>
|
||||
</record>
|
||||
|
||||
<record id="draft_to_pro2" model="workflow.transition">
|
||||
|
||||
@@ -22,12 +22,12 @@
|
||||
import time
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
from openerp import workflow
|
||||
from openerp.osv import fields, osv
|
||||
from openerp.tools.translate import _
|
||||
import openerp.addons.decimal_precision as dp
|
||||
from openerp import tools
|
||||
from openerp.report import report_sxw
|
||||
import openerp
|
||||
|
||||
class account_move_line(osv.osv):
|
||||
@@ -752,6 +752,74 @@ class account_move_line(osv.osv):
|
||||
args.append(('partner_id', '=', partner[0]))
|
||||
return super(account_move_line, self).search(cr, uid, args, offset, limit, order, context, count)
|
||||
|
||||
def prepare_move_lines_for_reconciliation_widget(self, cr, uid, lines, target_currency=False, target_date=False, context=None):
|
||||
""" Returns move lines formatted for the manual/bank reconciliation widget
|
||||
|
||||
:param target_currency: curreny you want the move line debit/credit converted into
|
||||
:param target_date: date to use for the monetary conversion
|
||||
"""
|
||||
if not lines:
|
||||
return []
|
||||
if context is None:
|
||||
context = {}
|
||||
ctx = context.copy()
|
||||
currency_obj = self.pool.get('res.currency')
|
||||
company_currency = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.currency_id
|
||||
rml_parser = report_sxw.rml_parse(cr, uid, 'reconciliation_widget_aml', context=context)
|
||||
reconcile_partial_ids = [] # for a partial reconciliation, take only one line
|
||||
ret = []
|
||||
|
||||
for line in lines:
|
||||
if line.reconcile_partial_id and line.reconcile_partial_id.id in reconcile_partial_ids:
|
||||
continue
|
||||
if line.reconcile_partial_id:
|
||||
reconcile_partial_ids.append(line.reconcile_partial_id.id)
|
||||
|
||||
ret_line = {
|
||||
'id': line.id,
|
||||
'name': line.move_id.name,
|
||||
'ref': line.move_id.ref,
|
||||
'account_code': line.account_id.code,
|
||||
'account_name': line.account_id.name,
|
||||
'account_type': line.account_id.type,
|
||||
'date_maturity': line.date_maturity,
|
||||
'date': line.date,
|
||||
'period_name': line.period_id.name,
|
||||
'journal_name': line.journal_id.name,
|
||||
'partner_id': line.partner_id.id,
|
||||
'partner_name': line.partner_id.name,
|
||||
}
|
||||
|
||||
# Get right debit / credit:
|
||||
line_currency = line.currency_id or company_currency
|
||||
amount_currency_str = ""
|
||||
if line.currency_id and line.amount_currency:
|
||||
amount_currency_str = rml_parser.formatLang(line.amount_currency, currency_obj=line.currency_id)
|
||||
if target_currency and line_currency == target_currency and target_currency != company_currency:
|
||||
debit = line.debit > 0 and line.amount_residual_currency or 0.0
|
||||
credit = line.credit > 0 and line.amount_residual_currency or 0.0
|
||||
amount_currency_str = rml_parser.formatLang(line.amount_residual, currency_obj=company_currency)
|
||||
amount_str = rml_parser.formatLang(debit or credit, currency_obj=target_currency)
|
||||
else:
|
||||
debit = line.debit > 0 and line.amount_residual or 0.0
|
||||
credit = line.credit > 0 and line.amount_residual or 0.0
|
||||
amount_str = rml_parser.formatLang(debit or credit, currency_obj=company_currency)
|
||||
if target_currency and target_currency != company_currency:
|
||||
amount_currency_str = rml_parser.formatLang(debit or credit, currency_obj=line_currency)
|
||||
ctx = context.copy()
|
||||
if target_date:
|
||||
ctx.update({'date': target_date})
|
||||
debit = currency_obj.compute(cr, uid, target_currency.id, company_currency.id, debit, context=ctx)
|
||||
credit = currency_obj.compute(cr, uid, target_currency.id, company_currency.id, credit, context=ctx)
|
||||
amount_str = rml_parser.formatLang(debit or credit, currency_obj=target_currency)
|
||||
|
||||
ret_line['credit'] = credit
|
||||
ret_line['debit'] = debit
|
||||
ret_line['amount_str'] = amount_str
|
||||
ret_line['amount_currency_str'] = amount_currency_str
|
||||
ret.append(ret_line)
|
||||
return ret
|
||||
|
||||
def list_partners_to_reconcile(self, cr, uid, context=None):
|
||||
cr.execute(
|
||||
"""SELECT partner_id FROM (
|
||||
@@ -817,11 +885,14 @@ class account_move_line(osv.osv):
|
||||
if self.pool.get('res.currency').is_zero(cr, uid, currency_id, total):
|
||||
res = self.reconcile(cr, uid, merges+unmerge, context=context, writeoff_acc_id=writeoff_acc_id, writeoff_period_id=writeoff_period_id, writeoff_journal_id=writeoff_journal_id)
|
||||
return res
|
||||
# marking the lines as reconciled does not change their validity, so there is no need
|
||||
# to revalidate their moves completely.
|
||||
reconcile_context = dict(context, novalidate=True)
|
||||
r_id = move_rec_obj.create(cr, uid, {
|
||||
'type': type,
|
||||
'line_partial_ids': map(lambda x: (4,x,False), merges+unmerge)
|
||||
}, context=context)
|
||||
move_rec_obj.reconcile_partial_check(cr, uid, [r_id] + merges_rec, context=context)
|
||||
}, context=reconcile_context)
|
||||
move_rec_obj.reconcile_partial_check(cr, uid, [r_id] + merges_rec, context=reconcile_context)
|
||||
return r_id
|
||||
|
||||
def reconcile(self, cr, uid, ids, type='auto', writeoff_acc_id=False, writeoff_period_id=False, writeoff_journal_id=False, context=None):
|
||||
@@ -946,11 +1017,14 @@ class account_move_line(osv.osv):
|
||||
writeoff_line_ids = [writeoff_line_ids[1]]
|
||||
ids += writeoff_line_ids
|
||||
|
||||
# marking the lines as reconciled does not change their validity, so there is no need
|
||||
# to revalidate their moves completely.
|
||||
reconcile_context = dict(context, novalidate=True)
|
||||
r_id = move_rec_obj.create(cr, uid, {
|
||||
'type': type,
|
||||
'line_id': map(lambda x: (4, x, False), ids),
|
||||
'line_partial_ids': map(lambda x: (3, x, False), ids)
|
||||
})
|
||||
}, context=reconcile_context)
|
||||
# the id of the move.reconcile is written in the move.line (self) by the create method above
|
||||
# because of the way the line_id are defined: (4, x, False)
|
||||
for id in ids:
|
||||
@@ -1297,7 +1371,7 @@ class account_move_line(osv.osv):
|
||||
self.create(cr, uid, data, context)
|
||||
del vals['account_tax_id']
|
||||
|
||||
if check and not context.get('novalidate') and ((not context.get('no_store_function')) or journal.entry_posted):
|
||||
if check and not context.get('novalidate') and (context.get('recompute', True) or journal.entry_posted):
|
||||
tmp = move_obj.validate(cr, uid, [vals['move_id']], context)
|
||||
if journal.entry_posted and tmp:
|
||||
move_obj.button_validate(cr,uid, [vals['move_id']], context)
|
||||
|
||||
@@ -491,7 +491,7 @@
|
||||
<record id="action_bank_reconcile_bank_statements" model="ir.actions.client">
|
||||
<field name="name">Reconciliation on Bank Statements</field>
|
||||
<field name="tag">bank_statement_reconciliation_view</field>
|
||||
<field name="context">{'statement_id': active_id}</field>
|
||||
<field name="context">{'statement_ids': [active_id]}</field>
|
||||
</record>
|
||||
|
||||
<record id="view_account_bank_statement_filter" model="ir.ui.view">
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<field name="partner_id" ref="base.res_partner_9"/>
|
||||
</record>
|
||||
<record id="demo_bank_statement_line_2" model="account.bank.statement.line">
|
||||
<field name="ref">SAJ2014002</field>
|
||||
<field name="ref"></field>
|
||||
<field name="statement_id" ref="demo_bank_statement_1"/>
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
@@ -70,15 +70,15 @@
|
||||
<field name="name">Bank Fees</field>
|
||||
<field name="account_id" ref="a_expense"></field>
|
||||
<field name="label">Bank Fees</field>
|
||||
<field name="amount_type">fixed</field>
|
||||
<field name="amount"></field>
|
||||
<field name="amount_type">percentage_of_balance</field>
|
||||
<field name="amount">100.0</field>
|
||||
</record>
|
||||
<record id="statement_operation_template_3" model="account.statement.operation.template">
|
||||
<field name="name">Profit / Loss</field>
|
||||
<field name="account_id" ref="a_sale"></field>
|
||||
<field name="label">Profit / Loss</field>
|
||||
<field name="amount_type">fixed</field>
|
||||
<field name="amount"></field>
|
||||
<field name="amount_type">percentage_of_balance</field>
|
||||
<field name="amount">100.0</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
<field name="partner_id" ref="base.res_partner_17"/>
|
||||
<field name="name">Zed+ Antivirus</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Some customer invoices used to show the reconciliation process on the bank statement -->
|
||||
<record id="invoice_1" model="account.invoice">
|
||||
<field name="currency_id" ref="base.EUR"/>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<record id="email_template_edi_invoice" model="email.template">
|
||||
<field name="name">Invoice - Send by Email</field>
|
||||
<field name="email_from">${(object.user_id.email or object.company_id.email or 'noreply@localhost')|safe}</field>
|
||||
<field name="subject">${object.company_id.name} Invoice (Ref ${object.number or 'n/a'})</field>
|
||||
<field name="subject">${object.company_id.name|safe} Invoice (Ref ${object.number or 'n/a'})</field>
|
||||
<field name="partner_to">${object.partner_id.id}</field>
|
||||
<field name="model_id" ref="account.model_account_invoice"/>
|
||||
<field name="auto_delete" eval="True"/>
|
||||
|
||||
+10032
-9065
File diff suppressed because it is too large
Load Diff
@@ -22,7 +22,6 @@
|
||||
from operator import itemgetter
|
||||
import time
|
||||
|
||||
from openerp import SUPERUSER_ID
|
||||
from openerp.osv import fields, osv
|
||||
from openerp import api
|
||||
|
||||
@@ -66,16 +65,16 @@ class account_fiscal_position(osv.osv):
|
||||
result.add(t.id)
|
||||
return list(result)
|
||||
|
||||
@api.v8
|
||||
@api.v8 # noqa
|
||||
def map_tax(self, taxes):
|
||||
result = taxes.browse()
|
||||
result = self.env['account.tax'].browse()
|
||||
for tax in taxes:
|
||||
found = False
|
||||
for t in self.tax_ids:
|
||||
if t.tax_src_id == tax:
|
||||
result |= t.tax_dest_id
|
||||
found = True
|
||||
if not found:
|
||||
if t.tax_dest_id:
|
||||
result |= t.tax_dest_id
|
||||
break
|
||||
else:
|
||||
result |= tax
|
||||
return result
|
||||
|
||||
@@ -224,8 +223,8 @@ class res_partner(osv.osv):
|
||||
account_invoice_report = self.pool.get('account.invoice.report')
|
||||
for partner in self.browse(cr, uid, ids, context=context):
|
||||
domain = [('partner_id', 'child_of', partner.id)]
|
||||
invoice_ids = account_invoice_report.search(cr, SUPERUSER_ID, domain, context=context)
|
||||
invoices = account_invoice_report.browse(cr, SUPERUSER_ID, invoice_ids, context=context)
|
||||
invoice_ids = account_invoice_report.search(cr, uid, domain, context=context)
|
||||
invoices = account_invoice_report.browse(cr, uid, invoice_ids, context=context)
|
||||
result[partner.id] = sum(inv.user_currency_price_total for inv in invoices)
|
||||
return result
|
||||
|
||||
|
||||
@@ -15,16 +15,12 @@
|
||||
</group>
|
||||
<group name="properties">
|
||||
<group>
|
||||
<field name="property_account_income" domain="[('type','=','other')]" groups="account.group_account_user"
|
||||
attrs="{'readonly': [('is_product_variant', '=', True)]}"/>
|
||||
<field name="taxes_id" colspan="2" widget="many2many_tags"
|
||||
attrs="{'readonly':[('sale_ok','=',0)]}"/>
|
||||
<field name="property_account_income" domain="[('type','=','other')]" groups="account.group_account_user"/>
|
||||
<field name="taxes_id" colspan="2" widget="many2many_tags"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="property_account_expense" domain="[('type','=','other')]" groups="account.group_account_user"
|
||||
attrs="{'readonly': [('is_product_variant', '=', True)]}"/>
|
||||
<field name="supplier_taxes_id" colspan="2" widget="many2many_tags"
|
||||
attrs="{'readonly': [('is_product_variant', '=', True)]}"/>
|
||||
<field name="property_account_expense" domain="[('type','=','other')]" groups="account.group_account_user"/>
|
||||
<field name="supplier_taxes_id" colspan="2" widget="many2many_tags"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
|
||||
@@ -40,8 +40,8 @@ class analytic_entries_report(osv.osv):
|
||||
'product_id': fields.many2one('product.product', 'Product', required=True),
|
||||
'product_uom_id': fields.many2one('product.uom', 'Product Unit of Measure', required=True),
|
||||
'amount': fields.float('Amount', readonly=True),
|
||||
'unit_amount': fields.float('Quantity', readonly=True),
|
||||
'nbr': fields.integer('#Entries', readonly=True),
|
||||
'unit_amount': fields.integer('Unit Amount', readonly=True),
|
||||
'nbr': fields.integer('# Entries', readonly=True), # TDE FIXME master: rename into nbr_entries
|
||||
}
|
||||
def init(self, cr):
|
||||
tools.drop_view_if_exists(cr, 'analytic_entries_report')
|
||||
|
||||
@@ -7,20 +7,18 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Analytic Entries Analysis">
|
||||
<field name="date"/>
|
||||
<filter string="My Entries" icon="terp-personal" domain="[('user_id','=',uid)]" help="My Entries"/>
|
||||
<filter string="My Entries" domain="[('user_id','=',uid)]" help="My Entries"/>
|
||||
<field name="account_id" groups="analytic.group_analytic_accounting"/>
|
||||
<field name="product_id" />
|
||||
<field name="user_id"/>
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Analytic Account" name="Account" icon="terp-folder-green" context="{'group_by':'account_id'}" groups="analytic.group_analytic_accounting"/>
|
||||
<filter string="Financial Account" icon="terp-folder-orange" context="{'group_by':'general_account_id'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
|
||||
<filter string="Product Unit of Measure" icon="terp-mrp" context="{'group_by':'product_uom_id'}"/>
|
||||
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<filter string="Date" name="Month" icon="terp-go-month" context="{'group_by':'date:month'}"/>
|
||||
<filter string="Partner" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Analytic Account" name="Account" context="{'group_by':'account_id'}" groups="analytic.group_analytic_accounting"/>
|
||||
<filter string="Financial Account" context="{'group_by':'general_account_id'}"/>
|
||||
<filter string="Journal" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<separator/>
|
||||
<filter string="Month" name="Month" context="{'group_by':'date:month'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -30,7 +28,8 @@
|
||||
<field name="model">analytic.entries.report</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Analytic Entries Analysis" type="pivot">
|
||||
<field name="user_id" type="row"/>
|
||||
<field name="account_id" type="row"/>
|
||||
<field name="date" interval="month" type="col"/>
|
||||
<field name="nbr" type="measure"/>
|
||||
<field name="unit_amount" type="measure"/>
|
||||
<field name="amount" type="measure"/>
|
||||
@@ -42,8 +41,8 @@
|
||||
<field name="res_model">analytic.entries.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph</field>
|
||||
<field name="context">{'search_default_year':1,'search_default_month':1, 'group_by_no_leaf':1, 'search_default_Account':1, 'search_default_Month':1, 'group_by':[]}</field>
|
||||
<field name="search_view_id" ref="view_analytic_entries_report_search"/>
|
||||
<field name="context">{'group_by_no_leaf':1, 'search_default_Account':1, 'group_by':[]}</field>
|
||||
<field name="help">From this view, have an analysis of your different analytic entries following the analytic account you defined matching your business need. Use the tool search to analyse information about analytic entries generated in the system.</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ class account_entries_report(osv.osv):
|
||||
_auto = False
|
||||
_rec_name = 'date'
|
||||
_columns = {
|
||||
'date': fields.date('Effective Date', readonly=True),
|
||||
'date': fields.date('Effective Date', readonly=True), # TDE FIXME master: rename into date_effective
|
||||
'date_created': fields.date('Date Created', readonly=True),
|
||||
'date_maturity': fields.date('Date Maturity', readonly=True),
|
||||
'ref': fields.char('Reference', readonly=True),
|
||||
@@ -50,7 +50,7 @@ class account_entries_report(osv.osv):
|
||||
'reconcile_id': fields.many2one('account.move.reconcile', 'Reconciliation number', readonly=True),
|
||||
'partner_id': fields.many2one('res.partner','Partner', readonly=True),
|
||||
'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True),
|
||||
'quantity': fields.float('Products Quantity', digits=(16,2), readonly=True),
|
||||
'quantity': fields.float('Products Quantity', digits=(16,2), readonly=True), # TDE FIXME master: rename into product_quantity
|
||||
'user_type': fields.many2one('account.account.type', 'Account Type', readonly=True),
|
||||
'type': fields.selection([
|
||||
('receivable', 'Receivable'),
|
||||
|
||||
@@ -36,10 +36,11 @@
|
||||
<field name="model">account.entries.report</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Entries Analysis" type="pivot">
|
||||
<field name="partner_id" type="row"/>
|
||||
<field name="debit" operator="+"/>
|
||||
<field name="credit" operator="+"/>
|
||||
<field name="balance" operator="+"/>
|
||||
<field name="user_type" type="row"/>
|
||||
<field name="period_id" type="col"/>
|
||||
<field name="debit" type="measure"/>
|
||||
<field name="credit" type="measure"/>
|
||||
<field name="balance" type="measure"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
@@ -63,14 +64,14 @@
|
||||
<field name="date"/>
|
||||
<field name="date_created"/>
|
||||
<field name="date_maturity"/>
|
||||
<filter icon="terp-go-year" string="This F.Year" name="thisyear" context="{'year':'current_year'}" help="Journal Entries with period in current year"/>
|
||||
<filter icon="terp-go-month" string="This Period" name="period" context="{'period':'current_period'}" help="Journal Entries with period in current period"/>
|
||||
<filter string="This F.Year" name="thisyear" domain="['|', ('date', '=', False), '&',('date','<=', time.strftime('%%Y-12-31')),('date','>=',time.strftime('%%Y-01-01'))]" help="Journal Entries with period in current year"/>
|
||||
<filter string="This Period" name="period" context="{'period':'current_period'}" help="Journal Entries with period in current period"/>
|
||||
<separator/>
|
||||
<filter string="Unposted" icon="terp-document-new" domain="[('move_state','=','draft')]" help = "entries"/>
|
||||
<filter string="Posted" icon="terp-camera_test" domain="[('move_state','=','posted')]" help = "Posted entries"/>
|
||||
<filter string="Unposted" domain="[('move_state','=','draft')]" help = "entries"/>
|
||||
<filter string="Posted" domain="[('move_state','=','posted')]" help = "Posted entries"/>
|
||||
<separator/>
|
||||
<filter string="Unreconciled" icon="terp-dolar_ok!" domain="[('reconcile_id','=',False), ('account_id.reconcile','=',True)]" help = "Unreconciled entries"/>
|
||||
<filter string="Reconciled" icon="terp-dolar" domain="[('reconcile_id','!=',False)]" help = "Reconciled entries"/>
|
||||
<filter string="Unreconciled" domain="[('reconcile_id','=',False), ('account_id.reconcile','=',True)]" help = "Unreconciled entries"/>
|
||||
<filter string="Reconciled" domain="[('reconcile_id','!=',False)]" help = "Reconciled entries"/>
|
||||
<field name="account_id"/>
|
||||
<field name="journal_id"/>
|
||||
<field name="period_id"/>
|
||||
@@ -81,17 +82,13 @@
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':['product_id','product_uom_id'], 'quantity_visible':1}"/>
|
||||
<filter string="Currency" name="group_currency" icon="terp-dolar" context="{'group_by':'currency_id', 'currency_id_visible':1, 'amount_currency_visible':1}"/>
|
||||
<filter string="Journal" name="group_journal" icon="terp-folder-orange" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Account" name="group_account" icon="terp-folder-green" context="{'group_by':'account_id'}"/>
|
||||
<filter string="Acc.Type" icon="terp-stock_symbol-selection" context="{'group_by':'user_type'}" name="usertype"/>
|
||||
<filter string="Int.Type" icon="terp-stock_symbol-selection" context="{'group_by':'type'}"/>
|
||||
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<filter string="Entries Month" icon="terp-go-today" context="{'group_by':'date'}" help="Entries Date by Month"/>
|
||||
<filter string="Period" icon="terp-go-month" name="group_period" context="{'group_by':'period_id'}"/>
|
||||
<filter string="Fiscal Year" icon="terp-go-year" context="{'group_by':'fiscalyear_id'}"/>
|
||||
<filter string="Partner" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Journal" name="group_journal" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Acc.Type" context="{'group_by':'user_type'}" name="usertype"/>
|
||||
<filter string="Int.Type" context="{'group_by':'type'}"/>
|
||||
<filter string="Company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<separator/>
|
||||
<filter string="Entries Month" context="{'group_by':'date:month'}" help="Entries Date by Month"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
||||
@@ -56,7 +56,7 @@ class account_invoice_report(osv.osv):
|
||||
_columns = {
|
||||
'date': fields.date('Date', readonly=True),
|
||||
'product_id': fields.many2one('product.product', 'Product', readonly=True),
|
||||
'product_qty':fields.float('Qty', readonly=True),
|
||||
'product_qty':fields.float('Product Quantity', readonly=True),
|
||||
'uom_name': fields.char('Reference Unit of Measure', size=128, readonly=True),
|
||||
'payment_term': fields.many2one('account.payment.term', 'Payment Term', readonly=True),
|
||||
'period_id': fields.many2one('account.period', 'Force Period', domain=[('state','<>','done')], readonly=True),
|
||||
@@ -73,7 +73,7 @@ class account_invoice_report(osv.osv):
|
||||
'price_average': fields.float('Average Price', readonly=True, group_operator="avg"),
|
||||
'user_currency_price_average': fields.function(_compute_amounts_in_user_currency, string="Average Price", type='float', digits_compute=dp.get_precision('Account'), multi="_compute_amounts"),
|
||||
'currency_rate': fields.float('Currency Rate', readonly=True),
|
||||
'nbr':fields.integer('# of Lines', readonly=True),
|
||||
'nbr': fields.integer('# of Invoices', readonly=True), # TDE FIXME master: rename into nbr_lines
|
||||
'type': fields.selection([
|
||||
('out_invoice','Customer Invoice'),
|
||||
('in_invoice','Supplier Invoice'),
|
||||
@@ -226,7 +226,7 @@ class account_invoice_report(osv.osv):
|
||||
OR (sub.date IS NULL AND cr2.name <= NOW()))
|
||||
ORDER BY name DESC LIMIT 1)
|
||||
)""" % (
|
||||
self._table,
|
||||
self._table,
|
||||
self._select(), self._sub_select(), self._from(), self._group_by()))
|
||||
|
||||
|
||||
|
||||
@@ -6,10 +6,8 @@
|
||||
<field name="model">account.invoice.report</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Invoices Analysis" type="pivot">
|
||||
<field name="period_id" type="row"/>
|
||||
<field name="categ_id" type="row"/>
|
||||
<field name="nbr" type="measure"/>
|
||||
<field name="product_qty" type="measure"/>
|
||||
<field name="period_id" type="col"/>
|
||||
<field name="price_total" type="measure"/>
|
||||
</graph>
|
||||
</field>
|
||||
@@ -58,7 +56,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Invoices Analysis">
|
||||
<field name="date"/>
|
||||
<filter string="This Year" name="year" domain="['|', ('date', '=', False), '&',('date','<=', time.strftime('%%Y-12-31')),('date','>=',time.strftime('%%Y-01-01'))]"/>
|
||||
<filter string="This Year" name="thisyear" domain="['|', ('date', '=', False), '&',('date','<=', time.strftime('%%Y-12-31')),('date','>=',time.strftime('%%Y-01-01'))]" help="Journal invoices with period in current year"/>
|
||||
<separator/>
|
||||
<filter string="To Invoice" domain="[('state','=','draft')]" help = "Draft Invoices"/>
|
||||
<filter string="Pro-forma" domain="['|', ('state','=','proforma'),('state','=','proforma2')]"/>
|
||||
@@ -69,24 +67,19 @@
|
||||
<separator/>
|
||||
<filter string="Invoice" domain="['|', ('type','=','out_invoice'),('type','=','in_invoice')]"/>
|
||||
<filter string="Refund" domain="['|', ('type','=','out_refund'),('type','=','in_refund')]"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="partner_id" operator="child_of"/>
|
||||
<field name="user_id" />
|
||||
<field name="categ_id" filter_domain="[('categ_id', 'child_of', self)]"/>
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Partner" name="partner_id" context="{'group_by':'partner_id','residual_visible':True}"/>
|
||||
<filter string="Commercial Partner" name="commercial_partner_id" context="{'group_by':'commercial_partner_id','residual_visible':True}"/>
|
||||
<filter string="Commercial Partner's Country" name="country_id" context="{'group_by':'country_id'}"/>
|
||||
<filter string="Salesperson" name='user' icon="terp-personal" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Due Month" icon="terp-go-today" context="{'group_by':'date_due'}"/>
|
||||
<filter string="Period" icon="terp-go-month" context="{'group_by':'period_id'}"/>
|
||||
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id','set_visible':True,'residual_invisible':True}"/>
|
||||
<filter string="Category of Product" name="category_product" icon="terp-stock_symbol-selection" context="{'group_by':'categ_id','residual_invisible':True}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
|
||||
<filter string="Type" icon="terp-stock_symbol-selection" context="{'group_by':'type'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Account" icon="terp-folder-orange" context="{'group_by':'account_line_id'}"/>
|
||||
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<filter string="Invoice Date" name="month" icon="terp-go-month" context="{'group_by':'date'}" help="Group by month of Invoice Date"/>
|
||||
<filter string="Salesperson" name='user' context="{'group_by':'user_id'}"/>
|
||||
<filter string="Sales Team" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
|
||||
<filter string="Category of Product" name="category_product" context="{'group_by':'categ_id','residual_invisible':True}"/>
|
||||
<filter string="Status" context="{'group_by':'state'}"/>
|
||||
<filter string="Company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<separator orientation="vertical" />
|
||||
<filter string="Period" context="{'group_by':'period_id'}"/>
|
||||
<filter string="Due Month" context="{'group_by':'date_due:month'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -97,7 +90,7 @@
|
||||
<field name="res_model">account.invoice.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph</field>
|
||||
<field name="context">{'search_default_current':1, 'search_default_year': 1, 'search_default_customer':1, 'group_by':[], 'group_by_no_leaf':1,}</field>
|
||||
<field name="context">{'search_default_current':1, 'search_default_customer':1, 'group_by':[], 'group_by_no_leaf':1, 'search_default_year': 1}</field>
|
||||
<field name="search_view_id" ref="view_account_invoice_report_search"/>
|
||||
<field name="help">From this report, you can have an overview of the amount invoiced to your customer. The tool search can also be used to personalise your Invoices reports and so, match this analysis to your needs.</field>
|
||||
|
||||
|
||||
@@ -38,6 +38,9 @@
|
||||
<field name="fiscalyear_id"/>
|
||||
<field name="period_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Month" context="{'group_by':'date:month'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -131,7 +131,29 @@ class account_config_settings(osv.osv_memory):
|
||||
help="Allows you to use the analytic accounting."),
|
||||
'group_check_supplier_invoice_total': fields.boolean('Check the total of supplier invoices',
|
||||
implied_group="account.group_supplier_inv_check_total"),
|
||||
'income_currency_exchange_account_id': fields.related(
|
||||
'company_id', 'income_currency_exchange_account_id',
|
||||
type='many2one',
|
||||
relation='account.account',
|
||||
string="Gain Exchange Rate Account",
|
||||
domain="[('type', '=', 'other')]"),
|
||||
'expense_currency_exchange_account_id': fields.related(
|
||||
'company_id', 'expense_currency_exchange_account_id',
|
||||
type="many2one",
|
||||
relation='account.account',
|
||||
string="Loss Exchange Rate Account",
|
||||
domain="[('type', '=', 'other')]"),
|
||||
}
|
||||
def onchange_company_id(self, cr, uid, ids, company_id, context=None):
|
||||
res = super(account_config_settings, self).onchange_company_id(cr, uid, ids, company_id, context=context)
|
||||
if company_id:
|
||||
company = self.pool.get('res.company').browse(cr, uid, company_id, context=context)
|
||||
res['value'].update({'income_currency_exchange_account_id': company.income_currency_exchange_account_id and company.income_currency_exchange_account_id.id or False,
|
||||
'expense_currency_exchange_account_id': company.expense_currency_exchange_account_id and company.expense_currency_exchange_account_id.id or False})
|
||||
else:
|
||||
res['value'].update({'income_currency_exchange_account_id': False,
|
||||
'expense_currency_exchange_account_id': False})
|
||||
return res
|
||||
|
||||
def _default_company(self, cr, uid, context=None):
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
|
||||
@@ -123,6 +123,14 @@
|
||||
<div name="group_multi_currency">
|
||||
<field name="group_multi_currency" class="oe_inline" on_change="onchange_multi_currency(group_multi_currency)"/>
|
||||
<label for="group_multi_currency"/>
|
||||
<group attrs="{'invisible': [('group_multi_currency', '<>', True)]}" col="2">
|
||||
<group>
|
||||
<field name="income_currency_exchange_account_id"/>
|
||||
<field name="expense_currency_exchange_account_id"/>
|
||||
</group>
|
||||
<group>
|
||||
</group>
|
||||
</group>
|
||||
</div>
|
||||
<div>
|
||||
<field name="module_account_accountant" class="oe_inline"/>
|
||||
|
||||
@@ -6,18 +6,29 @@
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
cursor: default;
|
||||
height: 100%;
|
||||
/* icons */ }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_form_sheetbg {
|
||||
border-bottom: 0;
|
||||
padding: 0;
|
||||
height: 100%; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_form_sheetbg .oe_form_sheet {
|
||||
position: relative;
|
||||
padding: 20px 15px 30px 15px;
|
||||
border-top: 0;
|
||||
border-bottom: 0;
|
||||
height: 100%; }
|
||||
.openerp .oe_bank_statement_reconciliation h1 {
|
||||
width: 48%;
|
||||
padding: 0 0 0 15px;
|
||||
margin: 0 0 35px 0;
|
||||
margin: 0 0 25px 0;
|
||||
float: left;
|
||||
font-size: 2.3em; }
|
||||
font-size: 2em; }
|
||||
.openerp .oe_bank_statement_reconciliation h2 {
|
||||
font-size: 1.8em; }
|
||||
.openerp .oe_bank_statement_reconciliation .progress {
|
||||
width: 49%;
|
||||
margin: 6px 15px 0 0;
|
||||
margin: 4px 15px 0 0;
|
||||
float: right;
|
||||
position: relative;
|
||||
display: inline-block; }
|
||||
@@ -29,9 +40,6 @@
|
||||
top: 2px;
|
||||
z-index: 10;
|
||||
text-shadow: -1px -1px 0 #f5f5f5, 1px -1px 0 #f5f5f5, -1px 1px 0 #f5f5f5, 1px 1px 0 #f5f5f5; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_form_sheet {
|
||||
position: relative;
|
||||
padding-bottom: 30px; }
|
||||
.openerp .oe_bank_statement_reconciliation .protip {
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
@@ -100,7 +108,12 @@
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
transform: rotate(0deg);
|
||||
-webkit-transition-duration: 300ms;
|
||||
-moz-transition-duration: 300ms;
|
||||
-ms-transition-duration: 300ms;
|
||||
-o-transition-duration: 300ms;
|
||||
transition-duration: 300ms; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .visible_toggle, .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line[data-mode="match"] .toggle_match, .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line[data-mode="create"] .toggle_create {
|
||||
visibility: visible !important;
|
||||
-webkit-transform: rotate(90deg);
|
||||
@@ -136,24 +149,24 @@
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td, .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td {
|
||||
padding: 1px 8px;
|
||||
vertical-align: middle; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td:nth-child(1), .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td:nth-child(7), .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td:nth-child(1), .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td:nth-child(7) {
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td.cell_action, .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td.cell_info_popover, .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td.cell_action, .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td.cell_info_popover {
|
||||
width: 15px;
|
||||
padding: 0; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td:nth-child(1), .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td:nth-child(1) {
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td.cell_action, .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td.cell_action {
|
||||
text-align: left; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td:nth-child(2), .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td:nth-child(2) {
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td.cell_account_code, .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td.cell_account_code {
|
||||
width: 80px;
|
||||
padding-left: 3px; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td:nth-child(3), .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td:nth-child(3) {
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td.cell_due_date, .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td.cell_due_date {
|
||||
width: 100px; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td:nth-child(5), .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td:nth-child(5) {
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td.cell_debit, .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td.cell_debit {
|
||||
text-align: right;
|
||||
width: 15%; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td:nth-child(6), .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td:nth-child(6) {
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td.cell_credit, .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td.cell_credit {
|
||||
width: 15%;
|
||||
text-align: right;
|
||||
padding-right: 3px; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td:nth-child(7), .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td:nth-child(7) {
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td.cell_info_popover, .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table td.cell_info_popover {
|
||||
text-align: right; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view tr.line_open_balance, .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match table tr.line_open_balance {
|
||||
color: #bbb; }
|
||||
@@ -176,8 +189,13 @@
|
||||
-webkit-transition-property: background-color;
|
||||
-moz-transition-property: background-color;
|
||||
-ms-transition-property: background-color;
|
||||
transition-property: background-color; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view .initial_line > td:nth-child(1), .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view .initial_line > td:nth-child(7) {
|
||||
transition-property: background-color;
|
||||
-webkit-transition-duration: 300ms;
|
||||
-moz-transition-duration: 300ms;
|
||||
-ms-transition-duration: 300ms;
|
||||
-o-transition-duration: 300ms;
|
||||
transition-duration: 300ms; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view .initial_line > td.cell_action, .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view .initial_line > td.cell_info_popover {
|
||||
border-top: none;
|
||||
background: white !important;
|
||||
padding-top: 6px;
|
||||
@@ -188,9 +206,9 @@
|
||||
font-weight: bold;
|
||||
height: 26px;
|
||||
margin: 0 15px 4px 15px; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view caption .button_ok {
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view caption button {
|
||||
float: right; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view caption .button_ok:disabled {
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view caption button:disabled {
|
||||
opacity: 0.5; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view caption > span, .openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view caption > input {
|
||||
position: relative;
|
||||
@@ -198,7 +216,7 @@
|
||||
/* meh */
|
||||
font-weight: bold;
|
||||
cursor: pointer; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td:nth-child(6) {
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .accounting_view td.cell_credit {
|
||||
border-left: 1px solid black; }
|
||||
.openerp .oe_bank_statement_reconciliation .oe_bank_statement_reconciliation_line .match .match_controls {
|
||||
padding: 0 0 5px 18px; }
|
||||
|
||||
@@ -3,6 +3,8 @@ $mainTableBordersPadding: 3px;
|
||||
$lightBorder: 1px solid #bbb;
|
||||
$accountingBorder: 1px solid #000;
|
||||
$initialLineBackground: #f0f0f0;
|
||||
// Warning, this value is also specified in the instance.web.account.abstractReconciliation widget
|
||||
$aestetic_animation_speed: 300ms;
|
||||
|
||||
|
||||
.openerp .oe_bank_statement_reconciliation {
|
||||
@@ -13,13 +15,28 @@ $initialLineBackground: #f0f0f0;
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
cursor: default;
|
||||
height: 100%;
|
||||
|
||||
.oe_form_sheetbg {
|
||||
border-bottom: 0;
|
||||
padding: 0;
|
||||
height: 100%;
|
||||
|
||||
.oe_form_sheet {
|
||||
position: relative;
|
||||
padding: 20px 15px 30px 15px;
|
||||
border-top: 0;
|
||||
border-bottom: 0;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
width: 48%;
|
||||
padding: 0 0 0 $actionColWidth;
|
||||
margin: 0 0 35px 0;
|
||||
margin: 0 0 25px 0;
|
||||
float: left;
|
||||
font-size: 2.3em;
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
@@ -28,7 +45,7 @@ $initialLineBackground: #f0f0f0;
|
||||
|
||||
.progress {
|
||||
width: 49%;
|
||||
margin: 6px $actionColWidth 0 0;
|
||||
margin: 4px $actionColWidth 0 0;
|
||||
float: right;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
@@ -48,11 +65,6 @@ $initialLineBackground: #f0f0f0;
|
||||
}
|
||||
}
|
||||
|
||||
.oe_form_sheet {
|
||||
position: relative;
|
||||
padding-bottom: 30px;
|
||||
}
|
||||
|
||||
.protip {
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
@@ -145,6 +157,11 @@ $initialLineBackground: #f0f0f0;
|
||||
-ms-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
-webkit-transition-duration: $aestetic_animation_speed;
|
||||
-moz-transition-duration: $aestetic_animation_speed;
|
||||
-ms-transition-duration: $aestetic_animation_speed;
|
||||
-o-transition-duration: $aestetic_animation_speed;
|
||||
transition-duration: $aestetic_animation_speed;
|
||||
}
|
||||
|
||||
.visible_toggle {
|
||||
@@ -228,40 +245,40 @@ $initialLineBackground: #f0f0f0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
td:nth-child(1), td:nth-child(7) {
|
||||
td.cell_action, td.cell_info_popover {
|
||||
width: $actionColWidth;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
td:nth-child(1) {
|
||||
td.cell_action {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
td:nth-child(2) {
|
||||
td.cell_account_code {
|
||||
width: 80px;
|
||||
padding-left: $mainTableBordersPadding;
|
||||
}
|
||||
|
||||
td:nth-child(3) {
|
||||
td.cell_due_date {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
td:nth-child(4) {
|
||||
td.cell_label {
|
||||
|
||||
}
|
||||
|
||||
td:nth-child(5) {
|
||||
td.cell_debit {
|
||||
text-align: right;
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
td:nth-child(6) {
|
||||
td.cell_credit {
|
||||
width: 15%;
|
||||
text-align: right;
|
||||
padding-right: $mainTableBordersPadding;
|
||||
}
|
||||
|
||||
td:nth-child(7) {
|
||||
td.cell_info_popover {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
@@ -301,8 +318,13 @@ $initialLineBackground: #f0f0f0;
|
||||
-moz-transition-property: background-color;
|
||||
-ms-transition-property: background-color;
|
||||
transition-property: background-color;
|
||||
-webkit-transition-duration: $aestetic_animation_speed;
|
||||
-moz-transition-duration: $aestetic_animation_speed;
|
||||
-ms-transition-duration: $aestetic_animation_speed;
|
||||
-o-transition-duration: $aestetic_animation_speed;
|
||||
transition-duration: $aestetic_animation_speed;
|
||||
|
||||
&:nth-child(1), &:nth-child(7) {
|
||||
&.cell_action, &.cell_info_popover {
|
||||
border-top: none;
|
||||
background: white !important;
|
||||
// Hack pour l'alignement au px près
|
||||
@@ -318,7 +340,7 @@ $initialLineBackground: #f0f0f0;
|
||||
height: 26px;
|
||||
margin: 0 $actionColWidth 4px $actionColWidth;
|
||||
|
||||
.button_ok {
|
||||
button {
|
||||
float: right;
|
||||
|
||||
&:disabled {
|
||||
@@ -334,7 +356,7 @@ $initialLineBackground: #f0f0f0;
|
||||
}
|
||||
|
||||
// accounting "T"
|
||||
td:nth-child(6) { border-left: $accountingBorder; }
|
||||
td.cell_credit { border-left: $accountingBorder; }
|
||||
}
|
||||
|
||||
|
||||
@@ -434,4 +456,4 @@ $initialLineBackground: #f0f0f0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
var _t = openerp._t;
|
||||
|
||||
openerp.Tour.register({
|
||||
id: 'bank_statement_reconciliation',
|
||||
name: _t("Reconcile the demo bank statement"),
|
||||
path: '/web',
|
||||
mode: 'test',
|
||||
// TODO : identify menu by data-menu attr or text node ?
|
||||
steps: [
|
||||
// Go to the first statement reconciliation
|
||||
{
|
||||
title: "go to accounting",
|
||||
element: '.oe_menu_toggler:contains("Accounting"):visible',
|
||||
},
|
||||
{
|
||||
title: "go to bank statements",
|
||||
element: '.oe_menu_leaf:contains("Bank Statement"):visible',
|
||||
},
|
||||
{
|
||||
title: "select first bank statement",
|
||||
element: '.oe_list_content tbody tr:contains("BNK/2014/001")',
|
||||
},
|
||||
{
|
||||
title: "click the reconcile button",
|
||||
element: '.oe_form_container header button:contains("Reconcile")',
|
||||
},
|
||||
|
||||
|
||||
// Check mutual exclusion of move lines
|
||||
{
|
||||
title: "set second reconciliation in match mode",
|
||||
element: '.oe_bank_statement_reconciliation_line:nth-child(2) .initial_line'
|
||||
},
|
||||
{
|
||||
title: "deselect SAJ/2014/002 from second reconciliation",
|
||||
element: '.oe_bank_statement_reconciliation_line:nth-child(2) .accounting_view .mv_line:contains("SAJ/2014/002")'
|
||||
},
|
||||
{
|
||||
title: "check it appeared in first reconciliation's matches list and select SAJ/2014/002 in second reconciliation",
|
||||
waitNot: '.oe_bank_statement_reconciliation_line:nth-child(2) .accounting_view .mv_line:contains("SAJ/2014/002")',
|
||||
waitFor: '.oe_bank_statement_reconciliation_line:first-child .mv_line:contains("SAJ/2014/002")',
|
||||
element: '.oe_bank_statement_reconciliation_line:nth-child(2) .mv_line:contains("SAJ/2014/002")'
|
||||
},
|
||||
|
||||
|
||||
// Make a partial reconciliation
|
||||
{
|
||||
title: "select SAJ/2014/001",
|
||||
element: '.oe_bank_statement_reconciliation_line:first-child .mv_line:contains("SAJ/2014/001")'
|
||||
},
|
||||
{
|
||||
title: "click on the partial reconciliation button",
|
||||
element: '.oe_bank_statement_reconciliation_line:first-child .mv_line:contains("SAJ/2014/001") .do_partial_reconcile_button'
|
||||
},
|
||||
{
|
||||
title: "click on the OK button",
|
||||
element: '.oe_bank_statement_reconciliation_line:first-child .button_ok.oe_highlight'
|
||||
},
|
||||
|
||||
|
||||
// Test changing the partner
|
||||
{
|
||||
title: "change the partner (1)",
|
||||
waitNot: '.oe_bank_statement_reconciliation_line:nth-child(4)', // wait for the reconciliation to be processed
|
||||
element: '.oe_bank_statement_reconciliation_line:first-child .partner_name'
|
||||
},
|
||||
{
|
||||
title: "change the partner (2)",
|
||||
element: '.oe_bank_statement_reconciliation_line:first-child .change_partner_container input',
|
||||
sampleText: 'Vauxoo',
|
||||
},
|
||||
{
|
||||
title: "change the partner (3)",
|
||||
element: '.ui-autocomplete .ui-menu-item:contains("Vauxoo")'
|
||||
},
|
||||
{
|
||||
title: "check the reconciliation is reloaded and has no match",
|
||||
element: '.oe_bank_statement_reconciliation_line:first-child.no_match',
|
||||
},
|
||||
{
|
||||
title: "change the partner back (1)",
|
||||
element: '.oe_bank_statement_reconciliation_line:first-child .partner_name'
|
||||
},
|
||||
{
|
||||
title: "change the partner back (2)",
|
||||
element: '.oe_bank_statement_reconciliation_line:first-child .change_partner_container input',
|
||||
sampleText: 'Best Designers',
|
||||
},
|
||||
{
|
||||
title: "change the partner back (3)",
|
||||
element: '.ui-autocomplete .ui-menu-item:contains("Best Designers")'
|
||||
},
|
||||
{
|
||||
title: "select SAJ/2014/002",
|
||||
element: '.oe_bank_statement_reconciliation_line:first-child .mv_line:contains("SAJ/2014/002")'
|
||||
},
|
||||
{
|
||||
title: "click on the OK button",
|
||||
element: '.oe_bank_statement_reconciliation_line:first-child .button_ok.oe_highlight'
|
||||
},
|
||||
|
||||
|
||||
// Create a new move line in first reconciliation and validate it
|
||||
{
|
||||
title: "check following reconciliation passes in mode create",
|
||||
waitNot: '.oe_bank_statement_reconciliation_line:nth-child(3)', // wait for the reconciliation to be processed
|
||||
element: '.oe_bank_statement_reconciliation_line:first-child[data-mode="create"]'
|
||||
},
|
||||
{
|
||||
title: "click the Profit/Loss preset",
|
||||
element: '.oe_bank_statement_reconciliation_line:first-child button:contains("Profit / Loss")'
|
||||
},
|
||||
{
|
||||
title: "click on the OK button",
|
||||
element: '.oe_bank_statement_reconciliation_line:first-child .button_ok.oe_highlight'
|
||||
},
|
||||
|
||||
|
||||
// Leave an open balance
|
||||
{
|
||||
title: "select SAJ/2014/003",
|
||||
waitNot: '.oe_bank_statement_reconciliation_line:nth-child(2)', // wait for the reconciliation to be processed
|
||||
element: '.oe_bank_statement_reconciliation_line:first-child .mv_line:contains("SAJ/2014/003")'
|
||||
},
|
||||
{
|
||||
title: "click on the Keep Open button",
|
||||
element: '.oe_bank_statement_reconciliation_line:first-child .button_ok:not(.oe_highlight)'
|
||||
},
|
||||
|
||||
|
||||
// Be done
|
||||
{
|
||||
title: "check 'finish screen' and close the statement",
|
||||
waitFor: '.done_message',
|
||||
element: '.button_close_statement'
|
||||
},
|
||||
{
|
||||
title: "check the statement is closed",
|
||||
element: '.oe_form_container header .label:contains("Closed")'
|
||||
},
|
||||
]
|
||||
});
|
||||
|
||||
}());
|
||||
File diff suppressed because it is too large
Load Diff
@@ -53,21 +53,21 @@
|
||||
<table class="accounting_view">
|
||||
<caption>
|
||||
<button class="button_ok"></button>
|
||||
<span class="partner_name"><t t-esc="line.partner_name"/></span>
|
||||
<span t-if="! line.has_no_partner" class="partner_name"><t t-esc="line.partner_name"/></span>
|
||||
<div class="change_partner_container oe_form"></div>
|
||||
</caption>
|
||||
<tbody class="tbody_initial_line">
|
||||
<tr class="initial_line">
|
||||
<td><span class="toggle_match glyphicon glyphicon-cog"></span></td>
|
||||
<td><t t-esc="line.account_code"/></td>
|
||||
<td><t t-esc="line.date"/></td>
|
||||
<td><t t-esc="line.name"/>
|
||||
<td class="cell_action"><span class="toggle_match glyphicon glyphicon-cog"></span></td>
|
||||
<td class="cell_account_code"><t t-esc="line.account_code"/></td>
|
||||
<td class="cell_due_date"><t t-esc="line.date"/></td>
|
||||
<td class="cell_label"><t t-if="line.name" t-esc="line.name"/>
|
||||
<t t-if="line.amount_currency_str"> (<t t-esc="line.amount_currency_str"/>)</t></td>
|
||||
<td><t t-if="line.amount > 0">
|
||||
<td class="cell_debit"><t t-if="line.amount > 0">
|
||||
<t t-esc="line.amount_str"/></t></td>
|
||||
<td><t t-if="line.amount < 0">
|
||||
<td class="cell_credit"><t t-if="line.amount < 0">
|
||||
<t t-esc="line.amount_str"/></t></td>
|
||||
<td><span class="line_info_button glyphicon glyphicon-info-sign" t-att-data-content="line.q_popover"></span></td>
|
||||
<td class="cell_info_popover"><span class="line_info_button glyphicon glyphicon-info-sign" t-att-data-content="line.q_popover"></span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tbody class="tbody_matched_lines"></tbody>
|
||||
@@ -114,7 +114,7 @@
|
||||
<t t-name="bank_statement_reconciliation_line_details">
|
||||
<table class='details'>
|
||||
<tr><td>Date</td><td><t t-esc="line.date"/></td></tr>
|
||||
<tr><td>Partner</td><td><t t-esc="line.partner_name"/></td></tr>
|
||||
<tr t-if="line.partner_name"><td>Partner</td><td><t t-esc="line.partner_name"/></td></tr>
|
||||
<tr t-if="line.ref"><td>Transaction</td><td><t t-esc="line.ref"/></td></tr>
|
||||
<tr><td>Description</td><td><t t-esc="line.name"/></td></tr>
|
||||
<tr><td>Amount</td><td><t t-esc="line.amount_str"/><t t-if="line.amount_currency_str"> (<t t-esc="line.amount_currency_str"/>)</t></td></tr>
|
||||
@@ -122,40 +122,26 @@
|
||||
</table>
|
||||
</t>
|
||||
|
||||
|
||||
<t t-name="bank_statement_reconciliation_move_line">
|
||||
<tr class="mv_line" t-att-data-lineid="line.id" t-att-data-selected="selected">
|
||||
<td><span class="glyphicon glyphicon-add-remove"></span></td>
|
||||
<td><t t-esc="line.account_code"/></td>
|
||||
<td><t t-esc="line.q_due_date"/></td>
|
||||
<td class="js_qlabel"><t t-esc="line.q_label"/></td>
|
||||
|
||||
<td><t t-if="line.debit !== 0">
|
||||
<t t-if="line.propose_partial_reconcile" t-call="icon_do_partial_reconciliation"></t>
|
||||
<t t-if="line.partial_reconcile" t-call="icon_undo_partial_reconciliation"></t>
|
||||
<t t-esc="line.debit_str"/>
|
||||
</t></td>
|
||||
<td><t t-if="line.credit !== 0">
|
||||
<t t-if="line.propose_partial_reconcile"><t t-call="icon_do_partial_reconciliation" /></t>
|
||||
<t t-if="line.partial_reconcile"><t t-call="icon_undo_partial_reconciliation" /></t>
|
||||
<t t-esc="line.credit_str"/>
|
||||
</t></td>
|
||||
<td><span class="line_info_button glyphicon glyphicon-info-sign" t-att-data-content="line.q_popover"></span></td>
|
||||
<td class="cell_action"><span class="glyphicon glyphicon-add-remove"></span></td>
|
||||
<td class="cell_account_code" t-if="line.account_code"><t t-esc="line.account_code"/></td>
|
||||
<td class="cell_due_date"><t t-esc="line.q_due_date"/></td>
|
||||
<td class="cell_label js_qlabel"><t t-esc="line.q_label"/></td>
|
||||
<td class="cell_debit"><t t-if="line.debit !== 0"><t t-if="line.propose_partial_reconcile" t-call="icon_do_partial_reconciliation"></t><t t-if="line.partial_reconcile" t-call="icon_undo_partial_reconciliation"></t><t t-esc="line.debit_str"/></t></td>
|
||||
<td class="cell_credit"><t t-if="line.credit !== 0"><t t-if="line.propose_partial_reconcile"><t t-call="icon_do_partial_reconciliation" /></t><t t-if="line.partial_reconcile"><t t-call="icon_undo_partial_reconciliation" /></t><t t-esc="line.credit_str"/></t></td>
|
||||
<td class="cell_info_popover"><span class="line_info_button glyphicon glyphicon-info-sign" t-att-data-content="line.q_popover"></span></td>
|
||||
</tr>
|
||||
</t>
|
||||
|
||||
<t t-name="icon_do_partial_reconciliation">
|
||||
<i class="do_partial_reconcile_button fa fa-exclamation-triangle" data-content="This move's amount is higher than the transaction's amount. Click to do a partial reconciliation"></i>
|
||||
</t>
|
||||
<t t-name="icon_do_partial_reconciliation"><i class="do_partial_reconcile_button fa fa-exclamation-triangle" data-content="This move's amount is higher than the transaction's amount. Click to do a partial reconciliation"></i></t>
|
||||
|
||||
<t t-name="icon_undo_partial_reconciliation">
|
||||
<i class="undo_partial_reconcile_button fa fa-exclamation-triangle" data-content="Undo the partial reconciliation."></i>
|
||||
</t>
|
||||
<t t-name="icon_undo_partial_reconciliation"><i class="undo_partial_reconcile_button fa fa-exclamation-triangle" data-content="Undo the partial reconciliation."></i></t>
|
||||
|
||||
<t t-name="bank_statement_reconciliation_move_line_details">
|
||||
<table class='details'>
|
||||
<tr><td>ID</td><td><t t-esc="line.id"/></td></tr>
|
||||
<tr><td>Account</td><td><t t-esc="line.account_code"/> <t t-esc="line.account_name"/></td></tr>
|
||||
<tr><td>id</td><td><t t-esc="line.id" /></td></tr>
|
||||
<tr t-if="line.account_code"><td>Account</td><td><t t-esc="line.account_code"/> <t t-esc="line.account_name"/></td></tr>
|
||||
<tr><td>Journal</td><td><t t-esc="line.journal_name"/></td></tr>
|
||||
<tr><td>Period</td><td><t t-esc="line.period_name"/></td></tr>
|
||||
<tr><td>Date</td><td><t t-esc="line.date"/></td></tr>
|
||||
@@ -167,28 +153,27 @@
|
||||
</table>
|
||||
</t>
|
||||
|
||||
|
||||
<t t-name="bank_statement_reconciliation_created_line">
|
||||
<tr class="created_line" t-att-data-lineid="line.id">
|
||||
<td><t t-if="! line.no_remove_action"><span class="line_remove_button glyphicon glyphicon-remove"></span></t></td>
|
||||
<td><t t-esc="line.account_num"/></td>
|
||||
<td></td>
|
||||
<td><t t-esc="line.label"/></td>
|
||||
<td><t t-if="line.amount < 0"><t t-esc="line.amount_str"/></t></td>
|
||||
<td><t t-if="line.amount > 0"><t t-esc="line.amount_str"/></t></td>
|
||||
<td></td>
|
||||
<td class="cell_action"><t t-if="! line.no_remove_action"><span class="line_remove_button glyphicon glyphicon-remove"></span></t></td>
|
||||
<td class="cell_account_code"><t t-esc="line.account_num"/></td>
|
||||
<td class="cell_due_date"></td>
|
||||
<td class="cell_label"><t t-esc="line.label"/></td>
|
||||
<td class="cell_debit"><t t-if="line.amount < 0"><t t-esc="line.amount_str"/></t></td>
|
||||
<td class="cell_credit"><t t-if="line.amount > 0"><t t-esc="line.amount_str"/></t></td>
|
||||
<td class="cell_info_popover"></td>
|
||||
</tr>
|
||||
</t>
|
||||
|
||||
<t t-name="bank_statement_reconciliation_line_open_balance">
|
||||
<tr class="line_open_balance">
|
||||
<td><span class="toggle_create glyphicon glyphicon-play"></span></td>
|
||||
<td><t t-esc="account_code"/></td>
|
||||
<td></td>
|
||||
<td class="js_open_balance">Open balance</td>
|
||||
<td><t t-esc="debit"/></td>
|
||||
<td><t t-esc="credit"/></td>
|
||||
<td></td>
|
||||
<td class="cell_action"><span class="toggle_create glyphicon glyphicon-play"></span></td>
|
||||
<td class="cell_account_code"><t t-esc="account_code"/></td>
|
||||
<td class="cell_due_date"></td>
|
||||
<td class="cell_label js_open_balance">Open balance</td>
|
||||
<td class="cell_debit"><t t-esc="debit"/></td>
|
||||
<td class="cell_credit"><t t-esc="credit"/></td>
|
||||
<td class="cell_info_popover"></td>
|
||||
</tr>
|
||||
</t>
|
||||
</templates>
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
from . import test_tax
|
||||
from . import test_search
|
||||
from . import test_reconciliation
|
||||
|
||||
fast_suite = [
|
||||
test_tax,
|
||||
test_search,
|
||||
test_reconciliation,
|
||||
]
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
import openerp.tests
|
||||
|
||||
@openerp.tests.common.at_install(False)
|
||||
@openerp.tests.common.post_install(True)
|
||||
|
||||
class TestUi(openerp.tests.HttpCase):
|
||||
def test_01_admin_bank_statement_reconciliation(self):
|
||||
self.phantom_js("/", "openerp.Tour.run('bank_statement_reconciliation', 'test')", "openerp.Tour.tours.bank_statement_reconciliation", login="admin")
|
||||
@@ -0,0 +1,162 @@
|
||||
from openerp.tests.common import TransactionCase
|
||||
|
||||
class TestReconciliation(TransactionCase):
|
||||
"""Tests for reconciliation (account.tax)
|
||||
|
||||
Test used to check that when doing a sale or purchase invoice in a different currency,
|
||||
the result will be balanced.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(TestReconciliation, self).setUp()
|
||||
self.account_invoice_model = self.registry('account.invoice')
|
||||
self.account_invoice_line_model = self.registry('account.invoice.line')
|
||||
self.acc_bank_stmt_model = self.registry('account.bank.statement')
|
||||
self.acc_bank_stmt_line_model = self.registry('account.bank.statement.line')
|
||||
|
||||
self.partner_agrolait_id = self.registry("ir.model.data").get_object_reference(self.cr, self.uid, "base", "res_partner_2")[1]
|
||||
self.currency_swiss_id = self.registry("ir.model.data").get_object_reference(self.cr, self.uid, "base", "CHF")[1]
|
||||
self.currency_usd_id = self.registry("ir.model.data").get_object_reference(self.cr, self.uid, "base", "USD")[1]
|
||||
self.account_rcv_id = self.registry("ir.model.data").get_object_reference(self.cr, self.uid, "account", "a_recv")[1]
|
||||
self.account_rsa_id = self.registry("ir.model.data").get_object_reference(self.cr, self.uid, "account", "rsa")[1]
|
||||
self.product_id = self.registry("ir.model.data").get_object_reference(self.cr, self.uid, "product", "product_product_4")[1]
|
||||
|
||||
self.bank_journal_usd_id = self.registry("ir.model.data").get_object_reference(self.cr, self.uid, "account", "bank_journal_usd")[1]
|
||||
self.account_usd_id = self.registry("ir.model.data").get_object_reference(self.cr, self.uid, "account", "usd_bnk")[1]
|
||||
|
||||
self.company_id = self.registry("ir.model.data").get_object_reference(self.cr, self.uid, "base", "main_company")[1]
|
||||
#set expense_currency_exchange_account_id and income_currency_exchange_account_id to a random account
|
||||
self.registry("res.company").write(self.cr, self.uid, [self.company_id], {'expense_currency_exchange_account_id': self.account_rsa_id, 'income_currency_exchange_account_id':self.account_rsa_id})
|
||||
|
||||
def test_balanced_customer_invoice(self):
|
||||
cr, uid = self.cr, self.uid
|
||||
#we create an invoice in CHF
|
||||
invoice_id = self.account_invoice_model.create(cr, uid, {'partner_id': self.partner_agrolait_id,
|
||||
'reference_type': 'none',
|
||||
'currency_id': self.currency_swiss_id,
|
||||
'name': 'invoice to client',
|
||||
'account_id': self.account_rcv_id,
|
||||
'type': 'out_invoice'
|
||||
})
|
||||
self.account_invoice_line_model.create(cr, uid, {'product_id': self.product_id,
|
||||
'quantity': 1,
|
||||
'price_unit': 100,
|
||||
'invoice_id': invoice_id,
|
||||
'name': 'product that cost 100',})
|
||||
|
||||
#validate purchase
|
||||
self.registry('account.invoice').signal_workflow(cr, uid, [invoice_id], 'invoice_open')
|
||||
invoice_record = self.account_invoice_model.browse(cr, uid, [invoice_id])
|
||||
|
||||
#we pay half of it on a journal with currency in dollar (bank statement)
|
||||
bank_stmt_id = self.acc_bank_stmt_model.create(cr, uid, {'journal_id': self.bank_journal_usd_id,})
|
||||
|
||||
bank_stmt_line_id = self.acc_bank_stmt_line_model.create(cr, uid, {'name': 'half payment',
|
||||
'statement_id': bank_stmt_id,
|
||||
'partner_id': self.partner_agrolait_id,
|
||||
'amount': 42,
|
||||
'amount_currency': 50,
|
||||
'currency_id': self.currency_swiss_id,})
|
||||
|
||||
#reconcile the payment with the invoice
|
||||
for l in invoice_record.move_id.line_id:
|
||||
if l.account_id.id == self.account_rcv_id:
|
||||
line_id = l
|
||||
break
|
||||
self.acc_bank_stmt_line_model.process_reconciliation(cr, uid, bank_stmt_line_id, [
|
||||
{'counterpart_move_line_id': line_id.id, 'credit':50, 'debit':0, 'name': line_id.name,}])
|
||||
|
||||
#we check that the line is balanced (bank statement line)
|
||||
move_line_ids = self.acc_bank_stmt_model.browse(cr,uid,bank_stmt_id).move_line_ids
|
||||
|
||||
self.assertEquals(len(move_line_ids), 3)
|
||||
checked_line = 0
|
||||
for move_line in move_line_ids:
|
||||
if move_line.account_id.id == self.account_usd_id:
|
||||
self.assertEquals(move_line.debit, 27.47)
|
||||
self.assertEquals(move_line.credit, 0.0)
|
||||
self.assertEquals(move_line.amount_currency, 42)
|
||||
self.assertEquals(move_line.currency_id.id, self.currency_usd_id)
|
||||
checked_line += 1
|
||||
continue
|
||||
if move_line.account_id.id == self.account_rcv_id:
|
||||
self.assertEquals(move_line.debit, 0.0)
|
||||
self.assertEquals(move_line.credit, 38.21)
|
||||
self.assertEquals(move_line.amount_currency, -50)
|
||||
self.assertEquals(move_line.currency_id.id, self.currency_swiss_id)
|
||||
checked_line += 1
|
||||
continue
|
||||
if move_line.account_id.id == self.account_rsa_id:
|
||||
self.assertEquals(move_line.debit, 10.74)
|
||||
self.assertEquals(move_line.credit, 0.0)
|
||||
checked_line += 1
|
||||
continue
|
||||
self.assertEquals(checked_line, 3)
|
||||
|
||||
|
||||
|
||||
def test_balanced_supplier_invoice(self):
|
||||
cr, uid = self.cr, self.uid
|
||||
#we create a supplier invoice in CHF
|
||||
invoice_id = self.account_invoice_model.create(cr, uid, {'partner_id': self.partner_agrolait_id,
|
||||
'reference_type': 'none',
|
||||
'currency_id': self.currency_swiss_id,
|
||||
'name': 'invoice to client',
|
||||
'account_id': self.account_rcv_id,
|
||||
'type': 'in_invoice'
|
||||
})
|
||||
self.account_invoice_line_model.create(cr, uid, {'product_id': self.product_id,
|
||||
'quantity': 1,
|
||||
'price_unit': 100,
|
||||
'invoice_id': invoice_id,
|
||||
'name': 'product that cost 100',})
|
||||
|
||||
#validate purchase
|
||||
self.registry('account.invoice').signal_workflow(cr, uid, [invoice_id], 'invoice_open')
|
||||
invoice_record = self.account_invoice_model.browse(cr, uid, [invoice_id])
|
||||
|
||||
#we pay half of it on a journal with currency in dollar (bank statement)
|
||||
bank_stmt_id = self.acc_bank_stmt_model.create(cr, uid, {'journal_id': self.bank_journal_usd_id,})
|
||||
|
||||
bank_stmt_line_id = self.acc_bank_stmt_line_model.create(cr, uid, {'name': 'half payment',
|
||||
'statement_id': bank_stmt_id,
|
||||
'partner_id': self.partner_agrolait_id,
|
||||
'amount': -42,
|
||||
'amount_currency': -50,
|
||||
'currency_id': self.currency_swiss_id,})
|
||||
|
||||
#reconcile the payment with the invoice
|
||||
for l in invoice_record.move_id.line_id:
|
||||
if l.account_id.id == self.account_rcv_id:
|
||||
line_id = l
|
||||
break
|
||||
self.acc_bank_stmt_line_model.process_reconciliation(cr, uid, bank_stmt_line_id, [
|
||||
{'counterpart_move_line_id': line_id.id, 'credit':0, 'debit':50, 'name': line_id.name,}])
|
||||
|
||||
#we check that the line is balanced (bank statement line)
|
||||
move_line_ids = self.acc_bank_stmt_model.browse(cr,uid,bank_stmt_id).move_line_ids
|
||||
|
||||
self.assertEquals(len(move_line_ids), 3)
|
||||
checked_line = 0
|
||||
for move_line in move_line_ids:
|
||||
if move_line.account_id.id == self.account_usd_id:
|
||||
self.assertEquals(move_line.debit, 0.0)
|
||||
self.assertEquals(move_line.credit, 27.47)
|
||||
self.assertEquals(move_line.amount_currency, -42)
|
||||
self.assertEquals(move_line.currency_id.id, self.currency_usd_id)
|
||||
checked_line += 1
|
||||
continue
|
||||
if move_line.account_id.id == self.account_rcv_id:
|
||||
self.assertEquals(move_line.debit, 38.21)
|
||||
self.assertEquals(move_line.credit, 0.0)
|
||||
self.assertEquals(move_line.amount_currency, 50)
|
||||
self.assertEquals(move_line.currency_id.id, self.currency_swiss_id)
|
||||
checked_line += 1
|
||||
continue
|
||||
if move_line.account_id.id == self.account_rsa_id:
|
||||
self.assertEquals(move_line.debit, 0.0)
|
||||
self.assertEquals(move_line.credit, 10.74)
|
||||
checked_line += 1
|
||||
continue
|
||||
self.assertEquals(checked_line, 3)
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
<link rel="stylesheet" href="/account/static/src/css/account_bank_statement_reconciliation.css"/>
|
||||
<script type="text/javascript" src="/account/static/src/js/account_widgets.js"></script>
|
||||
<script type="text/javascript" src="/account/static/src/js/account_move_line_quickadd.js"></script>
|
||||
<script type="text/javascript" src="/account/static/src/js/account_tour_bank_statement_reconciliation.js"></script>
|
||||
</xpath>
|
||||
</template>
|
||||
</data>
|
||||
|
||||
@@ -133,7 +133,7 @@ class account_fiscalyear_close(osv.osv_memory):
|
||||
FROM account_account a
|
||||
LEFT JOIN account_account_type t ON (a.user_type = t.id)
|
||||
WHERE a.active
|
||||
AND a.type != 'view'
|
||||
AND a.type not in ('view', 'consolidation')
|
||||
AND a.company_id = %s
|
||||
AND t.close_method = %s''', (company_id, 'unreconciled', ))
|
||||
account_ids = map(lambda x: x[0], cr.fetchall())
|
||||
@@ -184,7 +184,7 @@ class account_fiscalyear_close(osv.osv_memory):
|
||||
FROM account_account a
|
||||
LEFT JOIN account_account_type t ON (a.user_type = t.id)
|
||||
WHERE a.active
|
||||
AND a.type != 'view'
|
||||
AND a.type not in ('view', 'consolidation')
|
||||
AND a.company_id = %s
|
||||
AND t.close_method = %s''', (company_id, 'detail', ))
|
||||
account_ids = map(lambda x: x[0], cr.fetchall())
|
||||
@@ -213,7 +213,7 @@ class account_fiscalyear_close(osv.osv_memory):
|
||||
FROM account_account a
|
||||
LEFT JOIN account_account_type t ON (a.user_type = t.id)
|
||||
WHERE a.active
|
||||
AND a.type != 'view'
|
||||
AND a.type not in ('view', 'consolidation')
|
||||
AND a.company_id = %s
|
||||
AND t.close_method = %s''', (company_id, 'balance', ))
|
||||
account_ids = map(lambda x: x[0], cr.fetchall())
|
||||
|
||||
@@ -49,16 +49,19 @@ class CashBoxIn(CashBox):
|
||||
|
||||
_columns = CashBox._columns.copy()
|
||||
_columns.update({
|
||||
'ref' : fields.char('Reference'),
|
||||
'ref': fields.char('Reference'),
|
||||
})
|
||||
|
||||
def _compute_values_for_statement_line(self, cr, uid, box, record, context=None):
|
||||
if not record.journal_id.internal_account_id.id:
|
||||
raise osv.except_osv(_('Configuration Error'), _("You should have defined an 'Internal Transfer Account' in your cash register's journal!"))
|
||||
return {
|
||||
'statement_id' : record.id,
|
||||
'journal_id' : record.journal_id.id,
|
||||
'amount' : box.amount or 0.0,
|
||||
'ref' : '%s' % (box.ref or ''),
|
||||
'name' : box.name,
|
||||
'statement_id': record.id,
|
||||
'journal_id': record.journal_id.id,
|
||||
'amount': box.amount or 0.0,
|
||||
'account_id': record.journal_id.internal_account_id.id,
|
||||
'ref': '%s' % (box.ref or ''),
|
||||
'name': box.name,
|
||||
}
|
||||
|
||||
|
||||
@@ -68,11 +71,13 @@ class CashBoxOut(CashBox):
|
||||
_columns = CashBox._columns.copy()
|
||||
|
||||
def _compute_values_for_statement_line(self, cr, uid, box, record, context=None):
|
||||
if not record.journal_id.internal_account_id.id:
|
||||
raise osv.except_osv(_('Configuration Error'), _("You should have defined an 'Internal Transfer Account' in your cash register's journal!"))
|
||||
amount = box.amount or 0.0
|
||||
return {
|
||||
'statement_id' : record.id,
|
||||
'journal_id' : record.journal_id.id,
|
||||
'amount' : -amount if amount > 0.0 else amount,
|
||||
'name' : box.name,
|
||||
'statement_id': record.id,
|
||||
'journal_id': record.journal_id.id,
|
||||
'amount': -amount if amount > 0.0 else amount,
|
||||
'account_id': record.journal_id.internal_account_id.id,
|
||||
'name': box.name,
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ It gives the Administrator user access to all accounting features such as journa
|
||||
|
||||
It assigns manager and user access rights to the Administrator and only user rights to the Demo user.
|
||||
""",
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com/page/accounting',
|
||||
'depends' : ['account_voucher'],
|
||||
'data': [
|
||||
'security/account_security.xml',
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_accountant
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:04+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
||||
@@ -30,8 +30,8 @@ This module is for modifying account analytic view to show important data to pro
|
||||
|
||||
Adds menu to show relevant information to each manager.You can also view the report of account analytic summary user-wise as well as month-wise.
|
||||
""",
|
||||
'author': 'Camptocamp',
|
||||
'website': 'http://www.camptocamp.com/',
|
||||
'author': 'Camptocamp / Odoo',
|
||||
'website': 'https://www.odoo.com/page/billing',
|
||||
'images': ['images/bill_tasks_works.jpeg','images/overpassed_accounts.jpeg'],
|
||||
'depends': ['hr_timesheet_invoice', 'sale'], #although sale is technically not required to install this module, all menuitems are located under 'Sales' application
|
||||
'data': [
|
||||
|
||||
@@ -403,7 +403,7 @@ class account_analytic_account(osv.osv):
|
||||
result = dict.fromkeys(ids, 0)
|
||||
for record in self.browse(cr, uid, ids, context=context):
|
||||
if record.quantity_max > 0.0:
|
||||
result[record.id] = int(record.hours_quantity >= record.quantity_max)
|
||||
result[record.id] = int(record.hours_quantity > record.quantity_max)
|
||||
else:
|
||||
result[record.id] = 0
|
||||
return result
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -36,7 +36,7 @@ Allows to automatically select analytic accounts based on criterions:
|
||||
* Date
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com/page/accounting',
|
||||
'images': ['images/analytic_defaults.jpeg'],
|
||||
'depends': ['sale_stock'],
|
||||
'data': [
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_analytic_default
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -16,127 +16,83 @@ msgstr ""
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_partner
|
||||
#: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_product
|
||||
#: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_user
|
||||
msgid "Analytic Rules"
|
||||
#: field:product.product,rules_count:0
|
||||
#: field:product.template,rules_count:0
|
||||
msgid "# Analytic Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
msgid "Group By..."
|
||||
#: view:account.analytic.default:account_analytic_default.view_account_analytic_default_form_search
|
||||
msgid "Accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,date_stop:0
|
||||
msgid "Default end date for this Analytic Account."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,product_id:0
|
||||
msgid "Select a product which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this product, it will automatically take this as an analytic account)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.model,name:account_analytic_default.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
msgid "Conditions"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
#: field:account.analytic.default,product_id:0
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,partner_id:0
|
||||
msgid "Select a partner which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this partner, it will automatically take this as an analytic account)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
#: field:account.analytic.default,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
#: field:account.analytic.default,user_id:0
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.actions.act_window,name:account_analytic_default.act_account_acount_move_line_open
|
||||
msgid "Entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: field:account.analytic.default,date_stop:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
#: model:ir.actions.act_window,name:account_analytic_default.action_analytic_default_list
|
||||
#: model:ir.ui.menu,name:account_analytic_default.menu_analytic_default_list
|
||||
msgid "Analytic Defaults"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: field:account.analytic.default,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,user_id:0
|
||||
msgid "Select a user which will use analytic account specified in analytic default."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.model,name:account_analytic_default.model_account_invoice_line
|
||||
msgid "Invoice Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,company_id:0
|
||||
msgid "Select a company which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this company, it will automatically take this as an analytic account)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
#: view:account.analytic.default:account_analytic_default.view_account_analytic_default_form_search
|
||||
#: field:account.analytic.default,analytic_id:0
|
||||
msgid "Analytic Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:account_analytic_default.view_account_analytic_default_form
|
||||
#: view:account.analytic.default:account_analytic_default.view_account_analytic_default_tree
|
||||
#: model:ir.actions.act_window,name:account_analytic_default.action_analytic_default_list
|
||||
#: model:ir.actions.act_window,name:account_analytic_default.action_product_default_list
|
||||
#: model:ir.ui.menu,name:account_analytic_default.menu_analytic_default_list
|
||||
msgid "Analytic Defaults"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.model,name:account_analytic_default.model_account_analytic_default
|
||||
msgid "Analytic Distribution"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_partner
|
||||
#: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_user
|
||||
#: view:product.product:account_analytic_default.product_form_view_default_analytic_button
|
||||
#: view:product.template:account_analytic_default.product_template_view_default_analytic_button
|
||||
msgid "Analytic Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:account_analytic_default.view_account_analytic_default_form_search
|
||||
#: field:account.analytic.default,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:account_analytic_default.view_account_analytic_default_form
|
||||
msgid "Conditions"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: field:account.analytic.default,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: field:account.analytic.default,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,date_stop:0
|
||||
msgid "Default end date for this Analytic Account."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,date_start:0
|
||||
msgid "Default start date for this Analytic Account."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
msgid "Accounts"
|
||||
#: field:account.analytic.default,date_stop:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
#: field:account.analytic.default,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: field:account.analytic.default,date_start:0
|
||||
msgid "Start Date"
|
||||
#: model:ir.actions.act_window,name:account_analytic_default.act_account_acount_move_line_open
|
||||
msgid "Entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
@@ -144,8 +100,92 @@ msgstr ""
|
||||
msgid "Gives the sequence order when displaying a list of analytic distribution"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:account_analytic_default.view_account_analytic_default_form_search
|
||||
msgid "Group By"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: field:account.analytic.default,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.model,name:account_analytic_default.model_account_invoice_line
|
||||
msgid "Invoice Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: field:account.analytic.default,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: field:account.analytic.default,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:account_analytic_default.view_account_analytic_default_form_search
|
||||
#: field:account.analytic.default,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.model,name:account_analytic_default.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:account_analytic_default.view_account_analytic_default_form_search
|
||||
#: field:account.analytic.default,product_id:0
|
||||
#: model:ir.model,name:account_analytic_default.model_product_product
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.model,name:account_analytic_default.model_product_template
|
||||
msgid "Product Template"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.model,name:account_analytic_default.model_sale_order_line
|
||||
msgid "Sales Order Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,company_id:0
|
||||
msgid "Select a company which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this company, it will automatically take this as an analytic account)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,partner_id:0
|
||||
msgid "Select a partner which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this partner, it will automatically take this as an analytic account)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,product_id:0
|
||||
msgid "Select a product which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this product, it will automatically take this as an analytic account)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,user_id:0
|
||||
msgid "Select a user which will use analytic account specified in analytic default."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: field:account.analytic.default,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: field:account.analytic.default,date_start:0
|
||||
msgid "Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:account_analytic_default.view_account_analytic_default_form_search
|
||||
#: field:account.analytic.default,user_id:0
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ So when this line of invoice will be confirmed, it will generate 3 analytic line
|
||||
The analytic plan validates the minimum and maximum percentage at the time of creation of distribution models.
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com/page/accounting',
|
||||
'images': ['images/analytic_plan.jpeg'],
|
||||
'depends': ['account', 'account_analytic_default'],
|
||||
'data': [
|
||||
|
||||
@@ -210,7 +210,7 @@ class account_analytic_plan_instance(osv.osv):
|
||||
ana_plan_instance_obj = self.pool.get('account.analytic.plan.instance')
|
||||
acct_anal_acct = self.pool.get('account.analytic.account')
|
||||
acct_anal_plan_line_obj = self.pool.get('account.analytic.plan.line')
|
||||
if context and 'journal_id' in context:
|
||||
if context and context.get('journal_id'):
|
||||
journal = journal_obj.browse(cr, uid, context['journal_id'], context=context)
|
||||
|
||||
pids = ana_plan_instance_obj.search(cr, uid, [('name','=',vals['name']), ('code','=',vals['code']), ('plan_id','<>',False)], context=context)
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_analytic_plans
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -16,16 +16,39 @@ msgstr ""
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance,account4_ids:0
|
||||
msgid "Account4 Id"
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:218
|
||||
#, python-format
|
||||
msgid "A model with this name and code already exists."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
#: view:account.crossovered.analytic:0
|
||||
#: model:ir.actions.act_window,name:account_analytic_plans.action_account_crossovered_analytic
|
||||
#: model:ir.actions.report.xml,name:account_analytic_plans.account_analytic_account_crossovered_analytic
|
||||
msgid "Crossovered Analytic"
|
||||
#: field:account.analytic.plan.instance,account_ids:0
|
||||
msgid "Account Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:website:account_analytic_plans.report_crossoveredanalyticplans
|
||||
msgid "Account Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance,account1_ids:0
|
||||
msgid "Account1 Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance,account2_ids:0
|
||||
msgid "Account2 Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance,account3_ids:0
|
||||
msgid "Account3 Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance,account4_ids:0
|
||||
msgid "Account4 Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
@@ -34,23 +57,77 @@ msgid "Account5 Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.crossovered.analytic,date2:0
|
||||
msgid "End Date"
|
||||
#: field:account.analytic.plan.instance,account6_ids:0
|
||||
msgid "Account6 Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance.line,rate:0
|
||||
msgid "Rate (%)"
|
||||
#: view:website:account_analytic_plans.report_crossoveredanalyticplans
|
||||
msgid "Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:234
|
||||
#: field:account.analytic.plan.instance.line,analytic_account_id:0
|
||||
msgid "Analytic Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.crossovered.analytic,ref:0
|
||||
#: view:website:account_analytic_plans.report_crossoveredanalyticplans
|
||||
msgid "Analytic Account Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#. openerp-web
|
||||
#: field:account.analytic.default,analytics_id:0
|
||||
#: view:account.analytic.plan.instance:account_analytic_plans.account_analytic_plan_instance_form
|
||||
#: view:account.analytic.plan.instance:account_analytic_plans.account_analytic_plan_instance_tree
|
||||
#: field:account.analytic.plan.instance,name:0
|
||||
#: field:account.bank.statement.line,analytics_id:0
|
||||
#: field:account.invoice.line,analytics_id:0
|
||||
#: field:account.move.line,analytics_id:0
|
||||
#: code:addons/account_analytic_plans/static/src/js/account_bank_reconciliation.js:16
|
||||
#: code:addons/account_analytic_plans/static/src/js/account_bank_reconciliation.js:23
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_analytic_default
|
||||
#, python-format
|
||||
msgid "The total should be between %s and %s."
|
||||
msgid "Analytic Distribution"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.analytic.plan:0
|
||||
#: view:account.analytic.plan.instance.line:account_analytic_plans.account_analytic_plan_instance_line_form
|
||||
msgid "Analytic Distribution Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.analytic.plan.instance.line:account_analytic_plans.account_analytic_plan_instance_line_tree
|
||||
msgid "Analytic Distribution Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_plan_instance_action
|
||||
msgid "Analytic Distribution's Models"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance_line
|
||||
msgid "Analytic Instance Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance,journal_id:0
|
||||
#: view:account.crossovered.analytic:account_analytic_plans.view_account_crossovered_analytic
|
||||
#: field:account.crossovered.analytic,journal_ids:0
|
||||
msgid "Analytic Journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_analytic_line
|
||||
msgid "Analytic Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.analytic.plan:account_analytic_plans.account_analytic_plan_form
|
||||
#: view:account.analytic.plan:account_analytic_plans.account_analytic_plan_search
|
||||
#: field:account.analytic.plan,name:0
|
||||
#: field:account.analytic.plan.line,plan_id:0
|
||||
#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_plan_form_action
|
||||
@@ -60,127 +137,86 @@ msgid "Analytic Plan"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:analytic.plan.create.model:0
|
||||
msgid "This distribution model has been saved.You will be able to reuse it later."
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance
|
||||
msgid "Analytic Plan Instance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance_line
|
||||
msgid "Analytic Instance Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.analytic.plan.instance.line:0
|
||||
msgid "Analytic Distribution Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.crossovered.analytic:0
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance.line,plan_id:0
|
||||
msgid "Plan Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_plan_instance_action
|
||||
msgid "Analytic Distribution's Models"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
msgid "Account Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.analytic.plan.instance.line:0
|
||||
msgid "Analytic Distribution Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance,code:0
|
||||
msgid "Distribution Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
#: field:account.analytic.line,percentage:0
|
||||
msgid "Percentage"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
msgid "Printing date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.crossovered.analytic,empty_line:0
|
||||
msgid "Dont show empty lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: code:addons/account_analytic_plans/wizard/account_crossovered_analytic.py:61
|
||||
#, python-format
|
||||
msgid "There are no analytic lines related to account %s."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance,account3_ids:0
|
||||
msgid "Account3 Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.crossovered.analytic:0
|
||||
#: view:analytic.plan.create.model:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_analytic_line
|
||||
msgid "Analytic Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
msgid "100.00%"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
msgid "Currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
msgid "Analytic Account :"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:analytic.plan.create.model:0
|
||||
msgid "Save This Distribution as a Model"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.analytic.plan.line:0
|
||||
#: view:account.analytic.plan.line:account_analytic_plans.account_analytic_plan_line_form
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_line
|
||||
msgid "Analytic Plan Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
msgid "Analytic Account Reference:"
|
||||
#: view:account.analytic.plan.line:account_analytic_plans.account_analytic_plan_line_tree
|
||||
msgid "Analytic Plan Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.analytic.plan:account_analytic_plans.account_analytic_plan_search
|
||||
#: view:account.analytic.plan:account_analytic_plans.account_analytic_plan_tree
|
||||
#: field:account.analytic.plan,plan_ids:0
|
||||
#: field:account.journal,plan_id:0
|
||||
msgid "Analytic Plans"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.line,name:0
|
||||
msgid "Plan Name"
|
||||
msgid "Axis Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_bank_statement
|
||||
msgid "Bank Statement"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_bank_statement_line
|
||||
msgid "Bank Statement Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.crossovered.analytic:account_analytic_plans.view_account_crossovered_analytic
|
||||
#: view:analytic.plan.create.model:account_analytic_plans.view_analytic_plan_create_model_msg
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:website:account_analytic_plans.report_crossoveredanalyticplans
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:website:account_analytic_plans.report_crossoveredanalyticplans
|
||||
msgid "Company:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan,create_uid:0
|
||||
#: field:account.analytic.plan.instance,create_uid:0
|
||||
#: field:account.analytic.plan.instance.line,create_uid:0
|
||||
#: field:account.analytic.plan.line,create_uid:0
|
||||
#: field:account.crossovered.analytic,create_uid:0
|
||||
#: field:analytic.plan.create.model,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan,create_date:0
|
||||
#: field:account.analytic.plan.instance,create_date:0
|
||||
#: field:account.analytic.plan.instance.line,create_date:0
|
||||
#: field:account.analytic.plan.line,create_date:0
|
||||
#: field:account.crossovered.analytic,create_date:0
|
||||
#: field:analytic.plan.create.model,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.crossovered.analytic:account_analytic_plans.view_account_crossovered_analytic
|
||||
#: model:ir.actions.act_window,name:account_analytic_plans.action_account_crossovered_analytic
|
||||
#: model:ir.actions.report.xml,name:account_analytic_plans.action_account_analytic_account_crossovered_analytic
|
||||
#: view:website:account_analytic_plans.report_crossoveredanalyticplans
|
||||
msgid "Crossovered Analytic"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
@@ -189,67 +225,101 @@ msgid "Default Entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.analytic.plan:0
|
||||
#: field:account.analytic.plan,plan_ids:0
|
||||
#: field:account.journal,plan_id:0
|
||||
msgid "Analytic Plans"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
msgid "Perc(%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_move_line
|
||||
msgid "Journal Items"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_analytic_plan_create_model
|
||||
msgid "analytic.plan.create.model"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance,account1_ids:0
|
||||
msgid "Account1 Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.line,max_required:0
|
||||
msgid "Maximum Allowed (%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.line,root_analytic_id:0
|
||||
msgid "Root Account"
|
||||
#: field:account.analytic.plan.instance,code:0
|
||||
msgid "Distribution Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:47
|
||||
#: view:analytic.plan.create.model:0
|
||||
#: view:analytic.plan.create.model:account_analytic_plans.view_analytic_plan_create_model
|
||||
#: view:analytic.plan.create.model:account_analytic_plans.view_analytic_plan_create_model_msg
|
||||
#, python-format
|
||||
msgid "Distribution Model Saved"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance
|
||||
msgid "Analytic Plan Instance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_instance_model_open
|
||||
msgid "Distribution Models"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:analytic.plan.create.model:0
|
||||
msgid "Ok"
|
||||
#: field:account.crossovered.analytic,empty_line:0
|
||||
msgid "Dont show empty lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.analytic.plan.line:0
|
||||
msgid "Analytic Plan Lines"
|
||||
#: field:account.crossovered.analytic,date2:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:218
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:231
|
||||
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:38
|
||||
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:41
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:website:account_analytic_plans.report_crossoveredanalyticplans
|
||||
msgid "From Date:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan,id:0
|
||||
#: field:account.analytic.plan.instance,id:0
|
||||
#: field:account.analytic.plan.instance.line,id:0
|
||||
#: field:account.analytic.plan.line,id:0
|
||||
#: field:account.crossovered.analytic,id:0
|
||||
#: field:analytic.plan.create.model,id:0
|
||||
#: field:report.account_analytic_plans.report_crossoveredanalyticplans,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_invoice
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_invoice_line
|
||||
msgid "Invoice Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_journal
|
||||
msgid "Journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_move_line
|
||||
msgid "Journal Items"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan,write_uid:0
|
||||
#: field:account.analytic.plan.instance,write_uid:0
|
||||
#: field:account.analytic.plan.instance.line,write_uid:0
|
||||
#: field:account.analytic.plan.line,write_uid:0
|
||||
#: field:account.crossovered.analytic,write_uid:0
|
||||
#: field:analytic.plan.create.model,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan,write_date:0
|
||||
#: field:account.analytic.plan.instance,write_date:0
|
||||
#: field:account.analytic.plan.instance.line,write_date:0
|
||||
#: field:account.analytic.plan.line,write_date:0
|
||||
#: field:account.crossovered.analytic,write_date:0
|
||||
#: field:analytic.plan.create.model,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.line,max_required:0
|
||||
msgid "Maximum Allowed (%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
@@ -263,50 +333,30 @@ msgid "Model's Plan"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance,account2_ids:0
|
||||
msgid "Account2 Id"
|
||||
#: model:ir.ui.menu,name:account_analytic_plans.menu_account_analytic_multi_plan_action
|
||||
msgid "Multi Plans"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_bank_statement_line
|
||||
msgid "Bank Statement Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:221
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:234
|
||||
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:38
|
||||
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:41
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:335
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:469
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgid "No Analytic Journal!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
msgid "Amount"
|
||||
#: view:website:account_analytic_plans.report_crossoveredanalyticplans
|
||||
msgid "Perc(%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_crossovered_analytic
|
||||
msgid "Print Crossovered Analytic"
|
||||
#: field:account.analytic.line,percentage:0
|
||||
msgid "Percentage"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: code:addons/account_analytic_plans/wizard/account_crossovered_analytic.py:61
|
||||
#, python-format
|
||||
msgid "User Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance,account6_ids:0
|
||||
msgid "Account6 Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance,journal_id:0
|
||||
#: view:account.crossovered.analytic:0
|
||||
#: field:account.crossovered.analytic,journal_ids:0
|
||||
msgid "Analytic Journal"
|
||||
#: field:account.analytic.plan.instance.line,plan_id:0
|
||||
msgid "Plan Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
@@ -316,47 +366,48 @@ msgid "Please put a name and a code before saving the model."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
#: view:account.crossovered.analytic:account_analytic_plans.view_account_crossovered_analytic
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_crossovered_analytic
|
||||
msgid "Print Crossovered Analytic"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:website:account_analytic_plans.report_crossoveredanalyticplans
|
||||
msgid "Printing Date:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:website:account_analytic_plans.report_crossoveredanalyticplans
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.ui.menu,name:account_analytic_plans.menu_account_analytic_multi_plan_action
|
||||
msgid "Multi Plans"
|
||||
#: field:account.analytic.plan.instance.line,rate:0
|
||||
msgid "Rate (%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance,account_ids:0
|
||||
msgid "Account Id"
|
||||
#: field:account.analytic.plan.line,root_analytic_id:0
|
||||
msgid "Root Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
msgid "Code"
|
||||
#: help:account.analytic.plan.line,root_analytic_id:0
|
||||
msgid "Root account of this plan."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_journal
|
||||
msgid "Journal"
|
||||
#: model:ir.model,name:account_analytic_plans.model_sale_order_line
|
||||
msgid "Sales Order Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:342
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:486
|
||||
#, python-format
|
||||
msgid "You have to define an analytic journal on the '%s' journal."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:342
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:486
|
||||
#, python-format
|
||||
msgid "No Analytic Journal !"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.actions.act_window,name:account_analytic_plans.action_analytic_plan_create_model
|
||||
msgid "analytic.plan.create.model.action"
|
||||
#: view:analytic.plan.create.model:account_analytic_plans.view_analytic_plan_create_model_msg
|
||||
msgid "Save This Distribution as a Model"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
@@ -365,8 +416,20 @@ msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_invoice_line
|
||||
msgid "Invoice Line"
|
||||
#: field:account.crossovered.analytic,date1:0
|
||||
msgid "Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:231
|
||||
#, python-format
|
||||
msgid "The total should be between %s and %s."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: code:addons/account_analytic_plans/wizard/account_crossovered_analytic.py:62
|
||||
#, python-format
|
||||
msgid "There are no analytic lines related to account %s."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
@@ -376,75 +439,30 @@ msgid "There is no analytic plan defined."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_bank_statement
|
||||
msgid "Bank Statement"
|
||||
#: view:analytic.plan.create.model:account_analytic_plans.view_analytic_plan_create_model
|
||||
msgid "This distribution model has been saved.You will be able to reuse it later."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance.line,analytic_account_id:0
|
||||
msgid "Analytic Account"
|
||||
#: view:website:account_analytic_plans.report_crossoveredanalyticplans
|
||||
msgid "To Date:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.default,analytics_id:0
|
||||
#: view:account.analytic.plan.instance:0
|
||||
#: field:account.analytic.plan.instance,name:0
|
||||
#: field:account.bank.statement.line,analytics_id:0
|
||||
#: field:account.invoice.line,analytics_id:0
|
||||
#: field:account.move.line,analytics_id:0
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_analytic_default
|
||||
msgid "Analytic Distribution"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:221
|
||||
#: code:addons/account_analytic_plans/wizard/account_crossovered_analytic.py:62
|
||||
#, python-format
|
||||
msgid "A model with this name and code already exists."
|
||||
msgid "User Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: help:account.analytic.plan.line,root_analytic_id:0
|
||||
msgid "Root account of this plan."
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:335
|
||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:469
|
||||
#, python-format
|
||||
msgid "You have to define an analytic journal on the '%s' journal."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.crossovered.analytic,ref:0
|
||||
msgid "Analytic Account Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_invoice
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.crossovered.analytic:0
|
||||
#: view:analytic.plan.create.model:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.crossovered.analytic,date1:0
|
||||
msgid "Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
msgid "at"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_sale_order_line
|
||||
msgid "Sales Order Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: report:account.analytic.account.crossovered.analytic:0
|
||||
msgid "From Date"
|
||||
#: model:ir.actions.act_window,name:account_analytic_plans.action_analytic_plan_create_model
|
||||
msgid "analytic.plan.create.model.action"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
'name': 'Anglo-Saxon Accounting',
|
||||
'version': '1.2',
|
||||
'author': 'OpenERP SA, Veritos',
|
||||
'website': 'http://openerp.com - http://veritos.nl',
|
||||
'website': 'https://www.odoo.com',
|
||||
'description': """
|
||||
This module supports the Anglo-Saxon accounting methodology by changing the accounting logic with stock transactions.
|
||||
=====================================================================================================================
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_anglo_saxon
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -16,8 +16,13 @@ msgstr ""
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.model,name:account_anglo_saxon.model_product_category
|
||||
msgid "Product Category"
|
||||
#: help:account.invoice.line,move_id:0
|
||||
msgid "If the invoice was generated from a stock.picking, reference to the related move line."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.model,name:account_anglo_saxon.model_account_invoice
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
@@ -26,13 +31,13 @@ msgid "Invoice Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.model,name:account_anglo_saxon.model_purchase_order
|
||||
msgid "Purchase Order"
|
||||
#: field:account.invoice.line,move_id:0
|
||||
msgid "Move line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.model,name:account_anglo_saxon.model_product_template
|
||||
msgid "Product Template"
|
||||
#: model:ir.model,name:account_anglo_saxon.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
@@ -42,13 +47,18 @@ msgid "Price Difference Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.model,name:account_anglo_saxon.model_account_invoice
|
||||
msgid "Invoice"
|
||||
#: model:ir.model,name:account_anglo_saxon.model_product_category
|
||||
msgid "Product Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.model,name:account_anglo_saxon.model_stock_picking
|
||||
msgid "Picking List"
|
||||
#: model:ir.model,name:account_anglo_saxon.model_product_template
|
||||
msgid "Product Template"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.model,name:account_anglo_saxon.model_purchase_order
|
||||
msgid "Purchase Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
##############################################################################
|
||||
|
||||
from openerp.osv import osv, fields
|
||||
from openerp.tools.float_utils import float_round as round
|
||||
|
||||
class account_invoice_line(osv.osv):
|
||||
_inherit = "account.invoice.line"
|
||||
@@ -36,11 +37,12 @@ class account_invoice_line(osv.osv):
|
||||
company_currency = inv.company_id.currency_id.id
|
||||
def get_price(cr, uid, inv, company_currency, i_line, price_unit):
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
decimal_precision = self.pool.get('decimal.precision')
|
||||
if inv.currency_id.id != company_currency:
|
||||
price = cur_obj.compute(cr, uid, company_currency, inv.currency_id.id, price_unit * i_line.quantity, context={'date': inv.date_invoice})
|
||||
else:
|
||||
price = price_unit * i_line.quantity
|
||||
return price
|
||||
return round(price, decimal_precision.precision_get(cr, uid, 'Account'))
|
||||
|
||||
if inv.type in ('out_invoice','out_refund'):
|
||||
for i_line in inv.invoice_line:
|
||||
@@ -118,28 +120,30 @@ class account_invoice_line(osv.osv):
|
||||
fpos = i_line.invoice_id.fiscal_position or False
|
||||
a = self.pool.get('account.fiscal.position').map_account(cr, uid, fpos, oa)
|
||||
diff_res = []
|
||||
decimal_precision = self.pool.get('decimal.precision')
|
||||
account_prec = decimal_precision.precision_get(cr, uid, 'Account')
|
||||
# calculate and write down the possible price difference between invoice price and product price
|
||||
for line in res:
|
||||
if a == line['account_id'] and i_line.product_id.id == line['product_id']:
|
||||
if line.get('invl_id', 0) == i_line.id and a == line['account_id']:
|
||||
uom = i_line.product_id.uos_id or i_line.product_id.uom_id
|
||||
valuation_price_unit = self.pool.get('product.uom')._compute_price(cr, uid, uom.id, i_line.product_id.standard_price, i_line.uos_id.id)
|
||||
if inv.currency_id.id != company_currency:
|
||||
standard_price = self.pool.get('res.currency').compute(cr, uid, company_currency, inv.currency_id.id, standard_price, context={'date': inv.date_invoice})
|
||||
if i_line.product_id.cost_method != 'standard' and i_line.purchase_line_id:
|
||||
#for average/fifo/lifo costing method, fetch real cost price from incomming moves
|
||||
stock_move_obj = self.pool.get('stock.move')
|
||||
valuation_stock_move = stock_move_obj.search(cr, uid, [('purchase_line_id', '=', i_line.purchase_line_id.id)], limit=1, context=context)
|
||||
if valuation_stock_move:
|
||||
valuation_price_unit = stock_move_obj.browse(cr, uid, valuation_stock_move[0], context=context).price_unit
|
||||
if inv.currency_id.id != company_currency:
|
||||
valuation_price_unit = self.pool.get('res.currency').compute(cr, uid, company_currency, inv.currency_id.id, valuation_price_unit, context={'date': inv.date_invoice})
|
||||
if valuation_price_unit != i_line.price_unit and line['price_unit'] == i_line.price_unit and acc:
|
||||
price_diff = i_line.price_unit - valuation_price_unit
|
||||
line.update({'price': valuation_price_unit * line['quantity']})
|
||||
price_diff = round(i_line.price_unit - valuation_price_unit, account_prec)
|
||||
line.update({'price': round(valuation_price_unit * line['quantity'], account_prec)})
|
||||
diff_res.append({
|
||||
'type': 'src',
|
||||
'name': i_line.name[:64],
|
||||
'price_unit': price_diff,
|
||||
'quantity': line['quantity'],
|
||||
'price': price_diff * line['quantity'],
|
||||
'price': round(price_diff * line['quantity'], account_prec),
|
||||
'account_id': acc,
|
||||
'product_id': line['product_id'],
|
||||
'uos_id': line['uos_id'],
|
||||
|
||||
@@ -33,7 +33,7 @@ track of depreciation's occurred on those assets. And it allows to create Move's
|
||||
of the depreciation lines.
|
||||
|
||||
""",
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com/page/accounting',
|
||||
'category': 'Accounting & Finance',
|
||||
'sequence': 32,
|
||||
'demo': [ 'account_asset_demo.xml'],
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,15 +7,15 @@
|
||||
<field name="model">asset.asset.report</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Assets Analysis" type="pivot">
|
||||
<field name="asset_id" type="row"/>
|
||||
<field name="nbr" type="measure"/>
|
||||
<field name="asset_category_id" type="row"/>
|
||||
<field name="purchase_date" type="col"/>
|
||||
<field name="posted_value" type="measure"/>
|
||||
<field name="gross_value" type="measure"/>
|
||||
<field name="depreciation_value" type="measure"/>
|
||||
<field name="posted_value" type="measure"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="view_asset_asset_report_search" model="ir.ui.view">
|
||||
<field name="name">asset.asset.report.search</field>
|
||||
<field name="model">asset.asset.report</field>
|
||||
@@ -23,10 +23,10 @@
|
||||
<search string="Assets Analysis">
|
||||
<field name="purchase_date"/>
|
||||
<field name="depreciation_date"/>
|
||||
<filter string="Draft" icon="terp-document-new" domain="[('state','=','draft')]" help="Assets in draft state"/>
|
||||
<filter string="Running" icon="terp-check" domain="[('state','=','open')]" help="Assets in running state"/>
|
||||
<filter string="Draft" domain="[('state','=','draft')]" help="Assets in draft state"/>
|
||||
<filter string="Running" domain="[('state','=','open')]" help="Assets in running state"/>
|
||||
<separator/>
|
||||
<filter string="Posted" name="posted" icon="terp-camera_test" domain="[('move_check','=',True)]" help="Posted depreciation lines" context="{'unposted_value_visible': 0}"/>
|
||||
<filter string="Posted" name="posted" domain="[('move_check','=',True)]" help="Posted depreciation lines" context="{'unposted_value_visible': 0}"/>
|
||||
<field name="asset_id"/>
|
||||
<field name="asset_category_id"/>
|
||||
<group expand="0" string="Extended Filters...">
|
||||
@@ -35,24 +35,25 @@
|
||||
</group>
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Asset" name="asset" context="{'group_by':'asset_id'}"/>
|
||||
<filter string="Asset Category" name="asset_category" icon="terp-stock_symbol-selection" context="{'group_by':'asset_category_id'}"/>
|
||||
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<filter string="Purchase Month" icon="terp-go-month"
|
||||
domain="[]" context="{'group_by':'purchase_date'}" help="Date of asset purchase"/>
|
||||
<filter string="Depreciation Month" icon="terp-go-today"
|
||||
domain="[]" context="{'group_by':'depreciation_date'}" help="Date of depreciation"/>
|
||||
<filter string="Asset Category" name="asset_category" context="{'group_by':'asset_category_id'}"/>
|
||||
<filter string="Company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<separator/>
|
||||
<filter string="Purchase Month" help="Date of asset purchase"
|
||||
context="{'group_by':'purchase_date:month'}"/>
|
||||
<filter string="Depreciation Month" help="Date of depreciation"
|
||||
context="{'group_by':'depreciation_date:month'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_asset_asset_report">
|
||||
|
||||
<record model="ir.actions.act_window" id="action_asset_asset_report">
|
||||
<field name="name">Assets Analysis</field>
|
||||
<field name="res_model">asset.asset.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph</field>
|
||||
<field name="search_view_id" ref="view_asset_asset_report_search"/>
|
||||
<field name="context">{'search_default_year':1,'search_default_this_month':1,'search_default_asset_category':1, 'search_default_posted':1, 'group_by':[], 'group_by_no_leaf':1}</field>
|
||||
<field name="context">{'group_by':[], 'group_by_no_leaf':1}</field>
|
||||
<field name="help" type="html">
|
||||
<p>
|
||||
From this report, you can have an overview on all depreciation. The
|
||||
@@ -61,7 +62,7 @@
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<menuitem action="action_asset_asset_report"
|
||||
id="menu_action_asset_asset_report"
|
||||
parent="account.menu_finance_reporting"/>
|
||||
|
||||
@@ -58,7 +58,7 @@ class account_bank_statement(osv.osv):
|
||||
line_ids = [l.id for l in st.line_ids]
|
||||
cr.execute("UPDATE account_bank_statement_line \
|
||||
SET state='draft' WHERE id in %s ",
|
||||
(tuple([line_ids]),))
|
||||
(tuple(line_ids),))
|
||||
bank_statement_line_obj.invalidate_cache(cr, uid, ['state'], line_ids, context=context)
|
||||
return True
|
||||
|
||||
|
||||
+314
-283
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_bank_statement_extensions
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -15,283 +15,21 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: help:account.bank.statement.line.global,name:0
|
||||
msgid "Originator to Beneficiary Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
#: selection:account.bank.statement.line,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement:0
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Glob. Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: selection:account.bank.statement.line.global,type:0
|
||||
msgid "CODA"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,parent_id:0
|
||||
msgid "Parent Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Debit"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:cancel.statement.line:0
|
||||
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_cancel_statement_line
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_cancel_statement_line
|
||||
msgid "Cancel selected statement lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,val_date:0
|
||||
msgid "Value Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
#: selection:account.bank.statement.line,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Statement"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:0
|
||||
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_confirm_statement_line
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_confirm_statement_line
|
||||
msgid "Confirm selected statement lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
#: model:ir.actions.report.xml,name:account_bank_statement_extensions.bank_statement_balance_report
|
||||
msgid "Bank Statement Balances Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:cancel.statement.line:0
|
||||
msgid "Cancel Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line.global:0
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line_global
|
||||
msgid "Batch Payment Info"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: code:addons/account_bank_statement_extensions/account_bank_statement.py:129
|
||||
#, python-format
|
||||
msgid "Delete operation not allowed. Please go to the associated bank statement in order to delete and/or modify bank statement line."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:0
|
||||
msgid "Confirm Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line.global:0
|
||||
msgid "Transactions"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,type:0
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
#: report:bank.statement.balance.report:0
|
||||
msgid "Journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Confirmed Statement Lines."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Credit Transactions."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.actions.act_window,help:account_bank_statement_extensions.action_cancel_statement_line
|
||||
msgid "cancel selected statement lines."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_number:0
|
||||
msgid "Counterparty Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
msgid "Closing Balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
#: field:account.bank.statement.line,globalisation_amount:0
|
||||
msgid "Glob. Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Debit Transactions."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Extended Filters..."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:0
|
||||
msgid "Confirmed lines cannot be changed anymore."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:cancel.statement.line:0
|
||||
msgid "Are you sure you want to cancel the selected Bank Statement lines ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,name:0
|
||||
msgid "OBI"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: selection:account.bank.statement.line.global,type:0
|
||||
msgid "ISO 20022"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: selection:account.bank.statement.line.global,type:0
|
||||
msgid "Manual"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Bank Transaction"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Credit"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,amount:0
|
||||
msgid "Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Fin.Account"
|
||||
#: view:cancel.statement.line:account_bank_statement_extensions.view_cancel_statement_line
|
||||
msgid "Are you sure you want to cancel the selected Bank Statement lines ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_currency:0
|
||||
msgid "Counterparty Currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_bic:0
|
||||
msgid "Counterparty BIC"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,child_ids:0
|
||||
msgid "Child Codes"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Search Bank Transactions"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:0
|
||||
#: view:confirm.statement.line:account_bank_statement_extensions.view_confirm_statement_line
|
||||
msgid "Are you sure you want to confirm the selected Bank Statement lines ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: help:account.bank.statement.line,globalisation_id:0
|
||||
msgid "Code to identify transactions belonging to the same globalisation level within a batch payment"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Draft Statement Lines."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Glob. Am."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line
|
||||
msgid "Bank Statement Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,code:0
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_name:0
|
||||
msgid "Counterparty Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_res_partner_bank
|
||||
msgid "Bank Accounts"
|
||||
@@ -303,13 +41,18 @@ msgid "Bank Statement"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Statement Line"
|
||||
#: model:ir.actions.report.xml,name:account_bank_statement_extensions.action_bank_statement_balance_report
|
||||
msgid "Bank Statement Balances"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: sql_constraint:account.bank.statement.line.global:0
|
||||
msgid "The code must be unique !"
|
||||
#: view:website:account_bank_statement_extensions.report_bankstatementbalance
|
||||
msgid "Bank Statement Balances Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line
|
||||
msgid "Bank Statement Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
@@ -320,29 +63,188 @@ msgid "Bank Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: code:addons/account_bank_statement_extensions/account_bank_statement.py:129
|
||||
#, python-format
|
||||
msgid "Warning!"
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
msgid "Bank Transaction"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line.global:0
|
||||
msgid "Child Batch Payments"
|
||||
#: view:account.bank.statement.line.global:account_bank_statement_extensions.view_statement_line_global_form
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line_global
|
||||
msgid "Batch Payment Info"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:0
|
||||
#: selection:account.bank.statement.line.global,type:0
|
||||
msgid "CODA"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:account_bank_statement_extensions.view_confirm_statement_line
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Statement Lines"
|
||||
#: view:cancel.statement.line:account_bank_statement_extensions.view_cancel_statement_line
|
||||
msgid "Cancel Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Total Amount"
|
||||
#: view:cancel.statement.line:account_bank_statement_extensions.view_cancel_statement_line
|
||||
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_cancel_statement_line
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_cancel_statement_line
|
||||
msgid "Cancel selected statement lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line.global:account_bank_statement_extensions.view_statement_line_global_form
|
||||
msgid "Child Batch Payments"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,child_ids:0
|
||||
msgid "Child Codes"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:website:account_bank_statement_extensions.report_bankstatementbalance
|
||||
msgid "Closing Balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,code:0
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: help:account.bank.statement.line,globalisation_id:0
|
||||
msgid "Code to identify transactions belonging to the same globalisation level within a batch payment"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:account_bank_statement_extensions.view_confirm_statement_line
|
||||
msgid "Confirm Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:account_bank_statement_extensions.view_confirm_statement_line
|
||||
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_confirm_statement_line
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_confirm_statement_line
|
||||
msgid "Confirm selected statement lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
#: selection:account.bank.statement.line,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
msgid "Confirmed Statement Lines."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:account_bank_statement_extensions.view_confirm_statement_line
|
||||
msgid "Confirmed lines cannot be changed anymore."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_bic:0
|
||||
msgid "Counterparty BIC"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_currency:0
|
||||
msgid "Counterparty Currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_name:0
|
||||
msgid "Counterparty Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_number:0
|
||||
msgid "Counterparty Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,create_uid:0
|
||||
#: field:cancel.statement.line,create_uid:0
|
||||
#: field:confirm.statement.line,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,create_date:0
|
||||
#: field:cancel.statement.line,create_date:0
|
||||
#: field:confirm.statement.line,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
msgid "Credit"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
msgid "Credit Transactions."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:website:account_bank_statement_extensions.report_bankstatementbalance
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
msgid "Debit"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
msgid "Debit Transactions."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: code:addons/account_bank_statement_extensions/account_bank_statement.py:133
|
||||
#, python-format
|
||||
msgid "Delete operation not allowed. Please go to the associated bank statement in order to delete and/or modify bank statement line."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
#: selection:account.bank.statement.line,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
msgid "Draft Statement Lines."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
msgid "Extended Filters..."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_list
|
||||
msgid "Glob. Am."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
#: field:account.bank.statement.line,globalisation_amount:0
|
||||
msgid "Glob. Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement:account_bank_statement_extensions.view_bank_statement_form_add_fields
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_list
|
||||
msgid "Glob. Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
@@ -350,3 +252,132 @@ msgstr ""
|
||||
msgid "Globalisation ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
msgid "Group By"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,id:0
|
||||
#: field:cancel.statement.line,id:0
|
||||
#: field:confirm.statement.line,id:0
|
||||
#: field:report.account_bank_statement_extensions.report_bankstatementbalance,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: selection:account.bank.statement.line.global,type:0
|
||||
msgid "ISO 20022"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
#: view:website:account_bank_statement_extensions.report_bankstatementbalance
|
||||
msgid "Journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,write_uid:0
|
||||
#: field:cancel.statement.line,write_uid:0
|
||||
#: field:confirm.statement.line,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,write_date:0
|
||||
#: field:cancel.statement.line,write_date:0
|
||||
#: field:confirm.statement.line,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: selection:account.bank.statement.line.global,type:0
|
||||
msgid "Manual"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:website:account_bank_statement_extensions.report_bankstatementbalance
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_form
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,name:0
|
||||
msgid "OBI"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: help:account.bank.statement.line.global,name:0
|
||||
msgid "Originator to Beneficiary Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,parent_id:0
|
||||
msgid "Parent Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
msgid "Search Bank Transactions"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_filter
|
||||
msgid "Statement"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_form
|
||||
msgid "Statement Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_list
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: sql_constraint:account.bank.statement.line.global:0
|
||||
msgid "The code must be unique !"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:account_bank_statement_extensions.view_bank_statement_line_list
|
||||
msgid "Total Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line.global:account_bank_statement_extensions.view_statement_line_global_form
|
||||
msgid "Transactions"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,type:0
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,val_date:0
|
||||
msgid "Value Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: code:addons/account_bank_statement_extensions/account_bank_statement.py:133
|
||||
#, python-format
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.actions.act_window,help:account_bank_statement_extensions.action_cancel_statement_line
|
||||
msgid "cancel selected statement lines."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ Three reports are available:
|
||||
the spreading, for the selected Analytic Accounts of Budgets.
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com/page/accounting',
|
||||
'images': ['images/budget.jpeg','images/budgetary_position.jpeg'],
|
||||
'depends': ['account'],
|
||||
'data': [
|
||||
|
||||
@@ -118,10 +118,6 @@ class crossovered_budget_lines(osv.osv):
|
||||
raise osv.except_osv(_('Error!'),_("The Budget '%s' has no accounts!") % ustr(line.general_budget_id.name))
|
||||
date_to = line.date_to
|
||||
date_from = line.date_from
|
||||
if context.has_key('wizard_date_from'):
|
||||
date_from = context['wizard_date_from']
|
||||
if context.has_key('wizard_date_to'):
|
||||
date_to = context['wizard_date_to']
|
||||
if line.analytic_account_id.id:
|
||||
cr.execute("SELECT SUM(amount) FROM account_analytic_line WHERE account_id=%s AND (date "
|
||||
"between to_date(%s,'yyyy-mm-dd') AND to_date(%s,'yyyy-mm-dd')) AND "
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_budget
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -15,338 +15,11 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.analytic:0
|
||||
#: view:account.budget.crossvered.report:0
|
||||
#: view:account.budget.crossvered.summary.report:0
|
||||
#: view:account.budget.report:0
|
||||
msgid "Select Dates Period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:crossovered.budget,creating_user_id:0
|
||||
msgid "Responsible User"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: selection:crossovered.budget,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: model:ir.actions.act_window,name:account_budget.open_budget_post_form
|
||||
#: model:ir.ui.menu,name:account_budget.menu_budget_post_form
|
||||
msgid "Budgetary Positions"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: report:account.budget:0
|
||||
msgid "Printed at:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:0
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:crossovered.budget,validating_user_id:0
|
||||
msgid "Validate User"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: model:ir.actions.act_window,name:account_budget.action_account_budget_crossvered_summary_report
|
||||
msgid "Print Summary"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:crossovered.budget.lines,paid_date:0
|
||||
msgid "Paid Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:account.budget.analytic,date_to:0
|
||||
#: field:account.budget.crossvered.report,date_to:0
|
||||
#: field:account.budget.crossvered.summary.report,date_to:0
|
||||
#: field:account.budget.report,date_to:0
|
||||
msgid "End of period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:0
|
||||
#: selection:crossovered.budget,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: report:account.budget:0
|
||||
msgid "at"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.report:0
|
||||
#: model:ir.actions.act_window,name:account_budget.action_account_budget_analytic
|
||||
#: model:ir.actions.act_window,name:account_budget.action_account_budget_crossvered_report
|
||||
msgid "Print Budgets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: report:account.budget:0
|
||||
msgid "Currency:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: model:ir.model,name:account_budget.model_account_budget_crossvered_report
|
||||
msgid "Account Budget crossvered report"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: selection:crossovered.budget,state:0
|
||||
msgid "Validated"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:crossovered.budget.lines,percentage:0
|
||||
msgid "Percentage"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:crossovered.budget,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: code:addons/account_budget/account_budget.py:119
|
||||
#, python-format
|
||||
msgid "The Budget '%s' has no accounts!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: report:account.budget:0
|
||||
#: report:crossovered.budget.report:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: report:crossovered.budget.report:0
|
||||
msgid "Currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: report:crossovered.budget.report:0
|
||||
msgid "Total :"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:account.budget.post,company_id:0
|
||||
#: field:crossovered.budget,company_id:0
|
||||
#: field:crossovered.budget.lines,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: report:crossovered.budget.report:0
|
||||
msgid "to"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:0
|
||||
msgid "Reset to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.post:0
|
||||
#: view:crossovered.budget:0
|
||||
#: field:crossovered.budget.lines,planned_amount:0
|
||||
msgid "Planned Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: report:account.budget:0
|
||||
#: report:crossovered.budget.report:0
|
||||
msgid "Perc(%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:0
|
||||
#: selection:crossovered.budget,state:0
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: report:account.budget:0
|
||||
#: report:crossovered.budget.report:0
|
||||
msgid "Practical Amt"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.analytic.account:0
|
||||
#: view:account.budget.post:0
|
||||
#: view:crossovered.budget:0
|
||||
#: field:crossovered.budget.lines,practical_amount:0
|
||||
msgid "Practical Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:crossovered.budget,date_to:0
|
||||
#: field:crossovered.budget.lines,date_to:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: model:ir.model,name:account_budget.model_account_budget_analytic
|
||||
#: model:ir.model,name:account_budget.model_account_budget_report
|
||||
msgid "Account Budget report for analytic account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Theoritical Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:account.budget.post,name:0
|
||||
#: field:crossovered.budget,name:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: model:ir.model,name:account_budget.model_crossovered_budget_lines
|
||||
msgid "Budget Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: report:account.budget:0
|
||||
#: view:crossovered.budget:0
|
||||
#: field:crossovered.budget.lines,crossovered_budget_id:0
|
||||
#: report:crossovered.budget.report:0
|
||||
#: model:ir.actions.report.xml,name:account_budget.account_budget
|
||||
#: model:ir.model,name:account_budget.model_crossovered_budget
|
||||
msgid "Budget"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:0
|
||||
msgid "To Approve Budgets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:0
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:account.budget.post,code:0
|
||||
#: field:crossovered.budget,code:0
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.analytic:0
|
||||
#: view:account.budget.crossvered.report:0
|
||||
msgid "This wizard is used to print budget"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: model:ir.actions.act_window,name:account_budget.act_crossovered_budget_view
|
||||
#: model:ir.actions.act_window,name:account_budget.action_account_budget_report
|
||||
#: model:ir.actions.report.xml,name:account_budget.report_crossovered_budget
|
||||
#: model:ir.ui.menu,name:account_budget.menu_act_crossovered_budget_view
|
||||
#: model:ir.ui.menu,name:account_budget.menu_action_account_budget_post_tree
|
||||
#: model:ir.ui.menu,name:account_budget.next_id_31
|
||||
#: model:ir.ui.menu,name:account_budget.next_id_pos
|
||||
msgid "Budgets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.crossvered.summary.report:0
|
||||
msgid "This wizard is used to print summary of budgets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: selection:crossovered.budget,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:0
|
||||
msgid "Approve"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:0
|
||||
msgid "To Approve"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.post:0
|
||||
#: field:crossovered.budget.lines,general_budget_id:0
|
||||
#: model:ir.model,name:account_budget.model_account_budget_post
|
||||
msgid "Budgetary Position"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:account.budget.analytic,date_from:0
|
||||
#: field:account.budget.crossvered.report,date_from:0
|
||||
#: field:account.budget.crossvered.summary.report,date_from:0
|
||||
#: field:account.budget.report,date_from:0
|
||||
msgid "Start of period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: model:ir.model,name:account_budget.model_account_budget_crossvered_summary_report
|
||||
msgid "Account Budget crossvered summary report"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: report:account.budget:0
|
||||
#: report:crossovered.budget.report:0
|
||||
msgid "Theoretical Amt"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: code:addons/account_budget/account_budget.py:119
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.analytic:0
|
||||
#: view:account.budget.crossvered.report:0
|
||||
#: view:account.budget.crossvered.summary.report:0
|
||||
#: view:account.budget.report:0
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.post:0
|
||||
#: view:crossovered.budget:0
|
||||
#: field:crossovered.budget.lines,theoritical_amount:0
|
||||
msgid "Theoretical Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.analytic:0
|
||||
#: view:account.budget.crossvered.report:0
|
||||
#: view:account.budget.crossvered.summary.report:0
|
||||
#: view:account.budget.report:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:crossovered.budget.lines,analytic_account_id:0
|
||||
#: model:ir.model,name:account_budget.model_account_analytic_account
|
||||
msgid "Analytic Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: report:account.budget:0
|
||||
msgid "Budget :"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: model:ir.actions.act_window,help:account_budget.act_crossovered_budget_view
|
||||
msgid "<p>\n"
|
||||
msgid "<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create a new budget.\n"
|
||||
" </p><p>\n"
|
||||
" A budget is a forecast of your company's income and/or expenses\n"
|
||||
" expected for a period in the future. A budget is defined on some\n"
|
||||
" financial accounts and/or analytic accounts (that may represent\n"
|
||||
@@ -362,25 +35,82 @@ msgid "<p>\n"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: report:account.budget:0
|
||||
#: report:crossovered.budget.report:0
|
||||
msgid "Planned Amt"
|
||||
#: model:ir.model,name:account_budget.model_account_budget_crossvered_summary_report
|
||||
msgid "Account Budget crossvered summary report"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.post:0
|
||||
#: model:ir.model,name:account_budget.model_account_budget_crossvered_report
|
||||
msgid "Account Budget crossvered report"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: model:ir.model,name:account_budget.model_account_budget_analytic
|
||||
#: model:ir.model,name:account_budget.model_account_budget_report
|
||||
msgid "Account Budget report for analytic account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.post:account_budget.view_budget_post_form
|
||||
#: field:account.budget.post,account_ids:0
|
||||
msgid "Accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.analytic.account:0
|
||||
#: view:website:account_budget.report_analyticaccountbudget
|
||||
msgid "Analysis from"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:website:account_budget.report_budget
|
||||
#: view:website:account_budget.report_crossoveredbudget
|
||||
msgid "Analysis from:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:crossovered.budget.lines,analytic_account_id:0
|
||||
#: model:ir.model,name:account_budget.model_account_analytic_account
|
||||
#: view:website:account_budget.report_analyticaccountbudget
|
||||
msgid "Analytic Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:website:account_budget.report_analyticaccountbudget
|
||||
msgid "Analytic Budget"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:account_budget.crossovered_budget_view_form
|
||||
msgid "Approve"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:account_budget.crossovered_budget_view_form
|
||||
#: view:crossovered.budget:account_budget.crossovered_budget_view_tree
|
||||
#: view:crossovered.budget:account_budget.view_crossovered_budget_search
|
||||
#: field:crossovered.budget.lines,crossovered_budget_id:0
|
||||
#: model:ir.actions.report.xml,name:account_budget.action_report_budget
|
||||
#: model:ir.model,name:account_budget.model_crossovered_budget
|
||||
#: view:website:account_budget.report_budget
|
||||
#: view:website:account_budget.report_crossoveredbudget
|
||||
msgid "Budget"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: model:ir.model,name:account_budget.model_crossovered_budget_lines
|
||||
msgid "Budget Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.analytic.account:account_budget.view_account_analytic_account_form_inherit_budget
|
||||
#: field:account.analytic.account,crossovered_budget_line:0
|
||||
#: view:account.budget.post:0
|
||||
#: view:account.budget.post:account_budget.view_budget_post_form
|
||||
#: field:account.budget.post,crossovered_budget_line:0
|
||||
#: view:crossovered.budget:0
|
||||
#: view:crossovered.budget:account_budget.crossovered_budget_view_form
|
||||
#: field:crossovered.budget,crossovered_budget_line:0
|
||||
#: view:crossovered.budget.lines:0
|
||||
#: view:crossovered.budget.lines:account_budget.view_crossovered_budget_line_form
|
||||
#: view:crossovered.budget.lines:account_budget.view_crossovered_budget_line_search
|
||||
#: view:crossovered.budget.lines:account_budget.view_crossovered_budget_line_tree
|
||||
#: model:ir.actions.act_window,name:account_budget.act_account_analytic_account_cb_lines
|
||||
#: model:ir.actions.act_window,name:account_budget.act_crossovered_budget_lines_view
|
||||
#: model:ir.ui.menu,name:account_budget.menu_act_crossovered_budget_lines_view
|
||||
@@ -388,14 +118,292 @@ msgid "Budget Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.analytic:0
|
||||
#: view:account.budget.crossvered.report:0
|
||||
#: view:account.budget.crossvered.summary.report:0
|
||||
#: view:account.budget.report:0
|
||||
#: view:crossovered.budget:0
|
||||
#: view:website:account_budget.report_budget
|
||||
#: view:website:account_budget.report_crossoveredbudget
|
||||
msgid "Budget:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.post:account_budget.view_budget_post_form
|
||||
#: view:account.budget.post:account_budget.view_budget_post_search
|
||||
#: view:account.budget.post:account_budget.view_budget_post_tree
|
||||
#: field:crossovered.budget.lines,general_budget_id:0
|
||||
#: model:ir.model,name:account_budget.model_account_budget_post
|
||||
msgid "Budgetary Position"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: model:ir.actions.act_window,name:account_budget.open_budget_post_form
|
||||
#: model:ir.ui.menu,name:account_budget.menu_budget_post_form
|
||||
msgid "Budgetary Positions"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: model:ir.actions.act_window,name:account_budget.act_crossovered_budget_view
|
||||
#: model:ir.actions.act_window,name:account_budget.action_account_budget_report
|
||||
#: model:ir.actions.report.xml,name:account_budget.action_report_analytic_account_budget
|
||||
#: model:ir.actions.report.xml,name:account_budget.action_report_crossovered_budget
|
||||
#: model:ir.ui.menu,name:account_budget.menu_act_crossovered_budget_view
|
||||
#: model:ir.ui.menu,name:account_budget.menu_action_account_budget_post_tree
|
||||
#: model:ir.ui.menu,name:account_budget.next_id_31
|
||||
#: model:ir.ui.menu,name:account_budget.next_id_pos
|
||||
msgid "Budgets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.analytic:account_budget.account_budget_analytic_view
|
||||
#: view:account.budget.crossvered.report:account_budget.account_budget_crossvered_report_view
|
||||
#: view:account.budget.crossvered.summary.report:account_budget.account_budget_crossvered_summary_report_view
|
||||
#: view:account.budget.report:account_budget.account_budget_report_view
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:account_budget.crossovered_budget_view_form
|
||||
msgid "Cancel Budget"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: selection:crossovered.budget,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:account.budget.post,code:0
|
||||
#: field:crossovered.budget,code:0
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:account.budget.post,company_id:0
|
||||
#: field:crossovered.budget,company_id:0
|
||||
#: field:crossovered.budget.lines,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:account_budget.crossovered_budget_view_form
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: selection:crossovered.budget,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:account.budget.analytic,create_uid:0
|
||||
#: field:account.budget.crossvered.report,create_uid:0
|
||||
#: field:account.budget.crossvered.summary.report,create_uid:0
|
||||
#: field:account.budget.post,create_uid:0
|
||||
#: field:account.budget.report,create_uid:0
|
||||
#: field:crossovered.budget,create_uid:0
|
||||
#: field:crossovered.budget.lines,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:account.budget.analytic,create_date:0
|
||||
#: field:account.budget.crossvered.report,create_date:0
|
||||
#: field:account.budget.crossvered.summary.report,create_date:0
|
||||
#: field:account.budget.post,create_date:0
|
||||
#: field:account.budget.report,create_date:0
|
||||
#: field:crossovered.budget,create_date:0
|
||||
#: field:crossovered.budget.lines,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:website:account_budget.report_analyticaccountbudget
|
||||
msgid "Currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:website:account_budget.report_budget
|
||||
#: view:website:account_budget.report_crossoveredbudget
|
||||
msgid "Currency:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:website:account_budget.report_analyticaccountbudget
|
||||
#: view:website:account_budget.report_budget
|
||||
#: view:website:account_budget.report_crossoveredbudget
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:account_budget.crossovered_budget_view_form
|
||||
#: selection:crossovered.budget,state:0
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:account_budget.view_crossovered_budget_search
|
||||
#: selection:crossovered.budget,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:account_budget.view_crossovered_budget_search
|
||||
msgid "Draft Budgets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:account_budget.crossovered_budget_view_form
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:crossovered.budget,date_to:0
|
||||
#: field:crossovered.budget.lines,date_to:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:account.budget.analytic,date_to:0
|
||||
#: field:account.budget.crossvered.report,date_to:0
|
||||
#: field:account.budget.crossvered.summary.report,date_to:0
|
||||
#: field:account.budget.report,date_to:0
|
||||
msgid "End of period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: code:addons/account_budget/account_budget.py:118
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:account.budget.analytic,id:0
|
||||
#: field:account.budget.crossvered.report,id:0
|
||||
#: field:account.budget.crossvered.summary.report,id:0
|
||||
#: field:account.budget.post,id:0
|
||||
#: field:account.budget.report,id:0
|
||||
#: field:crossovered.budget,id:0
|
||||
#: field:crossovered.budget.lines,id:0
|
||||
#: field:report.account_budget.report_analyticaccountbudget,id:0
|
||||
#: field:report.account_budget.report_budget,id:0
|
||||
#: field:report.account_budget.report_crossoveredbudget,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:account.budget.analytic,write_uid:0
|
||||
#: field:account.budget.crossvered.report,write_uid:0
|
||||
#: field:account.budget.crossvered.summary.report,write_uid:0
|
||||
#: field:account.budget.post,write_uid:0
|
||||
#: field:account.budget.report,write_uid:0
|
||||
#: field:crossovered.budget,write_uid:0
|
||||
#: field:crossovered.budget.lines,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:account.budget.analytic,write_date:0
|
||||
#: field:account.budget.crossvered.report,write_date:0
|
||||
#: field:account.budget.crossvered.summary.report,write_date:0
|
||||
#: field:account.budget.post,write_date:0
|
||||
#: field:account.budget.report,write_date:0
|
||||
#: field:crossovered.budget,write_date:0
|
||||
#: field:crossovered.budget.lines,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:account.budget.post,name:0
|
||||
#: field:crossovered.budget,name:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:crossovered.budget.lines,paid_date:0
|
||||
msgid "Paid Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:website:account_budget.report_analyticaccountbudget
|
||||
#: view:website:account_budget.report_budget
|
||||
#: view:website:account_budget.report_crossoveredbudget
|
||||
msgid "Perc(%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:crossovered.budget.lines,percentage:0
|
||||
msgid "Percentage"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.post:account_budget.view_budget_post_form
|
||||
#: view:crossovered.budget:account_budget.crossovered_budget_view_form
|
||||
#: field:crossovered.budget.lines,planned_amount:0
|
||||
#: view:website:account_budget.report_budget
|
||||
msgid "Planned Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:website:account_budget.report_analyticaccountbudget
|
||||
#: view:website:account_budget.report_crossoveredbudget
|
||||
msgid "Planned Amt"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.analytic.account:account_budget.view_account_analytic_account_form_inherit_budget
|
||||
#: view:account.budget.post:account_budget.view_budget_post_form
|
||||
#: view:crossovered.budget:account_budget.crossovered_budget_view_form
|
||||
#: field:crossovered.budget.lines,practical_amount:0
|
||||
#: view:website:account_budget.report_budget
|
||||
msgid "Practical Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:website:account_budget.report_analyticaccountbudget
|
||||
#: view:website:account_budget.report_crossoveredbudget
|
||||
msgid "Practical Amt"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.analytic:account_budget.account_budget_analytic_view
|
||||
#: view:account.budget.crossvered.report:account_budget.account_budget_crossvered_report_view
|
||||
#: view:account.budget.crossvered.summary.report:account_budget.account_budget_crossvered_summary_report_view
|
||||
#: view:account.budget.report:account_budget.account_budget_report_view
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.report:account_budget.account_budget_report_view
|
||||
#: model:ir.actions.act_window,name:account_budget.action_account_budget_analytic
|
||||
#: model:ir.actions.act_window,name:account_budget.action_account_budget_crossvered_report
|
||||
msgid "Print Budgets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: model:ir.actions.act_window,name:account_budget.action_account_budget_crossvered_summary_report
|
||||
msgid "Print Summary"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:website:account_budget.report_budget
|
||||
msgid "Printed at:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:account_budget.crossovered_budget_view_form
|
||||
msgid "Reset to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:crossovered.budget,creating_user_id:0
|
||||
msgid "Responsible User"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.analytic:account_budget.account_budget_analytic_view
|
||||
#: view:account.budget.crossvered.report:account_budget.account_budget_crossvered_report_view
|
||||
#: view:account.budget.crossvered.summary.report:account_budget.account_budget_crossvered_summary_report_view
|
||||
#: view:account.budget.report:account_budget.account_budget_report_view
|
||||
msgid "Select Dates Period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:crossovered.budget,date_from:0
|
||||
#: field:crossovered.budget.lines,date_from:0
|
||||
@@ -403,13 +411,78 @@ msgid "Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: report:account.budget:0
|
||||
#: report:crossovered.budget.report:0
|
||||
msgid "Analysis from"
|
||||
#: field:account.budget.analytic,date_from:0
|
||||
#: field:account.budget.crossvered.report,date_from:0
|
||||
#: field:account.budget.crossvered.summary.report,date_from:0
|
||||
#: field:account.budget.report,date_from:0
|
||||
msgid "Start of period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:0
|
||||
msgid "Draft Budgets"
|
||||
#: field:crossovered.budget,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: code:addons/account_budget/account_budget.py:118
|
||||
#, python-format
|
||||
msgid "The Budget '%s' has no accounts!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.post:account_budget.view_budget_post_form
|
||||
#: view:crossovered.budget:account_budget.crossovered_budget_view_form
|
||||
#: field:crossovered.budget.lines,theoritical_amount:0
|
||||
#: view:website:account_budget.report_budget
|
||||
msgid "Theoretical Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:website:account_budget.report_analyticaccountbudget
|
||||
#: view:website:account_budget.report_crossoveredbudget
|
||||
msgid "Theoretical Amt"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.analytic.account:account_budget.view_account_analytic_account_form_inherit_budget
|
||||
msgid "Theoritical Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.analytic:account_budget.account_budget_analytic_view
|
||||
#: view:account.budget.crossvered.report:account_budget.account_budget_crossvered_report_view
|
||||
msgid "This wizard is used to print budget"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.budget.crossvered.summary.report:account_budget.account_budget_crossvered_summary_report_view
|
||||
msgid "This wizard is used to print summary of budgets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:account_budget.view_crossovered_budget_search
|
||||
msgid "To Approve"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:crossovered.budget:account_budget.view_crossovered_budget_search
|
||||
msgid "To Approve Budgets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: view:website:account_budget.report_analyticaccountbudget
|
||||
#: view:website:account_budget.report_budget
|
||||
#: view:website:account_budget.report_crossoveredbudget
|
||||
msgid "Total:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: field:crossovered.budget,validating_user_id:0
|
||||
msgid "Validate User"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_budget
|
||||
#: selection:crossovered.budget,state:0
|
||||
msgid "Validated"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ class budget_report(report_sxw.rml_parse):
|
||||
}
|
||||
result.append(res)
|
||||
|
||||
line_ids = c_b_lines_obj.search(self.cr, self.uid, [('id', 'in', budget_ids), ('analytic_account_id','=',an_ids[i][0])])
|
||||
line_ids = c_b_lines_obj.search(self.cr, self.uid, [('id', 'in', budget_ids), ('analytic_account_id','=',an_ids[i][0]), ('date_to', '>=', d_from), ('date_from', '<=', d_to)])
|
||||
line_id = c_b_lines_obj.browse(self.cr, self.uid, line_ids)
|
||||
tot_theo = tot_pln = tot_prac = tot_perc = 0.00
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ Allows canceling accounting entries.
|
||||
This module adds 'Allow Canceling Entries' field on form view of account journal.
|
||||
If set to true it allows user to cancel entries & invoices.
|
||||
""",
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com/page/accounting',
|
||||
'images': ['images/account_cancel.jpeg'],
|
||||
'depends' : ['account'],
|
||||
'data': ['account_cancel_view.xml' ],
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_cancel
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -16,7 +16,13 @@ msgstr ""
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_cancel
|
||||
#: view:account.invoice:0
|
||||
#: view:account.bank.statement:account_cancel.bank_statement_cancel_form_inherit
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_cancel
|
||||
#: view:account.invoice:account_cancel.invoice_form_cancel_inherit
|
||||
#: view:account.invoice:account_cancel.invoice_supplier_cancel_form_inherit
|
||||
msgid "Cancel Invoice"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ Remove minimal account chart.
|
||||
Deactivates minimal chart of accounts.
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com/page/accounting',
|
||||
'depends': ['account'],
|
||||
'data': [],
|
||||
'demo': [],
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
Module for the Check Writing and Check Printing.
|
||||
================================================
|
||||
""",
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com/page/accounting',
|
||||
'depends' : ['account_voucher'],
|
||||
'data': [
|
||||
'wizard/account_check_batch_printing_view.xml',
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_check_writing
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -16,92 +16,22 @@ msgstr ""
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: selection:res.company,check_layout:0
|
||||
msgid "Check on Top"
|
||||
#: model:ir.actions.act_window,help:account_check_writing.action_write_check
|
||||
msgid "<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create a new check. \n"
|
||||
" </p><p>\n"
|
||||
" The check payment form allows you to track the payment you do\n"
|
||||
" to your suppliers using checks. When you select a supplier, the\n"
|
||||
" payment method and an amount for the payment, Odoo will\n"
|
||||
" propose to reconcile your payment with the open supplier\n"
|
||||
" invoices or bills.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Open Balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:account.check.write:0
|
||||
#: view:account.voucher:0
|
||||
msgid "Print Check"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: selection:res.company,check_layout:0
|
||||
msgid "Check in middle"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: help:res.company,check_layout:0
|
||||
msgid "Check on top is compatible with Quicken, QuickBooks and Microsoft Money. Check in middle is compatible with Peachtree, ACCPAC and DacEasy. Check on bottom is compatible with Peachtree, ACCPAC and DacEasy only"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: selection:res.company,check_layout:0
|
||||
msgid "Check on bottom"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.act_window,name:account_check_writing.action_account_check_write
|
||||
msgid "Print Check in Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: code:addons/account_check_writing/wizard/account_check_batch_printing.py:59
|
||||
#, python-format
|
||||
msgid "One of the printed check already got a number."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: help:account.journal,allow_check_writing:0
|
||||
msgid "Check this if the journal is to be used for writing checks."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:account.journal,allow_check_writing:0
|
||||
msgid "Allow Check writing"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.model,name:account_check_writing.model_account_journal
|
||||
msgid "Journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.act_window,name:account_check_writing.action_write_check
|
||||
#: model:ir.ui.menu,name:account_check_writing.menu_action_write_check
|
||||
msgid "Write Checks"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Discount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Original Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:res.company,check_layout:0
|
||||
msgid "Check Layout"
|
||||
#: model:ir.model,name:account_check_writing.model_account_voucher
|
||||
msgid "Accounting Voucher"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
@@ -110,46 +40,59 @@ msgid "Allow Check Writing"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Payment"
|
||||
#: field:account.journal,allow_check_writing:0
|
||||
msgid "Allow Check writing"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:account.journal,use_preprint_check:0
|
||||
msgid "Use Preprinted Check"
|
||||
#: field:account.voucher,amount_in_word:0
|
||||
msgid "Amount in Word"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_bottom
|
||||
msgid "Print Check (Bottom)"
|
||||
#: view:account.check.write:account_check_writing.view_account_check_write
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.act_window,help:account_check_writing.action_write_check
|
||||
msgid "<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create a new check. \n"
|
||||
" </p><p>\n"
|
||||
" The check payment form allows you to track the payment you do\n"
|
||||
" to your suppliers using checks. When you select a supplier, the\n"
|
||||
" payment method and an amount for the payment, OpenERP will\n"
|
||||
" propose to reconcile your payment with the open supplier\n"
|
||||
" invoices or bills.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
#: view:account.check.write:account_check_writing.view_account_check_write
|
||||
#: model:ir.actions.report.xml,name:account_check_writing.action_report_check
|
||||
msgid "Check"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Due Date"
|
||||
#: field:res.company,check_layout:0
|
||||
msgid "Check Layout"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_middle
|
||||
msgid "Print Check (Middle)"
|
||||
#: help:account.journal,use_preprint_check:0
|
||||
msgid "Check if you use a preformated sheet for check"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: selection:res.company,check_layout:0
|
||||
msgid "Check in middle"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: selection:res.company,check_layout:0
|
||||
msgid "Check on Top"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: selection:res.company,check_layout:0
|
||||
msgid "Check on bottom"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: help:res.company,check_layout:0
|
||||
msgid "Check on top is compatible with Quicken, QuickBooks and Microsoft Money. Check in middle is compatible with Peachtree, ACCPAC and DacEasy. Check on bottom is compatible with Peachtree, ACCPAC and DacEasy only"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: help:account.journal,allow_check_writing:0
|
||||
msgid "Check this if the journal is to be used for writing checks."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
@@ -157,6 +100,31 @@ msgstr ""
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:account.check.write,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:account.check.write,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:website:account_check_writing.report_check
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:website:account_check_writing.report_check
|
||||
msgid "Discount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:website:account_check_writing.report_check
|
||||
msgid "Due Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: code:addons/account_check_writing/wizard/account_check_batch_printing.py:59
|
||||
#, python-format
|
||||
@@ -164,51 +132,24 @@ msgid "Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: help:account.check.write,check_number:0
|
||||
msgid "The number of the next check number to be printed."
|
||||
#: field:account.check.write,id:0
|
||||
#: field:report.account_check_writing.report_check,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
msgid "Balance Due"
|
||||
#: model:ir.model,name:account_check_writing.model_account_journal
|
||||
msgid "Journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_top
|
||||
msgid "Print Check (Top)"
|
||||
#: field:account.check.write,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Check Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.model,name:account_check_writing.model_account_voucher
|
||||
msgid "Accounting Voucher"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:account.check.write:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:account.voucher,amount_in_word:0
|
||||
msgid "Amount in Word"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.model,name:account_check_writing.model_account_check_write
|
||||
msgid "Prin Check in Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:account.check.write:0
|
||||
msgid "Cancel"
|
||||
#: field:account.check.write,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
@@ -217,7 +158,67 @@ msgid "Next Check Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:account.check.write:0
|
||||
msgid "Check"
|
||||
#: code:addons/account_check_writing/account_voucher.py:77
|
||||
#, python-format
|
||||
msgid "No check selected "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: code:addons/account_check_writing/wizard/account_check_batch_printing.py:59
|
||||
#, python-format
|
||||
msgid "One of the printed check already got a number."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:website:account_check_writing.report_check
|
||||
msgid "Open Balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:website:account_check_writing.report_check
|
||||
msgid "Original Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:website:account_check_writing.report_check
|
||||
msgid "Payment"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.model,name:account_check_writing.model_account_check_write
|
||||
msgid "Prin Check in Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:account.check.write:account_check_writing.view_account_check_write
|
||||
#: view:account.voucher:account_check_writing.view_vendor_payment_check_form
|
||||
msgid "Print Check"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.act_window,name:account_check_writing.action_account_check_write
|
||||
msgid "Print Check in Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: code:addons/account_check_writing/account_voucher.py:77
|
||||
#, python-format
|
||||
msgid "Printing error"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: help:account.check.write,check_number:0
|
||||
msgid "The number of the next check number to be printed."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:account.journal,use_preprint_check:0
|
||||
msgid "Use Preprinted Check"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.act_window,name:account_check_writing.action_write_check
|
||||
#: model:ir.ui.menu,name:account_check_writing.menu_action_write_check
|
||||
msgid "Write Checks"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ Note that if you want to check the follow-up level for a given partner/account e
|
||||
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com/page/billing',
|
||||
'images': ['images/follow_ups.jpeg','images/send_followups.jpeg'],
|
||||
'depends': ['account_accountant', 'mail'],
|
||||
'data': [
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -72,7 +72,7 @@ class report_rappel(report_sxw.rml_parse):
|
||||
}
|
||||
lines_per_currency[currency].append(line_data)
|
||||
|
||||
return [{'line': lines} for lines in lines_per_currency.values()]
|
||||
return [{'line': lines, 'currency': currency} for currency, lines in lines_per_currency.items()]
|
||||
|
||||
def _get_text(self, stat_line, followup_id, context=None):
|
||||
context = dict(context or {}, lang=stat_line.partner_id.lang)
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
<field name="model">account_followup.stat</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Follow-up lines" type="pivot">
|
||||
<field name="partner_id" type="row"/>
|
||||
<field name="followup_id" type="row"/>
|
||||
<field name="date_followup" type="col"/>
|
||||
<field name="balance" type="measure"/>
|
||||
</graph>
|
||||
</field>
|
||||
@@ -19,19 +20,20 @@
|
||||
<search string="Follow-ups Sent">
|
||||
<field name="date_move"/>
|
||||
<field name="date_move_last"/>
|
||||
<filter icon="terp-go-year" string="This Fiscal year" name="fiscalyear" domain="[('period_id','in','current_year')]"
|
||||
<filter string="This Fiscal year" name="fiscalyear" domain="[('period_id','in','current_year')]"
|
||||
help="Follow-up Entries with period in current year"/>
|
||||
<separator/>
|
||||
<filter icon="terp-camera_test" string="Not Litigation" domain="[('blocked','=', False)]"
|
||||
<filter string="Not Litigation" domain="[('blocked','=', False)]"
|
||||
help = "Including journal entries marked as a litigation"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="balance"/>
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}" />
|
||||
<filter string="Litigation" icon="terp-camera_test" context="{'group_by':'blocked'}" />
|
||||
<filter string="Follow-up Level" icon="terp-stock_effects-object-colorize" name="followup_level" context="{'group_by':'followup_id'}" />
|
||||
<filter string="Latest Follow-up Month" icon="terp-go-month" context="{'group_by':'date_followup'}" />
|
||||
<filter string="Company" groups="base.group_multi_company" icon="terp-go-home" context="{'group_by':'company_id'}" />
|
||||
<filter string="Partner" context="{'group_by':'partner_id'}" />
|
||||
<filter string="Litigation" context="{'group_by':'blocked'}" />
|
||||
<filter string="Follow-up Level" name="followup_level" context="{'group_by':'followup_id'}" />
|
||||
<filter string="Company" groups="base.group_multi_company" context="{'group_by':'company_id'}" />
|
||||
<separator/>
|
||||
<filter string="Latest Follow-up Month" context="{'group_by':'date_followup:month'}" />
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
</table>
|
||||
|
||||
<t t-set="total" t-value="reduce(lambda x,y: x+y['balance'], cur_lines['line'], 0.00)"/>
|
||||
<p>Total: <span t-esc="formatLang(total, currency_obj=res_company.currency_id)"/></p>
|
||||
<p>Total: <span t-esc="formatLang(total, currency_obj=cur_lines['currency'])"/></p>
|
||||
</t>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
@@ -51,7 +51,7 @@ class account_move_line(osv.osv):
|
||||
if bank.state in bank_type:
|
||||
line2bank[line.id] = bank.id
|
||||
break
|
||||
if line.id not in line2bank and line.partner_id.bank_ids:
|
||||
if not line2bank.get(line.id) and line.partner_id.bank_ids:
|
||||
line2bank[line.id] = line.partner_id.bank_ids[0].id
|
||||
else:
|
||||
raise osv.except_osv(_('Error!'), _('There is no partner defined on the entry line.'))
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -38,7 +38,7 @@ You can customize the following attributes of the sequence:
|
||||
* Number Padding
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com',
|
||||
'images': ['images/internal_sequence_number.jpeg'],
|
||||
'depends': ['account'],
|
||||
'data': [
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_sequence
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -16,65 +16,49 @@ msgstr ""
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_sequence
|
||||
#: view:account.sequence.installer:0
|
||||
#: model:ir.model,name:account_sequence.model_account_move
|
||||
msgid "Account Entry"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: view:account.sequence.installer:account_sequence.view_account_sequence_installer
|
||||
#: model:ir.actions.act_window,name:account_sequence.action_account_seq_installer
|
||||
msgid "Account Sequence Application Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: help:account.move,internal_sequence_number:0
|
||||
#: help:account.move.line,internal_sequence_number:0
|
||||
msgid "Internal Sequence Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: help:account.sequence.installer,number_next:0
|
||||
msgid "Next number of this sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,number_next:0
|
||||
msgid "Next Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,number_increment:0
|
||||
msgid "Increment Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: help:account.sequence.installer,number_increment:0
|
||||
msgid "The next number of the sequence will be incremented by this number"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: view:account.sequence.installer:0
|
||||
msgid "Configure Your Account Sequence Application"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: view:account.sequence.installer:0
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: help:account.sequence.installer,suffix:0
|
||||
msgid "Suffix value of the record for the sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,padding:0
|
||||
msgid "Number padding"
|
||||
#: view:account.sequence.installer:account_sequence.view_account_sequence_installer
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: model:ir.model,name:account_sequence.model_account_move_line
|
||||
msgid "Journal Items"
|
||||
#: view:account.sequence.installer:account_sequence.view_account_sequence_installer
|
||||
msgid "Configure Your Account Sequence Application"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,number_increment:0
|
||||
msgid "Increment Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
@@ -83,54 +67,15 @@ msgstr ""
|
||||
msgid "Internal Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: help:account.sequence.installer,padding:0
|
||||
msgid "OpenERP will automatically adds some '0' on the left of the 'Next Number' to get the required padding size."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,name:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.journal,internal_sequence_id:0
|
||||
msgid "Internal Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: help:account.sequence.installer,prefix:0
|
||||
msgid "Prefix value of the record for the sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: model:ir.model,name:account_sequence.model_account_move
|
||||
msgid "Account Entry"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,suffix:0
|
||||
msgid "Suffix"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: view:account.sequence.installer:0
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,prefix:0
|
||||
msgid "Prefix"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: help:account.journal,internal_sequence_id:0
|
||||
msgid "This sequence will be used to maintain the internal number for the journal entries related to this journal."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: model:ir.model,name:account_sequence.model_account_sequence_installer
|
||||
msgid "account.sequence.installer"
|
||||
#: help:account.move,internal_sequence_number:0
|
||||
#: help:account.move.line,internal_sequence_number:0
|
||||
msgid "Internal Sequence Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
@@ -139,7 +84,82 @@ msgid "Journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: view:account.sequence.installer:0
|
||||
#: model:ir.model,name:account_sequence.model_account_move_line
|
||||
msgid "Journal Items"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,name:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,number_next:0
|
||||
msgid "Next Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: help:account.sequence.installer,number_next:0
|
||||
msgid "Next number of this sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,padding:0
|
||||
msgid "Number padding"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: help:account.sequence.installer,padding:0
|
||||
msgid "Odoo will automatically adds some '0' on the left of the 'Next Number' to get the required padding size."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,prefix:0
|
||||
msgid "Prefix"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: help:account.sequence.installer,prefix:0
|
||||
msgid "Prefix value of the record for the sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,suffix:0
|
||||
msgid "Suffix"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: help:account.sequence.installer,suffix:0
|
||||
msgid "Suffix value of the record for the sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: help:account.sequence.installer,number_increment:0
|
||||
msgid "The next number of the sequence will be incremented by this number"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: help:account.journal,internal_sequence_id:0
|
||||
msgid "This sequence will be used to maintain the internal number for the journal entries related to this journal."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: view:account.sequence.installer:account_sequence.view_account_sequence_installer
|
||||
msgid "You can enhance the Account Sequence Application by installing ."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_sequence
|
||||
#: view:account.sequence.installer:account_sequence.view_account_sequence_installer
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
'version': '1.0',
|
||||
'author': 'OpenERP',
|
||||
'category': 'Accounting & Finance',
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com/page/accounting',
|
||||
'description': """
|
||||
Asserts on accounting.
|
||||
======================
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_test
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -16,7 +16,87 @@ msgstr ""
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_test
|
||||
#: view:accounting.assert.test:0
|
||||
#: model:ir.actions.act_window,help:account_test.action_accounting_assert
|
||||
msgid "<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create Accounting Test.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:ir.actions.act_window,name:account_test.action_accounting_assert
|
||||
#: model:ir.actions.report.xml,name:account_test.account_assert_test_report
|
||||
#: model:ir.ui.menu,name:account_test.menu_action_license
|
||||
msgid "Accounting Tests"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: view:website:account_test.report_accounttest
|
||||
msgid "Accouting tests on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: field:accounting.assert.test,active:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_03
|
||||
msgid "Check if movement lines are balanced and have the same date and period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_02
|
||||
msgid "Check if the balance of the new opened fiscal year matches with last year's balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_04
|
||||
msgid "Check if the totally reconciled movements are balanced"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_07
|
||||
msgid "Check on bank statement that the Closing Balance = Starting Balance + sum of statement lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_08
|
||||
msgid "Check that general accounts and partners on account moves are active"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_06
|
||||
msgid "Check that paid/reconciled invoices are not in 'Open' state"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_05_2
|
||||
msgid "Check that reconciled account moves, that define Payable and Receivable accounts, are belonging to reconciled invoices"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_05
|
||||
msgid "Check that reconciled invoice for Sales/Purchases has reconciled entries for Payable and Receivable Accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_06_1
|
||||
msgid "Check that there's no move for any account with « View » account type"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_01
|
||||
msgid "Check the balance: Debit sum = Credit sum"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: view:accounting.assert.test:account_test.account_assert_form
|
||||
msgid "Code Help"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: view:accounting.assert.test:account_test.account_assert_form
|
||||
msgid "Code should always set a variable named `result` with the result of your test, that can be a list or\n"
|
||||
"a dictionary. If `result` is an empty list, it means that the test was succesful. Otherwise it will\n"
|
||||
"try to translate and print what is inside `result`.\n"
|
||||
@@ -40,101 +120,54 @@ msgid "Code should always set a variable named `result` with the result of your
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_02
|
||||
msgid "Test 2: Opening a fiscal year"
|
||||
#: field:accounting.assert.test,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_05
|
||||
msgid "Check that reconciled invoice for Sales/Purchases has reconciled entries for Payable and Receivable Accounts"
|
||||
#: field:accounting.assert.test,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_03
|
||||
msgid "Check if movement lines are balanced and have the same date and period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: field:accounting.assert.test,name:0
|
||||
msgid "Test Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: report:account.test.assert.print:0
|
||||
msgid "Accouting tests on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_01
|
||||
msgid "Test 1: General balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_06
|
||||
msgid "Check that paid/reconciled invoices are not in 'Open' state"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_05_2
|
||||
msgid "Check that reconciled account moves, that define Payable and Receivable accounts, are belonging to reconciled invoices"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: view:accounting.assert.test:0
|
||||
msgid "Tests"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: field:accounting.assert.test,desc:0
|
||||
msgid "Test Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: view:accounting.assert.test:0
|
||||
#: view:accounting.assert.test:account_test.account_assert_form
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_06_1
|
||||
msgid "Check that there's no move for any account with « View » account type"
|
||||
#: view:website:account_test.report_accounttest
|
||||
msgid "Description:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_08
|
||||
msgid "Test 9 : Accounts and partners on account moves"
|
||||
#: view:accounting.assert.test:account_test.account_assert_form
|
||||
msgid "Expression"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:ir.actions.act_window,name:account_test.action_accounting_assert
|
||||
#: model:ir.actions.report.xml,name:account_test.account_assert_test_report
|
||||
#: model:ir.ui.menu,name:account_test.menu_action_license
|
||||
msgid "Accounting Tests"
|
||||
#: field:accounting.assert.test,id:0
|
||||
#: field:report.account_test.report_accounttest,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: code:addons/account_test/report/account_test_report.py:74
|
||||
#, python-format
|
||||
msgid "The test was passed successfully"
|
||||
#: field:accounting.assert.test,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: field:accounting.assert.test,active:0
|
||||
msgid "Active"
|
||||
#: field:accounting.assert.test,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_06
|
||||
msgid "Test 6 : Invoices status"
|
||||
#: view:website:account_test.report_accounttest
|
||||
msgid "Name:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:ir.model,name:account_test.model_accounting_assert_test
|
||||
msgid "accounting.assert.test"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_05
|
||||
msgid "Test 5.1 : Payable and Receivable accountant lines of reconciled invoices"
|
||||
#: view:accounting.assert.test:account_test.account_assert_form
|
||||
msgid "Python Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
@@ -143,13 +176,18 @@ msgid "Python code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_07
|
||||
msgid "Check on bank statement that the Closing Balance = Starting Balance + sum of statement lines"
|
||||
#: field:accounting.assert.test,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_07
|
||||
msgid "Test 8 : Closing balance on bank statements"
|
||||
#: model:accounting.assert.test,name:account_test.account_test_01
|
||||
msgid "Test 1: General balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_02
|
||||
msgid "Test 2: Opening a fiscal year"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
@@ -157,57 +195,24 @@ msgstr ""
|
||||
msgid "Test 3: Movement lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_05_2
|
||||
msgid "Test 5.2 : Reconcilied invoices and Payable/Receivable accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: view:accounting.assert.test:0
|
||||
msgid "Expression"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_04
|
||||
msgid "Test 4: Totally reconciled mouvements"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_04
|
||||
msgid "Check if the totally reconciled movements are balanced"
|
||||
#: model:accounting.assert.test,name:account_test.account_test_05
|
||||
msgid "Test 5.1 : Payable and Receivable accountant lines of reconciled invoices"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: field:accounting.assert.test,sequence:0
|
||||
msgid "Sequence"
|
||||
#: model:accounting.assert.test,name:account_test.account_test_05_2
|
||||
msgid "Test 5.2 : Reconcilied invoices and Payable/Receivable accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_02
|
||||
msgid "Check if the balance of the new opened fiscal year matches with last year's balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: view:accounting.assert.test:0
|
||||
msgid "Python Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:ir.actions.act_window,help:account_test.action_accounting_assert
|
||||
msgid "<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create Accounting Test.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_01
|
||||
msgid "Check the balance: Debit sum = Credit sum"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_08
|
||||
msgid "Check that general accounts and partners on account moves are active"
|
||||
#: model:accounting.assert.test,name:account_test.account_test_06
|
||||
msgid "Test 6 : Invoices status"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
@@ -216,7 +221,34 @@ msgid "Test 7: « View » account type"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: view:accounting.assert.test:0
|
||||
msgid "Code Help"
|
||||
#: model:accounting.assert.test,name:account_test.account_test_07
|
||||
msgid "Test 8 : Closing balance on bank statements"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_08
|
||||
msgid "Test 9 : Accounts and partners on account moves"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: field:accounting.assert.test,desc:0
|
||||
msgid "Test Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: field:accounting.assert.test,name:0
|
||||
msgid "Test Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: view:accounting.assert.test:account_test.account_assert_form
|
||||
#: view:accounting.assert.test:account_test.account_assert_tree
|
||||
msgid "Tests"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: code:addons/account_test/report/account_test_report.py:78
|
||||
#, python-format
|
||||
msgid "The test was passed successfully"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
Odoo Invoicing
|
||||
--------------
|
||||
|
||||
Send professional invoices & get paid online with the Odoo
|
||||
<a href="https://www.odoo.com/page/billing">billing software</a>.
|
||||
|
||||
Create and send professional looking invoices & get paid online. It
|
||||
automatically integrates with other apps to bill automatically based on your
|
||||
activities.
|
||||
|
||||
Send Invoices With No Effort
|
||||
----------------------------
|
||||
|
||||
Send invoices directly to your clients in just a click. The invoice is
|
||||
automatically attached to the email as a PDF file.
|
||||
|
||||
Get Paid Faster with Electronic invoicing
|
||||
-----------------------------------------
|
||||
|
||||
Get paid online with paypal or other payment processing service. Get rid of the
|
||||
stress of having to constantly remind your debtors. Simply set-up and automate
|
||||
follow-ups to get paid quickly.
|
||||
|
||||
Connect Your Bank Accounts
|
||||
--------------------------
|
||||
|
||||
Import your bank statements and reconcile them in just a few clicks. Prepare
|
||||
payment orders based on your supplier invoices and payment terms.
|
||||
|
||||
Analyse Your Sales & Costs
|
||||
--------------------------
|
||||
|
||||
Get direct access to key information with dynamic and customizable dashboards.
|
||||
Analyse your invoicing by product, customer, salesperson, etc.
|
||||
|
||||
Integration With Other Apps
|
||||
---------------------------
|
||||
|
||||
Bill automatically based on sales orders, delivery orders, contracts or on time
|
||||
and material. Define recurrencies to produce recurring invoice automatically.
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
##############################################################################
|
||||
|
||||
{
|
||||
'name' : 'eInvoicing & Payments',
|
||||
'name' : 'Online Billing',
|
||||
'version' : '1.0',
|
||||
'author' : 'OpenERP SA',
|
||||
'summary': 'Send Invoices and Track Payments',
|
||||
@@ -41,7 +41,7 @@ This module manages:
|
||||
""",
|
||||
'category': 'Accounting & Finance',
|
||||
'sequence': 4,
|
||||
'website' : 'http://openerp.com',
|
||||
'website' : 'https://www.odoo.com/page/billing',
|
||||
'images' : ['images/customer_payment.jpeg','images/journal_voucher.jpeg','images/sales_receipt.jpeg','images/supplier_voucher.jpeg','images/customer_invoice.jpeg','images/customer_refunds.jpeg'],
|
||||
'depends' : ['account'],
|
||||
'demo' : [],
|
||||
|
||||
@@ -41,47 +41,6 @@ class res_currency(osv.osv):
|
||||
return res
|
||||
|
||||
|
||||
class res_company(osv.osv):
|
||||
_inherit = "res.company"
|
||||
_columns = {
|
||||
'income_currency_exchange_account_id': fields.many2one(
|
||||
'account.account',
|
||||
string="Gain Exchange Rate Account",
|
||||
domain="[('type', '=', 'other')]",),
|
||||
'expense_currency_exchange_account_id': fields.many2one(
|
||||
'account.account',
|
||||
string="Loss Exchange Rate Account",
|
||||
domain="[('type', '=', 'other')]",),
|
||||
}
|
||||
|
||||
|
||||
class account_config_settings(osv.osv_memory):
|
||||
_inherit = 'account.config.settings'
|
||||
_columns = {
|
||||
'income_currency_exchange_account_id': fields.related(
|
||||
'company_id', 'income_currency_exchange_account_id',
|
||||
type='many2one',
|
||||
relation='account.account',
|
||||
string="Gain Exchange Rate Account",
|
||||
domain="[('type', '=', 'other')]"),
|
||||
'expense_currency_exchange_account_id': fields.related(
|
||||
'company_id', 'expense_currency_exchange_account_id',
|
||||
type="many2one",
|
||||
relation='account.account',
|
||||
string="Loss Exchange Rate Account",
|
||||
domain="[('type', '=', 'other')]"),
|
||||
}
|
||||
def onchange_company_id(self, cr, uid, ids, company_id, context=None):
|
||||
res = super(account_config_settings, self).onchange_company_id(cr, uid, ids, company_id, context=context)
|
||||
if company_id:
|
||||
company = self.pool.get('res.company').browse(cr, uid, company_id, context=context)
|
||||
res['value'].update({'income_currency_exchange_account_id': company.income_currency_exchange_account_id and company.income_currency_exchange_account_id.id or False,
|
||||
'expense_currency_exchange_account_id': company.expense_currency_exchange_account_id and company.expense_currency_exchange_account_id.id or False})
|
||||
else:
|
||||
res['value'].update({'income_currency_exchange_account_id': False,
|
||||
'expense_currency_exchange_account_id': False})
|
||||
return res
|
||||
|
||||
class account_voucher(osv.osv):
|
||||
def _check_paid(self, cr, uid, ids, name, args, context=None):
|
||||
res = {}
|
||||
@@ -361,7 +320,7 @@ class account_voucher(osv.osv):
|
||||
\n* The \'Posted\' status is used when user create voucher,a voucher number is generated and voucher entries are created in account \
|
||||
\n* The \'Cancelled\' status is used when user cancel voucher.'),
|
||||
'amount': fields.float('Total', digits_compute=dp.get_precision('Account'), required=True, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'tax_amount':fields.float('Tax Amount', digits_compute=dp.get_precision('Account'), readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'tax_amount':fields.float('Tax Amount', digits_compute=dp.get_precision('Account'), readonly=True),
|
||||
'reference': fields.char('Ref #', readonly=True, states={'draft':[('readonly',False)]},
|
||||
help="Transaction reference number.", copy=False),
|
||||
'number': fields.char('Number', readonly=True, copy=False),
|
||||
@@ -1044,7 +1003,8 @@ class account_voucher(osv.osv):
|
||||
'period_id': voucher.period_id.id,
|
||||
'partner_id': voucher.partner_id.id,
|
||||
'currency_id': company_currency <> current_currency and current_currency or False,
|
||||
'amount_currency': company_currency <> current_currency and sign * voucher.amount or 0.0,
|
||||
'amount_currency': (sign * abs(voucher.amount) # amount < 0 for refunds
|
||||
if company_currency != current_currency else 0.0),
|
||||
'date': voucher.date,
|
||||
'date_maturity': voucher.date_due
|
||||
}
|
||||
@@ -1210,7 +1170,7 @@ class account_voucher(osv.osv):
|
||||
if line.amount == line.amount_unreconciled:
|
||||
if not line.move_line_id:
|
||||
raise osv.except_osv(_('Wrong voucher line'),_("The invoice you are willing to pay is not valid anymore."))
|
||||
sign = voucher.type in ('payment', 'purchase') and -1 or 1
|
||||
sign = line.type =='dr' and -1 or 1
|
||||
currency_rate_difference = sign * (line.move_line_id.amount_residual - amount)
|
||||
else:
|
||||
currency_rate_difference = 0.0
|
||||
@@ -1268,8 +1228,7 @@ class account_voucher(osv.osv):
|
||||
# otherwise we use the rates of the system
|
||||
amount_currency = currency_obj.compute(cr, uid, company_currency, line.move_line_id.currency_id.id, move_line['debit']-move_line['credit'], context=ctx)
|
||||
if line.amount == line.amount_unreconciled:
|
||||
sign = voucher.type in ('payment', 'purchase') and -1 or 1
|
||||
foreign_currency_diff = sign * line.move_line_id.amount_residual_currency + amount_currency
|
||||
foreign_currency_diff = line.move_line_id.amount_residual_currency - abs(amount_currency)
|
||||
|
||||
move_line['amount_currency'] = amount_currency
|
||||
voucher_line = move_line_obj.create(cr, uid, move_line)
|
||||
@@ -1330,10 +1289,14 @@ class account_voucher(osv.osv):
|
||||
if voucher.payment_option == 'with_writeoff':
|
||||
account_id = voucher.writeoff_acc_id.id
|
||||
write_off_name = voucher.comment
|
||||
elif voucher.type in ('sale', 'receipt'):
|
||||
account_id = voucher.partner_id.property_account_receivable.id
|
||||
elif voucher.partner_id:
|
||||
if voucher.type in ('sale', 'receipt'):
|
||||
account_id = voucher.partner_id.property_account_receivable.id
|
||||
else:
|
||||
account_id = voucher.partner_id.property_account_payable.id
|
||||
else:
|
||||
account_id = voucher.partner_id.property_account_payable.id
|
||||
# fallback on account of voucher
|
||||
account_id = voucher.account_id.id
|
||||
sign = voucher.type == 'payment' and -1 or 1
|
||||
move_line = {
|
||||
'name': write_off_name or name,
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
<field name="res_model">account.voucher</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,graph</field>
|
||||
<field name="context">{'type':'general'}</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="view_id" eval="view_voucher_tree"/>
|
||||
<field name="search_view_id" ref="view_voucher_filter"/>
|
||||
</record>
|
||||
@@ -193,26 +193,6 @@
|
||||
<field name="context">{'state':'posted'}</field>
|
||||
<field name="search_view_id" ref="view_voucher_filter"/>
|
||||
</record>
|
||||
|
||||
<!-- res.config form view -->
|
||||
<record model="ir.ui.view" id="view_account_settings_currency_xchange_form">
|
||||
<field name="name">account.config.settings.inherit</field>
|
||||
<field name="inherit_id" ref="account.view_account_config_settings"/>
|
||||
<field name="model">account.config.settings</field>
|
||||
<field name="priority">20</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[@name='group_multi_currency']" position="after">
|
||||
<group attrs="{'invisible': [('group_multi_currency', '<>', True)]}" col="2">
|
||||
<group>
|
||||
<field name="income_currency_exchange_account_id"/>
|
||||
<field name="expense_currency_exchange_account_id"/>
|
||||
</group>
|
||||
<group>
|
||||
</group>
|
||||
</group>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
<data noupdate="1">
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<data>
|
||||
<record id="view_sale_receipt_report_graph" model="ir.ui.view">
|
||||
<field name="name">sale.receipt.report.graph</field>
|
||||
<field name="model">sale.receipt.report</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Sales Receipts Analysis" type="pivot">
|
||||
<field name="account_id"/>
|
||||
<field name="partner_id" type="row"/>
|
||||
<field name="date_due" type="col"/>
|
||||
<field name="price_total" type="measure"/>
|
||||
</graph>
|
||||
</field>
|
||||
@@ -20,9 +20,9 @@
|
||||
<search string="Sales Receipts Analysis">
|
||||
<field name="date"/>
|
||||
<field name="date_due"/>
|
||||
<filter string="Draft" icon="terp-document-new" domain="[('state','=','draft')]" help = "Draft Vouchers"/>
|
||||
<filter string="Pro-forma" icon="terp-gtk-media-pause" domain="[('state','=','proforma')]" help = "Pro-forma Vouchers"/>
|
||||
<filter string="Posted" name="current" icon="terp-check" domain="[('state','not in', ('draft','cancel'))]" help = "Validated Vouchers"/>
|
||||
<filter string="Draft" domain="[('state','=','draft')]" help = "Draft Vouchers"/>
|
||||
<filter string="Pro-forma" domain="[('state','=','proforma')]" help = "Pro-forma Vouchers"/>
|
||||
<filter string="Posted" name="current" domain="[('state','not in', ('draft','cancel'))]" help = "Validated Vouchers"/>
|
||||
<field name="partner_id"/>
|
||||
<group expand="0" string="Extended Filters...">
|
||||
<field name="journal_id"/>
|
||||
@@ -31,14 +31,13 @@
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Partner" name="partner" icon="terp-partner" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Salesperson" name='user' icon="terp-personal" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
|
||||
<filter string="Type" icon="terp-stock_symbol-selection" context="{'group_by':'type'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Due Month" icon="terp-go-today" context="{'group_by':'date_due'}"/>
|
||||
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<filter string="Invoice Date" name="month" icon="terp-go-month" context="{'group_by':'date'}" help="Group by month of Invoice Date"/>
|
||||
<filter string="Partner" name="partner" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Status" context="{'group_by':'state'}"/>
|
||||
<filter string="Type" context="{'group_by':'type'}"/>
|
||||
<filter string="Journal" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<separator/>
|
||||
<filter string="Due Month" context="{'group_by':'date_due:month'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -49,7 +48,7 @@
|
||||
<field name="res_model">sale.receipt.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph</field>
|
||||
<field name="context">{'search_default_year':1,'search_default_month':1,'search_default_current':1, 'search_default_partner':1, 'search_default_customer':1, 'group_by':[], 'group_by_no_leaf':1,}</field>
|
||||
<field name="context">{'search_default_year':1,'search_default_month':1,'search_default_partner':1, 'search_default_customer':1, 'group_by':[], 'group_by_no_leaf':1,}</field>
|
||||
<field name="search_view_id" ref="view_sale_receipt_report_search"/>
|
||||
<field name="help" type="html">
|
||||
<p>
|
||||
@@ -63,6 +62,6 @@
|
||||
</record>
|
||||
|
||||
<menuitem action="action_sale_receipt_report_all" id="menu_action_sale_receipt_report_all" parent="account.menu_finance_reporting" sequence="3"/>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
'name' : 'Analytic Accounting',
|
||||
'version': '1.1',
|
||||
'author' : 'OpenERP SA',
|
||||
'website' : 'http://www.openerp.com',
|
||||
'website' : 'https://www.odoo.com/page/accounting',
|
||||
'category': 'Hidden/Dependency',
|
||||
'depends' : ['base', 'decimal_precision', 'mail'],
|
||||
'description': """
|
||||
|
||||
+318
-262
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * analytic
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -16,258 +16,52 @@ msgstr ""
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,child_ids:0
|
||||
msgid "Child Accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: selection:account.analytic.account,state:0
|
||||
msgid "In Progress"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: code:addons/analytic/analytic.py:229
|
||||
#, python-format
|
||||
msgid "Contract: "
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: selection:account.analytic.account,state:0
|
||||
msgid "Template"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: view:account.analytic.account:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: help:account.analytic.line,unit_amount:0
|
||||
msgid "Specifies the amount of quantity to count."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,debit:0
|
||||
msgid "Debit"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: help:account.analytic.account,type:0
|
||||
msgid "If you select the View Type, it means you won't allow to create journal entries using that account.\n"
|
||||
"The type 'Analytic account' stands for usual accounts that you only want to use in accounting.\n"
|
||||
"If you select Contract or Project, it offers you the possibility to manage the validity and the invoicing options for this account.\n"
|
||||
"The special type 'Template of Contract' allows you to define a template with default data that you can reuse easily."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Once the end date of the contract is\n"
|
||||
" passed or the maximum number of service\n"
|
||||
" units (e.g. support contract) is\n"
|
||||
" reached, the account manager is notified \n"
|
||||
" by email to renew the contract with the\n"
|
||||
" customer."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: selection:account.analytic.account,type:0
|
||||
msgid "Contract or Project"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,name:0
|
||||
msgid "Account/Contract Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,manager_id:0
|
||||
msgid "Account Manager"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: selection:account.analytic.account,state:0
|
||||
msgid "Closed"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: model:mail.message.subtype,name:analytic.mt_account_pending
|
||||
msgid "Contract to Renew"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: selection:account.analytic.account,state:0
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,user_id:0
|
||||
msgid "Project Manager"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: code:addons/analytic/analytic.py:268
|
||||
#: code:addons/analytic/analytic.py:277
|
||||
#, python-format
|
||||
msgid "%s (copy)"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: model:ir.model,name:analytic.model_account_analytic_line
|
||||
msgid "Analytic Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,description:0
|
||||
#: field:account.analytic.line,name:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: constraint:account.analytic.account:0
|
||||
msgid "Error! You cannot create recursive analytic accounts."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,company_id:0
|
||||
#: field:account.analytic.line,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Renewal"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: help:account.analytic.account,message_ids:0
|
||||
msgid "Messages and communication history"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: model:mail.message.subtype,description:analytic.mt_account_opened
|
||||
msgid "Stage <b>opened</b>"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: help:account.analytic.account,quantity_max:0
|
||||
msgid "Sets the higher limit of time to work on the contract, based on the timesheet. (for instance, number of hours in a limited support contract.)"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: code:addons/analytic/analytic.py:160
|
||||
#, python-format
|
||||
msgid "If you set a company, the currency selected has to be the same as it's currency. \n"
|
||||
"You can remove the company belonging, and thus change the currency, only on analytic account of type 'view'. This can be really usefull for consolidation purposes of several companies charts with different currencies, for example."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,message_is_follower:0
|
||||
msgid "Is a Follower"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.line,user_id:0
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: model:mail.message.subtype,description:analytic.mt_account_pending
|
||||
msgid "Contract <b>pending</b>"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.line,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: model:mail.message.subtype,name:analytic.mt_account_closed
|
||||
msgid "Contract Finished"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Terms and Conditions"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: help:account.analytic.line,amount:0
|
||||
msgid "Calculated by multiplying the quantity and the price given in the Product's cost price. Always expressed in the company main currency."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,partner_id:0
|
||||
msgid "Customer"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,child_complete_ids:0
|
||||
msgid "Account Hierarchy"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,message_ids:0
|
||||
msgid "Messages"
|
||||
#: field:account.analytic.account,manager_id:0
|
||||
msgid "Account Manager"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,parent_id:0
|
||||
msgid "Parent Analytic Account"
|
||||
#: field:account.analytic.account,name:0
|
||||
msgid "Account/Contract Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Contract Information"
|
||||
#: field:account.analytic.line,amount:0
|
||||
msgid "Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,template_id:0
|
||||
#: view:account.analytic.account:analytic.view_account_analytic_account_form
|
||||
#: selection:account.analytic.account,type:0
|
||||
msgid "Template of Contract"
|
||||
#: field:account.analytic.line,account_id:0
|
||||
#: model:ir.model,name:analytic.model_account_analytic_account
|
||||
msgid "Analytic Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,message_summary:0
|
||||
msgid "Summary"
|
||||
#: model:res.groups,name:analytic.group_analytic_accounting
|
||||
msgid "Analytic Accounting"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,quantity_max:0
|
||||
msgid "Prepaid Service Units"
|
||||
#: field:account.analytic.account,line_ids:0
|
||||
msgid "Analytic Entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,credit:0
|
||||
msgid "Credit"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: model:mail.message.subtype,name:analytic.mt_account_opened
|
||||
msgid "Contract Opened"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: model:mail.message.subtype,description:analytic.mt_account_closed
|
||||
msgid "Contract <b>closed</b>"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: selection:account.analytic.account,state:0
|
||||
msgid "Cancelled"
|
||||
#: model:ir.model,name:analytic.model_account_analytic_line
|
||||
msgid "Analytic Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
@@ -281,29 +75,132 @@ msgid "Balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: help:account.analytic.account,message_unread:0
|
||||
msgid "If checked new messages require your attention."
|
||||
#: help:account.analytic.line,amount:0
|
||||
msgid "Calculated by multiplying the quantity and the price given in the Product's cost price. Always expressed in the company main currency."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: selection:account.analytic.account,state:0
|
||||
msgid "To Renew"
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,quantity:0
|
||||
#: field:account.analytic.line,unit_amount:0
|
||||
msgid "Quantity"
|
||||
#: field:account.analytic.account,child_ids:0
|
||||
msgid "Child Accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,date:0
|
||||
msgid "Date End"
|
||||
#: selection:account.analytic.account,state:0
|
||||
msgid "Closed"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,code:0
|
||||
msgid "Reference"
|
||||
#: field:account.analytic.account,company_id:0
|
||||
#: field:account.analytic.line,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: model:mail.message.subtype,name:analytic.mt_account_closed
|
||||
msgid "Contract Finished"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: view:account.analytic.account:analytic.view_account_analytic_account_form
|
||||
msgid "Contract Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: model:mail.message.subtype,name:analytic.mt_account_opened
|
||||
msgid "Contract Opened"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: model:mail.message.subtype,description:analytic.mt_account_closed
|
||||
msgid "Contract closed"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: model:mail.message.subtype,description:analytic.mt_account_opened
|
||||
msgid "Contract opened"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: selection:account.analytic.account,type:0
|
||||
msgid "Contract or Project"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: model:mail.message.subtype,description:analytic.mt_account_pending
|
||||
msgid "Contract pending"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: model:mail.message.subtype,name:analytic.mt_account_pending
|
||||
msgid "Contract to Renew"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: code:addons/analytic/analytic.py:238
|
||||
#, python-format
|
||||
msgid "Contract: "
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.line,create_date:0
|
||||
msgid "Create Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,create_uid:0
|
||||
#: field:account.analytic.line,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,credit:0
|
||||
msgid "Credit"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,currency_id:0
|
||||
msgid "Currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,partner_id:0
|
||||
msgid "Customer"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.line,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: help:account.analytic.account,message_last_post:0
|
||||
msgid "Date of the last message posted on the record."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,debit:0
|
||||
msgid "Debit"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,description:0
|
||||
#: field:account.analytic.line,name:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: view:account.analytic.account:analytic.view_account_analytic_account_form
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
@@ -313,31 +210,23 @@ msgid "Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: model:res.groups,name:analytic.group_analytic_accounting
|
||||
msgid "Analytic Accounting"
|
||||
#: constraint:account.analytic.account:0
|
||||
msgid "Error! You cannot create recursive analytic accounts."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.line,amount:0
|
||||
msgid "Amount"
|
||||
#: field:account.analytic.account,date:0
|
||||
msgid "Expiration Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,complete_name:0
|
||||
msgid "Full Account Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: view:account.analytic.account:0
|
||||
#: selection:account.analytic.account,type:0
|
||||
#: field:account.analytic.line,account_id:0
|
||||
#: model:ir.model,name:analytic.model_account_analytic_account
|
||||
msgid "Analytic Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,currency_id:0
|
||||
msgid "Currency"
|
||||
msgid "Full Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
@@ -346,8 +235,128 @@ msgid "Holds the Chatter summary (number of messages, ...). This summary is dire
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,type:0
|
||||
msgid "Type of Account"
|
||||
#: field:account.analytic.account,id:0
|
||||
#: field:account.analytic.line,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: help:account.analytic.account,message_unread:0
|
||||
msgid "If checked new messages require your attention."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: help:account.analytic.account,type:0
|
||||
msgid "If you select the View Type, it means you won't allow to create journal entries using that account.\n"
|
||||
"The type 'Analytic account' stands for usual accounts that you only want to use in accounting.\n"
|
||||
"If you select Contract or Project, it offers you the possibility to manage the validity and the invoicing options for this account.\n"
|
||||
"The special type 'Template of Contract' allows you to define a template with default data that you can reuse easily."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: code:addons/analytic/analytic.py:160
|
||||
#, python-format
|
||||
msgid "If you set a company, the currency selected has to be the same as it's currency. \n"
|
||||
"You can remove the company belonging, and thus change the currency, only on analytic account of type 'view'. This can be really useful for consolidation purposes of several companies charts with different currencies, for example."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: selection:account.analytic.account,state:0
|
||||
msgid "In Progress"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,message_is_follower:0
|
||||
msgid "Is a Follower"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,message_last_post:0
|
||||
msgid "Last Message Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,write_uid:0
|
||||
#: field:account.analytic.line,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,write_date:0
|
||||
#: field:account.analytic.line,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: help:account.analytic.account,message_ids:0
|
||||
msgid "Messages and communication history"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: selection:account.analytic.account,state:0
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: view:account.analytic.account:analytic.view_account_analytic_account_form
|
||||
msgid "Once the end date of the contract is\n"
|
||||
" passed or the maximum number of service\n"
|
||||
" units (e.g. support contract) is\n"
|
||||
" reached, the account manager is notified \n"
|
||||
" by email to renew the contract with the\n"
|
||||
" customer."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,parent_id:0
|
||||
msgid "Parent Analytic Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,quantity_max:0
|
||||
msgid "Prepaid Service Units"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,user_id:0
|
||||
msgid "Project Manager"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,quantity:0
|
||||
#: field:account.analytic.line,unit_amount:0
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: code:addons/analytic/analytic.py:271
|
||||
#, python-format
|
||||
msgid "Quick account creation disallowed."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,code:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: view:account.analytic.account:analytic.view_account_analytic_account_form
|
||||
msgid "Renewal"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: help:account.analytic.account,quantity_max:0
|
||||
msgid "Sets the higher limit of time to work on the contract, based on the timesheet. (for instance, number of hours in a limited support contract.)"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: help:account.analytic.line,unit_amount:0
|
||||
msgid "Specifies the amount of quantity to count."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
@@ -355,13 +364,60 @@ msgstr ""
|
||||
msgid "Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,message_summary:0
|
||||
msgid "Summary"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: selection:account.analytic.account,state:0
|
||||
msgid "Template"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,template_id:0
|
||||
#: selection:account.analytic.account,type:0
|
||||
msgid "Template of Contract"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: view:account.analytic.account:analytic.view_account_analytic_account_form
|
||||
msgid "Terms and Conditions"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: selection:account.analytic.account,state:0
|
||||
msgid "To Renew"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,type:0
|
||||
msgid "Type of Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.line,user_id:0
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: code:addons/analytic/analytic.py:271
|
||||
#, python-format
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: constraint:account.analytic.line:0
|
||||
msgid "You cannot create analytic line on view account."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,line_ids:0
|
||||
msgid "Analytic Entries"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -307,7 +307,7 @@ class account_analytic_account(osv.osv):
|
||||
dom = []
|
||||
for name2 in name.split('/'):
|
||||
name = name2.strip()
|
||||
account_ids = self.search(cr, uid, dom + [('name', 'ilike', name)] + args, limit=limit, context=context)
|
||||
account_ids = self.search(cr, uid, dom + [('name', operator, name)] + args, limit=limit, context=context)
|
||||
if not account_ids: break
|
||||
dom = [('parent_id','in',account_ids)]
|
||||
else:
|
||||
|
||||
@@ -29,7 +29,7 @@ This module is for modifying account analytic view to show some data related to
|
||||
======================================================================================================
|
||||
""",
|
||||
'author': 'OpenERP S.A.',
|
||||
'website': 'http://www.openerp.com/',
|
||||
'website': 'https://www.odoo.com/',
|
||||
'depends': ['hr_expense','account_analytic_analysis'],
|
||||
'data': ['analytic_contract_hr_expense_view.xml'],
|
||||
'demo': [],
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * analytic_contract_hr_expense
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -15,36 +15,51 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:0
|
||||
msgid "or view"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Nothing to invoice, create"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:0
|
||||
msgid "expenses"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: model:ir.model,name:analytic_contract_hr_expense.model_account_analytic_account
|
||||
msgid "Analytic Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:129
|
||||
#: field:account.analytic.account,charge_expenses:0
|
||||
msgid "Charge Expenses"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: field:account.analytic.account,est_expenses:0
|
||||
msgid "Estimation of Expenses to Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:analytic_contract_hr_expense.account_analytic_account_form_expense_form
|
||||
msgid "Expenses"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:analytic_contract_hr_expense.account_analytic_account_form_expense_form
|
||||
msgid "Expenses and Timesheet Invoicing Ratio"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:135
|
||||
#, python-format
|
||||
msgid "Expenses of %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:143
|
||||
#, python-format
|
||||
msgid "Expenses to Invoice of %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:121
|
||||
#, python-format
|
||||
msgid "Expenses of %s"
|
||||
#: view:account.analytic.account:analytic_contract_hr_expense.account_analytic_account_form_expense_form
|
||||
msgid "Nothing to invoice, create"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:analytic_contract_hr_expense.account_analytic_account_form_expense_form
|
||||
msgid "or view"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
@@ -55,17 +70,22 @@ msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: field:account.analytic.account,est_expenses:0
|
||||
msgid "Estimation of Expenses to Invoice"
|
||||
#: view:account.analytic.account:analytic_contract_hr_expense.account_analytic_account_form_expense_form
|
||||
msgid "{'invisible': [('invoice_on_timesheets','=',False),('charge_expenses','=',False)]}"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: field:account.analytic.account,charge_expenses:0
|
||||
msgid "Charge Expenses"
|
||||
#: view:account.analytic.account:analytic_contract_hr_expense.account_analytic_account_form_expense_form
|
||||
msgid "{'required': ['|',('invoice_on_timesheets','=',True),('charge_expenses','=',True)], 'invisible':[('invoice_on_timesheets','=',False), ('charge_expenses','=',False)]}"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:0
|
||||
#: view:account.analytic.account:analytic_contract_hr_expense.account_analytic_account_form_expense_form
|
||||
msgid "{'required': ['|',('invoice_on_timesheets','=',True),('charge_expenses','=',True)]}"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:analytic_contract_hr_expense.account_analytic_account_form_expense_form
|
||||
msgid "⇒ Invoice"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ compatible with older configurations.
|
||||
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com/page/employees',
|
||||
'images': ['images/analytic_user_function.jpeg'],
|
||||
'depends': ['hr_timesheet_sheet'],
|
||||
'data': ['analytic_user_function_view.xml', 'security/ir.model.access.csv'],
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * analytic_user_function
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -15,24 +15,73 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: field:analytic.user.funct.grid,account_id:0
|
||||
#: model:ir.model,name:analytic_user_function.model_account_analytic_account
|
||||
msgid "Analytic Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: model:ir.model,name:analytic_user_function.model_account_analytic_line
|
||||
msgid "Analytic Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: view:account.analytic.account:0
|
||||
#: field:analytic.user.funct.grid,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: field:analytic.user.funct.grid,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: view:account.analytic.account:analytic_user_function.view_account_analytic_account_form_inherit
|
||||
msgid "Define a specific service (e.g. Senior Consultant)\n"
|
||||
" and price for some users to use these data instead\n"
|
||||
" of the default values when invoicing the customer."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: code:addons/analytic_user_function/analytic_user_function.py:108
|
||||
#: code:addons/analytic_user_function/analytic_user_function.py:137
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: field:analytic.user.funct.grid,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: view:account.analytic.account:analytic_user_function.view_account_analytic_account_form_inherit
|
||||
msgid "Invoice Price Rate per User"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: field:analytic.user.funct.grid,product_id:0
|
||||
msgid "Service"
|
||||
#: view:analytic.user.funct.grid:analytic_user_function.analytic_user_funct_grid_form
|
||||
#: view:analytic.user.funct.grid:analytic_user_function.analytic_user_funct_grid_tree
|
||||
msgid "Invoicing Data"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: model:ir.model,name:analytic_user_function.model_analytic_user_funct_grid
|
||||
msgid "Price per User"
|
||||
#: field:analytic.user.funct.grid,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: field:analytic.user.funct.grid,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: view:account.analytic.account:analytic_user_function.view_account_analytic_account_form_inherit
|
||||
msgid "Odoo will recursively search on parent accounts\n"
|
||||
" to check if specific conditions are defined for a\n"
|
||||
" specific user. This allows to set invoicing\n"
|
||||
" conditions for a group of contracts."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
@@ -40,51 +89,26 @@ msgstr ""
|
||||
msgid "Price"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: model:ir.model,name:analytic_user_function.model_analytic_user_funct_grid
|
||||
msgid "Price per User"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: help:analytic.user.funct.grid,price:0
|
||||
msgid "Price per hour for this user."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: field:analytic.user.funct.grid,account_id:0
|
||||
#: model:ir.model,name:analytic_user_function.model_account_analytic_account
|
||||
msgid "Analytic Account"
|
||||
#: field:analytic.user.funct.grid,product_id:0
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: code:addons/analytic_user_function/analytic_user_function.py:106
|
||||
#: code:addons/analytic_user_function/analytic_user_function.py:135
|
||||
#: code:addons/analytic_user_function/analytic_user_function.py:109
|
||||
#: code:addons/analytic_user_function/analytic_user_function.py:138
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: view:analytic.user.funct.grid:0
|
||||
msgid "Invoicing Data"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: field:account.analytic.account,user_product_ids:0
|
||||
msgid "Users/Products Rel."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Define a specific service (e.g. Senior Consultant)\n"
|
||||
" and price for some users to use these data instead\n"
|
||||
" of the default values when invoicing the customer."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: field:analytic.user.funct.grid,uom_id:0
|
||||
msgid "Unit of Measure"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: code:addons/analytic_user_function/analytic_user_function.py:107
|
||||
#: code:addons/analytic_user_function/analytic_user_function.py:136
|
||||
#, python-format
|
||||
msgid "There is no expense account define for this product: \"%s\" (id:%d)"
|
||||
msgid "There is no expense account defined for this product: \"%s\" (id:%d)"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
@@ -93,11 +117,8 @@ msgid "Timesheet Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: view:account.analytic.account:0
|
||||
msgid "OpenERP will recursively search on parent accounts\n"
|
||||
" to check if specific conditions are defined for a\n"
|
||||
" specific user. This allows to set invoicing\n"
|
||||
" conditions for a group of contracts."
|
||||
#: field:analytic.user.funct.grid,uom_id:0
|
||||
msgid "Unit of Measure"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
@@ -105,3 +126,8 @@ msgstr ""
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: field:account.analytic.account,user_product_ids:0
|
||||
msgid "Users/Products Rel."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ team. Once you get back your migrated database, you restore it and reverse the
|
||||
anonymization process to recover your previous data.
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com',
|
||||
'depends': ['base'],
|
||||
'demo': ['anonymization_demo.xml'],
|
||||
'data': [
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * anonymization
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -16,94 +16,22 @@ msgstr ""
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard
|
||||
msgid "ir.model.fields.anonymize.wizard"
|
||||
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_history_tree
|
||||
#: view:ir.model.fields.anonymization.history:anonymization.view_ir_model_fields_anonymization_history_form
|
||||
#: view:ir.model.fields.anonymization.history:anonymization.view_ir_model_fields_anonymization_history_tree
|
||||
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_history
|
||||
msgid "Anonymization History"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,model_id:0
|
||||
msgid "Object"
|
||||
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymize_wizard
|
||||
#: view:ir.model.fields.anonymize.wizard:anonymization.view_ir_model_fields_anonymize_wizard_form
|
||||
msgid "Anonymize Database"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization_migration_fix
|
||||
msgid "ir.model.fields.anonymization.migration.fix"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.migration.fix,target_version:0
|
||||
msgid "Target Version"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.migration.fix,query_type:0
|
||||
msgid "sql"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: code:addons/anonymization/anonymization.py:91
|
||||
#, python-format
|
||||
msgid "The database anonymization is currently in an unstable state. Some fields are anonymized, while some fields are not anonymized. You should try to solve this problem before trying to create, write or delete fields."
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,field_name:0
|
||||
msgid "Field Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,field_id:0
|
||||
#: field:ir.model.fields.anonymization.migration.fix,field_name:0
|
||||
msgid "Field"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization,state:0
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymize.wizard,file_import:0
|
||||
msgid "Import"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization
|
||||
msgid "ir.model.fields.anonymization"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: code:addons/anonymization/anonymization.py:300
|
||||
#, python-format
|
||||
msgid "Before executing the anonymization process, you should make a backup of your database."
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.history,state:0
|
||||
#: field:ir.model.fields.anonymize.wizard,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.history,direction:0
|
||||
msgid "Direction"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_tree
|
||||
#: view:ir.model.fields.anonymization:0
|
||||
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_fields
|
||||
msgid "Anonymized Fields"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization
|
||||
msgid "Database anonymization"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.history,direction:0
|
||||
msgid "clear -> anonymized"
|
||||
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_wizard
|
||||
msgid "Anonymize database"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
@@ -113,8 +41,15 @@ msgid "Anonymized"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,state:0
|
||||
msgid "unknown"
|
||||
#: view:ir.model.fields.anonymization:anonymization.view_ir_model_fields_anonymization_form
|
||||
msgid "Anonymized Field"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_tree
|
||||
#: view:ir.model.fields.anonymization:anonymization.view_ir_model_fields_anonymization_tree
|
||||
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_fields
|
||||
msgid "Anonymized Fields"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
@@ -124,28 +59,9 @@ msgid "Anonymized value is None. This cannot happens."
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.history,filepath:0
|
||||
msgid "File path"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: help:ir.model.fields.anonymize.wizard,file_import:0
|
||||
msgid "This is the file created by the anonymization process. It should have the '.pickle' extention."
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.history,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymize.wizard,file_export:0
|
||||
msgid "Export"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: view:ir.model.fields.anonymize.wizard:0
|
||||
msgid "Reverse the Database Anonymization"
|
||||
#: code:addons/anonymization/anonymization.py:300
|
||||
#, python-format
|
||||
msgid "Before executing the anonymization process, you should make a backup of your database."
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
@@ -154,27 +70,6 @@ msgstr ""
|
||||
msgid "Cannot anonymize fields of these types: binary, many2many, many2one, one2many, reference."
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: view:ir.model.fields.anonymize.wizard:0
|
||||
msgid "Database Anonymization"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_wizard
|
||||
msgid "Anonymize database"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.migration.fix,query_type:0
|
||||
msgid "python"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: view:ir.model.fields.anonymization.history:0
|
||||
#: field:ir.model.fields.anonymization.history,field_ids:0
|
||||
msgid "Fields"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization,state:0
|
||||
#: selection:ir.model.fields.anonymize.wizard,state:0
|
||||
@@ -182,69 +77,44 @@ msgid "Clear"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: code:addons/anonymization/anonymization.py:533
|
||||
#, python-format
|
||||
msgid "It is not possible to reverse the anonymization process without supplying the anonymization export file."
|
||||
#: field:ir.model.fields.anonymization,create_uid:0
|
||||
#: field:ir.model.fields.anonymization.history,create_uid:0
|
||||
#: field:ir.model.fields.anonymization.migration.fix,create_uid:0
|
||||
#: field:ir.model.fields.anonymize.wizard,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymize.wizard,summary:0
|
||||
msgid "Summary"
|
||||
#: field:ir.model.fields.anonymization,create_date:0
|
||||
#: field:ir.model.fields.anonymization.history,create_date:0
|
||||
#: field:ir.model.fields.anonymization.migration.fix,create_date:0
|
||||
#: field:ir.model.fields.anonymize.wizard,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: view:ir.model.fields.anonymization:0
|
||||
msgid "Anonymized Field"
|
||||
#: view:ir.model.fields.anonymize.wizard:anonymization.view_ir_model_fields_anonymize_wizard_form
|
||||
msgid "Database Anonymization"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: code:addons/anonymization/anonymization.py:391
|
||||
#: code:addons/anonymization/anonymization.py:526
|
||||
#, python-format
|
||||
msgid "The database anonymization is currently in an unstable state. Some fields are anonymized, while some fields are not anonymized. You should try to solve this problem before trying to do anything."
|
||||
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization
|
||||
msgid "Database anonymization"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymize.wizard,state:0
|
||||
msgid "Unstable"
|
||||
#: field:ir.model.fields.anonymization.history,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.history,direction:0
|
||||
msgid "Direction"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.history,state:0
|
||||
msgid "Exception occured"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization,state:0
|
||||
msgid "Not Existing"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,model_name:0
|
||||
msgid "Object Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_history_tree
|
||||
#: view:ir.model.fields.anonymization.history:0
|
||||
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_history
|
||||
msgid "Anonymization History"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.migration.fix,model_name:0
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization_history
|
||||
msgid "ir.model.fields.anonymization.history"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: code:addons/anonymization/anonymization.py:358
|
||||
#, python-format
|
||||
msgid "The database anonymization is currently in an unstable state. Some fields are anonymized, while some fields are not anonymized. You should try to solve this problem before trying to do anything else."
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
@@ -255,9 +125,30 @@ msgid "Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymize_wizard
|
||||
#: view:ir.model.fields.anonymize.wizard:0
|
||||
msgid "Anonymize Database"
|
||||
#: selection:ir.model.fields.anonymization.history,state:0
|
||||
msgid "Exception occured"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymize.wizard,file_export:0
|
||||
msgid "Export"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,field_id:0
|
||||
#: field:ir.model.fields.anonymization.migration.fix,field_name:0
|
||||
msgid "Field"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,field_name:0
|
||||
msgid "Field Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: view:ir.model.fields.anonymization.history:anonymization.view_ir_model_fields_anonymization_history_form
|
||||
#: field:ir.model.fields.anonymization.history,field_ids:0
|
||||
msgid "Fields"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
@@ -266,29 +157,75 @@ msgid "File Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.migration.fix,sequence:0
|
||||
msgid "Sequence"
|
||||
#: field:ir.model.fields.anonymization.history,filepath:0
|
||||
msgid "File path"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.history,direction:0
|
||||
msgid "anonymized -> clear"
|
||||
#: field:ir.model.fields.anonymization,id:0
|
||||
#: field:ir.model.fields.anonymization.history,id:0
|
||||
#: field:ir.model.fields.anonymization.migration.fix,id:0
|
||||
#: field:ir.model.fields.anonymize.wizard,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.history,state:0
|
||||
msgid "Started"
|
||||
#: field:ir.model.fields.anonymize.wizard,file_import:0
|
||||
msgid "Import"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: code:addons/anonymization/anonymization.py:389
|
||||
#: code:addons/anonymization/anonymization.py:533
|
||||
#, python-format
|
||||
msgid "The database is currently anonymized, you cannot anonymize it again."
|
||||
msgid "It is not possible to reverse the anonymization process without supplying the anonymization export file."
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.history,state:0
|
||||
msgid "Done"
|
||||
#: field:ir.model.fields.anonymization,write_uid:0
|
||||
#: field:ir.model.fields.anonymization.history,write_uid:0
|
||||
#: field:ir.model.fields.anonymization.migration.fix,write_uid:0
|
||||
#: field:ir.model.fields.anonymize.wizard,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,write_date:0
|
||||
#: field:ir.model.fields.anonymization.history,write_date:0
|
||||
#: field:ir.model.fields.anonymization.migration.fix,write_date:0
|
||||
#: field:ir.model.fields.anonymize.wizard,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: view:ir.model.fields.anonymization.history:anonymization.view_ir_model_fields_anonymization_history_form
|
||||
#: field:ir.model.fields.anonymization.history,msg:0
|
||||
#: field:ir.model.fields.anonymize.wizard,msg:0
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.migration.fix,model_name:0
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization,state:0
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization,state:0
|
||||
msgid "Not Existing"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,model_id:0
|
||||
msgid "Object"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,model_name:0
|
||||
msgid "Object Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
@@ -298,10 +235,69 @@ msgid "Query"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: view:ir.model.fields.anonymization.history:0
|
||||
#: field:ir.model.fields.anonymization.history,msg:0
|
||||
#: field:ir.model.fields.anonymize.wizard,msg:0
|
||||
msgid "Message"
|
||||
#: view:ir.model.fields.anonymize.wizard:anonymization.view_ir_model_fields_anonymize_wizard_form
|
||||
msgid "Reverse the Database Anonymization"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.migration.fix,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.history,state:0
|
||||
msgid "Started"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.history,state:0
|
||||
#: field:ir.model.fields.anonymize.wizard,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymize.wizard,summary:0
|
||||
msgid "Summary"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.migration.fix,target_version:0
|
||||
msgid "Target Version"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: code:addons/anonymization/anonymization.py:91
|
||||
#, python-format
|
||||
msgid "The database anonymization is currently in an unstable state. Some fields are anonymized, while some fields are not anonymized. You should try to solve this problem before trying to create, write or delete fields."
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: code:addons/anonymization/anonymization.py:358
|
||||
#, python-format
|
||||
msgid "The database anonymization is currently in an unstable state. Some fields are anonymized, while some fields are not anonymized. You should try to solve this problem before trying to do anything else."
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: code:addons/anonymization/anonymization.py:391
|
||||
#: code:addons/anonymization/anonymization.py:526
|
||||
#, python-format
|
||||
msgid "The database anonymization is currently in an unstable state. Some fields are anonymized, while some fields are not anonymized. You should try to solve this problem before trying to do anything."
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: code:addons/anonymization/anonymization.py:389
|
||||
#, python-format
|
||||
msgid "The database is currently anonymized, you cannot anonymize it again."
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: help:ir.model.fields.anonymize.wizard,file_import:0
|
||||
msgid "This is the file created by the anonymization process. It should have the '.pickle' extention."
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymize.wizard,state:0
|
||||
msgid "Unstable"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
@@ -311,3 +307,28 @@ msgstr ""
|
||||
msgid "You cannot have two fields with the same name on the same object!"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.history,direction:0
|
||||
msgid "anonymized -> clear"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.history,direction:0
|
||||
msgid "clear -> anonymized"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.migration.fix,query_type:0
|
||||
msgid "python"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.migration.fix,query_type:0
|
||||
msgid "sql"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,state:0
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -38,5 +38,6 @@ membership products (schemes).
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
'images': ['images/association1.jpeg'],
|
||||
'website': 'https://www.odoo.com'
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
'version': '1.1',
|
||||
'author': ['OpenERP SA', 'FS3'],
|
||||
'maintainer': 'OpenERP SA',
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com',
|
||||
'category': 'Tools',
|
||||
'description': """
|
||||
Ecrypted passwords
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * auth_crypt
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
||||
@@ -93,7 +93,7 @@ allows pre-setting the default groups and menus of the first-time users.
|
||||
user to a username that does not exist in LDAP, and setup its groups
|
||||
the way you want.
|
||||
""",
|
||||
'website' : 'http://www.openerp.com',
|
||||
'website' : 'https://www.odoo.com',
|
||||
'category' : 'Authentication',
|
||||
'data' : [
|
||||
'users_ldap_view.xml',
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * auth_ldap
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -16,24 +16,13 @@ msgstr ""
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: auth_ldap
|
||||
#: field:res.company.ldap,user:0
|
||||
msgid "Template User"
|
||||
#: help:res.company.ldap,create_user:0
|
||||
msgid "Automatically create local user accounts for new users authenticating via LDAP"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: help:res.company.ldap,ldap_tls:0
|
||||
msgid "Request secure TLS/SSL encryption when connecting to the LDAP server. This option requires a server with STARTTLS enabled, otherwise all authentication attempts will fail."
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: view:res.company:0
|
||||
#: view:res.company.ldap:0
|
||||
msgid "LDAP Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: field:res.company.ldap,ldap_binddn:0
|
||||
msgid "LDAP binddn"
|
||||
#: model:ir.model,name:auth_ldap.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
@@ -41,6 +30,38 @@ msgstr ""
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: field:res.company.ldap,create_user:0
|
||||
msgid "Create user"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: field:res.company.ldap,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: field:res.company.ldap,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: field:res.company.ldap,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: view:res.company:auth_ldap.company_form_view
|
||||
#: view:res.company.ldap:auth_ldap.view_ldap_installer_form
|
||||
msgid "LDAP Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: view:res.company:auth_ldap.company_form_view
|
||||
#: field:res.company,ldaps:0
|
||||
msgid "LDAP Parameters"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: field:res.company.ldap,ldap_server:0
|
||||
msgid "LDAP Server address"
|
||||
@@ -51,19 +72,19 @@ msgstr ""
|
||||
msgid "LDAP Server port"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: help:res.company.ldap,create_user:0
|
||||
msgid "Automatically create local user accounts for new users authenticating via LDAP"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: field:res.company.ldap,ldap_base:0
|
||||
msgid "LDAP base"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: view:res.company.ldap:0
|
||||
msgid "User Information"
|
||||
#: field:res.company.ldap,ldap_binddn:0
|
||||
msgid "LDAP binddn"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: field:res.company.ldap,ldap_filter:0
|
||||
msgid "LDAP filter"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
@@ -72,28 +93,28 @@ msgid "LDAP password"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: model:ir.model,name:auth_ldap.model_res_company
|
||||
msgid "Companies"
|
||||
#: field:res.company.ldap,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: view:res.company.ldap:0
|
||||
#: field:res.company.ldap,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: view:res.company.ldap:auth_ldap.view_ldap_installer_form
|
||||
msgid "Login Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: view:res.company.ldap:auth_ldap.view_ldap_installer_form
|
||||
msgid "Process Parameter"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: model:ir.model,name:auth_ldap.model_res_company_ldap
|
||||
msgid "res.company.ldap"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: help:res.company.ldap,user:0
|
||||
msgid "User to copy when creating new users"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: field:res.company.ldap,ldap_tls:0
|
||||
msgid "Use TLS"
|
||||
#: help:res.company.ldap,ldap_tls:0
|
||||
msgid "Request secure TLS/SSL encryption when connecting to the LDAP server. This option requires a server with STARTTLS enabled, otherwise all authentication attempts will fail."
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
@@ -102,12 +123,7 @@ msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: view:res.company.ldap:0
|
||||
msgid "Login Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: view:res.company.ldap:0
|
||||
#: view:res.company.ldap:auth_ldap.view_ldap_installer_form
|
||||
msgid "Server Information"
|
||||
msgstr ""
|
||||
|
||||
@@ -117,9 +133,8 @@ msgid "Setup your LDAP Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: view:res.company:0
|
||||
#: field:res.company,ldaps:0
|
||||
msgid "LDAP Parameters"
|
||||
#: field:res.company.ldap,user:0
|
||||
msgid "Template User"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
@@ -132,18 +147,23 @@ msgstr ""
|
||||
msgid "The user account on the LDAP server that is used to query the directory. Leave empty to connect anonymously."
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: field:res.company.ldap,ldap_tls:0
|
||||
msgid "Use TLS"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: view:res.company.ldap:auth_ldap.view_ldap_installer_form
|
||||
msgid "User Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: help:res.company.ldap,user:0
|
||||
msgid "User to copy when creating new users"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: model:ir.model,name:auth_ldap.model_res_users
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: field:res.company.ldap,ldap_filter:0
|
||||
msgid "LDAP filter"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_ldap
|
||||
#: field:res.company.ldap,create_user:0
|
||||
msgid "Create user"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -237,7 +237,7 @@ class res_company(osv.osv):
|
||||
_inherit = "res.company"
|
||||
_columns = {
|
||||
'ldaps': fields.one2many(
|
||||
'res.company.ldap', 'company', 'LDAP Parameters', copy=True),
|
||||
'res.company.ldap', 'company', 'LDAP Parameters', copy=True, groups="base.group_system"),
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ Allow users to login through OAuth2 Provider.
|
||||
""",
|
||||
'author': 'OpenERP s.a.',
|
||||
'maintainer': 'OpenERP s.a.',
|
||||
'website': 'http://www.openerp.com',
|
||||
'website': 'https://www.odoo.com',
|
||||
'depends': ['base', 'web', 'base_setup', 'auth_signup'],
|
||||
'data': [
|
||||
'res_users.xml',
|
||||
|
||||
@@ -21,4 +21,5 @@ class auth_oauth_provider(osv.osv):
|
||||
}
|
||||
_defaults = {
|
||||
'enabled' : False,
|
||||
'css_class' : "zocial",
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * auth_oauth
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Project-Id-Version: Odoo Server 8.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||
"POT-Creation-Date: 2014-08-14 13:08+0000\n"
|
||||
"PO-Revision-Date: 2014-08-14 13:08+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -16,80 +16,9 @@ msgstr ""
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,validation_endpoint:0
|
||||
msgid "Validation URL"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,auth_endpoint:0
|
||||
msgid "Authentication URL"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: model:ir.model,name:auth_oauth.model_base_config_settings
|
||||
msgid "base.config.settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,name:0
|
||||
msgid "Provider name"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,scope:0
|
||||
msgid "Scope"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:res.users,oauth_provider_id:0
|
||||
msgid "OAuth Provider"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,css_class:0
|
||||
msgid "CSS class"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,body:0
|
||||
msgid "Body"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: model:ir.model,name:auth_oauth.model_res_users
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,sequence:0
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:res.users,oauth_access_token:0
|
||||
msgid "OAuth Access Token"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,client_id:0
|
||||
#: field:base.config.settings,auth_oauth_facebook_client_id:0
|
||||
#: field:base.config.settings,auth_oauth_google_client_id:0
|
||||
msgid "Client ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: model:ir.ui.menu,name:auth_oauth.menu_oauth_providers
|
||||
msgid "OAuth Providers"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: model:ir.model,name:auth_oauth.model_auth_oauth_provider
|
||||
msgid "OAuth2 provider"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:res.users,oauth_uid:0
|
||||
msgid "OAuth User ID"
|
||||
#: code:addons/auth_oauth/controllers/main.py:99
|
||||
#, python-format
|
||||
msgid "Access Denied"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
@@ -97,31 +26,6 @@ msgstr ""
|
||||
msgid "Allow users to sign in with Facebook"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: sql_constraint:res.users:0
|
||||
msgid "OAuth UID must be unique per provider"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: help:res.users,oauth_uid:0
|
||||
msgid "Oauth Provider user_id"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,data_endpoint:0
|
||||
msgid "Data URL"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: view:auth.oauth.provider:0
|
||||
msgid "arch"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: model:ir.actions.act_window,name:auth_oauth.action_oauth_provider
|
||||
msgid "Providers"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:base.config.settings,auth_oauth_google_enabled:0
|
||||
msgid "Allow users to sign in with Google"
|
||||
@@ -132,3 +36,143 @@ msgstr ""
|
||||
msgid "Allowed"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,auth_endpoint:0
|
||||
msgid "Authentication URL"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,body:0
|
||||
msgid "Body"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,css_class:0
|
||||
msgid "CSS class"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,client_id:0
|
||||
#: field:base.config.settings,auth_oauth_facebook_client_id:0
|
||||
#: field:base.config.settings,auth_oauth_google_client_id:0
|
||||
msgid "Client ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,data_endpoint:0
|
||||
msgid "Data URL"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:res.users,oauth_access_token:0
|
||||
msgid "OAuth Access Token"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:res.users,oauth_provider_id:0
|
||||
msgid "OAuth Provider"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: model:ir.ui.menu,name:auth_oauth.menu_oauth_providers
|
||||
msgid "OAuth Providers"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: sql_constraint:res.users:0
|
||||
msgid "OAuth UID must be unique per provider"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:res.users,oauth_uid:0
|
||||
msgid "OAuth User ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: model:ir.model,name:auth_oauth.model_auth_oauth_provider
|
||||
msgid "OAuth2 provider"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: view:res.users:auth_oauth.view_users_form
|
||||
msgid "Oauth"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: help:res.users,oauth_uid:0
|
||||
msgid "Oauth Provider user_id"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,name:0
|
||||
msgid "Provider name"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: model:ir.actions.act_window,name:auth_oauth.action_oauth_provider
|
||||
msgid "Providers"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,scope:0
|
||||
msgid "Scope"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: code:addons/auth_oauth/controllers/main.py:97
|
||||
#, python-format
|
||||
msgid "Sign up is not allowed on this database."
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: model:ir.model,name:auth_oauth.model_res_users
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,validation_endpoint:0
|
||||
msgid "Validation URL"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: code:addons/auth_oauth/controllers/main.py:101
|
||||
#, python-format
|
||||
msgid "You do not have access to this database or your invitation has expired. Please ask for an invitation and be sure to follow the link in your invitation email."
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: view:auth.oauth.provider:auth_oauth.view_oauth_provider_form
|
||||
#: view:auth.oauth.provider:auth_oauth.view_oauth_provider_list
|
||||
msgid "arch"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,sequence:0
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user