[MERGE] from trunk

bzr revid: rco@openerp.com-20120104125730-j2j7jhiwhmthssi8
This commit is contained in:
Raphael Collet 2012-01-04 13:57:30 +01:00
commit 91ebc126dd
367 changed files with 15011 additions and 7846 deletions

View File

@ -29,6 +29,7 @@ import account_bank
import account_cash_statement
import account_move_line
import account_analytic_line
import account_financial_report
import wizard
import report
import product

View File

@ -69,6 +69,7 @@ module named account_voucher.
'wizard/account_period_close_view.xml',
'account_view.xml',
'account_report.xml',
'account_financial_report_data.xml',
'wizard/account_report_common_view.xml',
'wizard/account_invoice_refund_view.xml',
'wizard/account_fiscalyear_close_state.xml',
@ -104,7 +105,6 @@ module named account_voucher.
'account_invoice_view.xml',
'partner_view.xml',
'data/account_data.xml',
'data/data_financial_report.xml',
'data/data_account_type.xml',
'account_invoice_workflow.xml',
'project/project_view.xml',

View File

@ -620,7 +620,7 @@ class account_account(osv.osv):
if method == 'write':
raise osv.except_osv(_('Error !'), _('You can not desactivate an account that contains some journal items.'))
elif method == 'unlink':
raise osv.except_osv(_('Error !'), _('You can not remove an account containing journal items!. '))
raise osv.except_osv(_('Error !'), _('You can not remove an account containing journal items.'))
#Checking whether the account is set as a property to any Partner or not
value = 'account.account,' + str(ids[0])
partner_prop_acc = self.pool.get('ir.property').search(cr, uid, [('value_reference','=',value)], context=context)
@ -660,7 +660,7 @@ class account_account(osv.osv):
# Allow the write if the value is the same
for i in [i['company_id'][0] for i in self.read(cr,uid,ids,['company_id'])]:
if vals['company_id']!=i:
raise osv.except_osv(_('Warning !'), _('You cannot modify Company of account as its related record exist in Entry Lines'))
raise osv.except_osv(_('Warning !'), _('You cannot modify the company as its related to existing journal items.'))
if 'active' in vals and not vals['active']:
self._check_moves(cr, uid, ids, "write", context=context)
if 'type' in vals.keys():
@ -959,7 +959,7 @@ class account_fiscalyear(osv.osv):
ids = self.search(cr, uid, args, context=context)
if not ids:
if exception:
raise osv.except_osv(_('Error !'), _('No fiscal year defined for this date !\nPlease create one.'))
raise osv.except_osv(_('Error !'), _('No fiscal year defined for this date !\nPlease create one from the configuration of the accounting menu.'))
else:
return []
return ids
@ -2443,7 +2443,7 @@ class account_account_template(osv.osv):
_columns = {
'name': fields.char('Name', size=256, required=True, select=True),
'currency_id': fields.many2one('res.currency', 'Secondary Currency', help="Forces all moves for this account to have this secondary currency."),
'code': fields.char('Code', size=64, select=1),
'code': fields.char('Code', size=64, required=True, select=1),
'type': fields.selection([
('receivable','Receivable'),
('payable','Payable'),
@ -2591,8 +2591,8 @@ class account_add_tmpl_wizard(osv.osv_memory):
context = {}
acc_obj = self.pool.get('account.account')
tmpl_obj = self.pool.get('account.account.template')
data = self.read(cr, uid, ids)
company_id = acc_obj.read(cr, uid, [data[0]['cparent_id']], ['company_id'])[0]['company_id'][0]
data = self.read(cr, uid, ids)[0]
company_id = acc_obj.read(cr, uid, [data['cparent_id'][0]], ['company_id'])[0]['company_id'][0]
account_template = tmpl_obj.browse(cr, uid, context['tmpl_ids'])
vals = {
'name': account_template.name,
@ -2603,7 +2603,7 @@ class account_add_tmpl_wizard(osv.osv_memory):
'reconcile': account_template.reconcile,
'shortcut': account_template.shortcut,
'note': account_template.note,
'parent_id': data[0]['cparent_id'],
'parent_id': data['cparent_id'][0],
'company_id': company_id,
}
acc_obj.create(cr, uid, vals)
@ -2923,98 +2923,6 @@ class account_fiscal_position_account_template(osv.osv):
account_fiscal_position_account_template()
# ---------------------------------------------------------
# Account Financial Report
# ---------------------------------------------------------
class account_financial_report(osv.osv):
_name = "account.financial.report"
_description = "Account Report"
def _get_level(self, cr, uid, ids, field_name, arg, context=None):
res = {}
for report in self.browse(cr, uid, ids, context=context):
level = 0
if report.parent_id:
level = report.parent_id.level + 1
res[report.id] = level
return res
def _get_children_by_order(self, cr, uid, ids, context=None):
res = []
for id in ids:
res.append(id)
ids2 = self.search(cr, uid, [('parent_id', '=', id)], order='sequence ASC', context=context)
res += self._get_children_by_order(cr, uid, ids2, context=context)
return res
def _get_balance(self, cr, uid, ids, name, args, context=None):
account_obj = self.pool.get('account.account')
res = {}
res_all = {}
for report in self.browse(cr, uid, ids, context=context):
balance = 0.0
if report.id in res_all:
balance = res_all[report.id]
elif report.type == 'accounts':
# it's the sum of balance of the linked accounts
for a in report.account_ids:
balance += a.balance
elif report.type == 'account_type':
# it's the sum of balance of the leaf accounts with such an account type
report_types = [x.id for x in report.account_type_ids]
account_ids = account_obj.search(cr, uid, [('user_type','in', report_types), ('type','!=','view')], context=context)
for a in account_obj.browse(cr, uid, account_ids, context=context):
balance += a.balance
elif report.type == 'account_report' and report.account_report_id:
# it's the amount of the linked report
res2 = self._get_balance(cr, uid, [report.account_report_id.id], 'balance', False, context=context)
res_all.update(res2)
for key, value in res2.items():
balance += value
elif report.type == 'sum':
# it's the sum of balance of the children of this account.report
#for child in report.children_ids:
res2 = self._get_balance(cr, uid, [rec.id for rec in report.children_ids], 'balance', False, context=context)
res_all.update(res2)
for key, value in res2.items():
balance += value
res[report.id] = balance
res_all[report.id] = balance
return res
_columns = {
'name': fields.char('Report Name', size=128, required=True, translate=True),
'parent_id': fields.many2one('account.financial.report', 'Parent'),
'children_ids': fields.one2many('account.financial.report', 'parent_id', 'Account Report'),
'sequence': fields.integer('Sequence'),
'balance': fields.function(_get_balance, 'Balance'),
'level': fields.function(_get_level, string='Level', store=True, type='integer'),
'type': fields.selection([
('sum','View'),
('accounts','Accounts'),
('account_type','Account Type'),
('account_report','Report Value'),
],'Type'),
'account_ids': fields.many2many('account.account', 'account_account_financial_report', 'report_line_id', 'account_id', 'Accounts'),
'display_detail': fields.selection([
('no_detail','No detail'),
('detail_flat','Display children flat'),
('detail_with_hierarchy','Display children with hierarchy')
], 'Display details'),
'account_report_id': fields.many2one('account.financial.report', 'Report Value'),
'account_type_ids': fields.many2many('account.account.type', 'account_account_financial_report_type', 'report_id', 'account_type_id', 'Account Types'),
'sign': fields.selection([(-1, 'Reverse balance sign'), (1, 'Preserve balance sign')], 'Sign on Reports', required=True, help='For accounts that are typically more debited than credited and that you would like to print as negative amounts in your reports, you should reverse the sign of the balance; e.g.: Expense account. The same applies for accounts that are typically more credited than debited and that you would like to print as positive amounts in your reports; e.g.: Income account.'),
}
_defaults = {
'type': 'sum',
'display_detail': 'detail_flat',
'sign': 1,
}
account_financial_report()
# ---------------------------------------------------------
# Account generation from template wizards
# ---------------------------------------------------------
@ -3047,6 +2955,9 @@ class wizard_multi_charts_accounts(osv.osv_memory):
'purchase_tax_rate': fields.float('Purchase Tax(%)'),
'complete_tax_set': fields.boolean('Complete Set of Taxes', help='This boolean helps you to choose if you want to propose to the user to encode the sales and purchase rates or use the usual m2o fields. This last choice assumes that the set of tax defined for the chosen template is complete'),
}
def onchange_tax_rate(self, cr, uid, ids, rate=False, context=None):
return {'value': {'purchase_tax_rate': rate or False}}
def onchange_chart_template_id(self, cr, uid, ids, chart_template_id=False, context=None):
res = {}
tax_templ_obj = self.pool.get('account.tax.template')
@ -3066,15 +2977,12 @@ class wizard_multi_charts_accounts(osv.osv_memory):
res['value'].update({'code_digits': data.code_digits})
return res
def default_get(self, cr, uid, fields, context=None):
res = super(wizard_multi_charts_accounts, self).default_get(cr, uid, fields, context=context)
tax_templ_obj = self.pool.get('account.tax.template')
if 'bank_accounts_id' in fields:
res.update({'bank_accounts_id': [{'acc_name': _('Current'), 'account_type': 'bank'},
{'acc_name': _('Deposit'), 'account_type': 'bank'},
{'acc_name': _('Cash'), 'account_type': 'cash'}]})
res.update({'bank_accounts_id': [{'acc_name': _('Cash'), 'account_type': 'cash'}]})
if 'company_id' in fields:
res.update({'company_id': self.pool.get('res.users').browse(cr, uid, [uid], context=context)[0].company_id.id})
if 'seq_journal' in fields:
@ -3092,6 +3000,10 @@ class wizard_multi_charts_accounts(osv.osv_memory):
purchase_tax_ids = tax_templ_obj.search(cr, uid, [("chart_template_id"
, "=", ids[0]), ('type_tax_use', 'in', ('purchase','all'))], order="sequence")
res.update({'purchase_tax': purchase_tax_ids and purchase_tax_ids[0] or False})
res.update({
'purchase_tax_rate': 15.0,
'sale_tax_rate': 15.0,
})
return res
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
@ -3141,14 +3053,14 @@ class wizard_multi_charts_accounts(osv.osv_memory):
def _prepare_all_journals(self, cr, uid, chart_template_id, acc_template_ref, company_id, context=None):
def _get_analytic_journal(journal_type):
# Get the analytic journal
analytic_journal_ids = []
data = False
if journal_type in ('sale', 'sale_refund'):
analytical_journal_ids = analytic_journal_obj.search(cr, uid, [('type','=','sale')], context=context)
data = obj_data.get_object_reference(cr, uid, 'account', 'analytic_journal_sale')
elif journal_type in ('purchase', 'purchase_refund'):
analytical_journal_ids = analytic_journal_obj.search(cr, uid, [('type','=','purchase')], context=context)
pass
elif journal_type == 'general':
analytical_journal_ids = analytic_journal_obj.search(cr, uid, [('type', '=', 'situation')], context=context)
return analytic_journal_ids and analytic_journal_ids[0] or False
pass
return data and data[1] or False
def _get_default_account(journal_type, type='debit'):
# Get the default accounts
@ -3355,46 +3267,12 @@ class wizard_multi_charts_accounts(osv.osv_memory):
vals = {}
# create tax templates and tax code templates from purchase_tax_rate and sale_tax_rate fields
if not chart_template.complete_tax_set:
tax_data = {
'sale': obj_wizard.sale_tax_rate,
'purchase': obj_wizard.purchase_tax_rate,
}
for tax_type, value in tax_data.items():
# don't consider cases where entered value in rates are lower than 0
if value >= 0.0:
#create the tax code templates for base and tax
base_code_vals = {
'name': (tax_type == 'sale' and _('Taxable Sales at %s') or _('Taxable Purchases at %s')) % value,
'code': (tax_type == 'sale' and _('BASE-S-%s') or _('BASE-P-%s')) %value,
'parent_id': chart_template.tax_code_root_id.id,
'company_id': company_id,
}
new_base_code_id = obj_tax_code_template.create(cr, uid, base_code_vals, context=context)
tax_code_vals = {
'name': (tax_type == 'sale' and _('Tax Received at %s') or _('Tax Paid at %s')) % value,
'code': (tax_type == 'sale' and _('TAX-S-%s') or _('TAX-P-%s')) %value,
'parent_id': chart_template.tax_code_root_id.id,
'company_id': company_id,
}
new_tax_code_id = obj_tax_code_template.create(cr, uid, tax_code_vals, context=context)
#create the tax
tax_template_id = obj_tax_temp.create(cr, uid, {
'name': _('Tax %s%%') % value,
'amount': value/100,
'base_code_id': new_base_code_id,
'tax_code_id': new_tax_code_id,
'ref_base_code_id': new_base_code_id,
'ref_tax_code_id': new_tax_code_id,
'type_tax_use': tax_type,
'type': 'percent',
'sequence': 0,
'chart_template_id': chart_template.id or False,
}, context=context)
#record this new tax_template as default for this chart template
field_name = tax_type == 'sale' and 'sale_tax' or 'purchase_tax'
vals[field_name] = tax_template_id
self.write(cr, uid, obj_wizard.id, vals, context=context)
if obj_wizard.sale_tax:
value = obj_wizard.sale_tax_rate
obj_tax_temp.write(cr, uid, [obj_wizard.sale_tax.id], {'amount': value/100.0, 'name': _('Tax %.2f%%') % value})
if obj_wizard.purchase_tax:
value = obj_wizard.purchase_tax_rate
obj_tax_temp.write(cr, uid, [obj_wizard.purchase_tax.id], {'amount': value/100.0, 'name': _('Purchase Tax %.2f%%') % value})
return True
def execute(self, cr, uid, ids, context=None):
@ -3445,14 +3323,28 @@ class wizard_multi_charts_accounts(osv.osv_memory):
:rtype: dict
'''
obj_data = self.pool.get('ir.model.data')
obj_journal = self.pool.get('account.journal')
# Get the id of journal views
tmp = obj_data.get_object_reference(cr, uid, 'account', 'account_journal_bank_view_multi')
view_id_cur = tmp and tmp[1] or False
tmp = obj_data.get_object_reference(cr, uid, 'account', 'account_journal_bank_view')
view_id_cash = tmp and tmp[1] or False
# we need to loop again to find next number for journal code
# because we can't rely on the value current_num as,
# its possible that we already have bank journals created (e.g. by the creation of res.partner.bank)
# and the next number for account code might have been already used before for journal
journal_count = 0
while True:
journal_code = _('BNK') + str(current_num + journal_count)
ids = obj_journal.search(cr, uid, [('code', '=', journal_code), ('company_id', '=', company_id)], context=context)
if not ids:
break
journal_count += 1
vals = {
'name': line['acc_name'],
'code': _('BNK') + str(current_num),
'code': journal_code,
'type': line['account_type'] == 'cash' and 'cash' or 'bank',
'company_id': company_id,
'analytic_journal_id': False,

View File

@ -68,7 +68,6 @@ class bank(osv.osv):
name = self._prepare_name(bank)
acc = {
'name': name,
'currency_id': bank.company_id.currency_id.id,
'code': new_code,
'type': 'liquidity',
'user_type': ref_acc_bank_temp.user_type.id,

View File

@ -297,7 +297,7 @@ class account_bank_statement(osv.osv):
context=context):
if line.state <> 'valid':
raise osv.except_osv(_('Error !'),
_('Journal Item "%s" is not valid') % line.name)
_('Journal item "%s" is not valid.') % line.name)
# Bank statements will not consider boolean on journal entry_posted
account_move_obj.post(cr, uid, [move_id], context=context)
@ -352,7 +352,7 @@ class account_bank_statement(osv.osv):
for st_line in st.line_ids:
if st_line.analytic_account_id:
if not st.journal_id.analytic_journal_id:
raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal!") % (st.journal_id.name,))
raise osv.except_osv(_('No Analytic Journal !'),_("You have to assign an analytic journal on the '%s' journal!") % (st.journal_id.name,))
if not st_line.amount:
continue
st_line_number = self.get_next_st_line_number(cr, uid, st_number, st_line, context)

View File

@ -311,7 +311,7 @@ class account_cash_statement(osv.osv):
if journal_type == 'bank':
return super(account_cash_statement, self).balance_check(cr, uid, cash_id, journal_type, context)
if not self._equal_balance(cr, uid, cash_id, context):
raise osv.except_osv(_('Error !'), _('The closing balance should be the same than the computed balance !'))
raise osv.except_osv(_('Error !'), _('The closing balance should be the same than the computed balance!'))
return True
def statement_close(self, cr, uid, ids, journal_type='bank', context=None):

View File

@ -0,0 +1,125 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import time
from datetime import datetime
from dateutil.relativedelta import relativedelta
from operator import itemgetter
import netsvc
import pooler
from osv import fields, osv
import decimal_precision as dp
from tools.translate import _
# ---------------------------------------------------------
# Account Financial Report
# ---------------------------------------------------------
class account_financial_report(osv.osv):
_name = "account.financial.report"
_description = "Account Report"
def _get_level(self, cr, uid, ids, field_name, arg, context=None):
res = {}
for report in self.browse(cr, uid, ids, context=context):
level = 0
if report.parent_id:
level = report.parent_id.level + 1
res[report.id] = level
return res
def _get_children_by_order(self, cr, uid, ids, context=None):
res = []
for id in ids:
res.append(id)
ids2 = self.search(cr, uid, [('parent_id', '=', id)], order='sequence ASC', context=context)
res += self._get_children_by_order(cr, uid, ids2, context=context)
return res
def _get_balance(self, cr, uid, ids, name, args, context=None):
account_obj = self.pool.get('account.account')
res = {}
res_all = {}
for report in self.browse(cr, uid, ids, context=context):
balance = 0.0
if report.id in res_all:
balance = res_all[report.id]
elif report.type == 'accounts':
# it's the sum of balance of the linked accounts
for a in report.account_ids:
balance += a.balance
elif report.type == 'account_type':
# it's the sum of balance of the leaf accounts with such an account type
report_types = [x.id for x in report.account_type_ids]
account_ids = account_obj.search(cr, uid, [('user_type','in', report_types), ('type','!=','view')], context=context)
for a in account_obj.browse(cr, uid, account_ids, context=context):
balance += a.balance
elif report.type == 'account_report' and report.account_report_id:
# it's the amount of the linked report
res2 = self._get_balance(cr, uid, [report.account_report_id.id], 'balance', False, context=context)
res_all.update(res2)
for key, value in res2.items():
balance += value
elif report.type == 'sum':
# it's the sum of balance of the children of this account.report
#for child in report.children_ids:
res2 = self._get_balance(cr, uid, [rec.id for rec in report.children_ids], 'balance', False, context=context)
res_all.update(res2)
for key, value in res2.items():
balance += value
res[report.id] = balance
res_all[report.id] = balance
return res
_columns = {
'name': fields.char('Report Name', size=128, required=True, translate=True),
'parent_id': fields.many2one('account.financial.report', 'Parent'),
'children_ids': fields.one2many('account.financial.report', 'parent_id', 'Account Report'),
'sequence': fields.integer('Sequence'),
'balance': fields.function(_get_balance, 'Balance'),
'level': fields.function(_get_level, string='Level', store=True, type='integer'),
'type': fields.selection([
('sum','View'),
('accounts','Accounts'),
('account_type','Account Type'),
('account_report','Report Value'),
],'Type'),
'account_ids': fields.many2many('account.account', 'account_account_financial_report', 'report_line_id', 'account_id', 'Accounts'),
'display_detail': fields.selection([
('no_detail','No detail'),
('detail_flat','Display children flat'),
('detail_with_hierarchy','Display children with hierarchy')
], 'Display details'),
'account_report_id': fields.many2one('account.financial.report', 'Report Value'),
'account_type_ids': fields.many2many('account.account.type', 'account_account_financial_report_type', 'report_id', 'account_type_id', 'Account Types'),
'sign': fields.selection([(-1, 'Reverse balance sign'), (1, 'Preserve balance sign')], 'Sign on Reports', required=True, help='For accounts that are typically more debited than credited and that you would like to print as negative amounts in your reports, you should reverse the sign of the balance; e.g.: Expense account. The same applies for accounts that are typically more credited than debited and that you would like to print as positive amounts in your reports; e.g.: Income account.'),
}
_defaults = {
'type': 'sum',
'display_detail': 'detail_flat',
'sign': 1,
}
account_financial_report()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -68,7 +68,7 @@ class account_invoice(osv.osv):
tt = type2journal.get(type_inv, 'sale')
result = self.pool.get('account.analytic.journal').search(cr, uid, [('type','=',tt)], context=context)
if not result:
raise osv.except_osv(_('No Analytic Journal !'),_("You must define an analytic journal of type '%s' !") % (tt,))
raise osv.except_osv(_('No Analytic Journal !'),_("You must define an analytic journal of type '%s'!") % (tt,))
return result[0]
def _get_type(self, cr, uid, context=None):
@ -261,7 +261,7 @@ class account_invoice(osv.osv):
'partner_bank_id': fields.many2one('res.partner.bank', 'Bank Account',
help='Bank Account Number, Company bank account if Invoice is customer or supplier refund, otherwise Partner bank account number.', readonly=True, states={'draft':[('readonly',False)]}),
'move_lines':fields.function(_get_lines, type='many2many', relation='account.move.line', string='Entry Lines'),
'residual': fields.function(_amount_residual, digits_compute=dp.get_precision('Account'), string='To Pay',
'residual': fields.function(_amount_residual, digits_compute=dp.get_precision('Account'), string='Balance',
store={
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line','move_id'], 50),
'account.invoice.tax': (_get_invoice_tax, None, 50),
@ -414,7 +414,7 @@ class account_invoice(osv.osv):
pay_res_id = pay_line_data and pay_line_data[0].get('value_reference',False) and int(pay_line_data[0]['value_reference'].split(',')[1]) or False
if not rec_res_id and not pay_res_id:
raise osv.except_osv(_('Configuration Error !'),
_('Can not find account chart for this company, Please Create account.'))
_('Can not find a chart of accounts for this company, you should create one.'))
account_obj = self.pool.get('account.account')
rec_obj_acc = account_obj.browse(cr, uid, [rec_res_id])
pay_obj_acc = account_obj.browse(cr, uid, [pay_res_id])
@ -481,7 +481,7 @@ class account_invoice(osv.osv):
pterm_list.sort()
res = {'value':{'date_due': pterm_list[-1]}}
else:
raise osv.except_osv(_('Data Insufficient !'), _('The Payment Term of Supplier does not have Payment Term Lines(Computation) defined !'))
raise osv.except_osv(_('Data Insufficient !'), _('The payment term of supplier does not have a payment term line!'))
return res
def onchange_invoice_line(self, cr, uid, ids, lines):
@ -514,7 +514,7 @@ class account_invoice(osv.osv):
pay_res_id = pay_line_data and pay_line_data[0].get('value_reference',False) and int(pay_line_data[0]['value_reference'].split(',')[1]) or False
if not rec_res_id and not pay_res_id:
raise osv.except_osv(_('Configuration Error !'),
_('Can not find account chart for this company, Please Create account.'))
_('Can not find a chart of account, you should create one from the configuration of the accounting menu.'))
if type in ('out_invoice', 'out_refund'):
acc_id = rec_res_id
else:
@ -529,7 +529,7 @@ class account_invoice(osv.osv):
result_id = account_obj.search(cr, uid, [('name','=',line.account_id.name),('company_id','=',company_id)])
if not result_id:
raise osv.except_osv(_('Configuration Error !'),
_('Can not find account chart for this company in invoice line account, Please Create account.'))
_('Can not find a chart of account, you should create one from the configuration of the accounting menu.'))
inv_line_obj.write(cr, uid, [line.id], {'account_id': result_id[-1]})
else:
if invoice_line:
@ -730,13 +730,13 @@ class account_invoice(osv.osv):
key = (tax.tax_code_id.id, tax.base_code_id.id, tax.account_id.id)
tax_key.append(key)
if not key in compute_taxes:
raise osv.except_osv(_('Warning !'), _('Global taxes defined, but are not in invoice lines !'))
raise osv.except_osv(_('Warning !'), _('Global taxes defined, but they are not in invoice lines !'))
base = compute_taxes[key]['base']
if abs(base - tax.base) > inv.company_id.currency_id.rounding:
raise osv.except_osv(_('Warning !'), _('Tax base different !\nClick on compute to update tax base'))
raise osv.except_osv(_('Warning !'), _('Tax base different!\nClick on compute to update the tax base.'))
for key in compute_taxes:
if not key in tax_key:
raise osv.except_osv(_('Warning !'), _('Taxes missing !'))
raise osv.except_osv(_('Warning !'), _('Taxes are missing!\nClick on compute button.'))
def compute_invoice_totals(self, cr, uid, inv, company_currency, ref, invoice_move_lines):
total = 0
@ -794,34 +794,39 @@ class account_invoice(osv.osv):
line.append((0,0,val))
return line
def action_move_create(self, cr, uid, ids, *args):
def action_move_create(self, cr, uid, ids, context=None):
"""Creates invoice related analytics and financial move lines"""
ait_obj = self.pool.get('account.invoice.tax')
cur_obj = self.pool.get('res.currency')
period_obj = self.pool.get('account.period')
context = {}
for inv in self.browse(cr, uid, ids):
payment_term_obj = self.pool.get('account.payment.term')
journal_obj = self.pool.get('account.journal')
move_obj = self.pool.get('account.move')
if context is None:
context = {}
for inv in self.browse(cr, uid, ids, context=context):
if not inv.journal_id.sequence_id:
raise osv.except_osv(_('Error !'), _('Please define sequence on invoice journal'))
raise osv.except_osv(_('Error !'), _('Please define sequence on the journal related to this invoice.'))
if not inv.invoice_line:
raise osv.except_osv(_('No Invoice Lines !'), _('Please create some invoice lines.'))
if inv.move_id:
continue
ctx = context.copy()
ctx.update({'lang': inv.partner_id.lang})
if not inv.date_invoice:
self.write(cr, uid, [inv.id], {'date_invoice':time.strftime('%Y-%m-%d')})
self.write(cr, uid, [inv.id], {'date_invoice':time.strftime('%Y-%m-%d')}, context=ctx)
company_currency = inv.company_id.currency_id.id
# create the analytical lines
# one move line per invoice line
iml = self._get_analytic_lines(cr, uid, inv.id)
iml = self._get_analytic_lines(cr, uid, inv.id, context=ctx)
# check if taxes are all computed
ctx = context.copy()
ctx.update({'lang': inv.partner_id.lang})
compute_taxes = ait_obj.compute(cr, uid, inv.id, context=ctx)
self.check_tax_lines(cr, uid, inv, compute_taxes, ait_obj)
if inv.type in ('in_invoice', 'in_refund') and abs(inv.check_total - inv.amount_total) >= (inv.currency_id.rounding/2.0):
raise osv.except_osv(_('Bad total !'), _('Please verify the price of the invoice !\nThe real total does not match the computed total.'))
# I disabled the check_total feature
#if inv.type in ('in_invoice', 'in_refund') and abs(inv.check_total - inv.amount_total) >= (inv.currency_id.rounding/2.0):
# raise osv.except_osv(_('Bad total !'), _('Please verify the price of the invoice !\nThe real total does not match the computed total.'))
if inv.payment_term:
total_fixed = total_percent = 0
@ -832,7 +837,7 @@ class account_invoice(osv.osv):
total_percent += line.value_amount
total_fixed = (total_fixed * 100) / (inv.amount_total or 1.0)
if (total_fixed + total_percent) > 100:
raise osv.except_osv(_('Error !'), _("Can not create the invoice !\nThe related payment term is probably misconfigured as it gives a computed amount greater than the total invoiced amount."))
raise osv.except_osv(_('Error !'), _("Can not create the invoice !\nThe related payment term is probably misconfigured as it gives a computed amount greater than the total invoiced amount. The latest line of your payment term must be of type 'balance' to avoid rounding issues."))
# one move line per tax line
iml += ait_obj.move_line_get(cr, uid, inv.id)
@ -859,8 +864,8 @@ class account_invoice(osv.osv):
name = inv['name'] or '/'
totlines = False
if inv.payment_term:
totlines = self.pool.get('account.payment.term').compute(cr,
uid, inv.payment_term.id, total, inv.date_invoice or False)
totlines = payment_term_obj.compute(cr,
uid, inv.payment_term.id, total, inv.date_invoice or False, context=ctx)
if totlines:
res_amount_currency = total_currency
i = 0
@ -906,12 +911,12 @@ class account_invoice(osv.osv):
date = inv.date_invoice or time.strftime('%Y-%m-%d')
part = inv.partner_id.id
line = map(lambda x:(0,0,self.line_get_convert(cr, uid, x, part, date, context={})),iml)
line = map(lambda x:(0,0,self.line_get_convert(cr, uid, x, part, date, context=ctx)),iml)
line = self.group_lines(cr, uid, iml, line, inv)
journal_id = inv.journal_id.id
journal = self.pool.get('account.journal').browse(cr, uid, journal_id)
journal = journal_obj.browse(cr, uid, journal_id, context=ctx)
if journal.centralisation:
raise osv.except_osv(_('UserError'),
_('You cannot create an invoice on a centralised journal. Uncheck the centralised counterpart box in the related journal from the configuration menu.'))
@ -935,13 +940,14 @@ class account_invoice(osv.osv):
for i in line:
i[2]['period_id'] = period_id
move_id = self.pool.get('account.move').create(cr, uid, move, context=context)
new_move_name = self.pool.get('account.move').browse(cr, uid, move_id).name
move_id = move_obj.create(cr, uid, move, context=ctx)
new_move_name = move_obj.browse(cr, uid, move_id, context=ctx).name
# make the invoice point to that move
self.write(cr, uid, [inv.id], {'move_id': move_id,'period_id':period_id, 'move_name':new_move_name})
self.write(cr, uid, [inv.id], {'move_id': move_id,'period_id':period_id, 'move_name':new_move_name}, context=ctx)
# Pass invoice in context in method post: used if you want to get the same
# account move reference when creating the same invoice after a cancelled one:
self.pool.get('account.move').post(cr, uid, [move_id], context={'invoice':inv})
ctx.update({'invoice':inv})
move_obj.post(cr, uid, [move_id], context=ctx)
self._log_event(cr, uid, ids)
return True
@ -1262,7 +1268,7 @@ class account_invoice_line(osv.osv):
def _price_unit_default(self, cr, uid, context=None):
if context is None:
context = {}
if 'check_total' in context:
if context.get('check_total', False):
t = context['check_total']
for l in context.get('invoice_line', {}):
if isinstance(l, (list, tuple)) and len(l) >= 3 and l[2]:

View File

@ -152,8 +152,8 @@
<field name="currency_id" width="50"/>
<button name="%(action_account_change_currency)d" type="action" icon="terp-stock_effects-object-colorize" string="Change" attrs="{'invisible':[('state','!=','draft')]}" groups="account.group_account_user"/>
<newline/>
<field string="Supplier" name="partner_id" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)" context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}"/>
<field domain="[('partner_id','=',partner_id)]" name="address_invoice_id" context="{'default_partner_id': partner_id}"/>
<field string="Supplier" name="partner_id" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)" context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}" options='{"quick_create": false}'/>
<field domain="[('partner_id','=',partner_id)]" name="address_invoice_id" context="{'default_partner_id': partner_id}" options='{"quick_create": false}'/>
<field name="fiscal_position" groups="base.group_extended" widget="selection"/>
<newline/>
<field name="date_invoice"/>
@ -168,7 +168,7 @@
<field name="reference_type" nolabel="1" size="0"/>
<field name="reference" nolabel="1"/>
<field name="date_due"/>
<field name="check_total" required="2"/>
<field name="check_total" invisible="1"/>
<field colspan="4" default_get="{'check_total': check_total, 'invoice_line': invoice_line, 'address_invoice_id': address_invoice_id, 'partner_id': partner_id, 'price_type': 'price_type' in dir() and price_type or False}" name="invoice_line" context="{'type': type}" nolabel="1">
<tree string="Invoice lines">
<field name="product_id" on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.address_invoice_id, parent.currency_id, context, parent.company_id)"/>
@ -179,7 +179,7 @@
<field name="price_unit"/>
<!-- Removed if subtotal is set -->
<field name="price_subtotal"/>
<field name="name"/>
<field invisible="True" name="name"/>
<field invisible="True" name="uos_id"/>
</tree>
</field>
@ -263,9 +263,9 @@
<field name="currency_id" width="50"/>
<button name="%(action_account_change_currency)d" type="action" icon="terp-stock_effects-object-colorize" string="Change" attrs="{'invisible':[('state','!=','draft')]}" groups="account.group_account_user"/>
<newline/>
<field string="Customer" name="partner_id" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)" groups="base.group_user" context="{'search_default_customer': 1}"/>
<field domain="[('partner_id','=',partner_id)]" name="address_invoice_id" context="{'default_partner_id': partner_id}"/>
<field name="fiscal_position" groups="base.group_extended" widget="selection"/>
<field string="Customer" name="partner_id" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)" groups="base.group_user" context="{'search_default_customer': 1}" options='{"quick_create": false}'/>
<field domain="[('partner_id','=',partner_id)]" name="address_invoice_id" context="{'default_partner_id': partner_id}" options='{"quick_create": false}'/>
<field name="fiscal_position" groups="base.group_extended" widget="selection" options='{"quick_create": false}'/>
<newline/>
<field name="date_invoice"/>
<field name="period_id" domain="[('state', '=', 'draft')]" groups="account.group_account_user" widget="selection"/>
@ -303,7 +303,6 @@
<group col="8" colspan="4" groups="base.group_user">
<button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" icon="gtk-cancel" groups="base.group_no_one"/>
<button name="action_cancel_draft" states="cancel" string="Reset to Draft" type="object" icon="terp-stock_effects-object-colorize"/>
<button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','&lt;&gt;','paid'), ('reconciled', '=', True)]}" icon="gtk-convert" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/>
<button name="%(action_account_invoice_refund)d" type='action' string='Refund' states='open,paid' icon="gtk-execute"/>
<button name="invoice_proforma2" states="draft" string="PRO-FORMA" icon="terp-gtk-media-pause" groups="account.group_account_user"/>

View File

@ -94,7 +94,7 @@ class account_move_line(osv.osv):
if initial_bal and not context.get('periods', False) and not where_move_lines_by_date:
#we didn't pass any filter in the context, and the initial balance can't be computed using only the fiscalyear otherwise entries will be summed twice
#so we have to invalidate this query
raise osv.except_osv(_('Warning !'),_("You haven't supplied enough argument to compute the initial balance"))
raise osv.except_osv(_('Warning !'),_("You haven't supplied enough argument to compute the initial balance, please select a period and journal in the context."))
if context.get('journal_ids', False):
@ -581,14 +581,14 @@ class account_move_line(osv.osv):
lines = self.browse(cr, uid, ids, context=context)
for l in lines:
if l.account_id.type == 'view':
raise osv.except_osv(_('Error :'), _('You can not create move line on view account %s %s') % (l.account_id.code, l.account_id.name))
raise osv.except_osv(_('Error :'), _('You can not create journal items on a "view" account %s %s') % (l.account_id.code, l.account_id.name))
return True
def _check_no_closed(self, cr, uid, ids, context=None):
lines = self.browse(cr, uid, ids, context=context)
for l in lines:
if l.account_id.type == 'closed':
raise osv.except_osv(_('Error :'), _('You can not create move line on closed account %s %s') % (l.account_id.code, l.account_id.name))
raise osv.except_osv(_('Error :'), _('You can not create journal items on a closed account %s %s') % (l.account_id.code, l.account_id.name))
return True
def _check_company_id(self, cr, uid, ids, context=None):
@ -613,11 +613,11 @@ class account_move_line(osv.osv):
return True
_constraints = [
(_check_no_view, 'You can not create move line on view account.', ['account_id']),
(_check_no_closed, 'You can not create move line on closed account.', ['account_id']),
(_check_company_id, 'Company must be same for its related account and period.', ['company_id']),
(_check_date, 'The date of your Journal Entry is not in the defined period!', ['date']),
(_check_currency, 'The selected account of your Journal Entry must receive a value in its secondary currency', ['currency_id']),
(_check_no_view, 'You can not create journal items on an account of type view.', ['account_id']),
(_check_no_closed, 'You can not create journal items on closed account.', ['account_id']),
(_check_company_id, 'Company must be the same for its related account and period.', ['company_id']),
(_check_date, 'The date of your Journal Entry is not in the defined period! You should change the date or remove this constraint from the journal.', ['date']),
(_check_currency, 'The selected account of your Journal Entry forces to provide a secondary currency. You should remove the secondary currency on the account or select a multi-currency view on the journal.', ['currency_id']),
]
#TODO: ONCHANGE_ACCOUNT_ID: set account_tax_id
@ -832,7 +832,7 @@ class account_move_line(osv.osv):
raise osv.except_osv(_('Error'), _('Entry is already reconciled'))
account = account_obj.browse(cr, uid, account_id, context=context)
if not context.get('fy_closing', False) and not account.reconcile:
raise osv.except_osv(_('Error'), _('The account is not defined to be reconciled !'))
raise osv.except_osv(_('Error'), _('This account does not allow reconciliation! You should update the account definition to change this.'))
if r[0][1] != None:
raise osv.except_osv(_('Error'), _('Some entries are already reconciled !'))
@ -1212,9 +1212,9 @@ class account_move_line(osv.osv):
for line in self.browse(cr, uid, ids, context=context):
err_msg = _('Move name (id): %s (%s)') % (line.move_id.name, str(line.move_id.id))
if line.move_id.state <> 'draft' and (not line.journal_id.entry_posted):
raise osv.except_osv(_('Error !'), _('You can not do this modification on a confirmed entry ! Please note that you can just change some non important fields ! \n%s') % err_msg)
raise osv.except_osv(_('Error !'), _('You can not do this modification on a confirmed entry! You can just change some non legal fields or you must unconfirm the journal entry first! \n%s') % err_msg)
if line.reconcile_id:
raise osv.except_osv(_('Error !'), _('You can not do this modification on a reconciled entry ! Please note that you can just change some non important fields ! \n%s') % err_msg)
raise osv.except_osv(_('Error !'), _('You can not do this modification on a reconciled entry! You can just change some non legal fields or you must unreconcile first!\n%s') % err_msg)
t = (line.journal_id.id, line.period_id.id)
if t not in done:
self._update_journal_check(cr, uid, line.journal_id.id, line.period_id.id, context)
@ -1247,7 +1247,7 @@ class account_move_line(osv.osv):
if 'period_id' not in context or not isinstance(context.get('period_id', ''), (int, long)):
period_candidate_ids = self.pool.get('account.period').name_search(cr, uid, name=context.get('period_id',''))
if len(period_candidate_ids) != 1:
raise osv.except_osv(_('Encoding error'), _('No period found or period given is ambigous.'))
raise osv.except_osv(_('Encoding error'), _('No period found or more than one period found for the given date.'))
context['period_id'] = period_candidate_ids[0][0]
if not context.get('journal_id', False) and context.get('search_default_journal_id', False):
context['journal_id'] = context.get('search_default_journal_id')

View File

@ -18,7 +18,7 @@
name="account.invoice"
rml="account/report/account_print_invoice.rml"
string="Invoices"
attachment="(object.state in ('open','paid')) and ('INV'+(object.number or '').replace('/',''))"
attachment="(object.state in ('open','paid')) and ('INV'+(object.number or '').replace('/','')+'.pdf')"
usage="default"
multi="True"/>
<report id="account_transfers" model="account.transfer" name="account.transfer" string="Transfers" xml="account/report/transfer.xml" xsl="account/report/transfer.xsl"/>

View File

@ -2451,7 +2451,8 @@
<field name ="seq_journal" groups="base.group_extended"/>
<field name="sale_tax" attrs="{'invisible': [('complete_tax_set', '!=', True)]}" domain="[('chart_template_id', '=', chart_template_id),('parent_id','=',False),('type_tax_use','in',('sale','all'))]"/>
<field name="purchase_tax" attrs="{'invisible': [('complete_tax_set', '!=', True)]}" domain="[('chart_template_id', '=', chart_template_id),('parent_id','=',False),('type_tax_use','in',('purchase', 'all'))]"/>
<field name ="sale_tax_rate" attrs="{'invisible': [('complete_tax_set', '=', True)]}"/>
<newline/>
<field name ="sale_tax_rate" attrs="{'invisible': [('complete_tax_set', '=', True)]}" on_change="onchange_tax_rate(sale_tax_rate)"/>
<field name ="purchase_tax_rate" attrs="{'invisible': [('complete_tax_set', '=', True)]}"/>
<field name ="complete_tax_set" invisible="1"/>
<newline/> <!-- extended view because the web UI is not good for one2many -->

View File

@ -382,6 +382,7 @@
<field name="property_account_income_opening" ref="conf_o_income"/>
<field name="property_account_expense_opening" ref="conf_o_expense"/>
<field name="property_reserve_and_surplus_account" ref="conf_a_reserve_and_surplus"/>
<field name="complete_tax_set" eval="False"/>
</record>
<!-- VAT Codes -->

View File

@ -2,9 +2,9 @@
<openerp>
<data noupdate="1">
<record id="demo_invoice_0" model="account.invoice">
<field name="date_due">2011-07-21</field>
<field name="date_due" eval="time.strftime('%Y')+'-01-30'"/>
<field name="payment_term" ref="account.account_payment_term"/>
<field name="journal_id" ref="account.refund_expenses_journal"/>
<field name="journal_id" ref="account.expenses_journal"/>
<field name="currency_id" ref="base.EUR"/>
<field name="address_invoice_id" ref="base.res_partner_address_wong"/>
<field name="user_id" ref="base.user_demo"/>
@ -15,7 +15,7 @@
<field name="type">in_invoice</field>
<field name="account_id" ref="account.a_pay"/>
<field eval="0" name="reconciled"/>
<field name="date_invoice">2011-06-01</field>
<field name="date_invoice" eval="time.strftime('%Y')+'-01-01'"/>
<field eval="14.0" name="amount_untaxed"/>
<field eval="14.0" name="amount_total"/>
<field name="partner_id" ref="base.res_partner_maxtor"/>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-12-23 09:55+0000\n"
"PO-Revision-Date: 2011-11-07 12:46+0000\n"
"PO-Revision-Date: 2012-01-01 15:01+0000\n"
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
"Language-Team: Czech <cs@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-24 05:44+0000\n"
"X-Launchpad-Export-Date: 2012-01-02 05:01+0000\n"
"X-Generator: Launchpad (build 14560)\n"
"X-Poedit-Language: Czech\n"
@ -2669,7 +2669,7 @@ msgstr ""
#: model:ir.actions.server,name:account.ir_actions_server_action_wizard_multi_chart
#: model:ir.ui.menu,name:account.menu_act_ir_actions_bleble
msgid "New Company Financial Setting"
msgstr "Nové finananční nastavení společnosti"
msgstr "Nové finanční nastavení společnosti"
#. module: account
#: view:account.installer:0

View File

@ -8,35 +8,35 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-23 09:55+0000\n"
"PO-Revision-Date: 2011-06-06 18:06+0000\n"
"Last-Translator: Hector Rojas (doingIT.cl) <Unknown>\n"
"PO-Revision-Date: 2011-12-30 18:55+0000\n"
"Last-Translator: doingit translator <Unknown>\n"
"Language-Team: Spanish (Chile) <es_CL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-24 05:51+0000\n"
"X-Launchpad-Export-Date: 2011-12-31 05:55+0000\n"
"X-Generator: Launchpad (build 14560)\n"
#. module: account
#: view:account.invoice.report:0
#: view:analytic.entries.report:0
msgid "last month"
msgstr ""
msgstr "el mes pasado"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
msgid "System payment"
msgstr ""
msgstr "Sistema de pagos"
#. module: account
#: view:account.journal:0
msgid "Other Configuration"
msgstr ""
msgstr "Otra configuración"
#. module: account
#: view:account.move.reconcile:0
msgid "Journal Entry Reconcile"
msgstr "Conciliar asiento contable"
msgstr "entrada de revista conciliable"
#. module: account
#: view:account.account:0
@ -44,12 +44,12 @@ msgstr "Conciliar asiento contable"
#: view:account.move:0
#: view:account.move.line:0
msgid "Account Statistics"
msgstr ""
msgstr "cuentas estadisticas"
#. module: account
#: view:account.invoice:0
msgid "Proforma/Open/Paid Invoices"
msgstr ""
msgstr "sistema de pagos"
#. module: account
#: field:report.invoice.created,residual:0
@ -60,32 +60,32 @@ msgstr "Pendiente"
#: code:addons/account/account_invoice.py:805
#, python-format
msgid "Please define sequence on invoice journal"
msgstr ""
msgstr "Defina una secuencia en el diario de la factura"
#. module: account
#: constraint:account.period:0
msgid "Error ! The duration of the Period(s) is/are invalid. "
msgstr ""
msgstr "¡Error! La duración de el/los período(s) no es válida. "
#. module: account
#: field:account.analytic.line,currency_id:0
msgid "Account currency"
msgstr ""
msgstr "Moneda contable"
#. module: account
#: view:account.tax:0
msgid "Children Definition"
msgstr ""
msgstr "definicion de los niños"
#. module: account
#: model:ir.model,name:account.model_report_aged_receivable
msgid "Aged Receivable Till Today"
msgstr "A cobrar vencidos hasta hoy"
msgstr "edad aceptable hasta hoy"
#. module: account
#: model:process.transition,name:account.process_transition_invoiceimport0
msgid "Import from invoice or payment"
msgstr ""
msgstr "Importar desde factura o pago"
#. module: account
#: model:ir.model,name:account.model_wizard_multi_charts_accounts
@ -95,7 +95,7 @@ msgstr ""
#. module: account
#: view:account.move:0
msgid "Total Debit"
msgstr ""
msgstr "Total debe"
#. module: account
#: view:account.unreconcile:0
@ -104,7 +104,7 @@ msgid ""
"that are linked to those transactions because they will not be disabled"
msgstr ""
"Si rompe la conciliación de transacciones, también debe verificar todas la "
"acciones que están relacionadas con esas transacciones porque no serán "
"acciones que están relacionadas con esas transacciones porqué no serán "
"deshabilitadas."
#. module: account
@ -113,6 +113,8 @@ msgid ""
"Configuration error! The currency chosen should be shared by the default "
"accounts too."
msgstr ""
"error de configuracion¡ la moneda elegida debe ser compartida con las "
"cuentas defectuosas tambien."
#. module: account
#: report:account.invoice:0
@ -142,7 +144,7 @@ msgstr ""
#. module: account
#: view:account.open.closed.fiscalyear:0
msgid "Choose Fiscal Year "
msgstr ""
msgstr "Seleccione el ejercicio fiscal "
#. module: account
#: help:account.payment.term,active:0
@ -150,45 +152,47 @@ msgid ""
"If the active field is set to False, it will allow you to hide the payment "
"term without removing it."
msgstr ""
"Si el campo activo se desmarca, permite ocultar el plazo de pago sin "
"eliminarlo."
#. module: account
#: code:addons/account/account_invoice.py:1423
#, python-format
msgid "Warning!"
msgstr "¡Advertencia!"
msgstr "¡Atención!"
#. module: account
#: code:addons/account/account.py:3182
#, python-format
msgid "Miscellaneous Journal"
msgstr ""
msgstr "diario miscelaneo"
#. module: account
#: field:account.fiscal.position.account,account_src_id:0
#: field:account.fiscal.position.account.template,account_src_id:0
msgid "Account Source"
msgstr ""
msgstr "fuente de la cuenta"
#. module: account
#: model:ir.actions.act_window,name:account.act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal
msgid "All Analytic Entries"
msgstr ""
msgstr "todas las entradas analiticas"
#. module: account
#: model:ir.actions.act_window,name:account.action_view_created_invoice_dashboard
msgid "Invoices Created Within Past 15 Days"
msgstr ""
msgstr "Facturas creadas en los últimos 15 días"
#. module: account
#: field:accounting.report,label_filter:0
msgid "Column Label"
msgstr ""
msgstr "etuquetas en la columnas"
#. module: account
#: code:addons/account/wizard/account_move_journal.py:95
#, python-format
msgid "Journal: %s"
msgstr ""
msgstr "Diario: %s"
#. module: account
#: help:account.analytic.journal,type:0
@ -197,22 +201,25 @@ msgid ""
"invoice) to create analytic entries, OpenERP will look for a matching "
"journal of the same type."
msgstr ""
"Indica el tipo de diario analítico. Cuando se necesita para un documento "
"(por ej. una factura) para crear asientos analíticos, OpenERP buscará un "
"diario coincidente del mismo tipo."
#. module: account
#: model:ir.actions.act_window,name:account.action_account_tax_template_form
#: model:ir.ui.menu,name:account.menu_action_account_tax_template_form
msgid "Tax Templates"
msgstr ""
msgstr "plantillas de impuestos"
#. module: account
#: model:ir.model,name:account.model_account_tax
msgid "account.tax"
msgstr "account.tax"
msgstr "impuesto de contabilidad"
#. module: account
#: model:ir.model,name:account.model_account_move_line_reconcile_select
msgid "Move line reconcile select"
msgstr ""
msgstr "Seleccionar conciliación línea movimiento"
#. module: account
#: help:account.tax.code,notprintable:0
@ -221,28 +228,31 @@ msgid ""
"Check this box if you don't want any VAT related to this Tax Code to appear "
"on invoices"
msgstr ""
"Marque esta opción si desea que no aparezca en las facturas ningún IVA "
"relacionado con este código de impuesto."
#. module: account
#: code:addons/account/account_invoice.py:1236
#, python-format
msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)"
msgstr ""
"La factura '%s' está parcialmente pagada: %s%s de %s%s (%s%s pendiente)"
#. module: account
#: model:process.transition,note:account.process_transition_supplierentriesreconcile0
msgid "Accounting entries are an input of the reconciliation."
msgstr ""
msgstr "Los asientos contables son una entrada de la conciliación."
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_management_belgian_reports
msgid "Belgian Reports"
msgstr ""
msgstr "Informes Belgas"
#. module: account
#: code:addons/account/account_move_line.py:1199
#, python-format
msgid "You can not add/modify entries in a closed journal."
msgstr ""
msgstr "no ´puede añadir o modificcar entradas en un diario cerrado"
#. module: account
#: help:account.account,user_type:0
@ -251,6 +261,9 @@ msgid ""
"legal reports, and set the rules to close a fiscal year and generate opening "
"entries."
msgstr ""
"este tipo de cuenta es usado con propositos informativos, para generar "
"reportes especificos del pais, y una serie de reglar para cerrar el año "
"fiscal y generar entradas"
#. module: account
#: report:account.overdue:0
@ -262,7 +275,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_view_account_use_model
#: model:ir.ui.menu,name:account.menu_action_manual_recurring
msgid "Manual Recurring"
msgstr ""
msgstr "manual al cual recurrir"
#. module: account
#: view:account.fiscalyear.close.state:0
@ -379,7 +392,7 @@ msgstr ""
#. module: account
#: field:account.open.closed.fiscalyear,fyear_id:0
msgid "Fiscal Year to Open"
msgstr ""
msgstr "año fiscal para abrir"
#. module: account
#: help:account.journal,sequence_id:0
@ -401,7 +414,7 @@ msgstr "Total crédito"
#. module: account
#: view:account.move.line.unreconcile.select:0
msgid "Open For Unreconciliation"
msgstr ""
msgstr "abrierto para reconciliacion"
#. module: account
#: field:account.account.template,chart_template_id:0
@ -419,7 +432,7 @@ msgstr ""
#. module: account
#: field:accounting.report,enable_filter:0
msgid "Enable Comparison"
msgstr ""
msgstr "comparacion no disponible"
#. module: account
#: help:account.journal.period,state:0
@ -470,12 +483,12 @@ msgstr ""
#. module: account
#: model:ir.model,name:account.model_account_invoice_confirm
msgid "Confirm the selected invoices"
msgstr ""
msgstr "Confirmar las facturas seleccionadas"
#. module: account
#: field:account.addtmpl.wizard,cparent_id:0
msgid "Parent target"
msgstr ""
msgstr "Destino padre"
#. module: account
#: field:account.bank.statement,account_id:0
@ -503,7 +516,7 @@ msgstr ""
#. module: account
#: sql_constraint:res.company:0
msgid "The company name must be unique !"
msgstr ""
msgstr "el nombre de la compañia debe ser unico"
#. module: account
#: model:ir.model,name:account.model_account_invoice_refund
@ -561,7 +574,7 @@ msgstr ""
#. module: account
#: selection:account.installer,period:0
msgid "3 Monthly"
msgstr ""
msgstr "cada tres meses"
#. module: account
#: view:account.unreconcile.reconcile:0
@ -584,7 +597,7 @@ msgstr ""
#: field:account.financial.report,account_report_id:0
#: selection:account.financial.report,type:0
msgid "Report Value"
msgstr ""
msgstr "valor reportado"
#. module: account
#: view:account.entries.report:0

View File

@ -10,20 +10,21 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-23 09:55+0000\n"
"PO-Revision-Date: 2011-01-18 05:33+0000\n"
"Last-Translator: Cristian Salamea (Gnuthink) <ovnicraft@gmail.com>\n"
"PO-Revision-Date: 2011-12-31 16:16+0000\n"
"Last-Translator: Christopher Ormaza - (Ecuadorenlinea.net) "
"<chris.ormaza@gmail.com>\n"
"Language-Team: Spanish (Ecuador) <es_EC@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-24 05:52+0000\n"
"X-Launchpad-Export-Date: 2012-01-01 05:31+0000\n"
"X-Generator: Launchpad (build 14560)\n"
#. module: account
#: view:account.invoice.report:0
#: view:analytic.entries.report:0
msgid "last month"
msgstr ""
msgstr "último mes"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@ -51,7 +52,7 @@ msgstr "Estadísticas de cuentas"
#. module: account
#: view:account.invoice:0
msgid "Proforma/Open/Paid Invoices"
msgstr ""
msgstr "Facturas en estado Proforma/Abierta/Pagada"
#. module: account
#: field:report.invoice.created,residual:0
@ -114,6 +115,8 @@ msgid ""
"Configuration error! The currency chosen should be shared by the default "
"accounts too."
msgstr ""
"Error de Configuración! La moneda seleccionada debe ser compartida por las "
"cuentas por defecto tambíen"
#. module: account
#: report:account.invoice:0
@ -164,7 +167,7 @@ msgstr "Aviso!"
#: code:addons/account/account.py:3182
#, python-format
msgid "Miscellaneous Journal"
msgstr ""
msgstr "Diario General"
#. module: account
#: field:account.fiscal.position.account,account_src_id:0
@ -185,7 +188,7 @@ msgstr "Facturas creadas en los últimos 15 días"
#. module: account
#: field:accounting.report,label_filter:0
msgid "Column Label"
msgstr ""
msgstr "Etiqueta de Columna"
#. module: account
#: code:addons/account/wizard/account_move_journal.py:95
@ -259,6 +262,9 @@ msgid ""
"legal reports, and set the rules to close a fiscal year and generate opening "
"entries."
msgstr ""
"Tipo de Cuenta es usado para información, para generar reportes legales "
"específicos por país, y asignar las reglas para el cierre de ejercicio "
"fiscal y generar los asiento de apertura"
#. module: account
#: report:account.overdue:0
@ -438,7 +444,7 @@ msgstr "El importe expresado en otra divisa opcional."
#. module: account
#: field:accounting.report,enable_filter:0
msgid "Enable Comparison"
msgstr ""
msgstr "Comparación habilitada"
#. module: account
#: help:account.journal.period,state:0
@ -529,7 +535,7 @@ msgstr "Seleccionar Plan de Cuentas"
#. module: account
#: sql_constraint:res.company:0
msgid "The company name must be unique !"
msgstr ""
msgstr "¡El nombre de la compañía debe ser único!"
#. module: account
#: model:ir.model,name:account.model_account_invoice_refund
@ -617,7 +623,7 @@ msgstr ""
#. module: account
#: view:account.entries.report:0
msgid "Journal Entries with period in current year"
msgstr ""
msgstr "Asientos de Diario con período en el año actual"
#. module: account
#: report:account.central.journal:0
@ -633,7 +639,7 @@ msgstr "La secuencia principal debe ser diferente de la actual!"
#: code:addons/account/account.py:3376
#, python-format
msgid "TAX-S-%s"
msgstr ""
msgstr "Impuesto-S-%s"
#. module: account
#: field:account.invoice.tax,tax_amount:0
@ -716,12 +722,12 @@ msgstr "Empresas conciliadas hoy"
#. module: account
#: view:report.hr.timesheet.invoice.journal:0
msgid "Sale journal in this year"
msgstr ""
msgstr "Diario de Ventas en este año"
#. module: account
#: selection:account.financial.report,display_detail:0
msgid "Display children with hierarchy"
msgstr ""
msgstr "Mostrar los hijos con herencia"
#. module: account
#: selection:account.payment.term.line,value:0
@ -743,7 +749,7 @@ msgstr "Asientos analiticos por línea"
#. module: account
#: field:account.invoice.refund,filter_refund:0
msgid "Refund Method"
msgstr ""
msgstr "Metodo de Devolución"
#. module: account
#: code:addons/account/wizard/account_change_currency.py:38
@ -754,7 +760,7 @@ msgstr "You can only change currency for Draft Invoice !"
#. module: account
#: model:ir.ui.menu,name:account.menu_account_report
msgid "Financial Report"
msgstr ""
msgstr "Reporte Financiero"
#. module: account
#: view:account.analytic.journal:0
@ -784,7 +790,7 @@ msgstr "La referencia de la empresa de esta factura."
#. module: account
#: view:account.invoice.report:0
msgid "Supplier Invoices And Refunds"
msgstr ""
msgstr "Factura de Proveedor y Facturas Rectificativas"
#. module: account
#: view:account.move.line.unreconcile.select:0
@ -813,7 +819,7 @@ msgstr "Conciliación Automatica"
#: code:addons/account/account_move_line.py:1250
#, python-format
msgid "No period found or period given is ambigous."
msgstr ""
msgstr "No se encontró período o el período dado es ambiguo"
#. module: account
#: model:ir.actions.act_window,help:account.action_account_gain_loss
@ -823,6 +829,11 @@ msgid ""
"or Loss you'd realized if those transactions were ended today. Only for "
"accounts having a secondary currency set."
msgstr ""
"Cuando hace transacciones multi-moneda, usted puede perder o ganar algún "
"monto por los cambios de tazas. Este menú le da a usted un pronóstico de las "
"Pérdidas y Ganancias que usted obtendrá si estas transacciones son "
"finalizadas hoy. Solo para las cuentas que tienen una moneda secundaria "
"asignada"
#. module: account
#: selection:account.entries.report,month:0
@ -868,7 +879,7 @@ msgstr "Cálculo"
#. module: account
#: selection:account.invoice.refund,filter_refund:0
msgid "Cancel: refund invoice and reconcile"
msgstr ""
msgstr "Cancelar: Rectificara la Factura y la Reconciliara"
#. module: account
#: field:account.cashbox.line,pieces:0
@ -966,7 +977,7 @@ msgstr ""
#: code:addons/account/account.py:2578
#, python-format
msgid "I can not locate a parent code for the template account!"
msgstr ""
msgstr "No es posible localizar un código padre para la plantilla de cuenta"
#. module: account
#: view:account.analytic.line:0
@ -1042,11 +1053,13 @@ msgid ""
"You cannot change the type of account from '%s' to '%s' type as it contains "
"journal items!"
msgstr ""
"Usted no puede cambiar el tipo de cuenta de '%s' a '%s' si esta ya ha sido "
"usada en movimientos contables"
#. module: account
#: field:account.report.general.ledger,sortby:0
msgid "Sort by"
msgstr ""
msgstr "Ordenar por"
#. module: account
#: help:account.fiscalyear.close,fy_id:0
@ -1067,7 +1080,7 @@ msgstr ""
#, python-format
msgid ""
"You have to provide an account for the write off/exchange difference entry !"
msgstr ""
msgstr "Usted tiene que configurar una cuenta para el asiento de descuadre"
#. module: account
#: view:account.tax:0
@ -1106,7 +1119,7 @@ msgstr "Generar asientos antes:"
#. module: account
#: view:account.move.line:0
msgid "Unbalanced Journal Items"
msgstr ""
msgstr "Elementos de Diario Descuadrados"
#. module: account
#: model:account.account.type,name:account.data_account_type_bank
@ -1130,6 +1143,8 @@ msgid ""
"Total amount (in Secondary currency) for transactions held in secondary "
"currency for this account."
msgstr ""
"El monto total(En la moneda secundaria) para las transacciones en moneda "
"secundaria para esta cuenta"
#. module: account
#: field:account.fiscal.position.tax,tax_dest_id:0
@ -1145,7 +1160,7 @@ msgstr "Centralización del haber"
#. module: account
#: view:report.account_type.sales:0
msgid "All Months Sales by type"
msgstr ""
msgstr "Todas las ventas del mes por tipo"
#. module: account
#: model:ir.actions.act_window,help:account.action_invoice_tree2
@ -1174,12 +1189,12 @@ msgstr "Cancelar Facturas"
#. module: account
#: help:account.journal,code:0
msgid "The code will be displayed on reports."
msgstr ""
msgstr "El código debe ser mostrado en los reportes"
#. module: account
#: view:account.tax.template:0
msgid "Taxes used in Purchases"
msgstr ""
msgstr "Impuestos usados en las compras"
#. module: account
#: field:account.invoice.tax,tax_code_id:0
@ -1211,6 +1226,8 @@ msgid ""
"You can not use this general account in this journal, check the tab 'Entry "
"Controls' on the related journal !"
msgstr ""
"Usted no puede usar esta cuenta general en este diario, verifique en la "
"pestaña 'Controles de Asiento' en el diario relacionado!"
#. module: account
#: field:account.move.line.reconcile,trans_nbr:0
@ -1246,7 +1263,7 @@ msgstr "Otros"
#. module: account
#: view:account.subscription:0
msgid "Draft Subscription"
msgstr ""
msgstr "Suscripción en Borrador"
#. module: account
#: view:account.account:0
@ -1319,7 +1336,7 @@ msgstr "Seleccione un período de inicio y fin"
#. module: account
#: model:account.financial.report,name:account.account_financial_report_profitandloss0
msgid "Profit and Loss"
msgstr ""
msgstr "Pérdidas y Ganancias"
#. module: account
#: model:ir.model,name:account.model_account_account_template
@ -1474,6 +1491,8 @@ msgid ""
"By unchecking the active field, you may hide a fiscal position without "
"deleting it."
msgstr ""
"De seleccionando el campo Activo, usted puede ocultar la posición fiscal sin "
"borrarla"
#. module: account
#: model:ir.model,name:account.model_temp_range
@ -1551,7 +1570,7 @@ msgstr "Buscar Extractos Bancarios"
#. module: account
#: view:account.move.line:0
msgid "Unposted Journal Items"
msgstr ""
msgstr "Asiento de Diario no Asentados"
#. module: account
#: view:account.chart.template:0
@ -1622,6 +1641,8 @@ msgid ""
"You can not validate a journal entry unless all journal items belongs to the "
"same chart of accounts !"
msgstr ""
"Usted no puede validar el asiento de diario si los asientos no pertenecen al "
"mismo plan contable!"
#. module: account
#: model:process.node,note:account.process_node_analytic0
@ -1701,7 +1722,7 @@ msgstr ""
#. module: account
#: view:account.analytic.account:0
msgid "Pending Accounts"
msgstr ""
msgstr "Cuentas Pendientes"
#. module: account
#: code:addons/account/account_move_line.py:835
@ -1796,7 +1817,7 @@ msgstr "Usted no puede crear la línea de avanzar en cuenta cerrada."
#: code:addons/account/account.py:428
#, python-format
msgid "Error!"
msgstr ""
msgstr "Error!"
#. module: account
#: sql_constraint:account.move.line:0
@ -1828,7 +1849,7 @@ msgstr "Asientos por linea"
#. module: account
#: field:account.vat.declaration,based_on:0
msgid "Based on"
msgstr ""
msgstr "Basado en"
#. module: account
#: field:account.invoice,move_id:0
@ -1900,6 +1921,9 @@ msgid ""
"will be added, Loss : Amount will be deducted.), as calculated in Profit & "
"Loss Report"
msgstr ""
"Esta cuenta es usada para transferir las Pérdidas y Ganancias(Si esta es "
"Ganancia: El monto sera sumado, Pérdida: El monto sera reducido), calculada "
"en el reporte de Pérdidas y Ganancias"
#. module: account
#: model:process.node,note:account.process_node_reconciliation0
@ -1917,7 +1941,7 @@ msgstr "Definición de Impuesto"
#: code:addons/account/account.py:3076
#, python-format
msgid "Deposit"
msgstr ""
msgstr "Depósito"
#. module: account
#: help:wizard.multi.charts.accounts,seq_journal:0
@ -1957,6 +1981,7 @@ msgstr "Imagen"
#: model:ir.actions.act_window,help:account.action_account_financial_report_tree
msgid "Makes a generic system to draw financial reports easily."
msgstr ""
"Realiza un sistema genérico para elaborar reportes financieros facilmente"
#. module: account
#: view:account.invoice:0
@ -1976,7 +2001,7 @@ msgstr ""
#. module: account
#: view:account.analytic.line:0
msgid "Analytic Journal Items related to a sale journal."
msgstr ""
msgstr "Asientos Analíticos relacionados a un diario de ventas"
#. module: account
#: help:account.bank.statement,name:0
@ -2126,7 +2151,7 @@ msgstr ""
#. module: account
#: report:account.invoice:0
msgid "Customer Code"
msgstr ""
msgstr "Código de Cliente"
#. module: account
#: view:account.installer:0
@ -2162,7 +2187,7 @@ msgstr "Descripción"
#: code:addons/account/account.py:3375
#, python-format
msgid "Tax Paid at %s"
msgstr ""
msgstr "Impuestos pagados a %s"
#. module: account
#: code:addons/account/account.py:3189
@ -2273,7 +2298,7 @@ msgstr "Dejar vacío para todo el ejercicio fiscal"
#. module: account
#: field:account.invoice.report,account_line_id:0
msgid "Account Line"
msgstr ""
msgstr "Línea de Cuenta"
#. module: account
#: code:addons/account/account.py:1465

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-12-23 09:55+0000\n"
"PO-Revision-Date: 2011-11-25 15:24+0000\n"
"Last-Translator: Numérigraphe <Unknown>\n"
"PO-Revision-Date: 2012-01-02 11:15+0000\n"
"Last-Translator: Olivier Dony (OpenERP) <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-24 05:45+0000\n"
"X-Generator: Launchpad (build 14560)\n"
"X-Launchpad-Export-Date: 2012-01-03 04:48+0000\n"
"X-Generator: Launchpad (build 14616)\n"
#. module: account
#: code:addons/account/account_move_line.py:1199
@ -90,7 +90,7 @@ msgstr ""
#: view:account.invoice.report:0
#: view:analytic.entries.report:0
msgid "last month"
msgstr ""
msgstr "Le mois dernier"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@ -326,7 +326,7 @@ msgstr ""
#. module: account
#: report:account.overdue:0
msgid "Sub-Total :"
msgstr "Sous-Total :"
msgstr "Sous-total :"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_use_model_create_entry
@ -865,7 +865,7 @@ msgstr "Délettrage"
#. module: account
#: view:account.payment.term.line:0
msgid "At 14 net days 2 percent, remaining amount at 30 days end of month."
msgstr ""
msgstr "2% à 15 jours net, le solde à 30 jours fin de mois"
#. module: account
#: model:ir.model,name:account.model_account_analytic_journal_report
@ -881,7 +881,7 @@ msgstr "Rapprochement automatique"
#: code:addons/account/account_move_line.py:1250
#, python-format
msgid "No period found or period given is ambigous."
msgstr ""
msgstr "Période fiscale ambigüe ou introuvable."
#. module: account
#: model:ir.actions.act_window,help:account.action_account_gain_loss
@ -1116,7 +1116,7 @@ msgstr ""
#. module: account
#: field:account.report.general.ledger,sortby:0
msgid "Sort by"
msgstr ""
msgstr "Trier par"
#. module: account
#: help:account.fiscalyear.close,fy_id:0
@ -1391,7 +1391,7 @@ msgstr "Sélectionnez un début et une fin de période"
#. module: account
#: model:account.financial.report,name:account.account_financial_report_profitandloss0
msgid "Profit and Loss"
msgstr ""
msgstr "Pertes et profits"
#. module: account
#: model:ir.model,name:account.model_account_account_template
@ -1520,7 +1520,7 @@ msgstr "Sauter l'état \"Brouillon\" pour les écritures manuelles"
#: view:account.invoice.report:0
#: field:account.invoice.report,price_total:0
msgid "Total Without Tax"
msgstr "Total hors taxe"
msgstr "Total HT"
#. module: account
#: model:ir.actions.act_window,help:account.action_move_journal_line
@ -1744,7 +1744,7 @@ msgstr "Partenaire inconnu"
#. module: account
#: field:account.tax.code,sum:0
msgid "Year Sum"
msgstr "Montant total de l'exercice"
msgstr "Total de l'exercice"
#. module: account
#: code:addons/account/account_invoice.py:1424
@ -1866,7 +1866,7 @@ msgstr "Impossible de créer une ligne d'écriture sur un compte clôturé"
#: code:addons/account/account.py:428
#, python-format
msgid "Error!"
msgstr ""
msgstr "Erreur !"
#. module: account
#: sql_constraint:account.move.line:0
@ -1898,7 +1898,7 @@ msgstr "Écritures par ligne"
#. module: account
#: field:account.vat.declaration,based_on:0
msgid "Based on"
msgstr ""
msgstr "Basée sur"
#. module: account
#: field:account.invoice,move_id:0
@ -1987,7 +1987,7 @@ msgstr "Définition de la taxe"
#: code:addons/account/account.py:3076
#, python-format
msgid "Deposit"
msgstr ""
msgstr "Dépôt"
#. module: account
#: help:wizard.multi.charts.accounts,seq_journal:0
@ -2195,7 +2195,7 @@ msgstr ""
#. module: account
#: report:account.invoice:0
msgid "Customer Code"
msgstr ""
msgstr "Code Client"
#. module: account
#: view:account.installer:0
@ -2773,7 +2773,7 @@ msgstr "Écritures comptables"
#. module: account
#: field:account.invoice,reference_type:0
msgid "Communication Type"
msgstr ""
msgstr "Type de communication"
#. module: account
#: field:account.invoice.line,discount:0
@ -3116,7 +3116,7 @@ msgstr "Toujours"
#: view:account.invoice.report:0
#: view:analytic.entries.report:0
msgid "Month-1"
msgstr ""
msgstr "Mois -1"
#. module: account
#: view:account.analytic.line:0
@ -7303,7 +7303,7 @@ msgstr ""
#. module: account
#: help:res.partner,credit:0
msgid "Total amount this customer owes you."
msgstr "Montant Total que ce client vous doit."
msgstr "Montant total que ce client vous doit."
#. module: account
#: model:ir.model,name:account.model_ir_sequence
@ -7626,7 +7626,7 @@ msgstr "Taxe"
#: code:addons/account/account_move_line.py:1276
#, python-format
msgid "No piece number !"
msgstr "Pas de Numéro de Pièce !"
msgstr "Pas de numéro de pièce !"
#. module: account
#: view:account.financial.report:0
@ -7898,7 +7898,7 @@ msgstr "Rapports officiels"
#. module: account
#: field:account.tax.code,sum_period:0
msgid "Period Sum"
msgstr "Montant total de la période"
msgstr "Total de la période"
#. module: account
#: help:account.tax,sequence:0
@ -9645,7 +9645,7 @@ msgstr "Non-rapprochée"
#: code:addons/account/account_invoice.py:824
#, python-format
msgid "Bad total !"
msgstr "Mauvais montant !"
msgstr "Total incorrect !"
#. module: account
#: field:account.journal,sequence_id:0
@ -10176,7 +10176,7 @@ msgid ""
"reconciliation process today. The current partner is counted as already "
"processed."
msgstr ""
"Ce nombre représente le nombre total de partenaires qui sont passés au "
"Ce chiffre représente le nombre total de partenaires qui sont passés au "
"travers du processus de rapprochement aujourd'hui. Le partenaire actuel est "
"considéré comme déjà traité."
@ -10221,7 +10221,7 @@ msgstr "Lignes de facture"
#. module: account
#: field:account.chart,period_to:0
msgid "End period"
msgstr "Clôturer la période"
msgstr "Fin de période"
#. module: account
#: sql_constraint:account.journal:0
@ -10848,9 +10848,9 @@ msgstr ""
"Créer et gérer les comptes dont vous avez besoin pour enregistrer les pièces "
"comptables. Un compte fait partie du grand livre permettant à votre société "
"d'enregistrer tout type de transaction de débit ou de crédit. Les sociétés "
"présentent leurs comptes annuels en 2 parties : le bilan et le rapport des "
"comptes de résultat. Les comptes annuels d'une société sont légalement tenus "
"de mentionner un minimum d'information. Ils doivent être certifiés par un "
"présentent leurs comptes annuels en 2 parties : le bilan et le compte de "
"résultat. Les comptes annuels d'une société sont légalement tenus de "
"mentionner un minimum d'informations. Ils doivent être certifiés par un "
"auditeur externe annuellement."
#. module: account

View File

@ -57,7 +57,7 @@
<field name="type">tree</field>
<field name="field_parent">child_complete_ids</field>
<field name="arch" type="xml">
<tree colors="red:state=='pending';grey:state in ('close','cancelled');blue:type=='view'" string="Analytic account" toolbar="1">
<tree colors="blue:state=='pending';grey:state in ('close','cancelled');blue:type=='view'" string="Analytic account" toolbar="1">
<field name="name"/>
<field name="code" groups="base.group_extended"/>
<field name="quantity"/>

View File

@ -1,13 +1,23 @@
-
In order to test close period wizard I create a period then close it and checked it's state
In order to test close period wizard I first create a dummy fiscal year in the past to avoid conflicts related to closed periods
-
!record {model: account.fiscalyear, id: data_fiscalyear_minus1}:
company_id: base.main_company
date_start: !eval "'%s-01-01' %(datetime.now().year-1)"
date_stop: !eval "'%s-12-31' %(datetime.now().year-1)"
name: !eval "'Fiscal Year X %s' %(datetime.now().year-1)"
code: !eval "'FY%s' %(datetime.now().year-1)"
-
I create a period then close it and checked it's state
-
!record {model: account.period, id: account_period_jan0}:
company_id: base.main_company
date_start: !eval "'%s-01-01' %(datetime.now().year)"
date_stop: !eval "'%s-01-31' %(datetime.now().year)"
fiscalyear_id: account.data_fiscalyear
name: !eval "'Jan-%s' %(datetime.now().year)"
date_start: !eval "'%s-01-01' %(datetime.now().year-1)"
date_stop: !eval "'%s-01-31' %(datetime.now().year-1)"
fiscalyear_id: data_fiscalyear_minus1
name: !eval "'Jan-%s' %(datetime.now().year-1)"
special: 1
-

View File

@ -10,7 +10,7 @@
address_invoice_id: base.res_partner_address_8invoice
company_id: 1
account_id: account.a_pay
date_invoice: '2011-06-22'
date_invoice: !eval "'%s' % (time.strftime('%Y-%m-%d'))"
name: selling product
type: 'out_invoice'
invoice_line:
@ -48,12 +48,13 @@
Then I import a sample EDI document of another customer invoice
-
!python {model: account.invoice}: |
import time
edi_document = {
"__id": "account:b22acf7a-ddcd-11e0-a4db-701a04e25543.random_invoice_763jsms",
"__module": "account",
"__model": "account.invoice",
"__version": [6,1,0],
"internal_number": "SAJ/2011/002",
"internal_number": time.strftime("SAJ/%Y/002"),
"company_address": {
"__id": "base:b22acf7a-ddcd-11e0-a4db-701a04e25543.main_address",
"__module": "base",
@ -86,7 +87,7 @@
"zip": "1367",
"country_id": ["base:5af1272e-dd26-11e0-b65e-701a04e25543.be", "Belgium"],
},
"date_invoice": "2011-06-22",
"date_invoice": time.strftime('%Y-%m-%d'),
"name": "sample invoice",
"tax_line": [{
"__id": "account:b22acf7a-ddcd-11e0-a4db-701a04e25543.account_invoice_tax-4g4EutbiEMVl",
@ -128,7 +129,7 @@
assert bank_info.acc_number == "Sample bank: 123465789-156113", 'Expected "Sample bank: 123465789-156113", got %s' % bank_info.acc_number
assert invoice_new.partner_id.supplier, 'Imported Partner is not marked as supplier'
assert invoice_new.reference == "SAJ/2011/002", "internal number is not stored in reference"
assert invoice_new.reference == time.strftime("SAJ/%Y/002"), "internal number is not stored in reference"
assert invoice_new.reference_type == 'none', "reference type is not set to 'none'"
assert invoice_new.internal_number == False, "internal number is not reset"
assert invoice_new.journal_id.id, "journal id is not selected"

View File

@ -34,7 +34,7 @@ class account_automatic_reconcile(osv.osv_memory):
'journal_id': fields.many2one('account.journal', 'Journal'),
'period_id': fields.many2one('account.period', 'Period'),
'max_amount': fields.float('Maximum write-off amount'),
'power': fields.selection([(p, str(p)) for p in range(2, 10)], 'Power', required=True, help='Number of partial amounts that can be combined to find a balance point can be chosen as the power of the automatic reconciliation'),
'power': fields.selection([(p, str(p)) for p in range(2, 5)], 'Power', required=True, help='Number of partial amounts that can be combined to find a balance point can be chosen as the power of the automatic reconciliation'),
'date1': fields.date('Starting Date', required=True),
'date2': fields.date('Ending Date', required=True),
'reconciled': fields.integer('Reconciled transactions', readonly=True),

View File

@ -39,6 +39,7 @@ class accounting_report(osv.osv_memory):
}
def _get_account_report(self, cr, uid, context=None):
# TODO deprecate this it doesnt work in web
menu_obj = self.pool.get('ir.ui.menu')
report_obj = self.pool.get('account.financial.report')
report_ids = []

View File

@ -30,6 +30,33 @@
</field>
</record>
<menuitem parent="account.menu_finance_legal_statement" id="final_accounting_reports" name="Accounting Reports"/>
<record id="action_account_report_bs" model="ir.actions.act_window">
<field name="name">Financial Reports</field>
<field name="res_model">accounting.report</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="accounting_report_view"/>
<field name="target">new</field>
<field name="context" eval="{'default_account_report_id':ref('account.account_financial_report_balancesheet0')}"/>
</record>
<menuitem icon="STOCK_PRINT" name="Balance Sheet" action="action_account_report_bs" id="menu_account_report_bs" parent="final_accounting_reports"/>
<record id="action_account_report_pl" model="ir.actions.act_window">
<field name="name">Financial Reports</field>
<field name="res_model">accounting.report</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="accounting_report_view"/>
<field name="target">new</field>
<field name="context"></field>
<field name="context" eval="{'default_account_report_id':ref('account.account_financial_report_profitandloss0')}"/>
</record>
<menuitem icon="STOCK_PRINT" name="Profit And Loss" action="action_account_report_pl" id="menu_account_report_pl" parent="final_accounting_reports"/>
<record id="action_account_report" model="ir.actions.act_window">
<field name="name">Financial Reports</field>
<field name="res_model">accounting.report</field>
@ -38,33 +65,8 @@
<field name="view_mode">form</field>
<field name="view_id" ref="accounting_report_view"/>
<field name="target">new</field>
</record>
<menuitem
parent="account.menu_finance_legal_statement"
id="final_accounting_reports"
name="Accounting Reports"/>
<menuitem icon="STOCK_PRINT"
name="Profit And Loss"
action="account.action_account_report"
id="menu_account_pl_report"
parent="final_accounting_reports"/>
<menuitem icon="STOCK_PRINT"
name="Balance Sheet"
action="account.action_account_report"
groups="group_account_user,group_account_manager"
id="menu_account_bs_report"
parent="final_accounting_reports"/>
<menuitem icon="STOCK_PRINT"
name="Financial Report"
action="action_account_report"
groups="group_account_user,group_account_manager"
id="menu_account_report"
parent="final_accounting_reports"
sequence="100"/>
</record>
<menuitem icon="STOCK_PRINT" name="Financial Report" action="action_account_report" id="menu_account_report" parent="final_accounting_reports" sequence="100"/>
</data>
</openerp>

View File

@ -34,10 +34,10 @@
<separator orientation="vertical"/>
<field name="name" filter_domain="['|', ('name','ilike',self),('code','ilike',self)]" string="Contract"/>
<field name="partner_id">
<filter string="A contract in OpenERP is an analytic account having a partner set on it." name="has_partner" domain="[('partner_id', '!=', False)]" icon="terp-partner" />
<filter help="A contract in OpenERP is an analytic account having a partner set on it." name="has_partner" domain="[('partner_id', '!=', False)]" icon="terp-partner" />
</field>
<field name="user_id">
<filter string="No Account Manager" domain="[('user_id', '=', False)]" icon="terp-personal-" />
<filter help="Contracts that are not assigned to an account manager." domain="[('user_id', '=', False)]" icon="terp-personal-" />
</field>
</group>

View File

@ -380,7 +380,7 @@ class account_invoice(osv.osv):
res['analytics_id'] = x.get('analytics_id', False)
return res
def _get_analytic_lines(self, cr, uid, id):
def _get_analytic_lines(self, cr, uid, id, context=None):
inv = self.browse(cr, uid, [id])[0]
cur_obj = self.pool.get('res.currency')
invoice_line_obj = self.pool.get('account.invoice.line')
@ -391,7 +391,7 @@ class account_invoice(osv.osv):
else:
sign = -1
iml = invoice_line_obj.move_line_get(cr, uid, inv.id)
iml = invoice_line_obj.move_line_get(cr, uid, inv.id, context=context)
for il in iml:
if il.get('analytics_id', False):
@ -400,8 +400,10 @@ class account_invoice(osv.osv):
ref = inv.reference
else:
ref = self._convert_ref(cr, uid, inv.number)
obj_move_line = acct_ins_obj.browse(cr, uid, il['analytics_id'])
amount_calc = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, il['price'], context={'date': inv.date_invoice}) * sign
obj_move_line = acct_ins_obj.browse(cr, uid, il['analytics_id'], context=context)
ctx = context.copy()
ctx.update({'date': inv.date_invoice})
amount_calc = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, il['price'], context=ctx) * sign
qty = il['quantity']
il['analytic_lines'] = []
for line2 in obj_move_line.account_ids:

View File

@ -116,7 +116,7 @@ class crossovered_budget_lines(osv.osv):
for line in self.browse(cr, uid, ids, context=context):
acc_ids = [x.id for x in line.general_budget_id.account_ids]
if not acc_ids:
raise osv.except_osv(_('Error!'),_("The General Budget '%s' has no Accounts!") % str(line.general_budget_id.name))
raise osv.except_osv(_('Error!'),_("The Budget '%s' has no accounts!") % str(line.general_budget_id.name))
date_to = line.date_to
date_from = line.date_from
if context.has_key('wizard_date_from'):

View File

@ -14,9 +14,7 @@
I select the followup to send it to the partner.
-
!python {model: account.followup.print}: |
self.do_continue(cr, uid, [ref("account_followup_print_0")], {"lang": 'en_US',
"active_model": "ir.ui.menu", "active_ids": [ref("account_followup.account_followup_print_menu")],
"tz": False, "active_id": ref("account_followup.account_followup_print_menu"),
self.do_continue(cr, uid, [ref("account_followup_print_0")], {"active_ids": [ref("account_followup.account_followup_print_menu")], "active_id": ref("account_followup.account_followup_print_menu"),
})
-
I select partners whom I want to send followups.
@ -34,7 +32,5 @@
-
!python {model: account.followup.print.all}: |
import time
self.do_mail(cr, uid, [ref("account_followup_print_all_0")], {"lang": 'en_US',
"active_model": "ir.ui.menu", "active_ids": [ref("account_followup.account_followup_print_menu")],
"tz": False, "date": time.strftime('%Y-%m-%d'), "followup_id": ref("account_followup.demo_followup1"), "active_id": ref("account_followup.account_followup_print_menu"),
self.do_mail(cr, uid, [ref("account_followup_print_all_0")], {"active_ids": [ref("account_followup.account_followup_print_menu")], "date": time.strftime('%Y-%m-%d'), "followup_id": ref("account_followup.demo_followup1"), "active_id": ref("account_followup.account_followup_print_menu"),
})

View File

@ -75,8 +75,10 @@ class account_payment_populate_statement(osv.osv_memory):
amount = currency_obj.compute(cr, uid, line.currency.id,
statement.currency.id, line.amount_currency, context=ctx)
if not line.move_line_id.id:
continue
context.update({'move_line_ids': [line.move_line_id.id]})
result = voucher_obj.onchange_partner_id(cr, uid, [], partner_id=line.partner_id.id, journal_id=statement.journal_id.id, price=abs(amount), voucher_currency_id= statement.currency.id, ttype='payment', date=line.ml_maturity_date, context=context)
result = voucher_obj.onchange_partner_id(cr, uid, [], partner_id=line.partner_id.id, journal_id=statement.journal_id.id, amount=abs(amount), currency_id= statement.currency.id, ttype='payment', date=line.ml_maturity_date, context=context)
if line.move_line_id:
voucher_res = {

View File

@ -441,14 +441,14 @@ class account_voucher(osv.osv):
tr_type = 'purchase'
else:
if not journal.default_credit_account_id or not journal.default_debit_account_id:
raise osv.except_osv(_('Error !'), _('Please define default credit/debit account on the %s !') % (journal.name))
raise osv.except_osv(_('Error !'), _('Please define default credit/debit accounts on the journal "%s" !') % (journal.name))
account_id = journal.default_credit_account_id.id or journal.default_debit_account_id.id
tr_type = 'receipt'
default['value']['account_id'] = account_id
default['value']['type'] = ttype or tr_type
vals = self.onchange_journal(cr, uid, ids, journal_id, line_ids, tax_id, partner_id, company_id, context)
vals = self.onchange_journal(cr, uid, ids, journal_id, line_ids, tax_id, partner_id, time.strftime('%Y-%m-%d'), price, ttype, company_id, context)
default['value'].update(vals.get('value'))
return default
@ -1288,7 +1288,7 @@ class account_voucher_line(osv.osv):
'account_id':fields.many2one('account.account','Account', required=True),
'partner_id':fields.related('voucher_id', 'partner_id', type='many2one', relation='res.partner', string='Partner'),
'untax_amount':fields.float('Untax Amount'),
'amount':fields.float('Allocation', digits_compute=dp.get_precision('Account')),
'amount':fields.float('Amount', digits_compute=dp.get_precision('Account')),
'reconcile': fields.boolean('Full Reconcile'),
'type':fields.selection([('dr','Debit'),('cr','Credit')], 'Dr/Cr'),
'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'),

View File

@ -43,7 +43,7 @@
<form string="Accounting Voucher">
<group col="6" colspan="4">
<field name="partner_id" required="1" on_change="onchange_journal_voucher(line_ids, tax_id, amount, partner_id, journal_id, type)"/>
<field name="date" on_change="onchange_date(date, currency_id, amount)"/>
<field name="date" on_change="onchange_date(date, currency_id, payment_rate_currency_id, amount, company_id)"/>
<field name="journal_id" widget="selection" select="1" on_change="onchange_journal_voucher(line_ids, tax_id, amount, partner_id, journal_id, type)"/>
<field name="type" required="1"/>
<field name="name" colspan="2"/>

View File

@ -74,7 +74,7 @@
<field name="arch" type="xml">
<form string="Bill Payment">
<group col="6" colspan="4">
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" context="{'invoice_currency':currency_id}" string="Supplier"/>
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Supplier" context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1, 'invoice_currency': currency_id}" />
<field name="amount" on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
<field name="journal_id"
domain="[('type','in',['bank', 'cash'])]"
@ -145,7 +145,7 @@
<field name="arch" type="xml">
<form string="Bill Payment">
<group col="6" colspan="4">
<field name="partner_id" domain="[('supplier','=',True)]" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" context="{'invoice_currency':currency_id}" string="Supplier"/>
<field name="partner_id" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" context="{'invoice_currency':currency_id, 'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}" string="Supplier"/>
<field name="amount" invisible="context.get('line_type', False)" on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
<field name="journal_id"
domain="[('type','in',['bank', 'cash'])]"
@ -294,7 +294,7 @@
<field name="arch" type="xml">
<form string="Customer Payment">
<group col="6" colspan="4">
<field name="partner_id" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Customer"/>
<field name="partner_id" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Customer" context="{'search_default_customer': 1}"/>
<field name="currency_id" invisible="1"/>
<field name="amount"
invisible="context.get('line_type', False)"
@ -331,7 +331,7 @@
<field name="amount_original" readonly="1"/>
<field name="amount_unreconciled" readonly="1"/>
<field name="reconcile" on_change="onchange_reconcile(reconcile, amount, amount_unreconciled, context)"/>
<field name="amount" sum="Total Allocation" on_change="onchange_amount(amount, amount_unreconciled, context)"/>
<field name="amount" sum="Total Allocation" on_change="onchange_amount(amount, amount_unreconciled, context)" string="Allocation"/>
</tree>
</field>
<field name="line_dr_ids" colspan="4" nolabel="1" attrs="{'invisible': [('pre_line','=',False)]}" default_get="{'journal_id':journal_id, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, context)">
@ -347,7 +347,7 @@
<field name="amount_original" readonly="1"/>
<field name="amount_unreconciled" readonly="1"/>
<field name="reconcile" on_change="onchange_reconcile(reconcile, amount, amount_unreconciled, context)"/>
<field name="amount" sum="Total Allocation" on_change="onchange_amount(amount, amount_unreconciled, context)"/>
<field name="amount" sum="Total Allocation" on_change="onchange_amount(amount, amount_unreconciled, context)" string="Allocation"/>
</tree>
</field>
<group col="2" colspan="3">

View File

@ -82,7 +82,7 @@
<field name="arch" type="xml">
<form string="Sales Receipt">
<group col="6" colspan="4">
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Customer"/>
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Customer" context="{'search_default_customer': 1}"/>
<field name="date" on_change="onchange_date(date, currency_id, currency_id, amount, company_id, context)"/>
<field name="journal_id" domain="[('type','in',['sale','sale_refund'])]" widget="selection" on_change="onchange_journal(journal_id, line_cr_ids, tax_id, partner_id, date, amount, type, company_id, context)"/>
<field name="number"/>
@ -209,7 +209,7 @@
<field name="arch" type="xml">
<form string="Supplier Voucher">
<group col="6" colspan="4">
<field name="partner_id" domain="[('supplier','=',True)]" required="1" string="Supplier" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)"/>
<field name="partner_id" domain="[('supplier','=',True)]" required="1" string="Supplier" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}" />
<field name="date" string="Bill Date" select="1" on_change="onchange_date(date, currency_id, currency_id, amount, company_id, context)"/>
<field name="journal_id" domain="[('type','in',['purchase','purchase_refund'])]" widget="selection" select="1" on_change="onchange_journal(journal_id, line_dr_ids, tax_id, partner_id, date, amount, type, company_id, context)"/>
<field name="number"/>
@ -276,6 +276,7 @@
<group attrs="{'invisible':['|', ('state','!=','posted'), ('paid','=',True)]}">
<button icon="terp-dolar_ok!" name="%(act_pay_bills)d" context="{'narration':narration, 'title':'Bill Payment', 'type':'payment', 'partner_id': partner_id, 'reference':reference}" type="action" string="Pay Bill" attrs="{'invisible':[('pay_now','=','pay_now')]}"/>
</group>
<field name="pay_now" invisible="1"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" icon="terp-stock_effects-object-colorize"/>
<button name="proforma_voucher" string="Validate" states="draft" icon="gtk-go-forward"/>
</group>

301
addons/analytic/i18n/ro.po Normal file
View File

@ -0,0 +1,301 @@
# Romanian translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-22 18:44+0000\n"
"PO-Revision-Date: 2011-12-29 23:37+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Romanian <ro@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-30 05:39+0000\n"
"X-Generator: Launchpad (build 14560)\n"
#. module: analytic
#: field:account.analytic.account,child_ids:0
msgid "Child Accounts"
msgstr "Sub-conturi"
#. module: analytic
#: field:account.analytic.account,name:0
msgid "Account Name"
msgstr "Nume cont"
#. module: analytic
#: help:account.analytic.line,unit_amount:0
msgid "Specifies the amount of quantity to count."
msgstr "Specifica suma cantitatii de numarat"
#. module: analytic
#: field:account.analytic.account,state:0
msgid "State"
msgstr "Stare"
#. module: analytic
#: field:account.analytic.account,user_id:0
msgid "Account Manager"
msgstr "Manager financiar contabil"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Closed"
msgstr "Închis"
#. module: analytic
#: field:account.analytic.account,debit:0
msgid "Debit"
msgstr "Debit"
#. module: analytic
#: help:account.analytic.account,state:0
msgid ""
"* When an account is created its in 'Draft' state. "
" \n"
"* If any associated partner is there, it can be in 'Open' state. "
" \n"
"* If any pending balance is there it can be in 'Pending'. "
" \n"
"* And finally when all the transactions are over, it can be in 'Close' "
"state. \n"
"* The project can be in either if the states 'Template' and 'Running'.\n"
" If it is template then we can make projects based on the template projects. "
"If its in 'Running' state it is a normal project. "
" \n"
" If it is to be reviewed then the state is 'Pending'.\n"
" When the project is completed the state is set to 'Done'."
msgstr ""
"* Cand este crest un cont, acesta este in stare 'Ciorna'. \n"
"* Daca exista vreun partener asociat, poate fi in stare \"Deschis'.\n"
"* Daca exista vreun sold in asteptare, poate fi 'In asteptare'.\n"
"* In cele din urma, daca toate tranzactiile sunt efectuate, poate fi in "
"stare 'Inchis'. \n"
"*Proiectul se poate afla in oricare din starile 'Sablon' sau 'Rulare'. \n"
" Daca este sablon, atunci putem face proiecte pe baza proiectelor sablon. "
"Daca este in starea 'Rulare' este un proiect \n"
"obisnuit. \n"
" Daca trebuie reinnoit, atunci starea este 'In asteptare'. \n"
" Cand proiectul este terminat, starea este setata pe 'Efectuat'."
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "New"
msgstr ""
#. module: analytic
#: field:account.analytic.account,type:0
msgid "Account Type"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Pending"
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
#: selection:account.analytic.account,type:0
msgid "Normal"
msgstr ""
#. module: analytic
#: field:account.analytic.account,company_id:0
#: field:account.analytic.line,company_id:0
msgid "Company"
msgstr ""
#. module: analytic
#: code:addons/analytic/analytic.py:138
#, 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.line,user_id:0
msgid "User"
msgstr ""
#. module: analytic
#: field:account.analytic.account,parent_id:0
msgid "Parent Analytic Account"
msgstr ""
#. module: analytic
#: field:account.analytic.line,date:0
msgid "Date"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Template"
msgstr ""
#. module: analytic
#: field:account.analytic.account,quantity:0
#: field:account.analytic.line,unit_amount:0
msgid "Quantity"
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,child_complete_ids:0
msgid "Account Hierarchy"
msgstr ""
#. module: analytic
#: help:account.analytic.account,quantity_max:0
msgid "Sets the higher limit of time to work on the contract."
msgstr ""
#. module: analytic
#: field:account.analytic.account,credit:0
msgid "Credit"
msgstr ""
#. module: analytic
#: field:account.analytic.line,amount:0
msgid "Amount"
msgstr ""
#. module: analytic
#: field:account.analytic.account,contact_id:0
msgid "Contact"
msgstr ""
#. module: analytic
#: constraint:account.analytic.account:0
msgid ""
"Error! The currency has to be the same as the currency of the selected "
"company"
msgstr ""
#. module: analytic
#: field:account.analytic.account,code:0
msgid "Code/Reference"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Cancelled"
msgstr ""
#. module: analytic
#: code:addons/analytic/analytic.py:138
#, python-format
msgid "Error !"
msgstr ""
#. module: analytic
#: field:account.analytic.account,balance:0
msgid "Balance"
msgstr ""
#. module: analytic
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
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."
msgstr ""
#. module: analytic
#: field:account.analytic.account,date:0
msgid "Date End"
msgstr ""
#. module: analytic
#: field:account.analytic.account,quantity_max:0
msgid "Maximum Time"
msgstr ""
#. module: analytic
#: model:res.groups,name:analytic.group_analytic_accounting
msgid "Analytic Accounting"
msgstr ""
#. module: analytic
#: field:account.analytic.account,complete_name:0
msgid "Full Account Name"
msgstr ""
#. module: analytic
#: 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"
msgstr ""
#. module: analytic
#: constraint:account.analytic.line:0
msgid "You can not create analytic line on view account."
msgstr ""
#. module: analytic
#: selection:account.analytic.account,type:0
msgid "View"
msgstr ""
#. module: analytic
#: field:account.analytic.account,partner_id:0
msgid "Partner"
msgstr ""
#. module: analytic
#: field:account.analytic.account,date_start:0
msgid "Date Start"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Open"
msgstr ""
#. module: analytic
#: field:account.analytic.account,line_ids:0
msgid "Analytic Entries"
msgstr ""
#~ msgid ""
#~ "Module for defining analytic accounting object.\n"
#~ " "
#~ msgstr ""
#~ "Modul pentru definirea obiectului contabilitatii analitice.\n"
#~ " "
#~ msgid "Draft"
#~ msgstr "Ciornă"

View File

@ -8,24 +8,24 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-22 18:44+0000\n"
"PO-Revision-Date: 2010-12-23 16:22+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2011-12-27 16:12+0000\n"
"Last-Translator: Milan Milosevic <Unknown>\n"
"Language-Team: Serbian latin <sr@latin@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-23 07:17+0000\n"
"X-Launchpad-Export-Date: 2011-12-28 05:21+0000\n"
"X-Generator: Launchpad (build 14560)\n"
#. module: analytic
#: field:account.analytic.account,child_ids:0
msgid "Child Accounts"
msgstr "Podređeni Nalozi"
msgstr "Podređeni nalozi"
#. module: analytic
#: field:account.analytic.account,name:0
msgid "Account Name"
msgstr "Naziv Naloga"
msgstr "Naziv naloga"
#. module: analytic
#: help:account.analytic.line,unit_amount:0
@ -70,26 +70,26 @@ msgid ""
" If it is to be reviewed then the state is 'Pending'.\n"
" When the project is completed the state is set to 'Done'."
msgstr ""
"*Kada je neka faktura kreirana a nalazi se u ' U Toku'. "
" \n"
"*Ako je bilo koji asocirani partner tamo, on mora biti u stanju ' Otvoren'. "
" \n"
"*Ako je bilo koji Saldo u stanju 'U izvrsenju' on mora i biti tamo. "
" "
"*kada je nalog napravljen, stanje mu je 'U pripremi' "
" \n"
"*Ako postoji bilo koji partner, može bitu u stanju 'Otvoren' "
" \n"
"*Ako postoji balans na čekanju, može biti 'Na čekanju' "
" \n"
"*I , na kraju, kada su sve transakcije gotove, biće u stanju ' Zatvoreno'. "
" "
"\n"
"*I , na kraju kada su sve transakcije gotove, mora se naci u stanju ' "
"Zatvoreno'. "
" \n"
" Ako je ovo shema(obrazac) onda mi mozemo napraviri projekat baziran na "
"istom. Ako je u stanju ' U izvrsenju' to je normalnan\n"
"*Projekat može biti bilo gde ako su mu stanja 'U toku' i 'U pripremi'\n"
" Ako je ovo obrazac, onda možemo napraviti projekat baziran na njima. Ako je "
"u stanju ' U toku' to je normalnan\n"
"projekat.\n"
" Ako zelimo da ga pregledamo, stanje mora biti ' U Toku'.\n"
" Kada je projekat zavrsen stanje je postavljeno na ' Zavrseno'."
" Ako želimo da ga pregledamo, stanje mora biti ' U Toku'.\n"
" Kada je projekat završen stanje je postavljeno na ' Završeno'."
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "New"
msgstr ""
msgstr "Novo"
#. module: analytic
#: field:account.analytic.account,type:0
@ -99,7 +99,7 @@ msgstr "Vrsta konta"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Pending"
msgstr "U toku"
msgstr "Na čekanju"
#. module: analytic
#: model:ir.model,name:analytic.model_account_analytic_line
@ -115,7 +115,7 @@ msgstr "Opis"
#. module: analytic
#: selection:account.analytic.account,type:0
msgid "Normal"
msgstr "Normalan"
msgstr "Normalno"
#. module: analytic
#: field:account.analytic.account,company_id:0
@ -134,6 +134,11 @@ msgid ""
"consolidation purposes of several companies charts with different "
"currencies, for example."
msgstr ""
"Ako odredite kompaniju, izabrana valuta mora biti ista kao valuta preduzeća. "
"\n"
"Možete ukloniti preduzeće i tako izmeniti valutu, samo na analitičkom kontu "
"tipa 'pregled'. Ovo može biti zaista korisno iz razloga konsolidacije tabela "
"nekoliko preduzeća s raznim valutama, na primer."
#. module: analytic
#: field:account.analytic.line,user_id:0
@ -153,7 +158,7 @@ msgstr "Datum"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Template"
msgstr "Šablon"
msgstr "Obrazac"
#. module: analytic
#: field:account.analytic.account,quantity:0
@ -167,18 +172,18 @@ msgid ""
"Calculated by multiplying the quantity and the price given in the Product's "
"cost price. Always expressed in the company main currency."
msgstr ""
"Izracunato mnozenjem kolicine i cene date u proizvodovom cenovniku. Uvek "
"prikazano u osnovnoj valuti preduzeca."
"Izračunato množenjem količine i cene datim u cenovniku proizvoda. Uvek "
"izraženo u osnovnoj valuti preduzeća."
#. module: analytic
#: field:account.analytic.account,child_complete_ids:0
msgid "Account Hierarchy"
msgstr ""
msgstr "Hijerarhija naloga"
#. module: analytic
#: help:account.analytic.account,quantity_max:0
msgid "Sets the higher limit of time to work on the contract."
msgstr ""
msgstr "Postavlja višu granicu vremena za rad na ugovoru."
#. module: analytic
#: field:account.analytic.account,credit:0
@ -200,12 +205,12 @@ msgstr "Kontakt"
msgid ""
"Error! The currency has to be the same as the currency of the selected "
"company"
msgstr ""
msgstr "Greška! Valuta mora biti ista kao i valuta izabranog preduzeća"
#. module: analytic
#: field:account.analytic.account,code:0
msgid "Code/Reference"
msgstr ""
msgstr "Kod/Poziv na broj"
#. module: analytic
#: selection:account.analytic.account,state:0
@ -216,17 +221,17 @@ msgstr "Otkazano"
#: code:addons/analytic/analytic.py:138
#, python-format
msgid "Error !"
msgstr ""
msgstr "Greska !"
#. module: analytic
#: field:account.analytic.account,balance:0
msgid "Balance"
msgstr "Saldo"
msgstr "Balans"
#. module: analytic
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
msgstr "Greška! Ne možete praviti rekurzivne analitičke naloge."
#. module: analytic
#: help:account.analytic.account,type:0
@ -234,23 +239,23 @@ msgid ""
"If you select the View Type, it means you won't allow to create journal "
"entries using that account."
msgstr ""
"Ukoliko izaberete PREGLED, to znaci da ne zelite da kreirate sadrzaj "
"dnevnika, koristeci taj nalog."
"Ako izaberete Pregled, znači da ne zelite dozvoliti pravljenje sadržaja "
"dnevnika koristeći taj nalog."
#. module: analytic
#: field:account.analytic.account,date:0
msgid "Date End"
msgstr "Završni datum"
msgstr "Datum završetka"
#. module: analytic
#: field:account.analytic.account,quantity_max:0
msgid "Maximum Time"
msgstr ""
msgstr "Maksimalno vreme"
#. module: analytic
#: model:res.groups,name:analytic.group_analytic_accounting
msgid "Analytic Accounting"
msgstr ""
msgstr "Analitičko računovodstvo"
#. module: analytic
#: field:account.analytic.account,complete_name:0
@ -266,12 +271,12 @@ msgstr "Analitički konto"
#. module: analytic
#: field:account.analytic.account,currency_id:0
msgid "Currency"
msgstr ""
msgstr "Valuta"
#. module: analytic
#: constraint:account.analytic.line:0
msgid "You can not create analytic line on view account."
msgstr ""
msgstr "Ne možete napraviti analitički red na pregledu naloga."
#. module: analytic
#: selection:account.analytic.account,type:0
@ -286,7 +291,7 @@ msgstr "Partner"
#. module: analytic
#: field:account.analytic.account,date_start:0
msgid "Date Start"
msgstr "Početni datum"
msgstr "Datum početka"
#. module: analytic
#: selection:account.analytic.account,state:0

View File

@ -100,8 +100,8 @@ hr_analytic_timesheet()
class account_invoice(osv.osv):
_inherit = "account.invoice"
def _get_analytic_lines(self, cr, uid, id):
iml = super(account_invoice, self)._get_analytic_lines(cr, uid, id)
def _get_analytic_lines(self, cr, uid, id, context=None):
iml = super(account_invoice, self)._get_analytic_lines(cr, uid, id, context=context)
for il in iml:
if il['account_analytic_id'] and il.get('analytic_lines', False):
@ -109,10 +109,10 @@ class account_invoice(osv.osv):
journal_id = il['analytic_lines'][0][2]['journal_id']
account_id = il['analytic_lines'][0][2]['account_id']
if journal_id and account_id:
temp = self.pool.get('analytic_journal_rate_grid').search(cr, uid, [('journal_id', '=', journal_id),('account_id', '=', account_id) ])
temp = self.pool.get('analytic_journal_rate_grid').search(cr, uid, [('journal_id', '=', journal_id),('account_id', '=', account_id)], context=context)
if temp:
r = self.pool.get('analytic_journal_rate_grid').browse(cr, uid, temp)[0]
r = self.pool.get('analytic_journal_rate_grid').browse(cr, uid, temp, context=context)[0]
il['analytic_lines'][0][2]['to_invoice'] = r.rate_id.id
return iml

View File

@ -8,24 +8,24 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-22 18:44+0000\n"
"PO-Revision-Date: 2010-12-23 15:16+0000\n"
"Last-Translator: Olivier Dony (OpenERP) <Unknown>\n"
"PO-Revision-Date: 2011-12-27 15:53+0000\n"
"Last-Translator: Milan Milosevic <Unknown>\n"
"Language-Team: Serbian latin <sr@latin@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-23 07:07+0000\n"
"X-Launchpad-Export-Date: 2011-12-28 05:21+0000\n"
"X-Generator: Launchpad (build 14560)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
msgstr "Broj fakture mora biti jedinstven po kompaniji"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Analiticki Dnevnik"
msgstr "Analitički dnevnik"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
@ -35,12 +35,12 @@ msgstr "Faktura"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
msgstr "Nepravilno BBA struktuirana komunikacija !"
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Stepen naplate po Dnevniku za ovaj Analiticki Konto"
msgstr "Stepen naplate po Dnevniku za ovaj Analitički Konto"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
@ -51,7 +51,7 @@ msgstr "Analitički konto"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Relaciona tabela izmedju dnevnika i stepena naplate"
msgstr "Tabela odnosa između dnevnika i stepenova naplate"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
@ -63,27 +63,29 @@ msgstr "Stepen fakturiranja po Dnevniku"
msgid ""
"Error! The currency has to be the same as the currency of the selected "
"company"
msgstr ""
msgstr "Greška! Valuta mora biti ista kao i valuta izabranog preduzeća"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
"Ne možete izmeniti unos u kontrolnoj kartici obeleženim kao "
"Potvrđenim/Završenim"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Fakturisanje cene"
msgstr "Stepen fakturisanja"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
msgstr "Greška! Ne možete praviti rekurzivne analitičke naloge."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Timesheet Linija"
msgstr "Niz kontrolne kartice"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Nevažeći XML za pregled arhitekture"

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-22 18:44+0000\n"
"PO-Revision-Date: 2010-12-23 14:19+0000\n"
"Last-Translator: Olivier Dony (OpenERP) <Unknown>\n"
"PO-Revision-Date: 2011-12-27 15:49+0000\n"
"Last-Translator: Milan Milosevic <Unknown>\n"
"Language-Team: Serbian latin <sr@latin@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-23 07:09+0000\n"
"X-Launchpad-Export-Date: 2011-12-28 05:21+0000\n"
"X-Generator: Launchpad (build 14560)\n"
#. module: analytic_user_function
@ -25,12 +25,13 @@ msgstr "Proizvod"
#. module: analytic_user_function
#: model:ir.model,name:analytic_user_function.model_analytic_user_funct_grid
msgid "Relation table between users and products on a analytic account"
msgstr "Relaciona tabela izmedju korisnika i proizvoda u analitickom kontu"
msgstr "Relaciona tabela između korisnika i proizvoda u analitičkom kontu"
#. module: analytic_user_function
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
"Ne možete izmeniti unos u tabelama obeleženim kao Potvrđenim/Završenim"
#. module: analytic_user_function
#: field:analytic.user.funct.grid,account_id:0
@ -42,7 +43,7 @@ msgstr "Analitički konto"
#: view:account.analytic.account:0
#: field:account.analytic.account,user_product_ids:0
msgid "Users/Products Rel."
msgstr "Korisnik/Proizvod Relac."
msgstr "Korisnik/Proizvod Odnos"
#. module: analytic_user_function
#: field:analytic.user.funct.grid,user_id:0
@ -54,7 +55,7 @@ msgstr "Korisnik"
msgid ""
"Error! The currency has to be the same as the currency of the selected "
"company"
msgstr ""
msgstr "Greška! Valuta mora biti ista kao i valuta izabranog preduzeća"
#. module: analytic_user_function
#: code:addons/analytic_user_function/analytic_user_function.py:96
@ -62,6 +63,7 @@ msgstr ""
#, python-format
msgid "There is no expense account define for this product: \"%s\" (id:%d)"
msgstr ""
"Nema dodatnih troškova za nalog određenog za ovaj proizvod: \"%s\" (id:%d)"
#. module: analytic_user_function
#: code:addons/analytic_user_function/analytic_user_function.py:95
@ -73,17 +75,17 @@ msgstr "Greška !"
#. module: analytic_user_function
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
msgstr "Greška! Ne možete praviti rekurzivne analitičke naloge."
#. module: analytic_user_function
#: model:ir.model,name:analytic_user_function.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Niz Kontrolne kartice"
msgstr "Niz kontrolne kartice"
#. module: analytic_user_function
#: view:analytic.user.funct.grid:0
msgid "User's Product for this Analytic Account"
msgstr "Korisnicki Proizvod za ovaj Analiticki Konto"
msgstr "Korisnički proizvod za ovaj Analitički Konto"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Nevažeći XML za pregled arhitekture"

View File

@ -0,0 +1,230 @@
# Romanian translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-22 18:44+0000\n"
"PO-Revision-Date: 2011-12-30 11:09+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Romanian <ro@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-31 05:55+0000\n"
"X-Generator: Launchpad (build 14560)\n"
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard
msgid "ir.model.fields.anonymize.wizard"
msgstr "ir.model.fields.anonymize.wizard (ir.model.campuri.anonimat.wizard)"
#. module: anonymization
#: field:ir.model.fields.anonymization,field_name:0
msgid "Field Name"
msgstr "Nume camp"
#. module: anonymization
#: field:ir.model.fields.anonymization,field_id:0
msgid "Field"
msgstr "Câmp"
#. module: anonymization
#: field:ir.model.fields.anonymization.history,state:0
#: field:ir.model.fields.anonymize.wizard,state:0
msgid "State"
msgstr "Stare"
#. module: anonymization
#: field:ir.model.fields.anonymize.wizard,file_import:0
msgid "Import"
msgstr "Importă"
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization
msgid "ir.model.fields.anonymization"
msgstr "ir.model.fileds.anonymization (ir.model.campuri.anonimizare)"
#. module: anonymization
#: field:ir.model.fields.anonymization.history,direction:0
msgid "Direction"
msgstr "Direcţie"
#. 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 "Campuri anonimizate"
#. module: anonymization
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization
msgid "Database anonymization"
msgstr "Anonimizarea bazei de date"
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,direction:0
msgid "clear -> anonymized"
msgstr "sterge -> anonimizat"
#. module: anonymization
#: selection:ir.model.fields.anonymization,state:0
#: selection:ir.model.fields.anonymize.wizard,state:0
msgid "Anonymized"
msgstr "Anonimizat"
#. module: anonymization
#: field:ir.model.fields.anonymization,state:0
msgid "unknown"
msgstr "necunoscut(ă)"
#. module: anonymization
#: field:ir.model.fields.anonymization,model_id:0
msgid "Object"
msgstr "Obiect"
#. module: anonymization
#: field:ir.model.fields.anonymization.history,filepath:0
msgid "File path"
msgstr "Cale fișier"
#. module: anonymization
#: field:ir.model.fields.anonymization.history,date:0
msgid "Date"
msgstr "Dată"
#. module: anonymization
#: field:ir.model.fields.anonymize.wizard,file_export:0
msgid "Export"
msgstr "Export"
#. module: anonymization
#: view:ir.model.fields.anonymize.wizard:0
msgid "Reverse the Database Anonymization"
msgstr "Anuleaza anonimizarea bazei de date"
#. module: anonymization
#: view:ir.model.fields.anonymize.wizard:0
msgid "Database Anonymization"
msgstr "Anonimizare baza de date"
#. module: anonymization
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_wizard
msgid "Anonymize database"
msgstr "Anonimizare baza de date"
#. module: anonymization
#: view:ir.model.fields.anonymization.history:0
#: field:ir.model.fields.anonymization.history,field_ids:0
msgid "Fields"
msgstr "Câmpuri"
#. module: anonymization
#: selection:ir.model.fields.anonymization,state:0
#: selection:ir.model.fields.anonymize.wizard,state:0
msgid "Clear"
msgstr "Şterge"
#. module: anonymization
#: view:ir.model.fields.anonymize.wizard:0
#: field:ir.model.fields.anonymize.wizard,summary:0
msgid "Summary"
msgstr "Rezumat"
#. module: anonymization
#: view:ir.model.fields.anonymization:0
msgid "Anonymized Field"
msgstr "Camp anonimizat"
#. module: anonymization
#: selection:ir.model.fields.anonymize.wizard,state:0
msgid "Unstable"
msgstr "Instabil"
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,state:0
msgid "Exception occured"
msgstr "A avut loc o excepţie"
#. module: anonymization
#: selection:ir.model.fields.anonymization,state:0
#: selection:ir.model.fields.anonymize.wizard,state:0
msgid "Not Existing"
msgstr "Nu exista"
#. module: anonymization
#: field:ir.model.fields.anonymization,model_name:0
msgid "Object Name"
msgstr "Numele obiectului"
#. 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 "Istoric Anonimizare"
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization_history
msgid "ir.model.fields.anonymization.history"
msgstr ""
"ir.model.fields.anonymization.history (ir.model.campuri.anonimizare.istoric)"
#. 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"
msgstr "Anonimizare baza de date"
#. module: anonymization
#: field:ir.model.fields.anonymize.wizard,name:0
msgid "File Name"
msgstr "Nume fișier"
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,direction:0
msgid "anonymized -> clear"
msgstr "anonimizat -> sterge"
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,state:0
msgid "Started"
msgstr "Pornit"
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,state:0
msgid "Done"
msgstr "Efectuat"
#. 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"
msgstr "Mesaj"
#. module: anonymization
#: code:addons/anonymization/anonymization.py:55
#: sql_constraint:ir.model.fields.anonymization:0
#, python-format
msgid "You cannot have two fields with the same name on the same object!"
msgstr ""
#~ msgid "Database anonymization module"
#~ msgstr "Modul anonimat baza de date"
#, python-format
#~ msgid "You cannot have two records having the same model and the same field"
#~ msgstr "Nu puteti avea doua inregistrari cu acelasi model sau camp"
#~ msgid ""
#~ "\n"
#~ "This module allows you to anonymize a database.\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "Acest modul permite anonimizarea unei baze de date.\n"
#~ " "

View File

@ -0,0 +1,213 @@
# Serbian Latin translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-22 18:44+0000\n"
"PO-Revision-Date: 2011-12-28 20:55+0000\n"
"Last-Translator: Milan Milosevic <Unknown>\n"
"Language-Team: Serbian Latin <sr@latin@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-29 04:46+0000\n"
"X-Generator: Launchpad (build 14560)\n"
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard
msgid "ir.model.fields.anonymize.wizard"
msgstr "ir.model.fields.anonymize.wizard"
#. module: anonymization
#: field:ir.model.fields.anonymization,field_name:0
msgid "Field Name"
msgstr "Naziv polja"
#. module: anonymization
#: field:ir.model.fields.anonymization,field_id:0
msgid "Field"
msgstr "Polje"
#. module: anonymization
#: field:ir.model.fields.anonymization.history,state:0
#: field:ir.model.fields.anonymize.wizard,state:0
msgid "State"
msgstr "Stanje"
#. module: anonymization
#: field:ir.model.fields.anonymize.wizard,file_import:0
msgid "Import"
msgstr "Uvoz"
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization
msgid "ir.model.fields.anonymization"
msgstr "ir.model.fields.anonymization"
#. module: anonymization
#: field:ir.model.fields.anonymization.history,direction:0
msgid "Direction"
msgstr "Pravac"
#. 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 "Anonimizirana polja"
#. module: anonymization
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization
msgid "Database anonymization"
msgstr "Anonimizacija baze podataka"
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,direction:0
msgid "clear -> anonymized"
msgstr "očisti -> anonimizirano"
#. module: anonymization
#: selection:ir.model.fields.anonymization,state:0
#: selection:ir.model.fields.anonymize.wizard,state:0
msgid "Anonymized"
msgstr "Anonimizirano"
#. module: anonymization
#: field:ir.model.fields.anonymization,state:0
msgid "unknown"
msgstr "nepoznato"
#. module: anonymization
#: field:ir.model.fields.anonymization,model_id:0
msgid "Object"
msgstr "Stavka"
#. module: anonymization
#: field:ir.model.fields.anonymization.history,filepath:0
msgid "File path"
msgstr "Putanja datoteke"
#. module: anonymization
#: field:ir.model.fields.anonymization.history,date:0
msgid "Date"
msgstr "Datum"
#. module: anonymization
#: field:ir.model.fields.anonymize.wizard,file_export:0
msgid "Export"
msgstr "Izvoz"
#. module: anonymization
#: view:ir.model.fields.anonymize.wizard:0
msgid "Reverse the Database Anonymization"
msgstr "Poništi anonimizaciju baze podataka"
#. module: anonymization
#: view:ir.model.fields.anonymize.wizard:0
msgid "Database Anonymization"
msgstr "Anonimizacija baze podataka"
#. module: anonymization
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_wizard
msgid "Anonymize database"
msgstr "Anonimiziraj bazu podataka"
#. module: anonymization
#: view:ir.model.fields.anonymization.history:0
#: field:ir.model.fields.anonymization.history,field_ids:0
msgid "Fields"
msgstr "Polja"
#. module: anonymization
#: selection:ir.model.fields.anonymization,state:0
#: selection:ir.model.fields.anonymize.wizard,state:0
msgid "Clear"
msgstr "Očisti"
#. module: anonymization
#: view:ir.model.fields.anonymize.wizard:0
#: field:ir.model.fields.anonymize.wizard,summary:0
msgid "Summary"
msgstr "Sažetak"
#. module: anonymization
#: view:ir.model.fields.anonymization:0
msgid "Anonymized Field"
msgstr "Anonimizirano polje"
#. module: anonymization
#: selection:ir.model.fields.anonymize.wizard,state:0
msgid "Unstable"
msgstr "Nestabilno"
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,state:0
msgid "Exception occured"
msgstr "Desio se izuzetak"
#. module: anonymization
#: selection:ir.model.fields.anonymization,state:0
#: selection:ir.model.fields.anonymize.wizard,state:0
msgid "Not Existing"
msgstr "Nepostojeći"
#. module: anonymization
#: field:ir.model.fields.anonymization,model_name:0
msgid "Object Name"
msgstr "Ime stavke"
#. 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 "Istorija anonimizacije"
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization_history
msgid "ir.model.fields.anonymization.history"
msgstr "ir.model.fields.anonymization.history"
#. 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"
msgstr "Anonimiziraj bazu podataka"
#. module: anonymization
#: field:ir.model.fields.anonymize.wizard,name:0
msgid "File Name"
msgstr "Naziv datoteke"
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,direction:0
msgid "anonymized -> clear"
msgstr "anonimizirano -> očisti"
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,state:0
msgid "Started"
msgstr "Započet"
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,state:0
msgid "Done"
msgstr "Gotovo"
#. 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"
msgstr "Poruka"
#. module: anonymization
#: code:addons/anonymization/anonymization.py:55
#: sql_constraint:ir.model.fields.anonymization:0
#, python-format
msgid "You cannot have two fields with the same name on the same object!"
msgstr "Ne možete imati dva polja sa istim imenom na istoj stavci!"

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2010-12-23 16:04+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2011-12-27 16:19+0000\n"
"Last-Translator: Milan Milosevic <Unknown>\n"
"Language-Team: Serbian latin <sr@latin@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-11-05 05:52+0000\n"
"X-Generator: Launchpad (build 14231)\n"
"X-Launchpad-Export-Date: 2011-12-28 05:21+0000\n"
"X-Generator: Launchpad (build 14560)\n"
#. module: association
#: field:profile.association.config.install_modules_wizard,wiki:0
@ -25,22 +25,22 @@ msgstr "Wiki"
#. module: association
#: view:profile.association.config.install_modules_wizard:0
msgid "Event Management"
msgstr "Upravljanje Dogadjajima"
msgstr "Upravljanje događajima"
#. module: association
#: field:profile.association.config.install_modules_wizard,project_gtd:0
msgid "Getting Things Done"
msgstr "Da Zavrsimo"
msgstr "Da završimo"
#. module: association
#: model:ir.module.module,description:association.module_meta_information
msgid "This module is to create Profile for Associates"
msgstr "Ovaj modul ima namenu da kreira Profil za Asociacije"
msgstr "Ovaj modul ima namenu pravljenja profila za partnere"
#. module: association
#: field:profile.association.config.install_modules_wizard,progress:0
msgid "Configuration Progress"
msgstr "Napredovanje Konfiguracije"
msgstr "Napredak podešavanja"
#. module: association
#: view:profile.association.config.install_modules_wizard:0
@ -48,16 +48,17 @@ msgid ""
"Here are specific applications related to the Association Profile you "
"selected."
msgstr ""
"Evo specifičnih aplikacija vezanih za asocijativni profil koji ste izabrali."
#. module: association
#: view:profile.association.config.install_modules_wizard:0
msgid "title"
msgstr "Naslov"
msgstr "naslov"
#. module: association
#: help:profile.association.config.install_modules_wizard,event_project:0
msgid "Helps you to manage and organize your events."
msgstr "POmaze vam da upravljate i organizujete svoje dogadjaje."
msgstr "Pomaže Vam da upravljate i organizujete svoje događaje."
#. module: association
#: field:profile.association.config.install_modules_wizard,config_logo:0
@ -70,8 +71,8 @@ msgid ""
"Tracks and manages employee expenses, and can automatically re-invoice "
"clients if the expenses are project-related."
msgstr ""
"Prati i upravlja troskovima zaposlenih, i moze da automatski re-fakturise "
"klijente ukoliko su troskovi vezani za projekat."
"Prati i upravlja troškovima zaposlenih, i moze automatski da re-fakturiše "
"klijente ukoliko su troškovi vezani za projekat."
#. module: association
#: help:profile.association.config.install_modules_wizard,project_gtd:0
@ -80,28 +81,28 @@ msgid ""
"module fully integrates GTD principle with OpenERP's project management."
msgstr ""
"GTD je metodologija za efikasno organizovanje sebe i svojih zadataka. Ovaj "
"modul potpuno integrise GTD principe sa OpenERP Projekt Menadzmentom."
"modul potpuno integriše GTD principe sa OpenERP-ovim Upravljanjem projektima."
#. module: association
#: view:profile.association.config.install_modules_wizard:0
msgid "Resources Management"
msgstr "Upravljanje Resursima"
msgstr "Upravljanje izvorima"
#. module: association
#: model:ir.module.module,shortdesc:association.module_meta_information
msgid "Association profile"
msgstr "Profil Asociacije"
msgstr "Asocijativni profil"
#. module: association
#: field:profile.association.config.install_modules_wizard,hr_expense:0
msgid "Expenses Tracking"
msgstr "Pracenje Troskova"
msgstr "Praćenje troškova"
#. module: association
#: model:ir.actions.act_window,name:association.action_config_install_module
#: view:profile.association.config.install_modules_wizard:0
msgid "Association Application Configuration"
msgstr ""
msgstr "Podešavanje asocijativnih aplikacija"
#. module: association
#: help:profile.association.config.install_modules_wizard,wiki:0
@ -109,8 +110,8 @@ msgid ""
"Lets you create wiki pages and page groups in order to keep track of "
"business knowledge and share it with and between your employees."
msgstr ""
"Omogucava ti da kreiras strane i grupe strana sa namerom da odrzis biznis "
"iskustvo i delis ga sa i medju svojim zaposlenima."
"Omogućava Vam pravljenje wiki stranica i grupa strana sa namerom održavanja "
"poslovnog iskustva i deljenja istog sa i među svojim zaposlenima."
#. module: association
#: help:profile.association.config.install_modules_wizard,project:0
@ -118,8 +119,8 @@ msgid ""
"Helps you manage your projects and tasks by tracking them, generating "
"plannings, etc..."
msgstr ""
"POmaze ti da upravljas svojim projektima i zadacima prateci ih, generisanjem "
"planova, itd..."
"Pomaže Vam da upravljate svojim projektima i zadacima prateći ih, "
"generisanjem planova, itd..."
#. module: association
#: model:ir.model,name:association.model_profile_association_config_install_modules_wizard
@ -129,15 +130,15 @@ msgstr "profile.association.config.install_modules_wizard"
#. module: association
#: field:profile.association.config.install_modules_wizard,event_project:0
msgid "Events"
msgstr "Dogadjaji"
msgstr "Događaji"
#. module: association
#: view:profile.association.config.install_modules_wizard:0
#: field:profile.association.config.install_modules_wizard,project:0
msgid "Project Management"
msgstr "Upravljanje Projektima"
msgstr "Upravljanje projektima"
#. module: association
#: view:profile.association.config.install_modules_wizard:0
msgid "Configure"
msgstr ""
msgstr "Podesi"

View File

@ -31,6 +31,12 @@ import tools
def get_datetime(date_field):
'''Return a datetime from a date string or a datetime string'''
#complete date time if date_field contains only a date
date_split = date_field.split(' ')
if len(date_split) == 1:
date_field = date_split[0] + " 00:00:00"
return datetime.strptime(date_field[:19], '%Y-%m-%d %H:%M:%S')

View File

@ -1486,6 +1486,7 @@ rule or repeating pattern of time to exclude from the recurring rule."),
if not isinstance(ids, list):
ids = [ids]
res = False
attendee_obj=self.pool.get('calendar.attendee')
for event_id in ids[:]:
if len(str(event_id).split('-')) == 1:
continue
@ -1498,6 +1499,9 @@ rule or repeating pattern of time to exclude from the recurring rule."),
exdate = (data['exdate'] and (data['exdate'] + ',') or '') + date_new
self.write(cr, uid, [real_event_id], {'exdate': exdate})
ids.remove(event_id)
for event in self.browse(cr, uid, ids, context=context):
if event.attendee_ids:
attendee_obj.unlink(cr, uid, [x.id for x in event.attendee_ids], context=context)
res = super(calendar_event, self).unlink(cr, uid, ids, context=context)
self.pool.get('res.alarm').do_alarm_unlink(cr, uid, ids, self._name)

View File

@ -169,7 +169,8 @@ class res_partner_address(osv.osv):
_inherit = 'res.partner.address'
def _default_location_id(self, cr, uid, context=None):
context = context or {}
if context is None:
context = {}
if not context.get('default_partner_id',False):
return False
ids = self.pool.get('res.partner.location').search(cr, uid, [('partner_id','=',context['default_partner_id'])], context=context)
@ -242,7 +243,8 @@ class res_partner_address(osv.osv):
}
def default_get(self, cr, uid, fields=[], context=None):
context = context or {}
if context is None:
context = {}
if 'default_type' in context:
del context['default_type']
return super(res_partner_address, self).default_get(cr, uid, fields, context)

View File

@ -91,7 +91,7 @@
<field name="arch" type="xml">
<search string="Partner Contact">
<field name="name" string="First/Lastname"
filter_domain="['|', ('firstname','ilike', self), ('lastname','ilike',self)]"/>
filter_domain="['|', ('first_name','ilike', self), ('last_name', 'ilike', self)]"/>
<field name="partner_id" string="Partner"/>
</search>
</field>

View File

@ -1,4 +1,5 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_res_partner_contact","res.partner.contact","model_res_partner_contact","base.group_partner_manager",1,1,1,1
"access_res_partner_contact_all","res.partner.contact all","model_res_partner_contact","base.group_user",1,0,0,0
"access_res_partner_location","res.partner.location","model_res_partner_location","base.group_user",1,0,0,0
"access_group_sale_salesman","res.partner.contact.sale.salesman","model_res_partner_contact","base.group_sale_salesman",1,1,1,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_res_partner_contact res.partner.contact model_res_partner_contact base.group_partner_manager 1 1 1 1
3 access_res_partner_contact_all res.partner.contact all model_res_partner_contact base.group_user 1 0 0 0
4 access_res_partner_location res.partner.location model_res_partner_location base.group_user 1 0 0 0
5 access_group_sale_salesman res.partner.contact.sale.salesman model_res_partner_contact base.group_sale_salesman 1 1 1 0

View File

@ -0,0 +1,86 @@
# Romanian translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-22 18:44+0000\n"
"PO-Revision-Date: 2011-12-30 21:01+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Romanian <ro@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-31 05:55+0000\n"
"X-Generator: Launchpad (build 14560)\n"
#. module: base_crypt
#: model:ir.model,name:base_crypt.model_res_users
msgid "res.users"
msgstr "res.users (res.utilizatori)"
#. module: base_crypt
#: sql_constraint:res.users:0
msgid "You can not have two users with the same login !"
msgstr "Nu pot exista doi utilizatori cu acelasi nume de autentificare !"
#. module: base_crypt
#: constraint:res.users:0
msgid "The chosen company is not in the allowed companies for this user"
msgstr ""
"Compania aleasa nu este printre companiile permise acestui utilizator"
#. module: base_crypt
#: code:addons/base_crypt/crypt.py:140
#, python-format
msgid "Please specify the password !"
msgstr "Va rugam sa specificati parola !"
#. module: base_crypt
#: code:addons/base_crypt/crypt.py:140
#, python-format
msgid "Error"
msgstr "Eroare"
#~ msgid ""
#~ "This module replaces the cleartext password in the database with a password "
#~ "hash,\n"
#~ "preventing anyone from reading the original password.\n"
#~ "For your existing user base, the removal of the cleartext passwords occurs "
#~ "the first time\n"
#~ "a user logs into the database, after installing base_crypt.\n"
#~ "After installing this module it won't be possible to recover a forgotten "
#~ "password for your\n"
#~ "users, the only solution is for an admin to set a new password.\n"
#~ "\n"
#~ "Note: installing this module does not mean you can ignore basic security "
#~ "measures,\n"
#~ "as the password is still transmitted unencrypted on the network (by the "
#~ "client),\n"
#~ "unless you are using a secure protocol such as XML-RPCS.\n"
#~ " "
#~ msgstr ""
#~ "Acest modul inlocuieste parola formata din litere din baza de date cu o "
#~ "parola hash \n"
#~ "(formata din simboluri), impiedicand pe oricine sa citeasca parola "
#~ "originala. \n"
#~ "Pentru baza existenta de utilizatori, inlocuirea parolelor din litere are "
#~ "loc prima data \n"
#~ "cand un utilizator se conecteaza la baza de date, dupa instalarea modulului "
#~ "bas-crypt. \n"
#~ "Dupa instalarea acestui modul, nu va mai fi posibila recuperarea unei parole "
#~ "uitate de \n"
#~ "catre utilizatorii dumneavoastra, iar singura solutie ramasa este ca un "
#~ "admin sa seteze o parola noua. \n"
#~ "\n"
#~ "Nota: instalarea acestui modul nu inseamna ca puteti ignora masurile de baza "
#~ "de securitate, \n"
#~ "deoarece parola este inca transmisa necriptata in retea (de catre client), \n"
#~ "daca nu cumva folositi un protocol sigur precum XML-RPCS.\n"
#~ " "
#~ msgid "Base - Password Encryption"
#~ msgstr "Baza - Criptare Parola"

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-22 18:44+0000\n"
"PO-Revision-Date: 2010-12-23 15:58+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2011-12-28 21:43+0000\n"
"Last-Translator: Milan Milosevic <Unknown>\n"
"Language-Team: Serbian latin <sr@latin@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-23 06:54+0000\n"
"X-Launchpad-Export-Date: 2011-12-29 04:46+0000\n"
"X-Generator: Launchpad (build 14560)\n"
#. module: base_report_designer
@ -25,7 +25,7 @@ msgstr "base.report.sxw"
#. module: base_report_designer
#: view:base_report_designer.installer:0
msgid "OpenERP Report Designer Configuration"
msgstr ""
msgstr "Podešavanje OpenERP-ovog čarobnjaka za izveštaje"
#. module: base_report_designer
#: view:base_report_designer.installer:0
@ -33,6 +33,8 @@ msgid ""
"This plug-in allows you to create/modify OpenERP Reports into OpenOffice "
"Writer."
msgstr ""
"Ovaj plug-in Vam omogućava da pravite/izmenite OpenERP-ove izveštaje u "
"OpenOffice Writer-u."
#. module: base_report_designer
#: view:base.report.file.sxw:0
@ -42,7 +44,7 @@ msgstr "Učitaj izmenjeni izveštaj"
#. module: base_report_designer
#: view:base.report.file.sxw:0
msgid "The .SXW report"
msgstr ".SXW Izveštaj"
msgstr ".SXW izveštaj"
#. module: base_report_designer
#: model:ir.model,name:base_report_designer.model_base_report_designer_installer
@ -52,12 +54,12 @@ msgstr "base_report_designer.installer"
#. module: base_report_designer
#: view:base_report_designer.installer:0
msgid "_Close"
msgstr "_Close"
msgstr "_Zatvori"
#. module: base_report_designer
#: view:base.report.rml.save:0
msgid "The RML report"
msgstr "RML Izvestaj"
msgstr "RML izveštaj"
#. module: base_report_designer
#: view:base_report_designer.installer:0
@ -83,24 +85,24 @@ msgstr "base.report.rml.save"
#. module: base_report_designer
#: model:ir.ui.menu,name:base_report_designer.menu_action_report_designer_wizard
msgid "Report Designer"
msgstr "Dizajner Izvještaja"
msgstr "Čarobnjak za izvešzaje"
#. module: base_report_designer
#: field:base_report_designer.installer,name:0
msgid "File name"
msgstr "Ime Fajla"
msgstr "Ime datoteke"
#. module: base_report_designer
#: view:base.report.file.sxw:0
#: view:base.report.sxw:0
msgid "Get a report"
msgstr "Napravi Izvještaj"
msgstr "Nabavi izveštaj"
#. module: base_report_designer
#: view:base_report_designer.installer:0
#: model:ir.actions.act_window,name:base_report_designer.action_report_designer_wizard
msgid "OpenERP Report Designer"
msgstr "OpenERP Dizajner Izvestaja"
msgstr "OpenERP-ov čarobnjak za izveštaje"
#. module: base_report_designer
#: view:base.report.sxw:0
@ -110,7 +112,7 @@ msgstr "Nastavi"
#. module: base_report_designer
#: field:base.report.rml.save,file_rml:0
msgid "Save As"
msgstr "Sacuvaj Kao"
msgstr "Sačuvaj kao"
#. module: base_report_designer
#: help:base_report_designer.installer,plugin_file:0
@ -118,13 +120,13 @@ msgid ""
"OpenObject Report Designer plug-in file. Save as this file and install this "
"plug-in in OpenOffice."
msgstr ""
"OpenObject Dizajner Izvestaja plug-in fajl. Sacuvajte kao ovaj fajl i "
"instalirajte plug-in u OpenOffice."
"OpenObject Čarobnjak za izveštaje plug-in datoteka. Sačuvajte kao ovu "
"datoteku i instalirajte plug-in u OpenOffice."
#. module: base_report_designer
#: view:base.report.rml.save:0
msgid "Save RML FIle"
msgstr "Sacuvaj RML fajl"
msgstr "Sačuvaj RML datoteku"
#. module: base_report_designer
#: field:base.report.file.sxw,file_sxw:0
@ -135,7 +137,7 @@ msgstr "Vaša .SXW datoteka"
#. module: base_report_designer
#: view:base_report_designer.installer:0
msgid "Installation and Configuration Steps"
msgstr "Instalacija i konfiguracione korake"
msgstr "Instalacija i koraci podešavanja"
#. module: base_report_designer
#: field:base_report_designer.installer,description:0
@ -150,11 +152,12 @@ msgid ""
"Don't forget to install the OpenERP SA OpenOffice package to modify it.\n"
"Once it is modified, re-upload it in OpenERP using this wizard."
msgstr ""
"Ovo je sablon vaseg zahtevanog izvestaja.\n"
"Sacuvajte ga kao .SXW fajl i otvorite ga sa OpenOfice.\n"
"Ne zaboravite da instalirate OpenERP SA paket OpenOffice da bi ga mogli "
"modofikovati.\n"
"Jednom izmenjen, ponovo ga uvezite u OpenERP koristeci ovog carobnjaka."
"Ovo je obrazac Vašeg traženog izveštaja.\n"
"Sačuvajte ga kao .SWX datoteku i otvorite ga u OpenOffice-u.\n"
"Ne zaboravite da instalirate OpenERP-ov SA openOffice pakovanje da biste ga "
"izmenili.\n"
"Jednom kad je izmenjen, ponovo ga učitajte u OpenERP-u koristeći ovaj "
"čarobnjak."
#. module: base_report_designer
#: field:base_report_designer.installer,config_logo:0
@ -164,7 +167,7 @@ msgstr "Slika"
#. module: base_report_designer
#: model:ir.actions.act_window,name:base_report_designer.action_view_base_report_sxw
msgid "Base Report sxw"
msgstr "Bazni sxw Izvestaj"
msgstr "Osnovni sxw izveštaj"
#. module: base_report_designer
#: model:ir.model,name:base_report_designer.model_base_report_file_sxw
@ -174,12 +177,12 @@ msgstr "base.report.file.sxw"
#. module: base_report_designer
#: field:base_report_designer.installer,plugin_file:0
msgid "OpenObject Report Designer Plug-in"
msgstr "OpenObject plug-in Dizajner Izvestaja"
msgstr "OpenObject plug-in čarobnjak za izveštaje"
#. module: base_report_designer
#: model:ir.actions.act_window,name:base_report_designer.action_report_designer_installer
msgid "OpenERP Report Designer Installation"
msgstr "Instalacija OpenERP dizajnera Izvestaja"
msgstr "Instalacija OpenERP-ovog čarobnjaka za izveštaje"
#. module: base_report_designer
#: view:base.report.file.sxw:0
@ -197,7 +200,7 @@ msgstr "ir.actions.report.xml"
#. module: base_report_designer
#: view:base.report.sxw:0
msgid "Select your report"
msgstr "Odaberite izvještaj"
msgstr "Odaberite izveštaj"
#~ msgid "Report designer interface module"
#~ msgstr "Modul Interfejsa Dizajnera Izveštaja"

View File

@ -191,20 +191,23 @@ class base_synchro(osv.osv_memory):
if not object in self.meta[pool_src]:
self.meta[pool_src][object] = pool_src.get(object).fields_get(cr, uid)
fields = self.meta[pool_src][object]
for f in fields:
if f not in data:
continue
ftype = fields[f]['type']
if ftype in ('function', 'one2many', 'one2one'):
del data[f]
elif ftype == 'many2one':
if data[f]:
df = self.relation_transform(cr, uid, pool_src, pool_dest, fields[f]['relation'], data[f][0], action, context=context)
data[f] = df
if not data[f]:
del data[f]
if (isinstance(data[f], list)) and data[f]:
fdata = data[f][0]
else:
fdata = data[f]
df = self.relation_transform(cr, uid, pool_src, pool_dest, fields[f]['relation'], fdata, action, context=context)
data[f] = df
if not data[f]:
del data[f]
elif ftype == 'many2many':
res = map(lambda x: self.relation_transform(cr, uid, pool_src, pool_dest, fields[f]['relation'], x, action, context), data[f])
data[f] = [(6, 0, res)]

View File

@ -0,0 +1,32 @@
# Romanian translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2012-01-03 16:01+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Romanian <ro@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-01-04 04:48+0000\n"
"X-Generator: Launchpad (build 14616)\n"
#. module: base_tools
#: model:ir.module.module,shortdesc:base_tools.module_meta_information
msgid "Common base for tools modules"
msgstr "Baza comuna pentru modulele unelte"
#. module: base_tools
#: model:ir.module.module,description:base_tools.module_meta_information
msgid ""
"\n"
" "
msgstr ""
"****\n"
" "

View File

@ -0,0 +1,29 @@
# Romanian translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-22 18:44+0000\n"
"PO-Revision-Date: 2011-12-29 15:32+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Romanian <ro@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-30 05:39+0000\n"
"X-Generator: Launchpad (build 14560)\n"
#. module: claim_from_delivery
#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery
msgid "Claim"
msgstr "Solicitare"
#~ msgid "Claim from delivery"
#~ msgstr "Solicitare sin livrare"
#~ msgid "Create Claim from delivery order:\n"
#~ msgstr "Creeaza solicitare din ordinul de livrare\n"

View File

@ -427,7 +427,7 @@ class crm_case(crm_base):
if case.section_id.parent_id.user_id:
data['user_id'] = case.section_id.parent_id.user_id.id
else:
raise osv.except_osv(_('Error !'), _('You can not escalate, You are already at the top level regarding your sales-team category.'))
raise osv.except_osv(_('Error !'), _('You can not escalate, you are already at the top level regarding your sales-team category.'))
self.write(cr, uid, [case.id], data)
cases = self.browse(cr, uid, ids)
self.message_append(cr, uid, cases, _('Escalate'))

View File

@ -32,7 +32,6 @@
<record id="crm_case_stage_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="crm_case_stage_form_installer"/>
<field name="category_id" ref="base.category_sales_management_config"/>
<field name="groups_id" eval="[(6, 0, [ref('base.group_extended')])]" />
<field name="sequence">9</field>
</record>
</data>

View File

@ -194,7 +194,7 @@ class crm_lead(crm_case, osv.osv):
# Only used for type opportunity
'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', domain="[('partner_id','=',partner_id)]"),
'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', domain="[('partner_id','=',partner_id)]"),
'probability': fields.float('Probability (%)',group_operator="avg"),
'planned_revenue': fields.float('Expected Revenue'),
'ref': fields.reference('Reference', selection=crm._links_get, size=128),
@ -352,7 +352,7 @@ class crm_lead(crm_case, osv.osv):
"""
return self.set_priority(cr, uid, ids, '3')
def _merge_data(self, cr, uid, ids, oldest, fields, context=None):
# prepare opportunity data into dictionary for merging
opportunities = self.browse(cr, uid, ids, context=context)
@ -367,7 +367,7 @@ class crm_lead(crm_case, osv.osv):
def _get_first_not_null_id(attr):
res = _get_first_not_null(attr)
return res and res.id or False
def _concat_all(attr):
return ', '.join(filter(lambda x: x, [getattr(opportunity, attr) or '' for opportunity in opportunities if hasattr(opportunity, attr)]))
@ -378,7 +378,7 @@ class crm_lead(crm_case, osv.osv):
continue
field = field_info.column
if field._type in ('many2many', 'one2many'):
continue
continue
elif field._type == 'many2one':
data[field_name] = _get_first_not_null_id(field_name) # !!
elif field._type == 'text':
@ -437,18 +437,18 @@ class crm_lead(crm_case, osv.osv):
subject.append(opportunity.name)
title = "%s : %s" % (merge_message, opportunity.name)
details.append(self._mail_body_text(cr, uid, opportunity, fields, title=title, context=context))
subject = subject[0] + ", ".join(subject[1:])
details = "\n\n".join(details)
return self.message_append(cr, uid, [opportunity_id], subject, body_text=details, context=context)
def _merge_opportunity_history(self, cr, uid, opportunity_id, opportunities, context=None):
message = self.pool.get('mail.message')
for opportunity in opportunities:
for history in opportunity.message_ids:
message.write(cr, uid, history.id, {
'res_id': opportunity_id,
'subject' : _("From %s : %s") % (opportunity.name, history.subject)
'res_id': opportunity_id,
'subject' : _("From %s : %s") % (opportunity.name, history.subject)
}, context=context)
return True
@ -474,8 +474,8 @@ class crm_lead(crm_case, osv.osv):
)
attachment.write(values)
count+=1
return True
return True
def merge_opportunity(self, cr, uid, ids, context=None):
"""
@ -483,12 +483,12 @@ class crm_lead(crm_case, osv.osv):
:param ids: list of opportunities ids to merge
"""
if context is None: context = {}
#TOCHECK: where pass lead_ids in context?
lead_ids = context and context.get('lead_ids', []) or []
if len(ids) <= 1:
raise osv.except_osv(_('Warning !'),_('Please select more than one opportunities.'))
raise osv.except_osv(_('Warning !'),_('Please select more than one opportunity from the list view.'))
ctx_opportunities = self.browse(cr, uid, lead_ids, context=context)
opportunities = self.browse(cr, uid, ids, context=context)
@ -501,11 +501,11 @@ class crm_lead(crm_case, osv.osv):
first_opportunity = opportunities_list[0]
tail_opportunities = opportunities_list[1:]
fields = ['partner_id', 'title', 'name', 'categ_id', 'channel_id', 'city', 'company_id', 'contact_name', 'country_id',
fields = ['partner_id', 'title', 'name', 'categ_id', 'channel_id', 'city', 'company_id', 'contact_name', 'country_id',
'partner_address_id', 'type_id', 'user_id', 'section_id', 'state_id', 'description', 'email', 'fax', 'mobile',
'partner_name', 'phone', 'probability', 'planned_revenue', 'street', 'street2', 'zip', 'create_date', 'date_action_last',
'date_action_next', 'email_from', 'email_cc', 'partner_name']
data = self._merge_data(cr, uid, ids, oldest, fields, context=context)
# merge data into first opportunity
@ -513,8 +513,8 @@ class crm_lead(crm_case, osv.osv):
#copy message and attachements into the first opportunity
self._merge_opportunity_history(cr, uid, first_opportunity.id, tail_opportunities, context=context)
self._merge_opportunity_attachments(cr, uid, first_opportunity.id, tail_opportunities, context=context)
self._merge_opportunity_attachments(cr, uid, first_opportunity.id, tail_opportunities, context=context)
#Notification about loss of information
self._merge_notification(cr, uid, first_opportunity, opportunities, context=context)
#delete tail opportunities
@ -534,7 +534,7 @@ class crm_lead(crm_case, osv.osv):
if section_id:
stage_ids = crm_stage.search(cr, uid, [('sequence','>=',1), ('section_ids','=', section_id)])
else:
stage_ids = crm_stage.search(cr, uid, [('sequence','>=',1)])
stage_ids = crm_stage.search(cr, uid, [('sequence','>=',1)])
stage_id = stage_ids and stage_ids[0] or False
return {
'planned_revenue': lead.planned_revenue,
@ -565,10 +565,10 @@ class crm_lead(crm_case, osv.osv):
continue
if user_ids or section_id:
self.allocate_salesman(cr, uid, [lead.id], user_ids, section_id, context=context)
vals = self._convert_opportunity_data(cr, uid, lead, customer, section_id, context=context)
self.write(cr, uid, [lead.id], vals, context=context)
self._convert_opportunity_notification(cr, uid, lead, context=context)
#TOCHECK: why need to change partner details in all messages of lead ?
if lead.partner_id:
@ -596,7 +596,7 @@ class crm_lead(crm_case, osv.osv):
res_partner.write(cr, uid, partner_id, {'section_id': lead.section_id.id or False})
contact_id = res_partner.address_get(cr, uid, [partner_id])['default']
res = lead.write({'partner_id' : partner_id, 'partner_address_id': contact_id}, context=context)
return res
def _lead_create_partner_address(self, cr, uid, lead, partner_id, context=None):
@ -628,7 +628,7 @@ class crm_lead(crm_case, osv.osv):
context = {}
partner_ids = {}
for lead in self.browse(cr, uid, ids, context=context):
if action == 'create':
if action == 'create':
if not partner_id:
partner_id = self._lead_create_partner(cr, uid, lead, context=context)
self._lead_create_partner_address(cr, uid, lead, partner_id, context=context)
@ -641,12 +641,12 @@ class crm_lead(crm_case, osv.osv):
Send mail to salesman with updated Lead details.
@ lead: browse record of 'crm.lead' object.
"""
#TOFIX: mail template should be used here instead of fix subject, body text.
#TOFIX: mail template should be used here instead of fix subject, body text.
message = self.pool.get('mail.message')
email_to = lead.user_id and lead.user_id.user_email
if not email_to:
return False
email_from = lead.section_id and lead.section_id.user_id and lead.section_id.user_id.user_email or email_to
partner = lead.partner_id and lead.partner_id.name or lead.partner_name
subject = "lead %s converted into opportunity" % lead.name
@ -697,7 +697,7 @@ class crm_lead(crm_case, osv.osv):
'partner_mobile' : lead.partner_address_id and lead.partner_address_id.mobile or False,
'priority': lead.priority,
}
new_id = phonecall.create(cr, uid, vals, context=context)
phonecall.case_open(cr, uid, [new_id])
if action == 'log':
@ -799,10 +799,10 @@ class crm_lead(crm_case, osv.osv):
context.update({
'default_opportunity_id': opp.id,
'default_partner_id': opp.partner_id and opp.partner_id.id or False,
'default_user_id': uid,
'default_user_id': uid,
'default_section_id': opp.section_id and opp.section_id.id or False,
'default_email_from': opp.email_from,
'default_state': 'open',
'default_state': 'open',
'default_name': opp.name
})
value = {

View File

@ -61,7 +61,7 @@
<field name="res_model">crm.lead</field>
<field name="view_mode">kanban,tree,form,graph,calendar</field>
<field name="domain">[('type','=','opportunity')]</field>
<field name="context">{'search_default_user_id':uid,'search_default_new':1, 'search_default_open':1, 'search_default_section_id':section_id, 'stage_type': 'opportunity', 'default_type': 'opportunity'}</field>
<field name="context">{'search_default_new':1, 'search_default_open':1, 'search_default_section_id':section_id, 'stage_type': 'opportunity', 'default_type': 'opportunity'}</field>
<field name="view_id" eval="False"/>
<field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/>
<field name="help">With opportunities you can manage and keep track of your sales pipeline by creating specific customer- or prospect-related sales documents to follow up potential sales. Information such as expected revenue, opportunity stage, expected closing date, communication history and much more can be stored. Opportunities can be connected to the email gateway: new emails may create opportunities, each of them automatically gets the history of the conversation with the customer.

View File

@ -67,7 +67,7 @@
<newline />
<field name="user_id" />
<field name="section_id" widget="selection" />
<field name="stage_id" domain="[('section_ids', '=', section_id)]" />
<field name="stage_id" domain="section_id and [('section_ids', '=', section_id)] or []" />
<group col="2" colspan="1">
<button name="stage_previous" string=""
states="open,pending,draft" type="object"
@ -330,7 +330,7 @@
<a string="Edit" icon="gtk-edit" type="edit"/>
<a string="Change Color" icon="color-picker" type="color" name="color"/>
<a string="Send New Email" name="%(mail.action_email_compose_message_wizard)d" icon="terp-mail-message-new" type="action"/>
<a string="Schedule/Log Call" name="%(opportunity2phonecall_act)d" icon="terp-call-start" type="action"/>
<a string="Log Call" name="%(opportunity2phonecall_act)d" icon="terp-call-start" type="action"/>
<a string="Schedule Meeting" name="action_makeMeeting" type="object" icon="stock_calendar"/>
<a string="Add Internal Note" name="%(crm.action_crm_add_note)d" context="{'model': 'crm.lead' }" icon="terp-document-new" type="action"/>
</div>
@ -440,7 +440,7 @@
<group colspan="1" col="4">
<field name="stage_id" nolabel="1"
on_change="onchange_stage_id(stage_id)"
domain="[('section_ids', '=', section_id)]"/>
domain="section_id and [('section_ids', '=', section_id)] or []"/>
<button name="stage_previous"
states="draft,open,pending" type="object"
icon="gtk-go-back" string="" context="{'stage_type': 'opportunity'}"/>

View File

@ -229,9 +229,11 @@
<field name="arch" type="xml">
<tree string="Meetings"
colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')">
<field name="state" invisible="1"/>
<field name="name" string="Subject" />
<field name="user_id"/>
<field name="date"/>
<field name="state"/>
<field name="duration" />
<field name="partner_id" string="Partner" />
<field name="location" />

View File

@ -66,8 +66,8 @@
<field name="view_type">form</field>
<field name="view_mode">tree,calendar</field>
<field name="view_id" ref="crm_case_inbound_phone_tree_view"/>
<field name="domain">[('state','=','done')]</field>
<field name="context" eval="'{\'search_default_section_id\':section_id, \'default_state\':\'done\', \'search_default_today\':1}'"/>
<field name="domain">[]</field>
<field name="context" eval="'{\'search_default_section_id\':section_id}'"/>
<field name="search_view_id" ref="crm.view_crm_case_phonecalls_filter"/>
<field name="help">This tool allows you to log your inbound calls on the fly. Each call you get will appear on the partner form to trace every contact you have with a partner. From the phone call form, you can trigger a request for another call, a meeting or an opportunity.</field>
@ -105,7 +105,7 @@
<field name="view_mode">tree,calendar</field>
<field name="view_id" ref="crm_case_phone_tree_view"/>
<field name="domain">[('state','!=','done')]</field>
<field name="context" eval="'{\'search_default_section_id\':section_id, \'default_state\':\'open\', \'search_default_current\':1,\'search_default_today\':1}'"/>
<field name="context" eval="'{\'search_default_section_id\':section_id, \'default_state\':\'open\', \'search_default_current\':1}'"/>
<field name="search_view_id" ref="crm.view_crm_case_scheduled_phonecalls_filter"/>
<field name="help">Scheduled calls list all the calls to be done by your sales team. A salesman can record the information about the call in the form view. This information will be stored in the partner form to trace every contact you have with a customer. You can also import a .CSV file with a list of calls to be done by your sales team.</field>
</record>

View File

@ -14,7 +14,7 @@
<menuitem id="base.menu_sale_config_sales" name="Sales"
parent="base.menu_base_config" sequence="0" groups="base.group_sale_manager"/>
<menuitem id="menu_crm_config_phonecall" name="Phone Call"
<menuitem id="menu_crm_config_phonecall" name="Phone Calls"
parent="base.menu_base_config" sequence="5" groups="base.group_extended"/>
<menuitem id="base.next_id_64" name="Reporting"

View File

@ -40,7 +40,7 @@ class crm_opportunity2phonecall(osv.osv_memory):
record_ids = context and context.get('active_ids', []) or []
res = {}
res.update({'action': 'schedule', 'date': time.strftime('%Y-%m-%d %H:%M:%S')})
res.update({'action': 'log', 'date': time.strftime('%Y-%m-%d %H:%M:%S')})
for opp in opp_obj.browse(cr, uid, record_ids, context=context):
if 'name' in fields:
res.update({'name': opp.name})
@ -73,7 +73,7 @@ class crm_opportunity2phonecall(osv.osv_memory):
data.section_id and data.section_id.id or False, \
data.categ_id and data.categ_id.id or False, \
action=data.action, context=context)
return phonecall.redirect_phonecall_view(cr, uid, call_ids[opportunity_ids[0]], context=context)
return {'type': 'ir.actions.act_window_close'}
crm_opportunity2phonecall()

793
addons/crm_claim/i18n/ro.po Normal file
View File

@ -0,0 +1,793 @@
# Romanian translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-22 18:44+0000\n"
"PO-Revision-Date: 2011-12-29 06:36+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Romanian <ro@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-30 05:39+0000\n"
"X-Generator: Launchpad (build 14560)\n"
#. module: crm_claim
#: field:crm.claim.report,nbr:0
msgid "# of Cases"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
#: view:crm.claim.report:0
msgid "Group By..."
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Responsibilities"
msgstr ""
#. module: crm_claim
#: field:crm.claim,date_action_next:0
msgid "Next Action Date"
msgstr ""
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "March"
msgstr ""
#. module: crm_claim
#: field:crm.claim.report,delay_close:0
msgid "Delay to close"
msgstr ""
#. module: crm_claim
#: field:crm.claim,resolution:0
msgid "Resolution"
msgstr ""
#. module: crm_claim
#: field:crm.claim,company_id:0
#: view:crm.claim.report:0
#: field:crm.claim.report,company_id:0
msgid "Company"
msgstr ""
#. module: crm_claim
#: field:crm.claim,email_cc:0
msgid "Watchers Emails"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
msgid "#Claim"
msgstr ""
#. module: crm_claim
#: model:ir.actions.act_window,help:crm_claim.crm_claim_stage_act
msgid ""
"You can create claim stages to categorize the status of every claim entered "
"in the system. The stages define all the steps required for the resolution "
"of a claim."
msgstr ""
#. module: crm_claim
#: code:addons/crm_claim/crm_claim.py:132
#, python-format
msgid "The claim '%s' has been opened."
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Date Closed"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
#: field:crm.claim.report,day:0
msgid "Day"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Add Internal Note"
msgstr ""
#. module: crm_claim
#: help:crm.claim,section_id:0
msgid ""
"Sales team to which Case belongs to.Define Responsible user and Email "
"account for mail gateway."
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Claim Description"
msgstr ""
#. module: crm_claim
#: field:crm.claim,message_ids:0
msgid "Messages"
msgstr ""
#. module: crm_claim
#: model:crm.case.categ,name:crm_claim.categ_claim1
msgid "Factual Claims"
msgstr ""
#. module: crm_claim
#: selection:crm.claim,state:0
#: selection:crm.claim.report,state:0
msgid "Cancelled"
msgstr ""
#. module: crm_claim
#: model:crm.case.resource.type,name:crm_claim.type_claim2
msgid "Preventive"
msgstr ""
#. module: crm_claim
#: field:crm.claim.report,date_closed:0
msgid "Close Date"
msgstr ""
#. module: crm_claim
#: field:crm.claim,ref:0
msgid "Reference"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Date of claim"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "All pending Claims"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
msgid "# Mails"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Reset to Draft"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
#: field:crm.claim,date_deadline:0
#: field:crm.claim.report,date_deadline:0
msgid "Deadline"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
#: field:crm.claim,partner_id:0
#: view:crm.claim.report:0
#: field:crm.claim.report,partner_id:0
#: model:ir.model,name:crm_claim.model_res_partner
msgid "Partner"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Month of claim"
msgstr ""
#. module: crm_claim
#: selection:crm.claim,type_action:0
#: selection:crm.claim.report,type_action:0
msgid "Preventive Action"
msgstr ""
#. module: crm_claim
#: field:crm.claim.report,section_id:0
msgid "Section"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Root Causes"
msgstr ""
#. module: crm_claim
#: field:crm.claim,user_fault:0
msgid "Trouble Responsible"
msgstr ""
#. module: crm_claim
#: field:crm.claim,priority:0
#: view:crm.claim.report:0
#: field:crm.claim.report,priority:0
msgid "Priority"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Send New Email"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
#: selection:crm.claim,state:0
#: view:crm.claim.report:0
msgid "New"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
#: view:crm.claim.report:0
msgid "Type"
msgstr ""
#. module: crm_claim
#: field:crm.claim,email_from:0
msgid "Email"
msgstr ""
#. module: crm_claim
#: selection:crm.claim,priority:0
#: selection:crm.claim.report,priority:0
msgid "Lowest"
msgstr ""
#. module: crm_claim
#: field:crm.claim,action_next:0
msgid "Next Action"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
msgid "My Sales Team(s)"
msgstr ""
#. module: crm_claim
#: model:crm.case.stage,name:crm_claim.stage_claim3
msgid "Won't fix"
msgstr ""
#. module: crm_claim
#: field:crm.claim,create_date:0
msgid "Creation Date"
msgstr ""
#. module: crm_claim
#: field:crm.claim,name:0
msgid "Claim Subject"
msgstr ""
#. module: crm_claim
#: model:ir.actions.act_window,help:crm_claim.action_report_crm_claim
msgid ""
"Have a general overview of all claims processed in the system by sorting "
"them with specific criteria."
msgstr ""
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "July"
msgstr ""
#. module: crm_claim
#: model:ir.actions.act_window,name:crm_claim.crm_claim_stage_act
msgid "Claim Stages"
msgstr ""
#. module: crm_claim
#: model:ir.ui.menu,name:crm_claim.menu_crm_case_claim-act
msgid "Categories"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
#: field:crm.claim,stage_id:0
#: view:crm.claim.report:0
#: field:crm.claim.report,stage_id:0
msgid "Stage"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "History Information"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Dates"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Contact"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Month-1"
msgstr ""
#. module: crm_claim
#: model:ir.actions.act_window,name:crm_claim.action_report_crm_claim
#: model:ir.ui.menu,name:crm_claim.menu_report_crm_claim_tree
msgid "Claims Analysis"
msgstr ""
#. module: crm_claim
#: help:crm.claim.report,delay_close:0
msgid "Number of Days to close the case"
msgstr ""
#. module: crm_claim
#: model:ir.model,name:crm_claim.model_crm_claim_report
msgid "CRM Claim Report"
msgstr ""
#. module: crm_claim
#: model:crm.case.stage,name:crm_claim.stage_claim1
msgid "Accepted as Claim"
msgstr ""
#. module: crm_claim
#: model:crm.case.resource.type,name:crm_claim.type_claim1
msgid "Corrective"
msgstr ""
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "September"
msgstr ""
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "December"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
#: field:crm.claim.report,month:0
msgid "Month"
msgstr ""
#. module: crm_claim
#: field:crm.claim,type_action:0
#: view:crm.claim.report:0
#: field:crm.claim.report,type_action:0
msgid "Action Type"
msgstr ""
#. module: crm_claim
#: field:crm.claim,write_date:0
msgid "Update Date"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Year of claim"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Salesman"
msgstr ""
#. module: crm_claim
#: field:crm.claim,categ_id:0
#: view:crm.claim.report:0
#: field:crm.claim.report,categ_id:0
msgid "Category"
msgstr ""
#. module: crm_claim
#: model:crm.case.categ,name:crm_claim.categ_claim2
msgid "Value Claims"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Responsible User"
msgstr ""
#. module: crm_claim
#: help:crm.claim,email_cc:0
msgid ""
"These email addresses will be added to the CC field of all inbound and "
"outbound emails for this record before being sent. Separate multiple email "
"addresses with a comma"
msgstr ""
#. module: crm_claim
#: selection:crm.claim.report,state:0
msgid "Draft"
msgstr ""
#. module: crm_claim
#: selection:crm.claim,priority:0
#: selection:crm.claim.report,priority:0
msgid "Low"
msgstr ""
#. module: crm_claim
#: field:crm.claim,date_closed:0
#: selection:crm.claim,state:0
#: selection:crm.claim.report,state:0
msgid "Closed"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Reply"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
#: selection:crm.claim,state:0
#: view:crm.claim.report:0
#: selection:crm.claim.report,state:0
msgid "Pending"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Communication & History"
msgstr ""
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "August"
msgstr ""
#. module: crm_claim
#: selection:crm.claim,priority:0
#: selection:crm.claim.report,priority:0
msgid "Normal"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Global CC"
msgstr ""
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "June"
msgstr ""
#. module: crm_claim
#: view:res.partner:0
msgid "Partners Claim"
msgstr ""
#. module: crm_claim
#: field:crm.claim,partner_phone:0
msgid "Phone"
msgstr ""
#. module: crm_claim
#: field:crm.claim.report,user_id:0
msgid "User"
msgstr ""
#. module: crm_claim
#: field:crm.claim,active:0
msgid "Active"
msgstr ""
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "November"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Extended Filters..."
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Closure"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Search"
msgstr ""
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "October"
msgstr ""
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "January"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
#: field:crm.claim,date:0
msgid "Claim Date"
msgstr ""
#. module: crm_claim
#: help:crm.claim,email_from:0
msgid "These people will receive email."
msgstr ""
#. module: crm_claim
#: model:ir.actions.act_window,name:crm_claim.crm_claim_categ_action
msgid "Claim Categories"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
#: view:crm.claim.report:0
#: model:ir.actions.act_window,name:crm_claim.act_claim_partner
#: model:ir.actions.act_window,name:crm_claim.act_claim_partner_address
#: model:ir.actions.act_window,name:crm_claim.crm_case_categ_claim0
#: model:ir.ui.menu,name:crm_claim.menu_crm_case_claims
#: field:res.partner,claims_ids:0
msgid "Claims"
msgstr ""
#. module: crm_claim
#: selection:crm.claim,type_action:0
#: selection:crm.claim.report,type_action:0
msgid "Corrective Action"
msgstr ""
#. module: crm_claim
#: model:crm.case.categ,name:crm_claim.categ_claim3
msgid "Policy Claims"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "History"
msgstr ""
#. module: crm_claim
#: model:ir.model,name:crm_claim.model_crm_claim
#: model:ir.ui.menu,name:crm_claim.menu_config_claim
msgid "Claim"
msgstr ""
#. module: crm_claim
#: selection:crm.claim,priority:0
#: selection:crm.claim.report,priority:0
msgid "Highest"
msgstr ""
#. module: crm_claim
#: field:crm.claim,partner_address_id:0
msgid "Partner Contact"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
#: field:crm.claim,state:0
#: view:crm.claim.report:0
#: field:crm.claim.report,state:0
msgid "State"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
#: view:crm.claim.report:0
msgid "Done"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Claim Reporter"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
#: view:crm.claim.report:0
msgid "Cancel"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Close"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
#: view:crm.claim.report:0
#: selection:crm.claim.report,state:0
msgid "Open"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "New Claims"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
#: selection:crm.claim,state:0
msgid "In Progress"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
#: field:crm.claim,user_id:0
msgid "Responsible"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Claims created in current year"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Unassigned Claims"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Claims created in current month"
msgstr ""
#. module: crm_claim
#: field:crm.claim.report,delay_expected:0
msgid "Overpassed Deadline"
msgstr ""
#. module: crm_claim
#: field:crm.claim,cause:0
msgid "Root Cause"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Claim/Action Description"
msgstr ""
#. module: crm_claim
#: field:crm.claim,description:0
msgid "Description"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Search Claims"
msgstr ""
#. module: crm_claim
#: field:crm.claim,section_id:0
#: view:crm.claim.report:0
msgid "Sales Team"
msgstr ""
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "May"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Resolution Actions"
msgstr ""
#. module: crm_claim
#: model:ir.actions.act_window,help:crm_claim.crm_case_categ_claim0
msgid ""
"Record and track your customers' claims. Claims may be linked to a sales "
"order or a lot. You can send emails with attachments and keep the full "
"history for a claim (emails sent, intervention type and so on). Claims may "
"automatically be linked to an email address using the mail gateway module."
msgstr ""
#. module: crm_claim
#: field:crm.claim.report,email:0
msgid "# Emails"
msgstr ""
#. module: crm_claim
#: model:crm.case.stage,name:crm_claim.stage_claim2
msgid "Actions Done"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Claims created in last month"
msgstr ""
#. module: crm_claim
#: model:crm.case.stage,name:crm_claim.stage_claim5
msgid "Actions Defined"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Follow Up"
msgstr ""
#. module: crm_claim
#: help:crm.claim,state:0
msgid ""
"The state is set to 'Draft', when a case is created. "
" \n"
"If the case is in progress the state is set to 'Open'. "
" \n"
"When the case is over, the state is set to 'Done'. "
" \n"
"If the case needs to be reviewed then the state is set to 'Pending'."
msgstr ""
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "February"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
#: field:crm.claim.report,name:0
msgid "Year"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
msgid "My company"
msgstr ""
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "April"
msgstr ""
#. module: crm_claim
#: view:crm.claim.report:0
msgid "My Case(s)"
msgstr ""
#. module: crm_claim
#: field:crm.claim,id:0
msgid "ID"
msgstr ""
#. module: crm_claim
#: constraint:res.partner:0
msgid "Error ! You cannot create recursive associated members."
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "Actions"
msgstr ""
#. module: crm_claim
#: selection:crm.claim,priority:0
#: selection:crm.claim.report,priority:0
msgid "High"
msgstr ""
#. module: crm_claim
#: model:ir.actions.act_window,help:crm_claim.crm_claim_categ_action
msgid ""
"Create claim categories to better manage and classify your claims. Some "
"example of claims can be: preventive action, corrective action."
msgstr ""
#. module: crm_claim
#: field:crm.claim.report,create_date:0
msgid "Create Date"
msgstr ""
#. module: crm_claim
#: view:crm.claim:0
msgid "In Progress Claims"
msgstr ""

View File

@ -0,0 +1,841 @@
# Romanian translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-22 18:44+0000\n"
"PO-Revision-Date: 2012-01-03 18:58+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Romanian <ro@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-01-04 04:48+0000\n"
"X-Generator: Launchpad (build 14616)\n"
#. module: crm_fundraising
#: field:crm.fundraising,planned_revenue:0
msgid "Planned Revenue"
msgstr "Venituri planificate"
#. module: crm_fundraising
#: field:crm.fundraising.report,nbr:0
msgid "# of Cases"
msgstr "# de Cazuri"
#. module: crm_fundraising
#: view:crm.fundraising:0
#: view:crm.fundraising.report:0
msgid "Group By..."
msgstr "Grupare după..."
#. module: crm_fundraising
#: field:crm.fundraising.report,probability:0
msgid "Avg. Probability"
msgstr "Probabilitatea medie"
#. module: crm_fundraising
#: selection:crm.fundraising.report,month:0
msgid "March"
msgstr "Martie"
#. module: crm_fundraising
#: field:crm.fundraising.report,delay_close:0
msgid "Delay to close"
msgstr "Întârziere la inchidere"
#. module: crm_fundraising
#: field:crm.fundraising,company_id:0
#: view:crm.fundraising.report:0
#: field:crm.fundraising.report,company_id:0
msgid "Company"
msgstr "Companie"
#. module: crm_fundraising
#: model:ir.actions.act_window,name:crm_fundraising.crm_fund_categ_action
msgid "Fundraising Categories"
msgstr "Categorii de strangere de fonduri"
#. module: crm_fundraising
#: field:crm.fundraising,email_cc:0
msgid "Watchers Emails"
msgstr "Email-uri supraveghetori"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
msgid "Cases"
msgstr "Cazuri"
#. module: crm_fundraising
#: selection:crm.fundraising,priority:0
msgid "Highest"
msgstr "Cel mai ridicat (cea mai ridicata)"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
#: field:crm.fundraising.report,day:0
msgid "Day"
msgstr "Zi"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Add Internal Note"
msgstr "Adauga nota interna"
#. module: crm_fundraising
#: field:crm.fundraising,partner_mobile:0
msgid "Mobile"
msgstr "Mobil"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Notes"
msgstr "Note"
#. module: crm_fundraising
#: field:crm.fundraising,message_ids:0
msgid "Messages"
msgstr "Mesaje"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
msgid "My company"
msgstr ""
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Amount"
msgstr "Sumă"
#. module: crm_fundraising
#: selection:crm.fundraising,state:0
#: selection:crm.fundraising.report,state:0
msgid "Cancelled"
msgstr "Anulat(ă)"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
#: field:crm.fundraising.report,amount_revenue:0
msgid "Est.Revenue"
msgstr "Venit estimat"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Open Funds"
msgstr ""
#. module: crm_fundraising
#: field:crm.fundraising,ref:0
msgid "Reference"
msgstr "Referinţă"
#. module: crm_fundraising
#: field:crm.fundraising,type_id:0
msgid "Campaign"
msgstr "Campanie"
#. module: crm_fundraising
#: field:crm.fundraising,date_action_next:0
msgid "Next Action"
msgstr "Următoarea acţiune"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Reset to Draft"
msgstr "Resetare ca ciorna"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Extra Info"
msgstr "Informaţii suplimentare"
#. module: crm_fundraising
#: model:ir.model,name:crm_fundraising.model_crm_fundraising
#: model:ir.ui.menu,name:crm_fundraising.menu_config_fundrising
#: model:ir.ui.menu,name:crm_fundraising.menu_crm_case_fund_raise
msgid "Fund Raising"
msgstr "Strângerea de fonduri"
#. module: crm_fundraising
#: view:crm.fundraising:0
#: field:crm.fundraising,partner_id:0
#: field:crm.fundraising.report,partner_id:0
msgid "Partner"
msgstr "Partener"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
msgid "Funds raised in current year"
msgstr ""
#. module: crm_fundraising
#: model:ir.actions.act_window,name:crm_fundraising.action_report_crm_fundraising
#: model:ir.ui.menu,name:crm_fundraising.menu_report_crm_fundraising_tree
msgid "Fundraising Analysis"
msgstr "Analiza Strangere de fonduri"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Misc"
msgstr "Diverse"
#. module: crm_fundraising
#: field:crm.fundraising.report,section_id:0
msgid "Section"
msgstr "Secţiune"
#. module: crm_fundraising
#: view:crm.fundraising:0
#: field:crm.fundraising,priority:0
msgid "Priority"
msgstr "Prioritate"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Send New Email"
msgstr "Trimite un e-mail nou"
#. module: crm_fundraising
#: model:crm.case.categ,name:crm_fundraising.categ_fund1
msgid "Social Rehabilitation And Rural Upliftment"
msgstr "Reabilitare sociala si Ridicare rurala"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Pending Funds"
msgstr ""
#. module: crm_fundraising
#: view:crm.fundraising:0
#: view:crm.fundraising.report:0
msgid "Payment Mode"
msgstr "Modalitate de plată"
#. module: crm_fundraising
#: view:crm.fundraising:0
#: selection:crm.fundraising,state:0
#: view:crm.fundraising.report:0
msgid "New"
msgstr ""
#. module: crm_fundraising
#: field:crm.fundraising,email_from:0
msgid "Email"
msgstr "Email"
#. module: crm_fundraising
#: selection:crm.fundraising,priority:0
msgid "Lowest"
msgstr "Cel mai scazut (cea mai scazuta)"
#. module: crm_fundraising
#: view:crm.fundraising:0
#: view:crm.fundraising.report:0
msgid "My Sales Team(s)"
msgstr ""
#. module: crm_fundraising
#: field:crm.fundraising,create_date:0
msgid "Creation Date"
msgstr "Data creării"
#. module: crm_fundraising
#: field:crm.fundraising,date_deadline:0
msgid "Deadline"
msgstr "Data scadenta"
#. module: crm_fundraising
#: selection:crm.fundraising.report,month:0
msgid "July"
msgstr "Iulie"
#. module: crm_fundraising
#: model:ir.ui.menu,name:crm_fundraising.menu_crm_case_fundraising-act
msgid "Categories"
msgstr "Categorii"
#. module: crm_fundraising
#: field:crm.fundraising,stage_id:0
msgid "Stage"
msgstr "Etapă"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "History Information"
msgstr "Istoric Informatii"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Dates"
msgstr "Date"
#. module: crm_fundraising
#: field:crm.fundraising,partner_name2:0
msgid "Employee Email"
msgstr "Email angajat"
#. module: crm_fundraising
#: model:crm.case.categ,name:crm_fundraising.categ_fund2
msgid "Learning And Education"
msgstr "Invatare si educatie"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Contact"
msgstr "Contact"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Funds Form"
msgstr "Fonduri de la"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Fund Description"
msgstr "Descriere fond"
#. module: crm_fundraising
#: help:crm.fundraising.report,delay_close:0
msgid "Number of Days to close the case"
msgstr "Numarul de zile pana la inchiderea (rezolvarea) cazului"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
msgid "Funds raised in current month"
msgstr ""
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "References"
msgstr "Referințe"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
msgid "Fundraising"
msgstr "Strângere de fonduri"
#. module: crm_fundraising
#: model:ir.actions.act_window,help:crm_fundraising.action_report_crm_fundraising
msgid ""
"Have a general overview of all fund raising activities by sorting them with "
"specific criteria such as the estimated revenue, average success probability "
"and delay to close."
msgstr ""
"Aveti o vedere de ansamblu asupra tuturor activitatilor de stangere de "
"fonduri sortandu-le dupa criterii specifice precum venitul estimat, "
"probabilitatea medie de succes si intarzierea la inchidere."
#. module: crm_fundraising
#: selection:crm.fundraising.report,month:0
msgid "September"
msgstr "Septembrie"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Communication"
msgstr "Comunicare"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Funds Tree"
msgstr "Arbore fonduri"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
#: field:crm.fundraising.report,month:0
msgid "Month"
msgstr "Luna"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Escalate"
msgstr "Promovează"
#. module: crm_fundraising
#: field:crm.fundraising,write_date:0
msgid "Update Date"
msgstr "Data actualizarii"
#. module: crm_fundraising
#: model:crm.case.resource.type,name:crm_fundraising.type_fund3
msgid "Credit Card"
msgstr "Card de credit"
#. module: crm_fundraising
#: model:ir.actions.act_window,name:crm_fundraising.crm_fundraising_stage_act
msgid "Fundraising Stages"
msgstr "Etapele strangerii de fonduri"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
msgid "Salesman"
msgstr "Agent comercial"
#. module: crm_fundraising
#: field:crm.fundraising,ref2:0
msgid "Reference 2"
msgstr "Referinta 2"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
msgid "Funds raised in last month"
msgstr ""
#. module: crm_fundraising
#: view:crm.fundraising:0
#: field:crm.fundraising,categ_id:0
#: view:crm.fundraising.report:0
#: field:crm.fundraising.report,categ_id:0
msgid "Category"
msgstr "Categorie"
#. module: crm_fundraising
#: model:crm.case.categ,name:crm_fundraising.categ_fund4
msgid "Arts And Culture"
msgstr "Arta si Cultura"
#. module: crm_fundraising
#: field:crm.fundraising,planned_cost:0
#: view:crm.fundraising.report:0
#: field:crm.fundraising.report,planned_cost:0
msgid "Planned Costs"
msgstr "Costuri planificate"
#. module: crm_fundraising
#: help:crm.fundraising,email_cc:0
msgid ""
"These email addresses will be added to the CC field of all inbound and "
"outbound emails for this record before being sent. Separate multiple email "
"addresses with a comma"
msgstr ""
"Aceste adrese de email vor fi adaugate in campul CC al tuturor email-urilor "
"primite si trimise pentru aceasta inregistrare inainte de a fi trimise. "
"Despartiti adresele de mail multiple cu o virgula"
#. module: crm_fundraising
#: selection:crm.fundraising.report,state:0
msgid "Draft"
msgstr "Ciornă"
#. module: crm_fundraising
#: selection:crm.fundraising,priority:0
msgid "Low"
msgstr "Scăzut(ă)"
#. module: crm_fundraising
#: field:crm.fundraising,date_closed:0
#: selection:crm.fundraising,state:0
#: selection:crm.fundraising.report,state:0
msgid "Closed"
msgstr "Închis"
#. module: crm_fundraising
#: view:crm.fundraising:0
#: selection:crm.fundraising,state:0
#: view:crm.fundraising.report:0
#: selection:crm.fundraising.report,state:0
msgid "Pending"
msgstr "În așteptare"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Communication & History"
msgstr "Comunicare & Istoric"
#. module: crm_fundraising
#: selection:crm.fundraising.report,month:0
msgid "August"
msgstr "August"
#. module: crm_fundraising
#: selection:crm.fundraising,priority:0
msgid "Normal"
msgstr "Normal"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Global CC"
msgstr "CC global"
#. module: crm_fundraising
#: view:crm.fundraising:0
#: model:ir.actions.act_window,name:crm_fundraising.crm_case_category_act_fund_all1
msgid "Funds"
msgstr "Fonduri"
#. module: crm_fundraising
#: selection:crm.fundraising.report,month:0
msgid "June"
msgstr "Iunie"
#. module: crm_fundraising
#: field:crm.fundraising,partner_phone:0
msgid "Phone"
msgstr "Telefon"
#. module: crm_fundraising
#: field:crm.fundraising.report,user_id:0
msgid "User"
msgstr "Utilizator"
#. module: crm_fundraising
#: model:crm.case.resource.type,name:crm_fundraising.type_fund2
msgid "Cheque"
msgstr "Cec"
#. module: crm_fundraising
#: field:crm.fundraising,active:0
msgid "Active"
msgstr "Activ"
#. module: crm_fundraising
#: selection:crm.fundraising.report,month:0
msgid "November"
msgstr "Noiembrie"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
msgid "Extended Filters..."
msgstr "Filtre extinse..."
#. module: crm_fundraising
#: view:crm.fundraising.report:0
msgid "Search"
msgstr "Căutare"
#. module: crm_fundraising
#: selection:crm.fundraising.report,month:0
msgid "October"
msgstr "Octombrie"
#. module: crm_fundraising
#: selection:crm.fundraising.report,month:0
msgid "January"
msgstr "Ianuarie"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
msgid "#Fundraising"
msgstr "#Strangere de fonduri"
#. module: crm_fundraising
#: model:ir.actions.act_window,help:crm_fundraising.crm_fund_categ_action
msgid ""
"Manage and define the fund raising categories you want to be maintained in "
"the system."
msgstr ""
"Gestionati si definiti categoriile strangerii de fonduri care doriti sa "
"ramana in sistem."
#. module: crm_fundraising
#: help:crm.fundraising,email_from:0
msgid "These people will receive email."
msgstr "Aceste persoane vor primi e-mail."
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Fund Category"
msgstr ""
#. module: crm_fundraising
#: field:crm.fundraising,date:0
msgid "Date"
msgstr "Dată"
#. module: crm_fundraising
#: model:crm.case.categ,name:crm_fundraising.categ_fund3
msgid "Healthcare"
msgstr "Servicii medicale"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "History"
msgstr "Istoric"
#. module: crm_fundraising
#: field:crm.fundraising,partner_address_id:0
msgid "Partner Contact"
msgstr "Contact partener"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
msgid "Month of fundraising"
msgstr ""
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Estimates"
msgstr "Estimări"
#. module: crm_fundraising
#: view:crm.fundraising:0
#: field:crm.fundraising,state:0
#: view:crm.fundraising.report:0
#: field:crm.fundraising.report,state:0
msgid "State"
msgstr "Stare"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Unassigned"
msgstr ""
#. module: crm_fundraising
#: view:crm.fundraising:0
#: view:crm.fundraising.report:0
msgid "Done"
msgstr "Efectuat"
#. module: crm_fundraising
#: selection:crm.fundraising.report,month:0
msgid "December"
msgstr "Decembrie"
#. module: crm_fundraising
#: view:crm.fundraising:0
#: view:crm.fundraising.report:0
msgid "Cancel"
msgstr "Anulează"
#. module: crm_fundraising
#: view:crm.fundraising:0
#: view:crm.fundraising.report:0
#: selection:crm.fundraising.report,state:0
msgid "Open"
msgstr "Deschide"
#. module: crm_fundraising
#: selection:crm.fundraising,state:0
msgid "In Progress"
msgstr ""
#. module: crm_fundraising
#: model:ir.actions.act_window,help:crm_fundraising.crm_case_category_act_fund_all1
msgid ""
"If you need to collect money for your organization or a campaign, Fund "
"Raising allows you to track all your fund raising activities. In the search "
"list, filter by funds description, email, history and probability of success."
msgstr ""
"Daca trebuie sa strangeti bani pentru organizatia dumneavoastra sau pentru o "
"campanie, Strangerea de fonduri va permite sa tineti evidenta tuturor "
"activitatilor dumneavoastra de strangere de fonduri. In lista de cautare, "
"filtrati dupa descrierea fondurilor, emai, istoric si probabilitatea de "
"succes."
#. module: crm_fundraising
#: view:crm.fundraising:0
#: field:crm.fundraising,user_id:0
msgid "Responsible"
msgstr "Responsabil"
#. module: crm_fundraising
#: help:crm.fundraising,section_id:0
msgid ""
"Sales team to which Case belongs to. Define Responsible user and Email "
"account for mail gateway."
msgstr ""
"Echipa de vanzari careia ii apartine cazul. Definiti Utilizatorul "
"responsabil si contul de email pentru mail gateway."
#. module: crm_fundraising
#: model:ir.model,name:crm_fundraising.model_crm_fundraising_report
msgid "CRM Fundraising Report"
msgstr "Raport Strangere de Fonduri MRC"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Reply"
msgstr "Răspuns"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
msgid "Date of fundraising"
msgstr ""
#. module: crm_fundraising
#: view:crm.fundraising.report:0
#: field:crm.fundraising.report,amount_revenue_prob:0
msgid "Est. Rev*Prob."
msgstr "Venit Estimat*Probabilitate"
#. module: crm_fundraising
#: field:crm.fundraising.report,type_id:0
msgid "Fundraising Type"
msgstr "Tipul Strangerii de fonduri"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "New Funds"
msgstr ""
#. module: crm_fundraising
#: model:ir.actions.act_window,help:crm_fundraising.crm_fundraising_stage_act
msgid ""
"Create and manage fund raising activity categories you want to be maintained "
"in the system."
msgstr ""
"Creati si gestionati categoriile activitatii de stranere de fonduri care "
"doriti sa ramana in sistem."
#. module: crm_fundraising
#: field:crm.fundraising,description:0
msgid "Description"
msgstr "Descriere"
#. module: crm_fundraising
#: selection:crm.fundraising.report,month:0
msgid "May"
msgstr "Mai"
#. module: crm_fundraising
#: field:crm.fundraising,probability:0
msgid "Probability (%)"
msgstr "Probabilitate (%)"
#. module: crm_fundraising
#: field:crm.fundraising,partner_name:0
msgid "Employee's Name"
msgstr "Numele angajatului"
#. module: crm_fundraising
#: help:crm.fundraising,state:0
msgid ""
"The state is set to 'Draft', when a case is created. "
" \n"
"If the case is in progress the state is set to 'Open'. "
" \n"
"When the case is over, the state is set to 'Done'. "
" \n"
"If the case needs to be reviewed then the state is set to 'Pending'."
msgstr ""
"Starea este setata pe 'Ciorna', atunci cand este creat un caz. "
" \n"
"Daca cazul este in desfasurare, starea este setata pe 'Deschis'. "
" \n"
"Atunci cand cazul este incheiat, starea este setata pe 'Efectuat'. "
" \n"
"Daca cazul trebuie revazut, atunci starea este setata pe 'In asteptare'."
#. module: crm_fundraising
#: selection:crm.fundraising.report,month:0
msgid "February"
msgstr "Februarie"
#. module: crm_fundraising
#: view:crm.fundraising:0
#: field:crm.fundraising,name:0
msgid "Name"
msgstr "Nume"
#. module: crm_fundraising
#: model:crm.case.resource.type,name:crm_fundraising.type_fund1
msgid "Cash"
msgstr "Numerar"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Funds by Categories"
msgstr "Fonduri dupa Categorii"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
msgid "Month-1"
msgstr ""
#. module: crm_fundraising
#: selection:crm.fundraising.report,month:0
msgid "April"
msgstr "Aprilie"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
msgid "My Case(s)"
msgstr "Cazul (cazurile) meu (mele)"
#. module: crm_fundraising
#: model:crm.case.resource.type,name:crm_fundraising.type_fund4
msgid "Demand Draft"
msgstr "Solicitare ciorna"
#. module: crm_fundraising
#: field:crm.fundraising,id:0
msgid "ID"
msgstr "ID"
#. module: crm_fundraising
#: view:crm.fundraising:0
msgid "Search Funds"
msgstr "Cautare Fonduri"
#. module: crm_fundraising
#: selection:crm.fundraising,priority:0
msgid "High"
msgstr "Ridicat(ă)"
#. module: crm_fundraising
#: view:crm.fundraising:0
#: field:crm.fundraising,section_id:0
#: view:crm.fundraising.report:0
msgid "Sales Team"
msgstr "Echipa de vânzări"
#. module: crm_fundraising
#: field:crm.fundraising.report,create_date:0
msgid "Create Date"
msgstr "Creare data"
#. module: crm_fundraising
#: field:crm.fundraising,date_action_last:0
msgid "Last Action"
msgstr "Ultima acțiune"
#. module: crm_fundraising
#: view:crm.fundraising.report:0
#: field:crm.fundraising.report,name:0
msgid "Year"
msgstr "An"
#. module: crm_fundraising
#: field:crm.fundraising,duration:0
msgid "Duration"
msgstr "Durată"
#~ msgid "CRM Fundraising"
#~ msgstr "Strangere de fonduri MRC"
#~ msgid " Month "
#~ msgstr " Luna "
#~ msgid "Channel"
#~ msgstr "Canal"
#~ msgid " Month-1 "
#~ msgstr " Luna-1 "
#~ msgid " Year "
#~ msgstr " An "
#~ msgid "Stages"
#~ msgstr "Etape"
#~ msgid "Stage of case"
#~ msgstr "Etapa cazului"
#~ msgid "Attachments"
#~ msgstr "Atașamente"
#~ msgid "Current"
#~ msgstr "Curent"
#~ msgid "Details"
#~ msgstr "Detalii"
#~ msgid ""
#~ "The channels represent the different communication modes available with the "
#~ "customer."
#~ msgstr ""
#~ "Canalele reprezinta diferitele moduri disponibile de comunicare cu clientul."

View File

@ -212,7 +212,7 @@ class delivery_grid(osv.osv):
ok = True
break
if not ok:
raise osv.except_osv(_('No price available !'), _('No line matched this order in the choosed delivery grids !'))
raise osv.except_osv(_('No price available!'), _('No line matched this product or order in the choosed delivery grid.'))
return price

View File

@ -7,20 +7,20 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-12-22 18:44+0000\n"
"PO-Revision-Date: 2010-09-17 19:09+0000\n"
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
"<jesteve@zikzakmedia.com>\n"
"PO-Revision-Date: 2011-12-31 15:56+0000\n"
"Last-Translator: Christopher Ormaza - (Ecuadorenlinea.net) "
"<chris.ormaza@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-23 05:53+0000\n"
"X-Launchpad-Export-Date: 2012-01-01 05:31+0000\n"
"X-Generator: Launchpad (build 14560)\n"
#. module: delivery
#: report:sale.shipping:0
msgid "Order Ref."
msgstr ""
msgstr "Ref. pedido"
#. module: delivery
#: view:delivery.carrier:0
@ -31,23 +31,23 @@ msgstr "Destino"
#. module: delivery
#: field:stock.move,weight_net:0
msgid "Net weight"
msgstr ""
msgstr "Peso neto"
#. module: delivery
#: view:stock.picking:0
msgid "Delivery Order"
msgstr ""
msgstr "Orden de Entrega"
#. module: delivery
#: code:addons/delivery/delivery.py:215
#, python-format
msgid "No price available !"
msgstr ""
msgstr "¡No existe precio disponible!"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_grid_line
msgid "Delivery Grid Line"
msgstr ""
msgstr "Línea cuadrícula envío"
#. module: delivery
#: view:delivery.carrier:0
@ -60,7 +60,7 @@ msgstr "Cuadrículas de envío"
#: selection:delivery.grid.line,variable_factor:0
#: field:stock.picking,volume:0
msgid "Volume"
msgstr "Volumen"
msgstr "Volúmen"
#. module: delivery
#: field:delivery.grid,line_ids:0
@ -70,12 +70,12 @@ msgstr "Línea de la cuadrícula"
#. module: delivery
#: help:delivery.carrier,partner_id:0
msgid "The partner that is doing the delivery service."
msgstr ""
msgstr "La empresa que esta realizando el servicio de transporte"
#. module: delivery
#: model:ir.actions.report.xml,name:delivery.report_shipping
msgid "Delivery order"
msgstr ""
msgstr "Orden de Entrega"
#. module: delivery
#: view:res.partner:0
@ -85,17 +85,19 @@ msgstr "Propiedades de envío"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_picking_tree4
msgid "Picking to be invoiced"
msgstr ""
msgstr "Orden de Entrega para ser Facturada"
#. module: delivery
#: field:delivery.carrier,pricelist_ids:0
msgid "Advanced Pricing"
msgstr ""
msgstr "Precio Avanzado"
#. module: delivery
#: help:delivery.grid,sequence:0
msgid "Gives the sequence order when displaying a list of delivery grid."
msgstr ""
"Indica el orden de secuencia cuando se muestra una lista de cuadrícula de "
"envío."
#. module: delivery
#: view:delivery.carrier:0
@ -107,7 +109,7 @@ msgstr "Países"
#. module: delivery
#: report:sale.shipping:0
msgid "Delivery Order :"
msgstr ""
msgstr "Orden de Entrega :"
#. module: delivery
#: field:delivery.grid.line,variable_factor:0
@ -122,11 +124,15 @@ msgid ""
"can define several price lists for one delivery method, per country or a "
"zone in a specific country defined by a postal code range."
msgstr ""
"La lista de precios por entrega le permite calcular el coste y precio de "
"venta de la entrega en funvión del peso de los productos y de otros "
"criterios. Puede definir varios precios por un método de entrega, por país, "
"o por zona de un páis específico, definido por un rango de códigos postales."
#. module: delivery
#: field:delivery.carrier,amount:0
msgid "Amount"
msgstr ""
msgstr "Monto"
#. module: delivery
#: selection:delivery.grid.line,price_type:0
@ -147,28 +153,30 @@ msgstr "Método de envío"
#. module: delivery
#: model:ir.model,name:delivery.model_stock_move
msgid "Stock Move"
msgstr ""
msgstr "Moviemiento de stock"
#. module: delivery
#: code:addons/delivery/delivery.py:215
#, python-format
msgid "No line matched this order in the choosed delivery grids !"
msgstr ""
"¡No existe línea que concuerde con esta orden en las cuadrículas de envío "
"seleccionadas!"
#. module: delivery
#: field:stock.picking,carrier_tracking_ref:0
msgid "Carrier Tracking Ref"
msgstr ""
msgstr "Ref. seguimiento transportista"
#. module: delivery
#: field:stock.picking,weight_net:0
msgid "Net Weight"
msgstr ""
msgstr "Peso neto"
#. module: delivery
#: view:delivery.grid.line:0
msgid "Grid Lines"
msgstr "Líneas de la cuadrícula"
msgstr "Líneas de cuadrícula"
#. module: delivery
#: view:delivery.carrier:0
@ -179,7 +187,7 @@ msgstr "Definición de la cuadrícula"
#. module: delivery
#: view:delivery.sale.order:0
msgid "_Cancel"
msgstr ""
msgstr "_Cancelar"
#. module: delivery
#: field:delivery.grid.line,operator:0
@ -189,12 +197,12 @@ msgstr "Operador"
#. module: delivery
#: model:ir.model,name:delivery.model_res_partner
msgid "Partner"
msgstr ""
msgstr "Empresa"
#. module: delivery
#: model:ir.model,name:delivery.model_sale_order
msgid "Sales Order"
msgstr ""
msgstr "Pedido de Venta"
#. module: delivery
#: model:ir.actions.act_window,help:delivery.action_delivery_carrier_form1
@ -202,16 +210,19 @@ msgid ""
"Define your delivery methods and their pricing. The delivery costs can be "
"added on the sale order form or in the invoice, based on the delivery orders."
msgstr ""
"Define sus métodos de envío y sus precios. Los costos de envío pueden ser "
"agregados en el pedido de venta o en la factura, basado en las ordenes de "
"entrega"
#. module: delivery
#: report:sale.shipping:0
msgid "Lot"
msgstr ""
msgstr "Lote"
#. module: delivery
#: field:delivery.carrier,partner_id:0
msgid "Transport Company"
msgstr ""
msgstr "Compañia de Transporte"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_grid
@ -221,12 +232,12 @@ msgstr "Cuadrícula de envío"
#. module: delivery
#: report:sale.shipping:0
msgid "Invoiced to"
msgstr ""
msgstr "Facturado a"
#. module: delivery
#: model:ir.model,name:delivery.model_stock_picking
msgid "Picking List"
msgstr ""
msgstr "Lista de Envios"
#. module: delivery
#: field:delivery.carrier,grids_id:0
@ -236,7 +247,7 @@ msgstr "Cuadrículas de envío"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_sale_order
msgid "Make Delievery"
msgstr ""
msgstr "Realizar entrega"
#. module: delivery
#: field:delivery.grid.line,name:0
@ -254,12 +265,13 @@ msgid ""
"Amount of the order to benefit from a free shipping, expressed in the "
"company currency"
msgstr ""
"Monto de la orden por envío gratuito, expresado en la moneda de la compañía"
#. module: delivery
#: code:addons/delivery/stock.py:89
#, python-format
msgid "Warning"
msgstr ""
msgstr "Alerta"
#. module: delivery
#: field:delivery.grid.line,grid_id:0
@ -272,6 +284,8 @@ msgid ""
"If the active field is set to False, it will allow you to hide the delivery "
"grid without removing it."
msgstr ""
"Si el campo activo se desmarca, permite ocultar la cuadrícula de envío sin "
"eliminarla."
#. module: delivery
#: field:delivery.grid,zip_to:0
@ -282,22 +296,22 @@ msgstr "C.Postal final"
#: code:addons/delivery/delivery.py:143
#, python-format
msgid "Default price"
msgstr ""
msgstr "Precio por Defecto"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_define_delivery_steps_wizard
msgid "delivery.define.delivery.steps.wizard"
msgstr ""
msgstr "Asistente de Envíos"
#. module: delivery
#: field:delivery.carrier,normal_price:0
msgid "Normal Price"
msgstr ""
msgstr "Precio Normal"
#. module: delivery
#: report:sale.shipping:0
msgid "Order Date"
msgstr ""
msgstr "Fecha del Pedido"
#. module: delivery
#: field:delivery.grid,name:0
@ -307,12 +321,12 @@ msgstr "Nombre cuadrícula"
#. module: delivery
#: view:stock.move:0
msgid "Weights"
msgstr ""
msgstr "Pesos"
#. module: delivery
#: field:stock.picking,number_of_packages:0
msgid "Number of Packages"
msgstr ""
msgstr "Número de bultos"
#. module: delivery
#: selection:delivery.grid.line,type:0
@ -329,23 +343,27 @@ msgid ""
"Check this box if you want to manage delivery prices that depends on the "
"destination, the weight, the total of the order, etc."
msgstr ""
"Seleccione esta opción si usted quiere manejar los precios de envío "
"dependiendo de el destino, el preso, el total de la orden, etc."
#. module: delivery
#: help:delivery.carrier,normal_price:0
msgid ""
"Keep empty if the pricing depends on the advanced pricing per destination"
msgstr ""
"Mantenga vacío si el precio deprende de el precio avanzado por destino"
#. module: delivery
#: constraint:stock.move:0
msgid "You can not move products from or to a location of the type view."
msgstr ""
"Usted no puede mover productos desde o hacia una ubicación de tipo vista"
#. module: delivery
#: code:addons/delivery/wizard/delivery_sale_order.py:94
#, python-format
msgid "No grid available !"
msgstr ""
msgstr "¡No hay una cuadrícula disponible!"
#. module: delivery
#: selection:delivery.grid.line,operator:0
@ -357,17 +375,17 @@ msgstr ">="
#: code:addons/delivery/wizard/delivery_sale_order.py:97
#, python-format
msgid "Order not in draft state !"
msgstr ""
msgstr "¡La orden no está en estado borrador!"
#. module: delivery
#: view:delivery.define.delivery.steps.wizard:0
msgid "Choose Your Default Picking Policy"
msgstr ""
msgstr "Seleccione la política de envío por defecto"
#. module: delivery
#: constraint:stock.move:0
msgid "You try to assign a lot which is not from the same product"
msgstr ""
msgstr "Está intentando asignar un lote que no es del mismo producto"
#. module: delivery
#: field:delivery.carrier,active:0
@ -378,7 +396,7 @@ msgstr "Activo"
#. module: delivery
#: report:sale.shipping:0
msgid "Shipping Date"
msgstr ""
msgstr "Fecha de envío"
#. module: delivery
#: field:delivery.carrier,product_id:0
@ -393,12 +411,12 @@ msgstr "Condición"
#. module: delivery
#: field:delivery.grid.line,standard_price:0
msgid "Cost Price"
msgstr "Precio coste"
msgstr "Precio Costo"
#. module: delivery
#: field:delivery.define.delivery.steps.wizard,picking_policy:0
msgid "Picking Policy"
msgstr ""
msgstr "Política de envío"
#. module: delivery
#: selection:delivery.grid.line,price_type:0
@ -410,11 +428,12 @@ msgstr "Variable"
#: help:res.partner,property_delivery_carrier:0
msgid "This delivery method will be used when invoicing from picking."
msgstr ""
"El método de envío sera usado cuando se facture desde la orden de entrega"
#. module: delivery
#: sql_constraint:stock.picking:0
msgid "Reference must be unique per Company!"
msgstr ""
msgstr "¡La referencia debe ser única por Compañia!"
#. module: delivery
#: field:delivery.grid.line,max_value:0
@ -424,18 +443,18 @@ msgstr "Valor máximo"
#. module: delivery
#: report:sale.shipping:0
msgid "Quantity"
msgstr ""
msgstr "Cantidad"
#. module: delivery
#: view:delivery.define.delivery.steps.wizard:0
#: model:ir.actions.act_window,name:delivery.action_define_delivery_steps
msgid "Setup Your Picking Policy"
msgstr ""
msgstr "Configure su Política de Envíos"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_delivery_carrier_form1
msgid "Define Delivery Methods"
msgstr ""
msgstr "Define Métodos de Envío"
#. module: delivery
#: help:delivery.carrier,free_if_more_than:0
@ -443,12 +462,16 @@ msgid ""
"If the order is more expensive than a certain amount, the customer can "
"benefit from a free shipping"
msgstr ""
"Si la orden tiene un monto mayor a cierto monto, el cliente se puede "
"beneficiar con un envío gratuito"
#. module: delivery
#: help:sale.order,carrier_id:0
msgid ""
"Complete this field if you plan to invoice the shipping based on picking."
msgstr ""
"Complete este campo si tiene previsto facturar el envío según la orden de "
"entrega"
#. module: delivery
#: view:delivery.define.delivery.steps.wizard:0
@ -459,12 +482,12 @@ msgstr "Cancelar"
#: code:addons/delivery/delivery.py:131
#, python-format
msgid "Free if more than %.2f"
msgstr ""
msgstr "Gratis si es mayor a %.2f"
#. module: delivery
#: sql_constraint:sale.order:0
msgid "Order Reference must be unique per Company!"
msgstr ""
msgstr "¡La orden de referencia debe ser única por Compañía!"
#. module: delivery
#: model:ir.actions.act_window,help:delivery.action_delivery_carrier_form
@ -473,6 +496,9 @@ msgid ""
"reinvoice the delivery costs when you are doing invoicing based on delivery "
"orders"
msgstr ""
"Define los métodos de envío que usted esta usando, y sus respectivos precios "
"en el pedido para re-facturar los costos de envío cuando usted esta haciendo "
"las facturas basadas en las notas de entrega"
#. module: delivery
#: view:res.partner:0
@ -482,22 +508,22 @@ msgstr "Ventas & Compras"
#. module: delivery
#: selection:delivery.grid.line,operator:0
msgid "<="
msgstr ""
msgstr "<="
#. module: delivery
#: constraint:stock.move:0
msgid "You must assign a production lot for this product"
msgstr ""
msgstr "Debe asignar un lote de producción para este producto"
#. module: delivery
#: field:delivery.carrier,free_if_more_than:0
msgid "Free If More Than"
msgstr ""
msgstr "Gratis si es mayor"
#. module: delivery
#: view:delivery.sale.order:0
msgid "Create Deliveries"
msgstr ""
msgstr "Crear envíos"
#. module: delivery
#: view:delivery.carrier:0
@ -509,7 +535,7 @@ msgstr "Provincias"
#. module: delivery
#: report:sale.shipping:0
msgid "Description"
msgstr ""
msgstr "Descripción"
#. module: delivery
#: help:delivery.carrier,active:0
@ -517,6 +543,8 @@ msgid ""
"If the active field is set to False, it will allow you to hide the delivery "
"carrier without removing it."
msgstr ""
"Si el campo activo se desmarca, permite ocultar el transportista sin "
"eliminarlo."
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_delivery_grid_form
@ -535,7 +563,7 @@ msgstr "Precio"
#: code:addons/delivery/wizard/delivery_sale_order.py:94
#, python-format
msgid "No grid matching for this carrier !"
msgstr ""
msgstr "¡No concuerda cuadrícula para este transportista!"
#. module: delivery
#: model:ir.ui.menu,name:delivery.menu_delivery
@ -557,22 +585,22 @@ msgstr "="
#: code:addons/delivery/stock.py:90
#, python-format
msgid "The carrier %s (id: %d) has no delivery grid!"
msgstr ""
msgstr "¡El transportista %s (id: %d) no dispone de cuadrícula de envío!"
#. module: delivery
#: view:delivery.carrier:0
msgid "Pricing Information"
msgstr ""
msgstr "Información de Precio"
#. module: delivery
#: selection:delivery.define.delivery.steps.wizard,picking_policy:0
msgid "Deliver all products at once"
msgstr ""
msgstr "Enviar todos los productos a la vez"
#. module: delivery
#: field:delivery.carrier,use_detailed_pricelist:0
msgid "Advanced Pricing per Destination"
msgstr ""
msgstr "Precio avanzado por destino"
#. module: delivery
#: view:delivery.carrier:0
@ -586,24 +614,24 @@ msgstr "Transportista"
#. module: delivery
#: view:delivery.sale.order:0
msgid "_Apply"
msgstr ""
msgstr "_Aplicar"
#. module: delivery
#: field:sale.order,id:0
msgid "ID"
msgstr "ID"
msgstr "Identificador"
#. module: delivery
#: code:addons/delivery/wizard/delivery_sale_order.py:65
#: code:addons/delivery/wizard/delivery_sale_order.py:97
#, python-format
msgid "The order state have to be draft to add delivery lines."
msgstr ""
msgstr "La orden debe estar en estado borrador para añadir líneas de envío."
#. module: delivery
#: constraint:res.partner:0
msgid "Error ! You cannot create recursive associated members."
msgstr ""
msgstr "Error! Usted no puede crear miembros asociados recursivos"
#. module: delivery
#: field:delivery.grid,sequence:0
@ -613,7 +641,7 @@ msgstr "Secuencia"
#. module: delivery
#: field:delivery.grid.line,list_price:0
msgid "Sale Price"
msgstr "Precio de venta"
msgstr "Precio de Venta"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_delivery_cost
@ -624,12 +652,12 @@ msgstr "Costes de envío"
#. module: delivery
#: selection:delivery.define.delivery.steps.wizard,picking_policy:0
msgid "Deliver each product when available"
msgstr ""
msgstr "Enviar cada producto cuando este disponible"
#. module: delivery
#: view:delivery.define.delivery.steps.wizard:0
msgid "Apply"
msgstr ""
msgstr "Aplicar"
#. module: delivery
#: field:delivery.grid.line,price_type:0

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import logging
@ -29,20 +29,20 @@ class NhException(Exception):
class indexer(object):
""" An indexer knows how to parse the content of some file.
Typically, one indexer should be instantiated per file
type.
Override this class to add more functionality. Note that
you should only override the Content or the File methods
that give an optimal result. """
def _getMimeTypes(self):
""" Return supported mimetypes """
return []
def _getExtensions(self):
return []
def _getDefMime(self, ext):
""" Return a mimetype for this document type, ideally the
closest to the extension ext. """
@ -63,23 +63,23 @@ class indexer(object):
return self._doIndexContent(content)
except NhException:
pass
if realfile != None:
try:
return self._doIndexFile(realfile)
except NhException:
pass
fp = open(realfile,'rb')
try:
content2 = fp.read()
finally:
finally:
fp.close()
# The not-handled exception may be raised here
return self._doIndexContent(content2)
# last try, with a tmp file
if content:
try:
@ -94,7 +94,7 @@ class indexer(object):
pass
raise NhException('No appropriate method to index file')
def _doIndexContent(self,content):
raise NhException("Content not handled here")
@ -103,7 +103,7 @@ class indexer(object):
def __repr__(self):
return "<indexer %s.%s>" %(self.__module__, self.__class__.__name__)
def mime_match(mime, mdict):
if mdict.has_key(mime):
@ -112,7 +112,7 @@ def mime_match(mime, mdict):
mpat = mime.split('/')[0]+'/*'
if mdict.has_key(mpat):
return (mime, mdict[mpat])
return (None, None)
class contentIndex(object):
@ -120,22 +120,22 @@ class contentIndex(object):
def __init__(self):
self.mimes = {}
self.exts = {}
def register(self, obj):
f = False
for mime in obj._getMimeTypes():
self.mimes[mime] = obj
f = True
for ext in obj._getExtensions():
self.exts[ext] = obj
f = True
if f:
self.__logger.debug('Register content indexer: %r', obj)
if not f:
raise Exception("Your indexer should at least suport a mimetype or extension")
def doIndex(self, content, filename=None, content_type=None, realfname = None, debug=False):
fobj = None
fname = None
@ -148,10 +148,10 @@ class contentIndex(object):
if self.exts.has_key(ext):
fobj = self.exts[ext]
mime = fobj._getDefMime(ext)
if content_type and not fobj:
mime,fobj = mime_match(content_type, self.mimes)
if not fobj:
try:
if realfname :
@ -164,10 +164,10 @@ class contentIndex(object):
fd, fname = tempfile.mkstemp(suffix=ext)
os.write(fd, content)
os.close(fd)
pop = Popen(['file','-b','--mime',fname], shell=False, stdout=PIPE)
(result, _) = pop.communicate()
mime2 = result.split(';')[0]
self.__logger.debug('File gave us: %s', mime2)
# Note that the temporary file still exists now.
@ -176,7 +176,7 @@ class contentIndex(object):
mime = mime2
except Exception:
self.__logger.exception('Cannot determine mime type')
try:
if fobj:
res = (mime, fobj.indexContent(content,filename,fname or realfname) )
@ -187,14 +187,14 @@ class contentIndex(object):
self.__logger.exception("Could not index file %s (%s)",
filename, fname or realfname)
res = None
# If we created a tmp file, unlink it now
if not realfname and fname:
try:
os.unlink(fname)
except Exception:
self.__logger.exception("Could not unlink %s", fname)
return res
cntIndex = contentIndex()

View File

@ -23,14 +23,14 @@ class EDI(openerpweb.Controller):
@openerpweb.httprequest
def view(self, req, db, token):
d = self.template(req)
d["init"] = 'new s.edi.EdiView(null,"%s","%s").appendTo($("body"));'%(db,token)
d["init"] = 's.edi.edi_view("%s","%s");'%(db,token)
r = web.controllers.main.html_template % d
return r
@openerpweb.httprequest
def import_url(self, req, url):
d = self.template(req)
d["init"] = 'new s.edi.EdiImport(null,"%s").appendTo($("body"));'%(url)
d["init"] = 's.edi.edi_import("%s");'%(url)
r = web.controllers.main.html_template % d
return r

View File

@ -14,8 +14,8 @@ openerp.edi.EdiView = openerp.web.Widget.extend({
start: function() {
this._super();
var self = this;
var param = {"db": this.db, "token": this.token};
this.session.bind().then(self.rpc('/edi/get_edi_document', param, this.on_document_loaded, this.on_document_failed));
var param = {"db": self.db, "token": self.token};
return self.rpc('/edi/get_edi_document', param, this.on_document_loaded, this.on_document_failed);
},
on_document_loaded: function(docs){
this.doc = docs[0];
@ -107,6 +107,12 @@ openerp.edi.EdiView = openerp.web.Widget.extend({
}
});
openerp.edi.edi_view = function (db, token) {
openerp.connection.bind().then(function () {
new openerp.edi.EdiView(null,db,token).appendTo($("body"));
});
}
openerp.edi.EdiImport = openerp.web.Widget.extend({
init: function(parent,url) {
this._super();
@ -117,18 +123,13 @@ openerp.edi.EdiImport = openerp.web.Widget.extend({
this.session = openerp.connection;
this.login = new openerp.web.Login(this);
this.header = new openerp.web.Header(this);
this.header.on_logout.add(this.login.on_logout);
},
start: function() {
this.session.bind().then(function() {
this.session.on_session_invalid.add_last(this.do_ask_login)
this.header.appendTo($("#oe_header"));
this.login.appendTo($('#oe_login'));
this.do_import();
});
},
do_ask_login: function() {
this.login.do_ask_login(this.do_import);
// TODO fix by explicitly asking login if needed
//this.session.on_session_invalid.add_last(this.do_ask_login);
this.header.appendTo($("#oe_header"));
this.login.appendTo($('#oe_login'));
this.do_import();
},
do_import: function() {
this.rpc('/edi/import_edi_url', {url: this.url}, this.on_imported, this.on_imported_error);
@ -159,7 +160,7 @@ openerp.edi.EdiImport = openerp.web.Widget.extend({
msg += "\n Reason:" + response.data.fault_code;
}
var params = {error: response, message: msg};
$(openerp.web.qweb.render("DialogWarning", params)).dialog({
$(openerp.web.qweb.render("CrashManagerWarning", params)).dialog({
title: "Document Import Notification",
modal: true,
buttons: {
@ -169,5 +170,11 @@ openerp.edi.EdiImport = openerp.web.Widget.extend({
}
});
openerp.edi.edi_import = function (url) {
openerp.connection.bind().then(function () {
new openerp.edi.EdiImport(null,url).appendTo($("body"));
});
}
}
// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax:

View File

@ -214,7 +214,7 @@ class email_template(osv.osv):
ir_values_obj = self.pool.get('ir.values')
ir_values_obj.unlink(cr, uid, template.ref_ir_value.id, context)
except:
raise osv.except_osv(_("Warning"), _("Deletion of Record failed"))
raise osv.except_osv(_("Warning"), _("Deletion of the action record failed."))
return True
def unlink(self, cr, uid, ids, context=None):

View File

@ -100,11 +100,11 @@
</record>
<menuitem
parent="base.next_id_15"
parent="base.menu_email"
id="menu_action_fetchmail_server_tree"
action="action_email_server_tree"
name="Incoming Mail Servers"
sequence="40"
sequence="14"
/>
<record model="ir.ui.view" id="email_message_tree_view">

View File

@ -20,7 +20,7 @@
##############################################################################
{
"name": "Employee Address Book",
"name": "Employee Directory",
"version": "1.1",
"author": "OpenERP SA",
"category": "Human Resources",

View File

@ -8,14 +8,15 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-23 09:54+0000\n"
"PO-Revision-Date: 2010-03-09 04:16+0000\n"
"Last-Translator: Cristian Salamea (Gnuthink) <ovnicraft@gmail.com>\n"
"PO-Revision-Date: 2012-01-03 02:55+0000\n"
"Last-Translator: Christopher Ormaza - (Ecuadorenlinea.net) "
"<chris.ormaza@gmail.com>\n"
"Language-Team: Spanish (Ecuador) <es_EC@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-12-24 05:54+0000\n"
"X-Generator: Launchpad (build 14560)\n"
"X-Launchpad-Export-Date: 2012-01-04 04:48+0000\n"
"X-Generator: Launchpad (build 14616)\n"
#. module: hr
#: model:process.node,name:hr.process_node_openerpuser0
@ -26,7 +27,7 @@ msgstr "Usuario OpenERP"
#: view:hr.job:0
#: field:hr.job,requirements:0
msgid "Requirements"
msgstr ""
msgstr "Requisitos"
#. module: hr
#: constraint:hr.department:0
@ -36,7 +37,7 @@ msgstr "Error! No puede crear departamentos recursivos."
#. module: hr
#: model:process.transition,name:hr.process_transition_contactofemployee0
msgid "Link the employee to information"
msgstr ""
msgstr "Enlaza el empleado con la información"
#. module: hr
#: field:hr.employee,sinid:0
@ -54,12 +55,12 @@ msgstr "Recursos Humanos"
#: view:hr.employee:0
#: view:hr.job:0
msgid "Group By..."
msgstr ""
msgstr "Agroupar por ..."
#. module: hr
#: model:ir.actions.act_window,name:hr.view_department_form_installer
msgid "Create Your Departments"
msgstr ""
msgstr "Crear sus Departamentos"
#. module: hr
#: model:ir.actions.act_window,help:hr.action_hr_job
@ -70,6 +71,11 @@ msgid ""
"will be used in the recruitment process to evaluate the applicants for this "
"job position."
msgstr ""
"Los puestos de trabajo se utilizan para definir los cargos y sus requisitos. "
"Puede controlar el número de empleados que tiene por puesto y cuántos espera "
"tener en un futuro. Asimismo, puede adjuntar una encuesta a una posición "
"laboral que será utilizada en el proceso de selección para evaluar a los "
"candidatos a este puesto."
#. module: hr
#: view:hr.employee:0
@ -83,17 +89,17 @@ msgstr "Departamento"
#. module: hr
#: view:hr.job:0
msgid "Mark as Old"
msgstr ""
msgstr "Marcar como antiguo"
#. module: hr
#: view:hr.job:0
msgid "Jobs"
msgstr ""
msgstr "Tareas"
#. module: hr
#: view:hr.job:0
msgid "In Recruitment"
msgstr ""
msgstr "En selección"
#. module: hr
#: field:hr.department,company_id:0
@ -106,12 +112,12 @@ msgstr "Compañía"
#. module: hr
#: field:hr.job,no_of_recruitment:0
msgid "Expected in Recruitment"
msgstr ""
msgstr "Previsión en selección"
#. module: hr
#: model:ir.actions.todo.category,name:hr.category_hr_management_config
msgid "HR Management"
msgstr ""
msgstr "Administración de RH"
#. module: hr
#: help:hr.employee,partner_id:0
@ -119,11 +125,13 @@ msgid ""
"Partner that is related to the current employee. Accounting transaction will "
"be written on this partner belongs to employee."
msgstr ""
"Empresa que está relacionada con el empleado actual. Las transacciones "
"contables se escribirán en esta empresa a la cual pertenece el empleado."
#. module: hr
#: model:process.transition,name:hr.process_transition_employeeuser0
msgid "Link a user to an employee"
msgstr ""
msgstr "Vincular un usuario a un empleado"
#. module: hr
#: field:hr.department,parent_id:0
@ -139,7 +147,7 @@ msgstr "Notas"
#. module: hr
#: selection:hr.employee,marital:0
msgid "Married"
msgstr ""
msgstr "Casado (a)"
#. module: hr
#: model:ir.actions.act_window,help:hr.action_create_hr_employee_installer
@ -149,6 +157,10 @@ msgid ""
"operations on all the employees of the same category, i.e. allocating "
"holidays."
msgstr ""
"Cree empleados y enlacelos a un usuario del sistema OpenERP si usted quiere "
"que ellos tengan acceso al sistema, Las Categorías pueden ser asignadas a "
"los empleados para poder realizar operaciones sobre las categorías, por "
"ejemplo los días feriados"
#. module: hr
#: model:ir.actions.act_window,help:hr.open_module_tree_department
@ -157,11 +169,14 @@ msgid ""
"to employees by departments: expenses and timesheet validation, leaves "
"management, recruitments, etc."
msgstr ""
"La estructura de departamentos de su compañía se utiliza para gestionar "
"todos los documentos relativos a los empleados por departamentos: gastos y "
"validación de tiempos, gestión de ausencias, procesos de selección, etc."
#. module: hr
#: field:hr.employee,color:0
msgid "Color Index"
msgstr ""
msgstr "Color del Indice"
#. module: hr
#: model:process.transition,note:hr.process_transition_employeeuser0
@ -169,17 +184,19 @@ msgid ""
"The Related user field on the Employee form allows to link the OpenERP user "
"(and her rights) to the employee."
msgstr ""
"El campo usuario relacionado en el formulario del empleado permite vincular "
"el usuario de OpenERP (y sus permisos) al empleado."
#. module: hr
#: view:hr.job:0
#: selection:hr.job,state:0
msgid "In Recruitement"
msgstr ""
msgstr "En selección"
#. module: hr
#: field:hr.employee,identification_id:0
msgid "Identification No"
msgstr ""
msgstr "Nº identificación"
#. module: hr
#: selection:hr.employee,gender:0
@ -189,12 +206,12 @@ msgstr "Mujer"
#. module: hr
#: help:hr.job,expected_employees:0
msgid "Required number of employees in total for that job."
msgstr ""
msgstr "Número de empleados requeridos en total para este puesto"
#. module: hr
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config
msgid "Attendance"
msgstr ""
msgstr "Asistencia"
#. module: hr
#: view:hr.employee:0
@ -216,7 +233,7 @@ msgstr "Categorías Inferiores"
#: field:hr.job,description:0
#: model:ir.model,name:hr.model_hr_job
msgid "Job Description"
msgstr ""
msgstr "Descripción del puesto de trabajo"
#. module: hr
#: field:hr.employee,work_location:0
@ -226,7 +243,7 @@ msgstr "Dirección Oficina"
#. module: hr
#: view:hr.employee:0
msgid "My Departments Employee"
msgstr ""
msgstr "Mis Departamentos"
#. module: hr
#: view:hr.employee:0
@ -238,17 +255,17 @@ msgstr "Empleado"
#. module: hr
#: model:process.node,note:hr.process_node_employeecontact0
msgid "Other information"
msgstr ""
msgstr "Otra información"
#. module: hr
#: field:hr.employee,work_email:0
msgid "Work E-mail"
msgstr ""
msgstr "Email de trabajo"
#. module: hr
#: field:hr.employee,birthday:0
msgid "Date of Birth"
msgstr ""
msgstr "Fecha de nacimiento"
#. module: hr
#: model:ir.ui.menu,name:hr.menu_hr_reporting
@ -259,14 +276,14 @@ msgstr "Informe"
#: model:ir.actions.act_window,name:hr.open_board_hr
#: model:ir.ui.menu,name:hr.menu_hr_dashboard_user
msgid "Human Resources Dashboard"
msgstr ""
msgstr "Tablero de Recursos Humanos"
#. module: hr
#: view:hr.employee:0
#: field:hr.employee,job_id:0
#: view:hr.job:0
msgid "Job"
msgstr ""
msgstr "Puesto de Trabajo"
#. module: hr
#: field:hr.department,member_ids:0
@ -282,12 +299,12 @@ msgstr "Configuración"
#: view:hr.employee:0
#: field:hr.employee,category_ids:0
msgid "Categories"
msgstr ""
msgstr "Categorías"
#. module: hr
#: field:hr.job,expected_employees:0
msgid "Expected Employees"
msgstr ""
msgstr "Empleados previstos"
#. module: hr
#: selection:hr.employee,marital:0
@ -302,7 +319,7 @@ msgstr "Categoría Superior"
#. module: hr
#: constraint:hr.employee.category:0
msgid "Error ! You cannot create recursive Categories."
msgstr ""
msgstr "¡Error! No puede crear categorías recursivas."
#. module: hr
#: view:hr.department:0
@ -320,7 +337,7 @@ msgstr "Contacto de Empleado"
#. module: hr
#: view:board.board:0
msgid "My Board"
msgstr ""
msgstr "Mi tablero"
#. module: hr
#: selection:hr.employee,gender:0
@ -342,7 +359,7 @@ msgstr "Categoría de empleado"
#. module: hr
#: model:process.process,name:hr.process_process_employeecontractprocess0
msgid "Employee Contract"
msgstr ""
msgstr "Contrato de empleado"
#. module: hr
#: model:ir.model,name:hr.model_hr_department
@ -352,7 +369,7 @@ msgstr "Departamento"
#. module: hr
#: model:ir.actions.act_window,name:hr.action_create_hr_employee_installer
msgid "Create your Employees"
msgstr ""
msgstr "Cree sus empleados"
#. module: hr
#: field:hr.employee.category,name:0
@ -373,11 +390,23 @@ msgid ""
"they will be able to enter time through the system. In the note tab, you can "
"enter text data that should be recorded for a specific employee."
msgstr ""
"Aquí puede gestionar su mano de obra creando empleados y asignándoles "
"propiedades específicas en el sistema. Mantenga toda la información "
"relacionada con los empleados y haga un seguimiento de cualquier hecho que "
"necesite ser registrado. La pestaña con información personal le ayudará a "
"mantener los datos sobre su identidad. La pestaña Categorías le permite "
"asignarles categorías de empleados en función de su puesto y actividades "
"dentro de la compañía. Una categoría puede ser la antigüedad dentro de la "
"compañía o departamento. La pestaña de Hoja de servicios permite asignarles "
"una hoja de servicios específica y un diario analítico donde podrán "
"introducir tiempo en el sistema. En la pestaña notas puede introducir "
"información, en formato texto libre, que debe ser guardada para un empleado "
"en concreto."
#. module: hr
#: help:hr.employee,bank_account_id:0
msgid "Employee bank salary account"
msgstr ""
msgstr "Cuenta bancaria de salario del empleado."
#. module: hr
#: field:hr.department,note:0
@ -393,6 +422,7 @@ msgstr "Árbol de Empleados"
#: constraint:res.users:0
msgid "The chosen company is not in the allowed companies for this user"
msgstr ""
"La compañía seleccionada no está autorizada como compañía para este usuario"
#. module: hr
#: view:hr.employee:0
@ -408,7 +438,7 @@ msgstr "Dirección de trabajo"
#: model:ir.actions.act_window,name:hr.open_board_hr_manager
#: model:ir.ui.menu,name:hr.menu_hr_dashboard_manager
msgid "HR Manager Dashboard"
msgstr ""
msgstr "Tablero Director Recursos Humanos"
#. module: hr
#: view:hr.employee:0
@ -424,12 +454,12 @@ msgstr "Árbol de categorías"
#. module: hr
#: field:hr.employee,partner_id:0
msgid "unknown"
msgstr ""
msgstr "Desconocido"
#. module: hr
#: help:hr.job,no_of_employee:0
msgid "Number of employees with that job."
msgstr ""
msgstr "Número de empleados con este trabajo"
#. module: hr
#: field:hr.employee,ssnid:0
@ -449,7 +479,7 @@ msgstr "¡Error! No se puede crear una jerarquía recursiva de empleados."
#. module: hr
#: model:ir.actions.act_window,name:hr.action2
msgid "Subordonate Hierarchy"
msgstr ""
msgstr "Organigrama Jerárquico"
#. module: hr
#: model:ir.actions.act_window,help:hr.view_department_form_installer
@ -458,11 +488,14 @@ msgid ""
"employees by departments: expenses and timesheet validation, leaves "
"management, recruitments, etc."
msgstr ""
"La estructura de sus departamentos es usada para administrar todos los "
"documentos relacionados a los empleados por departamento: Gastos y Hojas de "
"Asistencia, gestión de ausencias, proceso de selección, etc."
#. module: hr
#: field:hr.employee,bank_account_id:0
msgid "Bank Account Number"
msgstr ""
msgstr "Número de Cuenta Bancaria"
#. module: hr
#: view:hr.department:0
@ -475,27 +508,29 @@ msgid ""
"In the Employee form, there are different kind of information like Contact "
"information."
msgstr ""
"En el formulario del empleado, hay diferentes tipos de información como la "
"información de contacto."
#. module: hr
#: model:ir.ui.menu,name:hr.menu_hr_dashboard
msgid "Dashboard"
msgstr ""
msgstr "Tablero"
#. module: hr
#: selection:hr.job,state:0
msgid "Old"
msgstr ""
msgstr "Antiguo"
#. module: hr
#: sql_constraint:res.users:0
msgid "You can not have two users with the same login !"
msgstr ""
msgstr "¡No puede tener dos usuarios con el mismo identificador de usuario!"
#. module: hr
#: view:hr.job:0
#: field:hr.job,state:0
msgid "State"
msgstr ""
msgstr "Estado/Provincia"
#. module: hr
#: field:hr.employee,marital:0
@ -505,22 +540,22 @@ msgstr "Estado civil"
#. module: hr
#: model:ir.model,name:hr.model_ir_actions_act_window
msgid "ir.actions.act_window"
msgstr ""
msgstr "Asistente"
#. module: hr
#: model:process.node,note:hr.process_node_employee0
msgid "Employee form and structure"
msgstr ""
msgstr "Formulario y estructura del empleado"
#. module: hr
#: field:hr.employee,photo:0
msgid "Photo"
msgstr ""
msgstr "Fotografía"
#. module: hr
#: model:ir.model,name:hr.model_res_users
msgid "res.users"
msgstr ""
msgstr "Usuarios"
#. module: hr
#: view:hr.employee:0
@ -530,17 +565,17 @@ msgstr "Información personal"
#. module: hr
#: field:hr.employee,city:0
msgid "City"
msgstr ""
msgstr "Ciudad"
#. module: hr
#: field:hr.employee,passport_id:0
msgid "Passport No"
msgstr ""
msgstr "Nº Pasaporte"
#. module: hr
#: field:hr.employee,mobile_phone:0
msgid "Work Mobile"
msgstr ""
msgstr "Móvil del trabajo"
#. module: hr
#: view:hr.employee.category:0
@ -555,23 +590,23 @@ msgstr "Domicilio"
#. module: hr
#: view:hr.job:0
msgid "Description"
msgstr ""
msgstr "Descripción"
#. module: hr
#: selection:hr.employee,marital:0
msgid "Single"
msgstr ""
msgstr "Soltero(a)"
#. module: hr
#: field:hr.job,name:0
msgid "Job Name"
msgstr ""
msgstr "Nombre del Puesto de Trabajo"
#. module: hr
#: view:hr.job:0
#: selection:hr.job,state:0
msgid "In Position"
msgstr ""
msgstr "Ocupado"
#. module: hr
#: view:hr.department:0
@ -586,17 +621,17 @@ msgstr "Nacionalidad"
#. module: hr
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_config
msgid "Leaves"
msgstr ""
msgstr "Ausencias"
#. module: hr
#: view:board.board:0
msgid "HR Manager Board"
msgstr ""
msgstr "Tablero de gestión de RRHH"
#. module: hr
#: field:hr.employee,resource_id:0
msgid "Resource"
msgstr ""
msgstr "Recurso"
#. module: hr
#: field:hr.department,complete_name:0
@ -636,12 +671,12 @@ msgstr "Nombre de departamento"
#. module: hr
#: help:hr.employee,ssnid:0
msgid "Social Security Number"
msgstr ""
msgstr "Número de Seguro Social"
#. module: hr
#: model:process.node,note:hr.process_node_openerpuser0
msgid "Creation of a OpenERP user"
msgstr ""
msgstr "Creación de un usuario OpenERP"
#. module: hr
#: field:hr.department,child_ids:0
@ -657,28 +692,28 @@ msgstr "Información laboral"
#: model:ir.actions.act_window,name:hr.action_hr_job
#: model:ir.ui.menu,name:hr.menu_hr_job
msgid "Job Positions"
msgstr ""
msgstr "Puestos de trabajo"
#. module: hr
#: field:hr.employee,otherid:0
msgid "Other Id"
msgstr ""
msgstr "Otro id"
#. module: hr
#: view:hr.employee:0
#: field:hr.employee,coach_id:0
msgid "Coach"
msgstr ""
msgstr "Entrenador"
#. module: hr
#: sql_constraint:hr.job:0
msgid "The name of the job position must be unique per company!"
msgstr ""
msgstr "¡El nombre de el puesto de trabajo, debe ser único por Compañia!"
#. module: hr
#: view:hr.job:0
msgid "My Departments Jobs"
msgstr ""
msgstr "Mis departamentos de Trabajo"
#. module: hr
#: field:hr.department,manager_id:0
@ -690,7 +725,7 @@ msgstr "Director"
#. module: hr
#: selection:hr.employee,marital:0
msgid "Widower"
msgstr ""
msgstr "Viudo(a)"
#. module: hr
#: field:hr.employee,child_ids:0
@ -700,7 +735,7 @@ msgstr "Subordinados"
#. module: hr
#: field:hr.job,no_of_employee:0
msgid "Number of Employees"
msgstr ""
msgstr "Número de Empleados"
#~ msgid "Work Email"
#~ msgstr "E-mail de Trabajo"

View File

@ -7,7 +7,7 @@
<field name="model">hr.attendance</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Employee attendance">
<form string="Employee attendances">
<field name="employee_id" />
<field name="name" />
<field name="action" />
@ -35,7 +35,7 @@
<field name="type">tree</field>
<field eval="3" name="priority"/>
<field name="arch" type="xml">
<tree string="Employee attendance">
<tree string="Employee attendances">
<field name="employee_id"/>
<field name="name"/>
<field name="action"/>
@ -68,7 +68,7 @@
</record>
<record id="open_view_attendance" model="ir.actions.act_window">
<field name="name">Attendance</field>
<field name="name">Attendances</field>
<field name="res_model">hr.attendance</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
@ -79,7 +79,7 @@
<menuitem id="menu_hr_time_tracking" name="Time Tracking" parent="hr.menu_hr_root" sequence="3" groups="base.group_user,base.group_hr_user,base.group_hr_manager"/>
<menuitem id="menu_hr_attendance" name="Attendance" parent="hr.menu_hr_root" sequence="4" groups="base.group_user,base.group_hr_user,base.group_hr_manager"/>
<menuitem id="menu_hr_attendance" name="Attendances" parent="hr.menu_hr_root" sequence="4" groups="base.group_user,base.group_hr_user,base.group_hr_manager"/>
<menuitem action="open_view_attendance" id="menu_open_view_attendance" parent="menu_hr_attendance" sequence="20"/>

View File

@ -52,7 +52,7 @@ class report_custom(report_rml):
if context is None:
context = {}
month = datetime(datas['form']['year'], datas['form']['month'], 1)
emp_ids = context.get('active_ids', [])
emp_ids = datas['active_ids']
user_xml = ['<month>%s</month>' % _(month2name[month.month]), '<year>%s</year>' % month.year]
if emp_ids:
for emp in obj_emp.read(cr, uid, emp_ids, ['name']):
@ -96,7 +96,7 @@ class report_custom(report_rml):
days_xml.append(today_xml)
today, tomor = tomor, tomor + one_day
user_xml.append(user_repr % '\n'.join(days_xml))
rpt_obj = pooler.get_pool(cr.dbname).get('hr.employee')
rml_obj=report_sxw.rml_parse(cr, uid, rpt_obj._name,context)
header_xml = '''
@ -105,7 +105,7 @@ class report_custom(report_rml):
<company>%s</company>
</header>
''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,uid).company_id.name)
first_date = str(month)
som = datetime.strptime(first_date, '%Y-%m-%d %H:%M:%S')
eom = som + timedelta(int(dy)-1)
@ -130,7 +130,7 @@ class report_custom(report_rml):
month=som.month
month_dict[j]=som.strftime('%B')
width_dict[j]=cell
while day_diff1>0:
if month+i<=12:
if day_diff1 > lengthmonth(year,i+month): # Not on 30 else you have problems when entering 01-01-2009 for example

View File

@ -38,6 +38,7 @@ class hr_attendance_bymonth(osv.osv_memory):
def print_report(self, cr, uid, ids, context=None):
datas = {
'ids': [],
'active_ids': context['active_ids'],
'model': 'hr.employee',
'form': self.read(cr, uid, ids)[0]
}

View File

@ -305,10 +305,13 @@
<field name="response" readonly="1"/>
<field name="user_to_review_id"/>
<field name="user_id" string="Interviewer"/>
<button string="Send Reminder Email"
name="%(mail.action_email_compose_message_wizard)d"
icon="terp-mail-message-new" type="action" colspan="2"
states="waiting_answer"/>
<group col="2" colspan="2">
<button string="Send Reminder Email"
name="%(mail.action_email_compose_message_wizard)d"
icon="terp-mail-message-new" type="action"
states="waiting_answer"/>
<button name="action_print_survey" string="Print Survey" type="object" icon="gtk-print" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0}" attrs="{'readonly':[('survey_id','=',False)]}"/>
</group>
</group>
<newline/>
<separator string="State" colspan="4"/>
@ -332,6 +335,7 @@
<field name="response" readonly="1" invisible="True"/>
<button name="%(survey.action_view_survey_question_message)d" string="Interview Question" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response, 'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/>
<button name="%(survey.survey_browse_response)d" string="Print Interview" type="action" states="done" icon="gtk-print" context="{'survey_id': survey_id, 'response_id' : [response], 'response_no':0}" attrs="{'readonly':[('response','=',False)]}" />
<button name="action_print_survey" string="Print Survey" type="object" icon="gtk-print" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0}" attrs="{'readonly':[('survey_id','=',False)]}"/>
<button name="%(mail.action_email_compose_message_wizard)d" string="Send Reminder Email" icon="terp-mail-message-new" type="action" colspan="2" states="waiting_answer"/>
<field name="state"/>
</tree>

View File

@ -0,0 +1,908 @@
# Arabic translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-22 18:44+0000\n"
"PO-Revision-Date: 2012-01-03 12:54+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic <ar@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-01-04 04:48+0000\n"
"X-Generator: Launchpad (build 14616)\n"
#. module: hr_evaluation
#: help:hr_evaluation.plan.phase,send_anonymous_manager:0
msgid "Send an anonymous summary to the manager"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Start Appraisal"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
#: view:hr.evaluation.report:0
#: view:hr_evaluation.plan:0
msgid "Group By..."
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Appraisal that overpassed the deadline"
msgstr ""
#. module: hr_evaluation
#: field:hr.evaluation.interview,request_id:0
#: field:hr.evaluation.report,request_id:0
msgid "Request_id"
msgstr ""
#. module: hr_evaluation
#: field:hr.evaluation.report,progress_bar:0
#: field:hr_evaluation.evaluation,progress:0
msgid "Progress"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,month:0
msgid "March"
msgstr ""
#. module: hr_evaluation
#: field:hr.evaluation.report,delay_date:0
msgid "Delay to Start"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Appraisal that are in waiting appreciation state"
msgstr ""
#. module: hr_evaluation
#: code:addons/hr_evaluation/hr_evaluation.py:244
#: code:addons/hr_evaluation/hr_evaluation.py:320
#, python-format
msgid "Warning !"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan:0
#: field:hr_evaluation.plan,company_id:0
#: field:hr_evaluation.plan.phase,company_id:0
msgid "Company"
msgstr ""
#. module: hr_evaluation
#: field:hr.evaluation.interview,evaluation_id:0
#: field:hr_evaluation.plan.phase,survey_id:0
msgid "Appraisal Form"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
#: field:hr.evaluation.report,day:0
msgid "Day"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan:0
#: field:hr_evaluation.plan,phase_ids:0
msgid "Appraisal Phases"
msgstr ""
#. module: hr_evaluation
#: help:hr_evaluation.plan,month_first:0
msgid ""
"This number of months will be used to schedule the first evaluation date of "
"the employee when selecting an evaluation plan. "
msgstr ""
#. module: hr_evaluation
#: view:hr.employee:0
msgid "Notes"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "(eval_name)s:Appraisal Name"
msgstr ""
#. module: hr_evaluation
#: model:ir.actions.act_window,help:hr_evaluation.open_view_hr_evaluation_tree
msgid ""
"Each employee may be assigned an Appraisal Plan. Such a plan defines the "
"frequency and the way you manage your periodic personnel evaluation. You "
"will be able to define steps and attach interviews to each step. OpenERP "
"manages all kind of evaluations: bottom-up, top-down, self-evaluation and "
"final evaluation by the manager."
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "Mail Body"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.plan.phase,wait:0
msgid "Wait Previous Phases"
msgstr ""
#. module: hr_evaluation
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_evaluation
msgid "Employee Appraisal"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,state:0
#: selection:hr_evaluation.evaluation,state:0
msgid "Cancelled"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,rating:0
#: selection:hr_evaluation.evaluation,rating:0
msgid "Did not meet expectations"
msgstr ""
#. module: hr_evaluation
#: view:hr.employee:0
#: view:hr_evaluation.evaluation:0
#: model:ir.actions.act_window,name:hr_evaluation.open_view_hr_evaluation_tree
#: model:ir.ui.menu,name:hr_evaluation.menu_eval_hr
#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_hr_evaluation_tree
msgid "Appraisal"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "Send to Managers"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.evaluation,date_close:0
msgid "Ending Date"
msgstr ""
#. module: hr_evaluation
#: help:hr_evaluation.evaluation,note_action:0
msgid ""
"If the evaluation does not meet the expectations, you can proposean action "
"plan"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "Send to Employees"
msgstr ""
#. module: hr_evaluation
#: code:addons/hr_evaluation/hr_evaluation.py:82
#, python-format
msgid ""
"\n"
"Date: %(date)s\n"
"\n"
"Dear %(employee_name)s,\n"
"\n"
"I am doing an evaluation regarding %(eval_name)s.\n"
"\n"
"Kindly submit your response.\n"
"\n"
"\n"
"Thanks,\n"
"--\n"
"%(user_signature)s\n"
"\n"
" "
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Appraisal that are in Plan In Progress state"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Reset to Draft"
msgstr ""
#. module: hr_evaluation
#: field:hr.evaluation.report,deadline:0
msgid "Deadline"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
msgid " Month "
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
msgid "In progress Evaluations"
msgstr ""
#. module: hr_evaluation
#: model:ir.model,name:hr_evaluation.model_survey_request
msgid "survey.request"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "(date)s: Current Date"
msgstr ""
#. module: hr_evaluation
#: help:hr_evaluation.plan.phase,send_anonymous_employee:0
msgid "Send an anonymous summary to the employee"
msgstr ""
#. module: hr_evaluation
#: code:addons/hr_evaluation/hr_evaluation.py:81
#, python-format
msgid "Regarding "
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
#: view:hr.evaluation.report:0
#: field:hr.evaluation.report,state:0
#: view:hr_evaluation.evaluation:0
#: field:hr_evaluation.evaluation,state:0
msgid "State"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
#: field:hr.evaluation.report,employee_id:0
#: view:hr_evaluation.evaluation:0
#: field:hr_evaluation.evaluation,employee_id:0
#: model:ir.model,name:hr_evaluation.model_hr_employee
msgid "Employee"
msgstr ""
#. module: hr_evaluation
#: selection:hr_evaluation.evaluation,state:0
msgid "New"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.plan.phase,mail_body:0
msgid "Email"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,rating:0
#: selection:hr_evaluation.evaluation,rating:0
msgid "Exceeds expectations"
msgstr ""
#. module: hr_evaluation
#: help:hr_evaluation.plan.phase,mail_feature:0
msgid ""
"Check this box if you want to send mail to employees coming under this phase"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
msgid "Evaluation done in last month"
msgstr ""
#. module: hr_evaluation
#: model:ir.model,name:hr_evaluation.model_mail_compose_message
msgid "E-mail composition wizard"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
msgid "Creation Date"
msgstr ""
#. module: hr_evaluation
#: help:hr_evaluation.plan.phase,send_answer_manager:0
msgid "Send all answers to the manager"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,state:0
#: selection:hr_evaluation.evaluation,state:0
msgid "Plan In Progress"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Public Notes"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
msgid "Send Reminder Email"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
#: field:hr_evaluation.evaluation,rating:0
msgid "Appreciation"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
#: view:hr_evaluation.evaluation:0
msgid "Print Interview"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Pending"
msgstr ""
#. module: hr_evaluation
#: field:hr.evaluation.report,closed:0
msgid "closed"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,rating:0
#: selection:hr_evaluation.evaluation,rating:0
msgid "Meet expectations"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
#: field:hr.evaluation.report,nbr:0
msgid "# of Requests"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,month:0
msgid "July"
msgstr ""
#. module: hr_evaluation
#: model:ir.actions.act_window,name:hr_evaluation.action_evaluation_plans_installer
msgid "Review Appraisal Plans"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
msgid " Month-1 "
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "Action to Perform"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.evaluation,note_action:0
msgid "Action Plan"
msgstr ""
#. module: hr_evaluation
#: model:ir.ui.menu,name:hr_evaluation.menu_eval_hr_config
msgid "Periodic Appraisal"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Appraisal to close within the next 7 days"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Ending Summary"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,rating:0
#: selection:hr_evaluation.evaluation,rating:0
msgid "Significantly exceeds expectations"
msgstr ""
#. module: hr_evaluation
#: model:ir.actions.act_window,help:hr_evaluation.action_hr_evaluation_interview_tree
msgid ""
"Interview Requests are generated automatically by OpenERP according to an "
"employee's Appraisal Plan. Each user receives automatic emails and requests "
"to evaluate their colleagues periodically."
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "In progress"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
msgid "Interview Request"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.plan.phase,send_answer_employee:0
#: field:hr_evaluation.plan.phase,send_answer_manager:0
msgid "All Answers"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,month:0
msgid "September"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,month:0
msgid "December"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
msgid "Evaluation done in current year"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
#: field:hr.evaluation.report,month:0
msgid "Month"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Group by..."
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "Mail Settings"
msgstr ""
#. module: hr_evaluation
#: model:ir.actions.act_window,name:hr_evaluation.evaluation_reminders
msgid "Appraisal Reminders"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
#: view:hr_evaluation.evaluation:0
msgid "Interview Question"
msgstr ""
#. module: hr_evaluation
#: help:hr_evaluation.plan.phase,wait:0
msgid ""
"Check this box if you want to wait that all preceding phases are finished "
"before launching this phase."
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "Legend"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.plan,month_first:0
msgid "First Appraisal in (months)"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,state:0
msgid "Draft"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.plan.phase,send_anonymous_employee:0
#: field:hr_evaluation.plan.phase,send_anonymous_manager:0
msgid "Anonymous Summary"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "7 Days"
msgstr ""
#. module: hr_evaluation
#: field:hr.employee,evaluation_plan_id:0
#: view:hr_evaluation.plan:0
#: field:hr_evaluation.plan,name:0
#: field:hr_evaluation.plan.phase,plan_id:0
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_plan
msgid "Appraisal Plan"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,month:0
msgid "August"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,month:0
msgid "June"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,rating:0
#: selection:hr_evaluation.evaluation,rating:0
msgid "Significantly bellow expectations"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid " (employee_name)s: Partner name"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
#: field:hr.evaluation.report,plan_id:0
#: view:hr_evaluation.evaluation:0
#: field:hr_evaluation.evaluation,plan_id:0
msgid "Plan"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.plan,active:0
msgid "Active"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,month:0
msgid "November"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
msgid "Extended Filters..."
msgstr ""
#. module: hr_evaluation
#: constraint:hr.employee:0
msgid "Error ! You cannot create recursive Hierarchy of Employees."
msgstr ""
#. module: hr_evaluation
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_plan_phase
msgid "Appraisal Plan Phase"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,month:0
msgid "January"
msgstr ""
#. module: hr_evaluation
#: model:ir.actions.act_window,name:hr_evaluation.act_hr_employee_2_hr__evaluation_interview
msgid "Appraisal Interviews"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Date"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
msgid "Survey"
msgstr ""
#. module: hr_evaluation
#: help:hr_evaluation.evaluation,rating:0
msgid "This is the appreciation on that summarize the evaluation"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.plan.phase,action:0
msgid "Action"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
#: selection:hr.evaluation.report,state:0
msgid "Final Validation"
msgstr ""
#. module: hr_evaluation
#: selection:hr_evaluation.evaluation,state:0
msgid "Waiting Appreciation"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
#: model:ir.actions.act_window,name:hr_evaluation.action_evaluation_report_all
#: model:ir.ui.menu,name:hr_evaluation.menu_evaluation_report_all
msgid "Appraisal Analysis"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.evaluation,date:0
msgid "Appraisal Deadline"
msgstr ""
#. module: hr_evaluation
#: field:hr.evaluation.report,rating:0
msgid "Overall Rating"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.plan.phase,email_subject:0
msgid "char"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
#: view:hr_evaluation.evaluation:0
msgid "Interviewer"
msgstr ""
#. module: hr_evaluation
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_report
msgid "Evaluations Statistics"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
msgid "Deadline Date"
msgstr ""
#. module: hr_evaluation
#: code:addons/hr_evaluation/wizard/mail_compose_message.py:45
#, python-format
msgid ""
"Hello %s, \n"
"\n"
" Kindly post your response for '%s' survey interview. \n"
"\n"
" Thanks,"
msgstr ""
#. module: hr_evaluation
#: selection:hr_evaluation.plan.phase,action:0
msgid "Top-Down Appraisal Requests"
msgstr ""
#. module: hr_evaluation
#: model:ir.actions.act_window,help:hr_evaluation.action_evaluation_plans_installer
msgid ""
"You can define appraisal plans (ex: first interview after 6 months, then "
"every year). Then, each employee can be linked to an appraisal plan so that "
"OpenERP can automatically generate interview requests to managers and/or "
"subordinates."
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "General"
msgstr ""
#. module: hr_evaluation
#: help:hr_evaluation.plan.phase,send_answer_employee:0
msgid "Send all answers to the employee"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Appraisal Data"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
#: selection:hr.evaluation.report,state:0
#: view:hr_evaluation.evaluation:0
#: selection:hr_evaluation.evaluation,state:0
msgid "Done"
msgstr ""
#. module: hr_evaluation
#: model:ir.actions.act_window,name:hr_evaluation.open_view_hr_evaluation_plan_tree
#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_hr_evaluation_plan_tree
msgid "Appraisal Plans"
msgstr ""
#. module: hr_evaluation
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_interview
msgid "Appraisal Interview"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Cancel"
msgstr ""
#. module: hr_evaluation
#: code:addons/hr_evaluation/wizard/mail_compose_message.py:49
#, python-format
msgid "Reminder to fill up Survey"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
msgid "In Progress"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
msgid "To Do"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
msgid "Final Validation Evaluations"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.plan.phase,mail_feature:0
msgid "Send mail for this phase"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
#: view:hr_evaluation.evaluation:0
msgid "Late"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,month:0
msgid "October"
msgstr ""
#. module: hr_evaluation
#: help:hr.employee,evaluation_date:0
msgid ""
"The date of the next appraisal is computed by the appraisal plan's dates "
"(first appraisal + periodicity)."
msgstr ""
#. module: hr_evaluation
#: field:hr.evaluation.report,overpass_delay:0
msgid "Overpassed Deadline"
msgstr ""
#. module: hr_evaluation
#: help:hr_evaluation.plan,month_next:0
msgid ""
"The number of month that depicts the delay between each evaluation of this "
"plan (after the first one)."
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.plan,month_next:0
msgid "Periodicity of Appraisal (months)"
msgstr ""
#. module: hr_evaluation
#: selection:hr_evaluation.plan.phase,action:0
msgid "Self Appraisal Requests"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.evaluation,survey_request_ids:0
msgid "Appraisal Forms"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,month:0
msgid "May"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Internal Notes"
msgstr ""
#. module: hr_evaluation
#: selection:hr_evaluation.plan.phase,action:0
msgid "Final Interview"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.plan.phase,name:0
msgid "Phase"
msgstr ""
#. module: hr_evaluation
#: selection:hr_evaluation.plan.phase,action:0
msgid "Bottom-Up Appraisal Requests"
msgstr ""
#. module: hr_evaluation
#: code:addons/hr_evaluation/hr_evaluation.py:244
#, python-format
msgid ""
"You cannot change state, because some appraisal in waiting answer or draft "
"state"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,month:0
msgid "February"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
#: view:hr_evaluation.evaluation:0
msgid "Interview Appraisal"
msgstr ""
#. module: hr_evaluation
#: field:survey.request,is_evaluation:0
msgid "Is Appraisal?"
msgstr ""
#. module: hr_evaluation
#: code:addons/hr_evaluation/hr_evaluation.py:320
#, python-format
msgid "You cannot start evaluation without Appraisal."
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
msgid "Evaluation done in current month"
msgstr ""
#. module: hr_evaluation
#: field:hr.evaluation.interview,user_to_review_id:0
msgid "Employee to Interview"
msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,month:0
msgid "April"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "Appraisal Plan Phases"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Validate Appraisal"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
#: view:hr_evaluation.evaluation:0
msgid "Search Appraisal"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.plan.phase,sequence:0
msgid "Sequence"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "(user_signature)s: User name"
msgstr ""
#. module: hr_evaluation
#: view:board.board:0
#: model:ir.actions.act_window,name:hr_evaluation.action_hr_evaluation_interview_board
#: model:ir.actions.act_window,name:hr_evaluation.action_hr_evaluation_interview_tree
#: model:ir.ui.menu,name:hr_evaluation.menu_open_hr_evaluation_interview_requests
msgid "Interview Requests"
msgstr ""
#. module: hr_evaluation
#: field:hr.evaluation.report,create_date:0
msgid "Create Date"
msgstr ""
#. module: hr_evaluation
#: view:hr.evaluation.report:0
#: field:hr.evaluation.report,year:0
msgid "Year"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.evaluation,note_summary:0
msgid "Appraisal Summary"
msgstr ""
#. module: hr_evaluation
#: field:hr.employee,evaluation_date:0
msgid "Next Appraisal Date"
msgstr ""

View File

@ -18,7 +18,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<xpath expr="/form/board/column[1]" position="inside">
<action name="%(action_my_expense)d" string="My Expenses"/>
<action name="%(action_my_expense)d" string="My Expenses" creatable="true"/>
</xpath>
</field>
</record>

View File

@ -172,7 +172,6 @@
<field name="name">Expenses</field>
<field name="res_model">hr.expense.expense</field>
<field name="view_type">form</field>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="view_hr_expense_filter"/>
<field name="view_id" ref="view_expenses_tree"/>
<field name="help">The OpenERP expenses management module allows you to track the full flow. Every month, the employees record their expenses. At the end of the month, their managers validates the expenses sheets which creates costs on projects/analytic accounts. The accountant validates the proposed entries and the employee can be reimbursed. You can also reinvoice the customer at the end of the flow.</field>

View File

@ -236,6 +236,13 @@ class hr_holidays(osv.osv):
for id in ids:
wf_service.trg_delete(uid, 'hr.holidays', id, cr)
wf_service.trg_create(uid, 'hr.holidays', id, cr)
to_unlink = []
for record in self.browse(cr, uid, ids, context=context):
for record2 in record.linked_request_ids:
self.set_to_draft(cr, uid, [record2.id], context=context)
to_unlink.append(record2.id)
if to_unlink:
self.unlink(cr, uid, to_unlink, context=context)
return True
def holidays_validate(self, cr, uid, ids, context=None):
@ -349,9 +356,17 @@ resource_calendar_leaves()
class hr_employee(osv.osv):
_inherit="hr.employee"
_inherit="hr.employee"
def _set_remaining_days(self, cr, uid, empl_id, name, value, arg, context=None):
def create(self, cr, uid, vals, context=None):
# don't pass the value of remaining leave if it's 0 at the creation time, otherwise it will trigger the inverse
# function _set_remaining_days and the system may not be configured for. Note that we don't have this problem on
# the write because the clients only send the fields that have been modified.
if 'remaining_leaves' in vals and not vals['remaining_leaves']:
del(vals['remaining_leaves'])
return super(hr_employee, self).create(cr, uid, vals, context=context)
def _set_remaining_days(self, cr, uid, empl_id, name, value, arg, context=None):
employee = self.browse(cr, uid, empl_id, context=context)
diff = value - employee.remaining_leaves
type_obj = self.pool.get('hr.holidays.status')
@ -359,7 +374,7 @@ class hr_employee(osv.osv):
# Find for holidays status
status_ids = type_obj.search(cr, uid, [('limit', '=', False)], context=context)
if len(status_ids) != 1 :
raise osv.except_osv(_('Warning !'),_("To use this feature, you must have only one leave type without the option 'Allow to Override Limit' set. (%s Found).") % (len(status_ids)))
raise osv.except_osv(_('Warning !'),_("The feature behind the field 'Remaining Legal Leaves' can only be used when there is only one leave type with the option 'Allow to Override Limit' unchecked. (%s Found). Otherwise, the update is ambiguous as we cannot decide on which leave type the update has to be done. \nYou may prefer to use the classic menus 'Leave Requests' and 'Allocation Requests' located in 'Human Resources \ Leaves' to manage the leave days of the employees if the configuration does not allow to use this field.") % (len(status_ids)))
status_id = status_ids and status_ids[0] or False
if not status_id:
return False
@ -375,7 +390,7 @@ class hr_employee(osv.osv):
wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'second_validate', cr)
return True
def _get_remaining_days(self, cr, uid, ids, name, args, context=None):
def _get_remaining_days(self, cr, uid, ids, name, args, context=None):
cr.execute("""SELECT
sum(h.number_of_days) as days,
h.employee_id
@ -396,7 +411,7 @@ class hr_employee(osv.osv):
remaining[employee_id] = 0.0
return remaining
def _get_leave_status(self, cr, uid, ids, name, args, context=None):
def _get_leave_status(self, cr, uid, ids, name, args, context=None):
holidays_id = self.pool.get('hr.holidays').search(cr, uid,
[('employee_id', 'in', ids), ('date_from','<=',time.strftime('%Y-%m-%d %H:%M:%S')),
('date_to','>=',time.strftime('%Y-%m-%d %H:%M:%S')),('type','=','remove'),('state','not in',('cancel','refuse'))],
@ -412,7 +427,7 @@ class hr_employee(osv.osv):
result[holiday.employee_id.id]['current_leave_id'] = holiday.holiday_status_id.id
return result
_columns = {
_columns = {
'remaining_leaves': fields.function(_get_remaining_days, string='Remaining Legal Leaves', fnct_inv=_set_remaining_days, type="float", help='Total number of legal leaves allocated to this employee, change this value to create allocation/leave requests.'),
'current_leave_state': fields.function(_get_leave_status, multi="leave_status", string="Current Leave Status", type="selection",
selection=[('draft', 'New'), ('confirm', 'Waiting Approval'), ('refuse', 'Refused'),

View File

@ -12,7 +12,8 @@
<filter icon="terp-camera_test" domain="[('state','=','confirm')]" string="To Approve" name="approve"/>
<filter icon="terp-camera_test" domain="[('state','=','validate')]" string="Validated" name="validated"/>
<separator orientation="vertical"/>
<filter string="This Month" icon="terp-go-month" name="This Month" domain="[('date_from','&lt;=',(datetime.date.today()+relativedelta(day=31)).strftime('%%Y-%%m-%%d')),('date_from','&gt;=',(datetime.date.today()-relativedelta(day=1)).strftime('%%Y-%%m-%%d'))]"/>
<filter icon="terp-go-year" name="year" string="Year" domain="[('create_date','&gt;=',time.strftime('%%Y-1-1')),('create_date','&lt;=',time.strftime('%%Y-12-31'))]"/>
<filter string="Month" icon="terp-go-month" name="This Month" domain="[('date_from','&lt;=',(datetime.date.today()+relativedelta(day=31)).strftime('%%Y-%%m-%%d')),('date_from','&gt;=',(datetime.date.today()-relativedelta(day=1)).strftime('%%Y-%%m-%%d'))]"/>
<separator orientation="vertical"/>
<field name="employee_id">
<filter icon="terp-personal" name="my_leaves" domain="[('employee_id.user_id','=', uid)]" help="My Leaves"/>
@ -311,7 +312,7 @@
<field name="name">Allocation Requests</field>
<field name="res_model">hr.holidays</field>
<field name="view_type">form</field>
<field name="context">{"search_default_my_leaves": 1,'default_type':'add',"search_default_department_id": department_id}</field>
<field name="context">{'default_type':'add',"search_default_department_id": department_id}</field>
<field name="domain">[('type','=','add')]</field>
<field name="view_id" ref="allocation_leave_new"/>
<field name="search_view_id" ref="view_hr_holidays_filter"/>
@ -339,7 +340,7 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" eval="view_holiday_simple"/>
<field name="context">{'search_default_my_leaves': 1, 'search_default_group_type': 1, 'search_default_validated': 1}</field>
<field name="context">{'search_default_group_type': 1, 'search_default_validated': 1}</field>
<field name="domain">[('holiday_type','=','employee')]</field>
<field name="search_view_id" ref="view_hr_holidays_filter"/>
</record>

1200
addons/hr_payroll/i18n/ar.po Normal file

File diff suppressed because it is too large Load Diff

1843
addons/hr_payroll/i18n/ro.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,140 @@
# Arabic translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-12-22 18:44+0000\n"
"PO-Revision-Date: 2012-01-03 12:54+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic <ar@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-01-04 04:48+0000\n"
"X-Generator: Launchpad (build 14616)\n"
#. module: hr_payroll_account
#: field:hr.payslip,move_id:0
msgid "Accounting Entry"
msgstr ""
#. module: hr_payroll_account
#: field:hr.salary.rule,account_tax_id:0
msgid "Tax Code"
msgstr ""
#. module: hr_payroll_account
#: field:hr.payslip,journal_id:0
#: field:hr.payslip.run,journal_id:0
msgid "Expense Journal"
msgstr ""
#. module: hr_payroll_account
#: code:addons/hr_payroll_account/hr_payroll_account.py:157
#: code:addons/hr_payroll_account/hr_payroll_account.py:173
#, python-format
msgid "Adjustment Entry"
msgstr ""
#. module: hr_payroll_account
#: field:hr.contract,analytic_account_id:0
#: field:hr.salary.rule,analytic_account_id:0
msgid "Analytic Account"
msgstr ""
#. module: hr_payroll_account
#: model:ir.model,name:hr_payroll_account.model_hr_salary_rule
msgid "hr.salary.rule"
msgstr ""
#. module: hr_payroll_account
#: model:ir.model,name:hr_payroll_account.model_hr_payslip_run
msgid "Payslip Batches"
msgstr ""
#. module: hr_payroll_account
#: field:hr.contract,journal_id:0
msgid "Salary Journal"
msgstr ""
#. module: hr_payroll_account
#: model:ir.model,name:hr_payroll_account.model_hr_payslip
msgid "Pay Slip"
msgstr ""
#. module: hr_payroll_account
#: constraint:hr.payslip:0
msgid "Payslip 'Date From' must be before 'Date To'."
msgstr ""
#. module: hr_payroll_account
#: help:hr.payslip,period_id:0
msgid "Keep empty to use the period of the validation(Payslip) date."
msgstr ""
#. module: hr_payroll_account
#: code:addons/hr_payroll_account/hr_payroll_account.py:171
#, python-format
msgid ""
"The Expense Journal \"%s\" has not properly configured the Debit Account!"
msgstr ""
#. module: hr_payroll_account
#: code:addons/hr_payroll_account/hr_payroll_account.py:155
#, python-format
msgid ""
"The Expense Journal \"%s\" has not properly configured the Credit Account!"
msgstr ""
#. module: hr_payroll_account
#: field:hr.salary.rule,account_debit:0
msgid "Debit Account"
msgstr ""
#. module: hr_payroll_account
#: code:addons/hr_payroll_account/hr_payroll_account.py:102
#, python-format
msgid "Payslip of %s"
msgstr ""
#. module: hr_payroll_account
#: model:ir.model,name:hr_payroll_account.model_hr_contract
msgid "Contract"
msgstr ""
#. module: hr_payroll_account
#: constraint:hr.contract:0
msgid "Error! contract start-date must be lower then contract end-date."
msgstr ""
#. module: hr_payroll_account
#: field:hr.payslip,period_id:0
msgid "Force Period"
msgstr ""
#. module: hr_payroll_account
#: field:hr.salary.rule,account_credit:0
msgid "Credit Account"
msgstr ""
#. module: hr_payroll_account
#: model:ir.model,name:hr_payroll_account.model_hr_payslip_employees
msgid "Generate payslips for all selected employees"
msgstr ""
#. module: hr_payroll_account
#: code:addons/hr_payroll_account/hr_payroll_account.py:155
#: code:addons/hr_payroll_account/hr_payroll_account.py:171
#, python-format
msgid "Configuration Error!"
msgstr ""
#. module: hr_payroll_account
#: view:hr.contract:0
#: view:hr.salary.rule:0
msgid "Accounting"
msgstr ""

View File

@ -433,9 +433,8 @@ class hr_applicant(crm.crm_case, osv.osv):
})
self.case_close(cr, uid, [applicant.id], *args)
else:
raise osv.except_osv(_('Warning!'),_('You must define Applied Job for Applicant !'))
raise osv.except_osv(_('Warning!'),_('You must define Applied Job for this applicant.'))
action_model, action_id = model_data.get_object_reference(cr, uid, 'hr', 'open_view_employee_list')
dict_act_window = act_window.read(cr, uid, action_id, [])
if emp_id:

File diff suppressed because it is too large Load Diff

View File

@ -89,7 +89,7 @@
<field name="res_model">hr.analytic.timesheet</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="context">{"search_default_user_id":uid, "search_default_today":1}</field>
<field name="context">{"search_default_today":1}</field>
<field name="search_view_id" ref="hr_timesheet_line_search"/>
<field name="help">Through this menu you can register and follow your workings hours by project every day.</field>
</record>

View File

@ -170,16 +170,16 @@ hr_analytic_timesheet()
class account_invoice(osv.osv):
_inherit = "account.invoice"
def _get_analytic_lines(self, cr, uid, id):
iml = super(account_invoice, self)._get_analytic_lines(cr, uid, id)
def _get_analytic_lines(self, cr, uid, id, context=None):
iml = super(account_invoice, self)._get_analytic_lines(cr, uid, id, context=context)
inv = self.browse(cr, uid, [id])[0]
inv = self.browse(cr, uid, [id], context=context)[0]
if inv.type == 'in_invoice':
obj_analytic_account = self.pool.get('account.analytic.account')
for il in iml:
if il['account_analytic_id']:
# *-* browse (or refactor to avoid read inside the loop)
to_invoice = obj_analytic_account.read(cr, uid, [il['account_analytic_id']], ['to_invoice'])[0]['to_invoice']
to_invoice = obj_analytic_account.read(cr, uid, [il['account_analytic_id']], ['to_invoice'], context=context)[0]['to_invoice']
if to_invoice:
il['analytic_lines'][0][2]['to_invoice'] = to_invoice[0]
return iml

View File

@ -23,7 +23,7 @@
<field name="state" readonly="1" widget="statusbar"
statusbar_visible="open,pending,close" statusbar_colors='{"pending":"red", "template":"blue"}'/>
<button name="set_cancel" string="Cancel" type="object" states="open,pending" icon="gtk-cancel"/>
<button name="set_open" string="Reactivate Account" type="object" states="pending,cancelled,close,draft" icon="gtk-ok"/>
<button name="set_open" string="Re-open project" type="object" states="pending,cancelled,close,draft" icon="gtk-ok"/>
<button name="set_pending" string="Pending" type="object" states="open" icon="gtk-media-pause"/>
<button name="set_close" string="Close" type="object" states="open,pending" icon="terp-dialog-close"/>
</group>
@ -89,7 +89,8 @@
<field name="inherit_id" ref="account.view_account_analytic_line_filter"/>
<field name="arch" type="xml">
<field name="date" position="before">
<filter name="to_invoice" string="To Invoice" context="{'to_invoice': 1}" domain="[('invoice_id','=',False),('to_invoice','&lt;&gt;',False)]" icon="terp-dolar"/>
<filter name="to_invoice" string="To Invoice" context="{'to_invoice': 1}" domain="[('invoice_id','=',False), ('to_invoice','&lt;&gt;',False)]" icon="terp-dolar"/>
<filter name="invoiced" string="Invoiced" domain="[('invoice_id','!=',False), ('to_invoice','&lt;&gt;',False)]" icon="terp-dolar"/>
<separator orientation="vertical"/>
</field>
</field>

View File

@ -271,7 +271,7 @@ class idea_idea(osv.osv):
if vals.get('my_vote', False):
if vals.get('state', state) != 'open':
raise osv.except_osv(_("Warning !"), _("Draft/Accepted/Cancelled ideas Could not be voted"))
raise osv.except_osv(_("Warning !"), _("You can not vote on a Draft/Accepted/Cancelled ideas."))
res = super(idea_idea, self).write(cr, user, ids, vals, context=context)
return res

View File

@ -42,12 +42,12 @@ class import_framework(Thread):
for advanced purpose get_default_hook can also be extended
@see dummy import for a minimal exemple
"""
"""
for import_object, this domain will avoid to find an already existing object
"""
DO_NOT_FIND_DOMAIN = [('id', '=', 0)]
#TODO don't use context to pass credential parameters
def __init__(self, obj, cr, uid, instance_name, module_name, email_to_notify=False, context=None):
Thread.__init__(self)
@ -64,34 +64,34 @@ class import_framework(Thread):
self.initialize()
"""
Abstract Method to be implemented in
Abstract Method to be implemented in
the real instance
"""
"""
def initialize(self):
"""
init before import
usually for the login
"""
pass
def init_run(self):
"""
call after intialize run in the thread, not in the main process
TO use for long initialization operation
TO use for long initialization operation
"""
pass
def get_data(self, table):
"""
@return: a list of dictionaries
each dictionnaries contains the list of pair external_field_name : value
each dictionnaries contains the list of pair external_field_name : value
"""
return [{}]
def get_link(self, from_table, ids, to_table):
"""
@return: a dictionaries that contains the association between the id (from_table)
and the list (to table) of id linked
@return: a dictionaries that contains the association between the id (from_table)
and the list (to table) of id linked
"""
return {}
@ -103,14 +103,14 @@ class import_framework(Thread):
of self.external_id_field
"""
return data[self.external_id_field]
def get_mapping(self):
"""
@return: { TABLE_NAME : {
'model' : 'openerp.model.name',
#if true import the table if not just resolve dependencies, use for meta package, by default => True
#if true import the table if not just resolve dependencies, use for meta package, by default => True
#Not required
'import' : True or False,
'import' : True or False,
#Not required
'dependencies' : [TABLE_1, TABLE_2],
#Not required
@ -127,40 +127,40 @@ class import_framework(Thread):
'field' : call(method, val('external_field') interface of method is self, val where val is the value of the field
'field' : const(value) #always set this field to value
+ any custom mapper that you will define
}
}
},
}
}
"""
return {}
def default_hook(self, val):
"""
this hook will be apply on each table that don't have hook
here we define the identity hook
"""
return val
def _import_table(self, table):
data = self.get_data(table)
map = self.get_mapping()[table]['map']
hook = self.get_mapping()[table].get('hook', self.default_hook)
model = self.get_mapping()[table]['model']
final_data = []
for val in data:
res = hook(val)
if res:
final_data.append(res)
return self._save_data(model, dict(map), final_data, table)
def _save_data(self, model, mapping, datas, table):
"""
@param model: the model of the object to import
@param table : the external table where the data come from
@param table : the external table where the data come from
@param mapping : definition of the mapping
@see: get_mapping
@param datas : list of dictionnaries
@param datas : list of dictionnaries
datas = [data_1, data_2, ..]
data_i is a map external field_name => value
and each data_i have a external id => in data_id['id']
@ -170,21 +170,21 @@ class import_framework(Thread):
return (0, 'No data found')
mapping['id'] = 'id_new'
res = []
self_dependencies = []
for k in mapping.keys():
if '_parent' in k:
self_dependencies.append((k[:-7], mapping.pop(k)))
for data in datas:
for k, field_name in self_dependencies:
data[k] = data.get(field_name) and self._generate_xml_id(data.get(field_name), table)
data['id_new'] = self._generate_xml_id(self.get_external_id(data), table)
fields, values = self._fields_mapp(data, mapping, table)
res.append(values)
model_obj = self.obj.pool.get(model)
if not model_obj:
raise ValueError(_("%s is not a valid model name") % model)
@ -193,13 +193,13 @@ class import_framework(Thread):
for (field, field_name) in self_dependencies:
self._import_self_dependencies(model_obj, field, datas)
return (len(res), warning)
def _import_self_dependencies(self, obj, parent_field, datas):
"""
@param parent_field: the name of the field that generate a self_dependencies, we call the object referenced in this
field the parent of the object
@param datas: a list of dictionnaries
Dictionnaries need to contains
Dictionnaries need to contains
id_new : the xml_id of the object
field_new : the xml_id of the parent
"""
@ -207,14 +207,14 @@ class import_framework(Thread):
for data in datas:
if data.get(parent_field):
values = [data['id_new'], data[parent_field]]
obj.import_data(self.cr, self.uid, fields, [values], mode='update', current_module=self.module_name, noupdate=True, context=self.context)
obj.import_data(self.cr, self.uid, fields, [values], mode='update', current_module=self.module_name, noupdate=True, context=self.context)
def _preprocess_mapping(self, mapping):
"""
Preprocess the mapping :
after the preprocces, everything is
after the preprocces, everything is
callable in the val of the dictionary
use to allow syntaxical sugar like 'field': 'external_field'
instead of 'field' : value('external_field')
"""
@ -223,14 +223,14 @@ class import_framework(Thread):
if isinstance(value, basestring):
map[key] = mapper.value(value)
#set parent for instance of dbmapper
elif isinstance(value, mapper.dbmapper):
elif isinstance(value, mapper.dbmapper):
value.set_parent(self)
return map
return map
def _fields_mapp(self,dict_sugar, openerp_dict, table):
"""
call all the mapper and transform data
call all the mapper and transform data
to be compatible with import_data
"""
fields=[]
@ -242,7 +242,7 @@ class import_framework(Thread):
value = val(dict(dict_sugar))
data_lst.append(value)
return fields, data_lst
def _generate_xml_id(self, name, table):
"""
@param name: name of the object, has to be unique in for a given table
@ -253,8 +253,8 @@ class import_framework(Thread):
sugar_instance = self.instance_name
name = name.replace('.', '_').replace(',', '_')
return sugar_instance + "_" + table + "_" + name
"""
Public interface of the framework
those function can be use in the callable function defined in the mapping
@ -268,11 +268,11 @@ class import_framework(Thread):
"""
if not external_id:
return False
xml_id = self._generate_xml_id(external_id, table)
id = self.obj.pool.get('ir.model.data').search(self.cr, self.uid, [('name', '=', xml_id), ('module', '=', self.module_name)])
return id and xml_id or False
def name_exist(self, table, name, model):
"""
Check if the object with the name exist in the openerp database
@ -282,21 +282,21 @@ class import_framework(Thread):
fields = ['name']
data = [name]
return self.import_object(fields, data, model, table, name, [('name', '=', name)])
def get_mapped_id(self, table, external_id, context=None):
"""
@return return the databse id linked with the external_id
"""
if not external_id:
return False
xml_id = self._generate_xml_id(external_id, table)
return self.obj.pool.get('ir.model.data').get_object_reference(self.cr, self.uid, self.module_name, xml_id)[1]
def import_object_mapping(self, mapping, data, model, table, name, domain_search=False):
"""
same as import_objects but instead of two list fields and data,
this method take a dictionnaries : external_field : value
same as import_objects but instead of two list fields and data,
this method take a dictionnaries : external_field : value
and the mapping similar to the one define in 'map' key
@see import_object, get_mapping
"""
@ -308,7 +308,7 @@ class import_framework(Thread):
This method will import an object in the openerp, usefull for field that is only a char in sugar and is an object in openerp
use import_data that will take care to create/update or do nothing with the data
this method return the xml_id
To be use, when you want to create an object or link if already exist
use DO_NOT_LINK_DOMAIN to create always a new object
@param fields: list of fields needed to create the object without id
@ -318,21 +318,21 @@ class import_framework(Thread):
@param table: the table where data come from in sugarcrm, no need to fit the real name of openerp name, just need to be unique
@param unique_name: the name of the object that we want to create/update get the id
@param domain_search : the domain that should find the unique existing record
@return: the xml_id of the ressources
"""
domain_search = not domain_search and [('name', 'ilike', name)] or domain_search
obj = self.obj.pool.get(model)
if not obj: #if the model doesn't exist
return False
xml_id = self._generate_xml_id(name, table)
xml_ref = self.mapped_id_if_exist(model, domain_search, table, name)
fields.append('id')
data.append(xml_id)
obj.import_data(self.cr, self.uid, fields, [data], mode='update', current_module=self.module_name, noupdate=True, context=self.context)
return xml_ref or xml_id
def mapped_id_if_exist(self, model, domain, table, name):
"""
@ -354,8 +354,8 @@ class import_framework(Thread):
noupdate=True, res_id=ids[0], context=self.context)
return xml_id
return False
def set_table_list(self, table_list):
"""
Set the list of table to import, this method should be call before run
@ -363,13 +363,13 @@ class import_framework(Thread):
['Leads', 'Opportunity']
"""
self.table_list = table_list
def run(self):
"""
Import all data into openerp,
Import all data into openerp,
this is the Entry point to launch the process of import
"""
self.data_started = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
self.cr = pooler.get_db(self.cr.dbname).cursor()
@ -388,21 +388,21 @@ class import_framework(Thread):
result.append((table, position, warning))
imported.add(table)
self.cr.commit()
except Exception, err:
sh = StringIO.StringIO()
traceback.print_exc(file=sh)
error = sh.getvalue()
print error
self.date_ended = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
self._send_notification_email(result, error)
self.cr.close()
def _resolve_dependencies(self, dep, imported):
"""
"""
import dependencies recursively
and avoid to import twice the same table
"""
@ -418,13 +418,13 @@ class import_framework(Thread):
result.append((dependency, position, warning))
imported.add(dependency)
return result
def _send_notification_email(self, result, error):
if not self.email:
return False
return False
email_obj = self.obj.pool.get('mail.message')
email_id = email_obj.create(self.cr, self.uid, {
'email_from' : 'import@module.openerp',
'email_from' : 'import@module.openerp',
'email_to' : self.email,
'body_text' : self.get_email_body(result, error),
'subject' : self.get_email_subject(result, error),
@ -434,34 +434,34 @@ class import_framework(Thread):
self.logger.error(_("Import failed due to an unexpected error"))
else:
self.logger.info(_("Import finished, notification email sended"))
def get_email_subject(self, result, error=False):
"""
This method define the subject of the email send by openerp at the end of import
@param result: a list of tuple
@param result: a list of tuple
(table_name, number_of_record_created/updated, warning) for each table
@return the subject of the mail
"""
if error:
return _("Data Import failed at %s due to an unexpected error") % self.date_ended
return _("Import of your data finished at %s") % self.date_ended
def get_email_body(self, result, error=False):
"""
This method define the body of the email send by openerp at the end of import. The body is separated in two part
the header (@see get_body_header), and the generate body with the list of table and number of record imported.
If you want to keep this it's better to overwrite get_body_header
@param result: a list of tuple
@param result: a list of tuple
(table_name, number_of_record_created/updated, warning) for each table
@return the subject of the mail
"""
body = _("started at %s and finished at %s \n") % (self.data_started, self.date_ended)
if error:
body += _("but failed, in consequence no data were imported to keep database consistency \n error : \n") + error
body += _("but failed, in consequence no data were imported to keep database consistency \n error : \n") + error
for (table, nb, warning) in result:
if not warning:
warning = _("with no warning")
@ -469,13 +469,13 @@ class import_framework(Thread):
warning = _("with warning : %s") % warning
body += _("%s has been successfully imported from %s %s, %s \n") % (nb, self.instance_name, table, warning)
return self.get_body_header(result) + "\n\n" + body
def get_body_header(self, result):
"""
@return the first sentences written in the mail's body
"""
return _("The import of data \n instance name : %s \n") % self.instance_name
#TODO documentation test
def run_test(self):
@ -489,13 +489,13 @@ class import_framework(Thread):
self.get_data = back_get_data
self.get_link = back_get_link
self.initialize = back_init
def get_data_test(self, table):
return [{}]
def get_link_test(self, from_table, ids, to_table):
return {}
def intialize_test(self):
pass

View File

@ -107,7 +107,6 @@ class synchronize_google(osv.osv_memory):
_defaults = {
'create_partner': 'create_all',
'group_name': 'all',
'calendar_name': 'all',
}
def import_google(self, cr, uid, ids, context=None):

View File

@ -120,9 +120,9 @@
<record id="pst_qc_en" model="account.tax.template">
<field name="chart_template_id" ref="ca_en_chart_template_en"/>
<field name="name">PST - 8.5%</field>
<field name="name">PST - 9.5%</field>
<field name="description">PST</field>
<field name="amount">0.085000</field>
<field name="amount">0.095000</field>
<field name="type">percent</field>
<field name="sequence">1</field>
<field name="account_collected_id" ref="chart1182_en"/>

View File

@ -120,9 +120,9 @@
<record id="tvq_fr" model="account.tax.template">
<field name="chart_template_id" ref="ca_fr_chart_template_fr"/>
<field name="name">TVQ - 8.5%</field>
<field name="name">TVQ - 9.5%</field>
<field name="description">TVQ</field>
<field name="amount">0.085000</field>
<field name="amount">0.095000</field>
<field name="type">percent</field>
<field name="sequence">1</field>
<field name="account_collected_id" ref="chart1182_fr"/>

View File

@ -47,6 +47,7 @@
<!-- 科目表模板-->
<record id="cn_root" model="account.account.template">
<field name="name">会计科目</field>
<field name="code">0</field>
<field name="type">view</field>
<field name="user_type" ref="user_type_all"/>
</record>

View File

@ -1,235 +1,235 @@
"id","code","name","parent_id:id","user_type:id","type","reconcile"
"0","0","Azienda",,"account_type_view","view","FALSE"
"1","1","ATTIVO ","0","account_type_view","view","TRUE"
"11","11","IMMOBILIZZAZIONI IMMATERIALI ","1","account_type_view","view","TRUE"
"1101","1101","costi di impianto ","11","account_type_asset","other","TRUE"
"1106","1106","software ","11","account_type_asset","other","TRUE"
"1108","1108","avviamento ","11","account_type_asset","other","TRUE"
"1111","1111","fondo ammortamento costi di impianto ","11","account_type_asset","other","TRUE"
"1116","1116","fondo ammortamento software ","11","account_type_asset","other","TRUE"
"1118","1118","fondo ammortamento avviamento ","11","account_type_asset","other","TRUE"
"12","12","IMMOBILIZZAZIONI MATERIALI ","1","account_type_view","view","TRUE"
"1201","1201","fabbricati ","12","account_type_asset","other","TRUE"
"1202","1202","impianti e macchinari ","12","account_type_asset","other","TRUE"
"1204","1204","attrezzature commerciali ","12","account_type_asset","other","TRUE"
"1205","1205","macchine d'ufficio ","12","account_type_asset","other","TRUE"
"1206","1206","arredamento ","12","account_type_asset","other","TRUE"
"1207","1207","automezzi ","12","account_type_asset","other","TRUE"
"1208","1208","imballaggi durevoli ","12","account_type_asset","other","TRUE"
"1211","1211","fondo ammortamento fabbricati ","12","account_type_asset","other","TRUE"
"1212","1212","fondo ammortamento impianti e macchinari ","12","account_type_asset","other","TRUE"
"1214","1214","fondo ammortamento attrezzature commerciali ","12","account_type_asset","other","TRUE"
"1215","1215","fondo ammortamento macchine d'ufficio ","12","account_type_asset","other","TRUE"
"1216","1216","fondo ammortamento arredamento ","12","account_type_asset","other","TRUE"
"1217","1217","fondo ammortamento automezzi ","12","account_type_asset","other","TRUE"
"1218","1218","fondo ammortamento imballaggi durevoli ","12","account_type_asset","other","TRUE"
"1220","1220","fornitori immobilizzazioni c/acconti ","12","account_type_asset","other","TRUE"
"13","13","IMMOBILIZZAZIONI FINANZIARIE ","1","account_type_view","view","TRUE"
"1301","1301","mutui attivi ","13","account_type_asset","other","TRUE"
"14","14","RIMANENZE ","1","account_type_view","view","TRUE"
"1401","1401","materie di consumo ","14","account_type_asset","other","TRUE"
"1404","1404","merci ","14","account_type_asset","other","TRUE"
"1410","1410","fornitori c/acconti ","14","account_type_asset","other","TRUE"
"15","15","CREDITI COMMERCIALI ","1","account_type_view","view","TRUE"
"1501","1501","crediti v/clienti ","15","account_type_receivable","receivable","TRUE"
"1502","1502","crediti commerciali diversi ","15","account_type_receivable","other","TRUE"
"1503","1503","clienti c/spese anticipate ","15","account_type_receivable","receivable","TRUE"
"1505","1505","cambiali attive ","15","account_type_receivable","other","TRUE"
"1506","1506","cambiali allo sconto ","15","account_type_receivable","other","TRUE"
"1507","1507","cambiali all'incasso ","15","account_type_receivable","other","TRUE"
"1509","1509","fatture da emettere ","15","account_type_receivable","other","TRUE"
"1510","1510","crediti insoluti ","15","account_type_receivable","other","TRUE"
"1511","1511","cambiali insolute ","15","account_type_receivable","other","TRUE"
"1531","1531","crediti da liquidare ","15","account_type_receivable","other","TRUE"
"1540","1540","fondo svalutazione crediti ","15","account_type_receivable","other","TRUE"
"1541","1541","fondo rischi su crediti ","15","account_type_receivable","other","TRUE"
"16","16","CREDITI DIVERSI ","1","account_type_view","view","TRUE"
"1601","1601","IVA n/credito ","16","account_type_tax","other","TRUE"
"1602","1602","IVA c/acconto ","16","account_type_tax","other","TRUE"
"1605","1605","crediti per IVA ","16","account_type_tax","other","TRUE"
"1607","1607","imposte c/acconto ","16","account_type_tax","other","TRUE"
"1608","1608","crediti per imposte ","16","account_type_tax","other","TRUE"
"1609","1609","crediti per ritenute subite ","16","account_type_asset","other","TRUE"
"1610","1610","crediti per cauzioni ","16","account_type_asset","other","TRUE"
"1620","1620","personale c/acconti ","16","account_type_asset","other","TRUE"
"1630","1630","crediti v/istituti previdenziali ","16","account_type_asset","other","TRUE"
"1640","1640","debitori diversi ","16","account_type_receivable","receivable","TRUE"
"18","18","DISPONIBILITÀ LIQUIDE ","1","account_type_view","view","TRUE"
"1801","1801","banche c/c ","18","account_type_bank","liquidity","TRUE"
"1810","1810","c/c postali ","18","account_type_cash","liquidity","TRUE"
"1820","1820","denaro in cassa ","18","account_type_cash","liquidity","TRUE"
"1821","1821","assegni ","18","account_type_cash","liquidity","TRUE"
"1822","1822","valori bollati ","18","account_type_cash","liquidity","TRUE"
"19","19","RATEI E RISCONTI ATTIVI ","1","account_type_view","view","TRUE"
"1901","1901","ratei attivi ","19","account_type_asset","other","TRUE"
"1902","1902","risconti attivi ","19","account_type_asset","other","TRUE"
"2","2","PASSIVO ","0","account_type_view","view","TRUE"
"20","20","PATRIMONIO NETTO ","2","account_type_view","view","TRUE"
"2101","2101","patrimonio netto ","20","account_type_asset","other","TRUE"
"2102","2102","utile d'esercizio ","20","account_type_asset","other","TRUE"
"2103","2103","perdita d'esercizio ","20","account_type_asset","other","TRUE"
"2104","2104","prelevamenti extra gestione ","20","account_type_asset","other","TRUE"
"2105","2105","titolare c/ritenute subite ","20","account_type_asset","other","TRUE"
"22","22","FONDI PER RISCHI E ONERI ","2","account_type_view","view","TRUE"
"2201","2201","fondo per imposte ","22","account_type_asset","other","TRUE"
"2204","2204","fondo responsabilità civile ","22","account_type_asset","other","TRUE"
"2205","2205","fondo spese future ","22","account_type_asset","other","TRUE"
"2211","2211","fondo manutenzioni programmate ","22","account_type_asset","other","TRUE"
"23","23","TRATTAMENTO FINE RAPPORTO DI LAVORO ","2","account_type_view","view","TRUE"
"2301","2301","debiti per TFRL ","23","account_type_asset","other","TRUE"
"24","24","DEBITI FINANZIARI ","2","account_type_view","view","TRUE"
"2410","2410","mutui passivi ","24","account_type_asset","other","TRUE"
"2411","2411","banche c/sovvenzioni ","24","account_type_asset","other","TRUE"
"2420","2420","banche c/c passivi ","24","account_type_asset","other","TRUE"
"2421","2421","banche c/RIBA all'incasso ","24","account_type_asset","other","TRUE"
"2422","2422","banche c/cambiali all'incasso ","24","account_type_asset","other","TRUE"
"2423","2423","banche c/anticipi su fatture ","24","account_type_asset","other","TRUE"
"2440","2440","debiti v/altri finanziatori ","24","account_type_asset","other","TRUE"
"25","25","DEBITI COMMERCIALI ","2","account_type_view","view","TRUE"
"2501","2501","debiti v/fornitori ","25","account_type_payable","payable","TRUE"
"2503","2503","cambiali passive ","25","account_type_asset","other","TRUE"
"2520","2520","fatture da ricevere ","25","account_type_asset","other","TRUE"
"2521","2521","debiti da liquidare ","25","account_type_asset","other","TRUE"
"2530","2530","clienti c/acconti ","25","account_type_payable","payable","TRUE"
"26","26","DEBITI DIVERSI ","2","account_type_view","view","TRUE"
"2601","2601","IVA n/debito ","26","account_type_tax","other","TRUE"
"2602","2602","debiti per ritenute da versare ","26","account_type_tax","other","TRUE"
"2605","2605","erario c/IVA ","26","account_type_tax","other","TRUE"
"2606","2606","debiti per imposte ","26","account_type_tax","other","TRUE"
"2619","2619","debiti per cauzioni ","26","account_type_asset","other","TRUE"
"2620","2620","personale c/retribuzioni ","26","account_type_asset","other","TRUE"
"2621","2621","personale c/liquidazioni ","26","account_type_asset","other","TRUE"
"2622","2622","clienti c/cessione ","26","account_type_asset","other","TRUE"
"2630","2630","debiti v/istituti previdenziali ","26","account_type_asset","other","TRUE"
"2640","2640","creditori diversi ","26","account_type_payable","payable","TRUE"
"27","27","RATEI E RISCONTI PASSIVI ","2","account_type_view","view","TRUE"
"2701","2701","ratei passivi ","27","account_type_asset","other","TRUE"
"2702","2702","risconti passivi ","27","account_type_asset","other","TRUE"
"28","28","CONTI TRANSITORI E DIVERSI ","2","account_type_view","view","TRUE"
"2801","2801","bilancio di apertura ","28","account_type_asset","other","TRUE"
"2802","2802","bilancio di chiusura ","28","account_type_asset","other","TRUE"
"2810","2810","IVA c/liquidazioni ","28","account_type_asset","other","TRUE"
"2811","2811","istituti previdenziali ","28","account_type_asset","other","TRUE"
"2820","2820","banca ... c/c ","28","account_type_asset","other","TRUE"
"2821","2821","banca ... c/c ","28","account_type_asset","other","TRUE"
"2822","2822","banca ... c/c ","28","account_type_asset","other","TRUE"
"29","29","CONTI DEI SISTEMI SUPPLEMENTARI ","2","account_type_view","view","TRUE"
"2901","2901","beni di terzi ","29","account_type_asset","other","TRUE"
"2902","2902","depositanti beni ","29","account_type_asset","other","TRUE"
"2911","2911","merci da ricevere ","29","account_type_asset","other","TRUE"
"2912","2912","fornitori c/impegni ","29","account_type_asset","other","TRUE"
"2913","2913","impegni per beni in leasing ","29","account_type_asset","other","TRUE"
"2914","2914","creditori c/leasing ","29","account_type_asset","other","TRUE"
"2916","2916","clienti c/impegni ","29","account_type_asset","other","TRUE"
"2917","2917","merci da consegnare ","29","account_type_asset","other","TRUE"
"2921","2921","rischi per effetti scontati ","29","account_type_asset","other","TRUE"
"2922","2922","banche c/effetti scontati ","29","account_type_asset","other","TRUE"
"2926","2926","rischi per fideiussioni ","29","account_type_asset","other","TRUE"
"2927","2927","creditori per fideiussioni ","29","account_type_asset","other","TRUE"
"2931","2931","rischi per avalli ","29","account_type_asset","other","TRUE"
"2932","2932","creditori per avalli ","29","account_type_asset","other","TRUE"
"3","3","VALORE DELLA PRODUZIONE ","0","account_type_view","view","TRUE"
"31","31","VENDITE E PRESTAZIONI ","3","account_type_view","view","TRUE"
"3101","3101","merci c/vendite ","31","account_type_income","other","TRUE"
"3103","3103","rimborsi spese di vendita ","31","account_type_income","other","TRUE"
"3110","3110","resi su vendite ","31","account_type_income","other","TRUE"
"3111","3111","ribassi e abbuoni passivi ","31","account_type_income","other","TRUE"
"3112","3112","premi su vendite ","31","account_type_income","other","TRUE"
"32","32","RICAVI E PROVENTI DIVERSI ","3","account_type_view","view","TRUE"
"3201","3201","fitti attivi ","32","account_type_income","other","TRUE"
"3202","3202","proventi vari ","32","account_type_income","other","TRUE"
"3210","3210","arrotondamenti attivi ","32","account_type_income","other","TRUE"
"3220","3220","plusvalenze ordinarie diverse ","32","account_type_income","other","TRUE"
"3230","3230","sopravvenienze attive ordinarie diverse ","32","account_type_income","other","TRUE"
"3240","3240","insussistenze attive ordinarie diverse ","32","account_type_income","other","TRUE"
"4","4","COSTI DELLA PRODUZIONE ","0","account_type_view","view","TRUE"
"41","41","COSTO DEL VENDUTO ","4","account_type_view","view","TRUE"
"4101","4101","merci c/acquisti ","41","account_type_expense","other","TRUE"
"4102","4102","materie di consumo c/acquisti ","41","account_type_expense","other","TRUE"
"4105","4105","merci c/apporti ","41","account_type_expense","other","TRUE"
"4110","4110","resi su acquisti ","41","account_type_expense","other","TRUE"
"4111","4111","ribassi e abbuoni attivi ","41","account_type_expense","other","TRUE"
"4112","4112","premi su acquisti ","41","account_type_expense","other","TRUE"
"4121","4121","merci c/esistenze iniziali ","41","account_type_expense","other","TRUE"
"4122","4122","materie di consumo c/esistenze iniziali ","41","account_type_expense","other","TRUE"
"4131","4131","merci c/rimanenze finali ","41","account_type_expense","other","TRUE"
"4132","4132","materie di consumo c/rimanenze finali ","41","account_type_expense","other","TRUE"
"42","42","COSTI PER SERVIZI ","4","account_type_view","view","TRUE"
"4201","4201","costi di trasporto ","42","account_type_expense","other","TRUE"
"4202","4202","costi per energia ","42","account_type_expense","other","TRUE"
"4203","4203","costi di pubblicità ","42","account_type_expense","other","TRUE"
"4204","4204","costi di consulenze ","42","account_type_expense","other","TRUE"
"4205","4205","costi postali ","42","account_type_expense","other","TRUE"
"4206","4206","costi telefonici ","42","account_type_expense","other","TRUE"
"4207","4207","costi di assicurazione ","42","account_type_expense","other","TRUE"
"4208","4208","costi di vigilanza ","42","account_type_expense","other","TRUE"
"4209","4209","costi per i locali ","42","account_type_expense","other","TRUE"
"4210","4210","costi di esercizio automezzi ","42","account_type_expense","other","TRUE"
"4211","4211","costi di manutenzione e riparazione ","42","account_type_expense","other","TRUE"
"4212","4212","provvigioni passive ","42","account_type_expense","other","TRUE"
"4213","4213","spese di incasso ","42","account_type_expense","other","TRUE"
"43","43","COSTI PER GODIMENTO BENI DI TERZI ","4","account_type_view","view","TRUE"
"4301","4301","fitti passivi ","43","account_type_expense","other","TRUE"
"4302","4302","canoni di leasing ","43","account_type_expense","other","TRUE"
"44","44","COSTI PER IL PERSONALE ","4","account_type_view","view","TRUE"
"4401","4401","salari e stipendi ","44","account_type_expense","other","TRUE"
"4402","4402","oneri sociali ","44","account_type_expense","other","TRUE"
"4403","4403","TFRL ","44","account_type_expense","other","TRUE"
"4404","4404","altri costi per il personale ","44","account_type_expense","other","TRUE"
"45","45","AMMORTAMENTI IMMOBILIZZAZIONI IMMATERIALI ","4","account_type_view","view","TRUE"
"4501","4501","ammortamento costi di impianto ","45","account_type_p_l","other","TRUE"
"4506","4506","ammortamento software ","45","account_type_p_l","other","TRUE"
"4508","4508","ammortamento avviamento ","45","account_type_p_l","other","TRUE"
"46","46","AMMORTAMENTI IMMOBILIZZAZIONI MATERIALI ","4","account_type_view","view","TRUE"
"4601","4601","ammortamento fabbricati ","46","account_type_p_l","other","TRUE"
"4602","4602","ammortamento impianti e macchinari ","46","account_type_p_l","other","TRUE"
"4604","4604","ammortamento attrezzature commerciali ","46","account_type_p_l","other","TRUE"
"4605","4605","ammortamento macchine d'ufficio ","46","account_type_p_l","other","TRUE"
"4606","4606","ammortamento arredamento ","46","account_type_p_l","other","TRUE"
"4607","4607","ammortamento automezzi ","46","account_type_p_l","other","TRUE"
"4608","4608","ammortamento imballaggi durevoli ","46","account_type_p_l","other","TRUE"
"47","47","SVALUTAZIONI ","4","account_type_view","view","TRUE"
"4701","4701","svalutazioni immobilizzazioni immateriali ","47","account_type_p_l","other","TRUE"
"4702","4702","svalutazioni immobilizzazioni materiali ","47","account_type_p_l","other","TRUE"
"4706","4706","svalutazione crediti ","47","account_type_p_l","other","TRUE"
"48","48","ACCANTONAMENTI ","4","account_type_view","view","TRUE"
"481","481","ACCANTONAMENTI PER RISCHI ","48","account_type_view","view","TRUE"
"4814","4814","accantonamento per responsabilità civile ","481","account_type_p_l","other","TRUE"
"482","482","ALTRI ACCANTONAMENTI ","48","account_type_view","view","TRUE"
"4821","4821","accantonamento per spese future ","482","account_type_p_l","other","TRUE"
"4823","4823","accantonamento per manutenzioni programmate ","482","account_type_p_l","other","TRUE"
"49","49","ONERI DIVERSI ","4","account_type_view","view","TRUE"
"4901","4901","oneri fiscali diversi ","49","account_type_p_l","other","TRUE"
"4903","4903","oneri vari ","49","account_type_p_l","other","TRUE"
"4905","4905","perdite su crediti ","49","account_type_p_l","other","TRUE"
"4910","4910","arrotondamenti passivi ","49","account_type_p_l","other","TRUE"
"4920","4920","minusvalenze ordinarie diverse ","49","account_type_p_l","other","TRUE"
"4930","4930","sopravvenienze passive ordinarie diverse ","49","account_type_p_l","other","TRUE"
"4940","4940","insussistenze passive ordinarie diverse ","49","account_type_p_l","other","TRUE"
"5","5","PROVENTI E ONERI FINANZIARI ","0","account_type_view","view","TRUE"
"51","51","PROVENTI FINANZIARI ","5","account_type_view","view","TRUE"
"5110","5110","interessi attivi v/clienti ","51","account_type_p_l","other","TRUE"
"5115","5115","interessi attivi bancari ","51","account_type_p_l","other","TRUE"
"5116","5116","interessi attivi postali ","51","account_type_p_l","other","TRUE"
"5140","5140","proventi finanziari diversi ","51","account_type_p_l","other","TRUE"
"52","52","ONERI FINANZIARI ","5","account_type_view","view","TRUE"
"5201","5201","interessi passivi v/fornitori ","52","account_type_p_l","other","TRUE"
"5202","5202","interessi passivi bancari ","52","account_type_p_l","other","TRUE"
"5203","5203","sconti passivi bancari ","52","account_type_p_l","other","TRUE"
"5210","5210","interessi passivi su mutui ","52","account_type_p_l","other","TRUE"
"5240","5240","oneri finanziari diversi ","52","account_type_p_l","other","TRUE"
"7","7","PROVENTI E ONERI STRAORDINARI ","0","account_type_view","view","TRUE"
"71","71","PROVENTI STRAORDINARI ","7","account_type_view","view","TRUE"
"7101","7101","plusvalenze straordinarie ","71","account_type_p_l","other","TRUE"
"7102","7102","sopravvenienze attive straordinarie ","71","account_type_p_l","other","TRUE"
"7103","7103","insussistenze attive straordinarie ","71","account_type_p_l","other","TRUE"
"72","72","ONERI STRAORDINARI ","7","account_type_view","view","TRUE"
"7201","7201","minusvalenze straordinarie ","72","account_type_p_l","other","TRUE"
"7202","7202","sopravvenienze passive straordinarie ","72","account_type_p_l","other","TRUE"
"7203","7203","insussistenze passive straordinarie ","72","account_type_p_l","other","TRUE"
"7204","7204","imposte esercizi precedenti ","72","account_type_p_l","other","TRUE"
"8","8","IMPOSTE DELL'ESERCIZIO ","0","account_type_view","view","TRUE"
"8101","8101","imposte dell'esercizio ","8","account_type_p_l","other","TRUE"
"9","9","CONTI DI RISULTATO ","0","account_type_view","view","TRUE"
"9101","9101","conto di risultato economico ","9","account_type_p_l","other","TRUE"
"9102","9102","stato patrimoniale","9","account_type_p_l","other","TRUE"
id,code,name,parent_id:id,user_type:id,type,reconcile
0,0,Azienda,,account_type_view,view,FALSE
1,1,ATTIVO ,0,account_type_view,view,TRUE
11,11,IMMOBILIZZAZIONI IMMATERIALI ,1,account_type_view,view,TRUE
1101,1101,costi di impianto ,11,account_type_asset,other,TRUE
1106,1106,software ,11,account_type_asset,other,TRUE
1108,1108,avviamento ,11,account_type_asset,other,TRUE
1111,1111,fondo ammortamento costi di impianto ,11,account_type_asset,other,TRUE
1116,1116,fondo ammortamento software ,11,account_type_asset,other,TRUE
1118,1118,fondo ammortamento avviamento ,11,account_type_asset,other,TRUE
12,12,IMMOBILIZZAZIONI MATERIALI ,1,account_type_view,view,TRUE
1201,1201,fabbricati ,12,account_type_asset,other,TRUE
1202,1202,impianti e macchinari ,12,account_type_asset,other,TRUE
1204,1204,attrezzature commerciali ,12,account_type_asset,other,TRUE
1205,1205,macchine d'ufficio ,12,account_type_asset,other,TRUE
1206,1206,arredamento ,12,account_type_asset,other,TRUE
1207,1207,automezzi ,12,account_type_asset,other,TRUE
1208,1208,imballaggi durevoli ,12,account_type_asset,other,TRUE
1211,1211,fondo ammortamento fabbricati ,12,account_type_asset,other,TRUE
1212,1212,fondo ammortamento impianti e macchinari ,12,account_type_asset,other,TRUE
1214,1214,fondo ammortamento attrezzature commerciali ,12,account_type_asset,other,TRUE
1215,1215,fondo ammortamento macchine d'ufficio ,12,account_type_asset,other,TRUE
1216,1216,fondo ammortamento arredamento ,12,account_type_asset,other,TRUE
1217,1217,fondo ammortamento automezzi ,12,account_type_asset,other,TRUE
1218,1218,fondo ammortamento imballaggi durevoli ,12,account_type_asset,other,TRUE
1220,1220,fornitori immobilizzazioni c/acconti ,12,account_type_asset,other,TRUE
13,13,IMMOBILIZZAZIONI FINANZIARIE ,1,account_type_view,view,TRUE
1301,1301,mutui attivi ,13,account_type_asset,other,TRUE
14,14,RIMANENZE ,1,account_type_view,view,TRUE
1401,1401,materie di consumo ,14,account_type_asset,other,TRUE
1404,1404,merci ,14,account_type_asset,other,TRUE
1410,1410,fornitori c/acconti ,14,account_type_asset,other,TRUE
15,15,CREDITI COMMERCIALI ,1,account_type_view,view,TRUE
1501,1501,crediti v/clienti ,15,account_type_receivable,receivable,TRUE
1502,1502,crediti commerciali diversi ,15,account_type_receivable,other,TRUE
1503,1503,clienti c/spese anticipate ,15,account_type_receivable,receivable,TRUE
1505,1505,cambiali attive ,15,account_type_receivable,other,TRUE
1506,1506,cambiali allo sconto ,15,account_type_receivable,other,TRUE
1507,1507,cambiali all'incasso ,15,account_type_receivable,other,TRUE
1509,1509,fatture da emettere ,15,account_type_receivable,other,TRUE
1510,1510,crediti insoluti ,15,account_type_receivable,other,TRUE
1511,1511,cambiali insolute ,15,account_type_receivable,other,TRUE
1531,1531,crediti da liquidare ,15,account_type_receivable,other,TRUE
1540,1540,fondo svalutazione crediti ,15,account_type_receivable,other,TRUE
1541,1541,fondo rischi su crediti ,15,account_type_receivable,other,TRUE
16,16,CREDITI DIVERSI ,1,account_type_view,view,TRUE
1601,1601,IVA n/credito ,16,account_type_tax,other,TRUE
1602,1602,IVA c/acconto ,16,account_type_tax,other,TRUE
1605,1605,crediti per IVA ,16,account_type_tax,other,TRUE
1607,1607,imposte c/acconto ,16,account_type_tax,other,TRUE
1608,1608,crediti per imposte ,16,account_type_tax,other,TRUE
1609,1609,crediti per ritenute subite ,16,account_type_asset,other,TRUE
1610,1610,crediti per cauzioni ,16,account_type_asset,other,TRUE
1620,1620,personale c/acconti ,16,account_type_asset,other,TRUE
1630,1630,crediti v/istituti previdenziali ,16,account_type_asset,other,TRUE
1640,1640,debitori diversi ,16,account_type_receivable,receivable,TRUE
18,18,DISPONIBILITÀ LIQUIDE ,1,account_type_view,view,TRUE
1801,1801,banche c/c ,18,account_type_bank,liquidity,TRUE
1810,1810,c/c postali ,18,account_type_cash,liquidity,TRUE
1820,1820,denaro in cassa ,18,account_type_cash,liquidity,TRUE
1821,1821,assegni ,18,account_type_cash,liquidity,TRUE
1822,1822,valori bollati ,18,account_type_cash,liquidity,TRUE
19,19,RATEI E RISCONTI ATTIVI ,1,account_type_view,view,TRUE
1901,1901,ratei attivi ,19,account_type_asset,other,TRUE
1902,1902,risconti attivi ,19,account_type_asset,other,TRUE
2,2,PASSIVO ,0,account_type_view,view,TRUE
20,20,PATRIMONIO NETTO ,2,account_type_view,view,TRUE
2101,2101,patrimonio netto ,20,account_type_asset,other,TRUE
2102,2102,utile d'esercizio ,20,account_type_asset,other,TRUE
2103,2103,perdita d'esercizio ,20,account_type_asset,other,TRUE
2104,2104,prelevamenti extra gestione ,20,account_type_asset,other,TRUE
2105,2105,titolare c/ritenute subite ,20,account_type_asset,other,TRUE
22,22,FONDI PER RISCHI E ONERI ,2,account_type_view,view,TRUE
2201,2201,fondo per imposte ,22,account_type_asset,other,TRUE
2204,2204,fondo responsabilità civile ,22,account_type_asset,other,TRUE
2205,2205,fondo spese future ,22,account_type_asset,other,TRUE
2211,2211,fondo manutenzioni programmate ,22,account_type_asset,other,TRUE
23,23,TRATTAMENTO FINE RAPPORTO DI LAVORO ,2,account_type_view,view,TRUE
2301,2301,debiti per TFRL ,23,account_type_asset,other,TRUE
24,24,DEBITI FINANZIARI ,2,account_type_view,view,TRUE
2410,2410,mutui passivi ,24,account_type_asset,other,TRUE
2411,2411,banche c/sovvenzioni ,24,account_type_asset,other,TRUE
2420,2420,banche c/c passivi ,24,account_type_asset,other,TRUE
2421,2421,banche c/RIBA all'incasso ,24,account_type_asset,other,TRUE
2422,2422,banche c/cambiali all'incasso ,24,account_type_asset,other,TRUE
2423,2423,banche c/anticipi su fatture ,24,account_type_asset,other,TRUE
2440,2440,debiti v/altri finanziatori ,24,account_type_asset,other,TRUE
25,25,DEBITI COMMERCIALI ,2,account_type_view,view,TRUE
2501,2501,debiti v/fornitori ,25,account_type_payable,payable,TRUE
2503,2503,cambiali passive ,25,account_type_asset,other,TRUE
2520,2520,fatture da ricevere ,25,account_type_asset,other,TRUE
2521,2521,debiti da liquidare ,25,account_type_asset,other,TRUE
2530,2530,clienti c/acconti ,25,account_type_payable,payable,TRUE
26,26,DEBITI DIVERSI ,2,account_type_view,view,TRUE
2601,2601,IVA n/debito ,26,account_type_tax,other,TRUE
2602,2602,debiti per ritenute da versare ,26,account_type_tax,other,TRUE
2605,2605,erario c/IVA ,26,account_type_payable,payable,TRUE
2606,2606,debiti per imposte ,26,account_type_tax,other,TRUE
2619,2619,debiti per cauzioni ,26,account_type_asset,other,TRUE
2620,2620,personale c/retribuzioni ,26,account_type_asset,other,TRUE
2621,2621,personale c/liquidazioni ,26,account_type_asset,other,TRUE
2622,2622,clienti c/cessione ,26,account_type_asset,other,TRUE
2630,2630,debiti v/istituti previdenziali ,26,account_type_asset,other,TRUE
2640,2640,creditori diversi ,26,account_type_payable,payable,TRUE
27,27,RATEI E RISCONTI PASSIVI ,2,account_type_view,view,TRUE
2701,2701,ratei passivi ,27,account_type_asset,other,TRUE
2702,2702,risconti passivi ,27,account_type_asset,other,TRUE
28,28,CONTI TRANSITORI E DIVERSI ,2,account_type_view,view,TRUE
2801,2801,bilancio di apertura ,28,account_type_asset,other,TRUE
2802,2802,bilancio di chiusura ,28,account_type_asset,other,TRUE
2810,2810,IVA c/liquidazioni ,28,account_type_asset,other,TRUE
2811,2811,istituti previdenziali ,28,account_type_asset,other,TRUE
2820,2820,banca ... c/c ,28,account_type_asset,other,TRUE
2821,2821,banca ... c/c ,28,account_type_asset,other,TRUE
2822,2822,banca ... c/c ,28,account_type_asset,other,TRUE
29,29,CONTI DEI SISTEMI SUPPLEMENTARI ,2,account_type_view,view,TRUE
2901,2901,beni di terzi ,29,account_type_asset,other,TRUE
2902,2902,depositanti beni ,29,account_type_asset,other,TRUE
2911,2911,merci da ricevere ,29,account_type_asset,other,TRUE
2912,2912,fornitori c/impegni ,29,account_type_asset,other,TRUE
2913,2913,impegni per beni in leasing ,29,account_type_asset,other,TRUE
2914,2914,creditori c/leasing ,29,account_type_asset,other,TRUE
2916,2916,clienti c/impegni ,29,account_type_asset,other,TRUE
2917,2917,merci da consegnare ,29,account_type_asset,other,TRUE
2921,2921,rischi per effetti scontati ,29,account_type_asset,other,TRUE
2922,2922,banche c/effetti scontati ,29,account_type_asset,other,TRUE
2926,2926,rischi per fideiussioni ,29,account_type_asset,other,TRUE
2927,2927,creditori per fideiussioni ,29,account_type_asset,other,TRUE
2931,2931,rischi per avalli ,29,account_type_asset,other,TRUE
2932,2932,creditori per avalli ,29,account_type_asset,other,TRUE
3,3,VALORE DELLA PRODUZIONE ,0,account_type_view,view,TRUE
31,31,VENDITE E PRESTAZIONI ,3,account_type_view,view,TRUE
3101,3101,merci c/vendite ,31,account_type_income,other,TRUE
3103,3103,rimborsi spese di vendita ,31,account_type_income,other,TRUE
3110,3110,resi su vendite ,31,account_type_income,other,TRUE
3111,3111,ribassi e abbuoni passivi ,31,account_type_income,other,TRUE
3112,3112,premi su vendite ,31,account_type_income,other,TRUE
32,32,RICAVI E PROVENTI DIVERSI ,3,account_type_view,view,TRUE
3201,3201,fitti attivi ,32,account_type_income,other,TRUE
3202,3202,proventi vari ,32,account_type_income,other,TRUE
3210,3210,arrotondamenti attivi ,32,account_type_income,other,TRUE
3220,3220,plusvalenze ordinarie diverse ,32,account_type_income,other,TRUE
3230,3230,sopravvenienze attive ordinarie diverse ,32,account_type_income,other,TRUE
3240,3240,insussistenze attive ordinarie diverse ,32,account_type_income,other,TRUE
4,4,COSTI DELLA PRODUZIONE ,0,account_type_view,view,TRUE
41,41,COSTO DEL VENDUTO ,4,account_type_view,view,TRUE
4101,4101,merci c/acquisti ,41,account_type_expense,other,TRUE
4102,4102,materie di consumo c/acquisti ,41,account_type_expense,other,TRUE
4105,4105,merci c/apporti ,41,account_type_expense,other,TRUE
4110,4110,resi su acquisti ,41,account_type_expense,other,TRUE
4111,4111,ribassi e abbuoni attivi ,41,account_type_expense,other,TRUE
4112,4112,premi su acquisti ,41,account_type_expense,other,TRUE
4121,4121,merci c/esistenze iniziali ,41,account_type_expense,other,TRUE
4122,4122,materie di consumo c/esistenze iniziali ,41,account_type_expense,other,TRUE
4131,4131,merci c/rimanenze finali ,41,account_type_expense,other,TRUE
4132,4132,materie di consumo c/rimanenze finali ,41,account_type_expense,other,TRUE
42,42,COSTI PER SERVIZI ,4,account_type_view,view,TRUE
4201,4201,costi di trasporto ,42,account_type_expense,other,TRUE
4202,4202,costi per energia ,42,account_type_expense,other,TRUE
4203,4203,costi di pubblicità ,42,account_type_expense,other,TRUE
4204,4204,costi di consulenze ,42,account_type_expense,other,TRUE
4205,4205,costi postali ,42,account_type_expense,other,TRUE
4206,4206,costi telefonici ,42,account_type_expense,other,TRUE
4207,4207,costi di assicurazione ,42,account_type_expense,other,TRUE
4208,4208,costi di vigilanza ,42,account_type_expense,other,TRUE
4209,4209,costi per i locali ,42,account_type_expense,other,TRUE
4210,4210,costi di esercizio automezzi ,42,account_type_expense,other,TRUE
4211,4211,costi di manutenzione e riparazione ,42,account_type_expense,other,TRUE
4212,4212,provvigioni passive ,42,account_type_expense,other,TRUE
4213,4213,spese di incasso ,42,account_type_expense,other,TRUE
43,43,COSTI PER GODIMENTO BENI DI TERZI ,4,account_type_view,view,TRUE
4301,4301,fitti passivi ,43,account_type_expense,other,TRUE
4302,4302,canoni di leasing ,43,account_type_expense,other,TRUE
44,44,COSTI PER IL PERSONALE ,4,account_type_view,view,TRUE
4401,4401,salari e stipendi ,44,account_type_expense,other,TRUE
4402,4402,oneri sociali ,44,account_type_expense,other,TRUE
4403,4403,TFRL ,44,account_type_expense,other,TRUE
4404,4404,altri costi per il personale ,44,account_type_expense,other,TRUE
45,45,AMMORTAMENTI IMMOBILIZZAZIONI IMMATERIALI ,4,account_type_view,view,TRUE
4501,4501,ammortamento costi di impianto ,45,account_type_p_l,other,TRUE
4506,4506,ammortamento software ,45,account_type_p_l,other,TRUE
4508,4508,ammortamento avviamento ,45,account_type_p_l,other,TRUE
46,46,AMMORTAMENTI IMMOBILIZZAZIONI MATERIALI ,4,account_type_view,view,TRUE
4601,4601,ammortamento fabbricati ,46,account_type_p_l,other,TRUE
4602,4602,ammortamento impianti e macchinari ,46,account_type_p_l,other,TRUE
4604,4604,ammortamento attrezzature commerciali ,46,account_type_p_l,other,TRUE
4605,4605,ammortamento macchine d'ufficio ,46,account_type_p_l,other,TRUE
4606,4606,ammortamento arredamento ,46,account_type_p_l,other,TRUE
4607,4607,ammortamento automezzi ,46,account_type_p_l,other,TRUE
4608,4608,ammortamento imballaggi durevoli ,46,account_type_p_l,other,TRUE
47,47,SVALUTAZIONI ,4,account_type_view,view,TRUE
4701,4701,svalutazioni immobilizzazioni immateriali ,47,account_type_p_l,other,TRUE
4702,4702,svalutazioni immobilizzazioni materiali ,47,account_type_p_l,other,TRUE
4706,4706,svalutazione crediti ,47,account_type_p_l,other,TRUE
48,48,ACCANTONAMENTI ,4,account_type_view,view,TRUE
481,481,ACCANTONAMENTI PER RISCHI ,48,account_type_view,view,TRUE
4814,4814,accantonamento per responsabilità civile ,481,account_type_p_l,other,TRUE
482,482,ALTRI ACCANTONAMENTI ,48,account_type_view,view,TRUE
4821,4821,accantonamento per spese future ,482,account_type_p_l,other,TRUE
4823,4823,accantonamento per manutenzioni programmate ,482,account_type_p_l,other,TRUE
49,49,ONERI DIVERSI ,4,account_type_view,view,TRUE
4901,4901,oneri fiscali diversi ,49,account_type_p_l,other,TRUE
4903,4903,oneri vari ,49,account_type_p_l,other,TRUE
4905,4905,perdite su crediti ,49,account_type_p_l,other,TRUE
4910,4910,arrotondamenti passivi ,49,account_type_p_l,other,TRUE
4920,4920,minusvalenze ordinarie diverse ,49,account_type_p_l,other,TRUE
4930,4930,sopravvenienze passive ordinarie diverse ,49,account_type_p_l,other,TRUE
4940,4940,insussistenze passive ordinarie diverse ,49,account_type_p_l,other,TRUE
5,5,PROVENTI E ONERI FINANZIARI ,0,account_type_view,view,TRUE
51,51,PROVENTI FINANZIARI ,5,account_type_view,view,TRUE
5110,5110,interessi attivi v/clienti ,51,account_type_p_l,other,TRUE
5115,5115,interessi attivi bancari ,51,account_type_p_l,other,TRUE
5116,5116,interessi attivi postali ,51,account_type_p_l,other,TRUE
5140,5140,proventi finanziari diversi ,51,account_type_p_l,other,TRUE
52,52,ONERI FINANZIARI ,5,account_type_view,view,TRUE
5201,5201,interessi passivi v/fornitori ,52,account_type_p_l,other,TRUE
5202,5202,interessi passivi bancari ,52,account_type_p_l,other,TRUE
5203,5203,sconti passivi bancari ,52,account_type_p_l,other,TRUE
5210,5210,interessi passivi su mutui ,52,account_type_p_l,other,TRUE
5240,5240,oneri finanziari diversi ,52,account_type_p_l,other,TRUE
7,7,PROVENTI E ONERI STRAORDINARI ,0,account_type_view,view,TRUE
71,71,PROVENTI STRAORDINARI ,7,account_type_view,view,TRUE
7101,7101,plusvalenze straordinarie ,71,account_type_p_l,other,TRUE
7102,7102,sopravvenienze attive straordinarie ,71,account_type_p_l,other,TRUE
7103,7103,insussistenze attive straordinarie ,71,account_type_p_l,other,TRUE
72,72,ONERI STRAORDINARI ,7,account_type_view,view,TRUE
7201,7201,minusvalenze straordinarie ,72,account_type_p_l,other,TRUE
7202,7202,sopravvenienze passive straordinarie ,72,account_type_p_l,other,TRUE
7203,7203,insussistenze passive straordinarie ,72,account_type_p_l,other,TRUE
7204,7204,imposte esercizi precedenti ,72,account_type_p_l,other,TRUE
8,8,IMPOSTE DELL'ESERCIZIO ,0,account_type_view,view,TRUE
8101,8101,imposte dell'esercizio ,8,account_type_p_l,other,TRUE
9,9,CONTI DI RISULTATO ,0,account_type_view,view,TRUE
9101,9101,conto di risultato economico ,9,account_type_p_l,other,TRUE
9102,9102,stato patrimoniale,9,account_type_p_l,other,TRUE

1 id code name parent_id:id user_type:id type reconcile
2 0 0 Azienda account_type_view view FALSE
3 1 1 ATTIVO 0 account_type_view view TRUE
4 11 11 IMMOBILIZZAZIONI IMMATERIALI 1 account_type_view view TRUE
5 1101 1101 costi di impianto 11 account_type_asset other TRUE
6 1106 1106 software 11 account_type_asset other TRUE
7 1108 1108 avviamento 11 account_type_asset other TRUE
8 1111 1111 fondo ammortamento costi di impianto 11 account_type_asset other TRUE
9 1116 1116 fondo ammortamento software 11 account_type_asset other TRUE
10 1118 1118 fondo ammortamento avviamento 11 account_type_asset other TRUE
11 12 12 IMMOBILIZZAZIONI MATERIALI 1 account_type_view view TRUE
12 1201 1201 fabbricati 12 account_type_asset other TRUE
13 1202 1202 impianti e macchinari 12 account_type_asset other TRUE
14 1204 1204 attrezzature commerciali 12 account_type_asset other TRUE
15 1205 1205 macchine d'ufficio 12 account_type_asset other TRUE
16 1206 1206 arredamento 12 account_type_asset other TRUE
17 1207 1207 automezzi 12 account_type_asset other TRUE
18 1208 1208 imballaggi durevoli 12 account_type_asset other TRUE
19 1211 1211 fondo ammortamento fabbricati 12 account_type_asset other TRUE
20 1212 1212 fondo ammortamento impianti e macchinari 12 account_type_asset other TRUE
21 1214 1214 fondo ammortamento attrezzature commerciali 12 account_type_asset other TRUE
22 1215 1215 fondo ammortamento macchine d'ufficio 12 account_type_asset other TRUE
23 1216 1216 fondo ammortamento arredamento 12 account_type_asset other TRUE
24 1217 1217 fondo ammortamento automezzi 12 account_type_asset other TRUE
25 1218 1218 fondo ammortamento imballaggi durevoli 12 account_type_asset other TRUE
26 1220 1220 fornitori immobilizzazioni c/acconti 12 account_type_asset other TRUE
27 13 13 IMMOBILIZZAZIONI FINANZIARIE 1 account_type_view view TRUE
28 1301 1301 mutui attivi 13 account_type_asset other TRUE
29 14 14 RIMANENZE 1 account_type_view view TRUE
30 1401 1401 materie di consumo 14 account_type_asset other TRUE
31 1404 1404 merci 14 account_type_asset other TRUE
32 1410 1410 fornitori c/acconti 14 account_type_asset other TRUE
33 15 15 CREDITI COMMERCIALI 1 account_type_view view TRUE
34 1501 1501 crediti v/clienti 15 account_type_receivable receivable TRUE
35 1502 1502 crediti commerciali diversi 15 account_type_receivable other TRUE
36 1503 1503 clienti c/spese anticipate 15 account_type_receivable receivable TRUE
37 1505 1505 cambiali attive 15 account_type_receivable other TRUE
38 1506 1506 cambiali allo sconto 15 account_type_receivable other TRUE
39 1507 1507 cambiali all'incasso 15 account_type_receivable other TRUE
40 1509 1509 fatture da emettere 15 account_type_receivable other TRUE
41 1510 1510 crediti insoluti 15 account_type_receivable other TRUE
42 1511 1511 cambiali insolute 15 account_type_receivable other TRUE
43 1531 1531 crediti da liquidare 15 account_type_receivable other TRUE
44 1540 1540 fondo svalutazione crediti 15 account_type_receivable other TRUE
45 1541 1541 fondo rischi su crediti 15 account_type_receivable other TRUE
46 16 16 CREDITI DIVERSI 1 account_type_view view TRUE
47 1601 1601 IVA n/credito 16 account_type_tax other TRUE
48 1602 1602 IVA c/acconto 16 account_type_tax other TRUE
49 1605 1605 crediti per IVA 16 account_type_tax other TRUE
50 1607 1607 imposte c/acconto 16 account_type_tax other TRUE
51 1608 1608 crediti per imposte 16 account_type_tax other TRUE
52 1609 1609 crediti per ritenute subite 16 account_type_asset other TRUE
53 1610 1610 crediti per cauzioni 16 account_type_asset other TRUE
54 1620 1620 personale c/acconti 16 account_type_asset other TRUE
55 1630 1630 crediti v/istituti previdenziali 16 account_type_asset other TRUE
56 1640 1640 debitori diversi 16 account_type_receivable receivable TRUE
57 18 18 DISPONIBILITÀ LIQUIDE 1 account_type_view view TRUE
58 1801 1801 banche c/c 18 account_type_bank liquidity TRUE
59 1810 1810 c/c postali 18 account_type_cash liquidity TRUE
60 1820 1820 denaro in cassa 18 account_type_cash liquidity TRUE
61 1821 1821 assegni 18 account_type_cash liquidity TRUE
62 1822 1822 valori bollati 18 account_type_cash liquidity TRUE
63 19 19 RATEI E RISCONTI ATTIVI 1 account_type_view view TRUE
64 1901 1901 ratei attivi 19 account_type_asset other TRUE
65 1902 1902 risconti attivi 19 account_type_asset other TRUE
66 2 2 PASSIVO 0 account_type_view view TRUE
67 20 20 PATRIMONIO NETTO 2 account_type_view view TRUE
68 2101 2101 patrimonio netto 20 account_type_asset other TRUE
69 2102 2102 utile d'esercizio 20 account_type_asset other TRUE
70 2103 2103 perdita d'esercizio 20 account_type_asset other TRUE
71 2104 2104 prelevamenti extra gestione 20 account_type_asset other TRUE
72 2105 2105 titolare c/ritenute subite 20 account_type_asset other TRUE
73 22 22 FONDI PER RISCHI E ONERI 2 account_type_view view TRUE
74 2201 2201 fondo per imposte 22 account_type_asset other TRUE
75 2204 2204 fondo responsabilità civile 22 account_type_asset other TRUE
76 2205 2205 fondo spese future 22 account_type_asset other TRUE
77 2211 2211 fondo manutenzioni programmate 22 account_type_asset other TRUE
78 23 23 TRATTAMENTO FINE RAPPORTO DI LAVORO 2 account_type_view view TRUE
79 2301 2301 debiti per TFRL 23 account_type_asset other TRUE
80 24 24 DEBITI FINANZIARI 2 account_type_view view TRUE
81 2410 2410 mutui passivi 24 account_type_asset other TRUE
82 2411 2411 banche c/sovvenzioni 24 account_type_asset other TRUE
83 2420 2420 banche c/c passivi 24 account_type_asset other TRUE
84 2421 2421 banche c/RIBA all'incasso 24 account_type_asset other TRUE
85 2422 2422 banche c/cambiali all'incasso 24 account_type_asset other TRUE
86 2423 2423 banche c/anticipi su fatture 24 account_type_asset other TRUE
87 2440 2440 debiti v/altri finanziatori 24 account_type_asset other TRUE
88 25 25 DEBITI COMMERCIALI 2 account_type_view view TRUE
89 2501 2501 debiti v/fornitori 25 account_type_payable payable TRUE
90 2503 2503 cambiali passive 25 account_type_asset other TRUE
91 2520 2520 fatture da ricevere 25 account_type_asset other TRUE
92 2521 2521 debiti da liquidare 25 account_type_asset other TRUE
93 2530 2530 clienti c/acconti 25 account_type_payable payable TRUE
94 26 26 DEBITI DIVERSI 2 account_type_view view TRUE
95 2601 2601 IVA n/debito 26 account_type_tax other TRUE
96 2602 2602 debiti per ritenute da versare 26 account_type_tax other TRUE
97 2605 2605 erario c/IVA 26 account_type_tax account_type_payable other payable TRUE
98 2606 2606 debiti per imposte 26 account_type_tax other TRUE
99 2619 2619 debiti per cauzioni 26 account_type_asset other TRUE
100 2620 2620 personale c/retribuzioni 26 account_type_asset other TRUE
101 2621 2621 personale c/liquidazioni 26 account_type_asset other TRUE
102 2622 2622 clienti c/cessione 26 account_type_asset other TRUE
103 2630 2630 debiti v/istituti previdenziali 26 account_type_asset other TRUE
104 2640 2640 creditori diversi 26 account_type_payable payable TRUE
105 27 27 RATEI E RISCONTI PASSIVI 2 account_type_view view TRUE
106 2701 2701 ratei passivi 27 account_type_asset other TRUE
107 2702 2702 risconti passivi 27 account_type_asset other TRUE
108 28 28 CONTI TRANSITORI E DIVERSI 2 account_type_view view TRUE
109 2801 2801 bilancio di apertura 28 account_type_asset other TRUE
110 2802 2802 bilancio di chiusura 28 account_type_asset other TRUE
111 2810 2810 IVA c/liquidazioni 28 account_type_asset other TRUE
112 2811 2811 istituti previdenziali 28 account_type_asset other TRUE
113 2820 2820 banca ... c/c 28 account_type_asset other TRUE
114 2821 2821 banca ... c/c 28 account_type_asset other TRUE
115 2822 2822 banca ... c/c 28 account_type_asset other TRUE
116 29 29 CONTI DEI SISTEMI SUPPLEMENTARI 2 account_type_view view TRUE
117 2901 2901 beni di terzi 29 account_type_asset other TRUE
118 2902 2902 depositanti beni 29 account_type_asset other TRUE
119 2911 2911 merci da ricevere 29 account_type_asset other TRUE
120 2912 2912 fornitori c/impegni 29 account_type_asset other TRUE
121 2913 2913 impegni per beni in leasing 29 account_type_asset other TRUE
122 2914 2914 creditori c/leasing 29 account_type_asset other TRUE
123 2916 2916 clienti c/impegni 29 account_type_asset other TRUE
124 2917 2917 merci da consegnare 29 account_type_asset other TRUE
125 2921 2921 rischi per effetti scontati 29 account_type_asset other TRUE
126 2922 2922 banche c/effetti scontati 29 account_type_asset other TRUE
127 2926 2926 rischi per fideiussioni 29 account_type_asset other TRUE
128 2927 2927 creditori per fideiussioni 29 account_type_asset other TRUE
129 2931 2931 rischi per avalli 29 account_type_asset other TRUE
130 2932 2932 creditori per avalli 29 account_type_asset other TRUE
131 3 3 VALORE DELLA PRODUZIONE 0 account_type_view view TRUE
132 31 31 VENDITE E PRESTAZIONI 3 account_type_view view TRUE
133 3101 3101 merci c/vendite 31 account_type_income other TRUE
134 3103 3103 rimborsi spese di vendita 31 account_type_income other TRUE
135 3110 3110 resi su vendite 31 account_type_income other TRUE
136 3111 3111 ribassi e abbuoni passivi 31 account_type_income other TRUE
137 3112 3112 premi su vendite 31 account_type_income other TRUE
138 32 32 RICAVI E PROVENTI DIVERSI 3 account_type_view view TRUE
139 3201 3201 fitti attivi 32 account_type_income other TRUE
140 3202 3202 proventi vari 32 account_type_income other TRUE
141 3210 3210 arrotondamenti attivi 32 account_type_income other TRUE
142 3220 3220 plusvalenze ordinarie diverse 32 account_type_income other TRUE
143 3230 3230 sopravvenienze attive ordinarie diverse 32 account_type_income other TRUE
144 3240 3240 insussistenze attive ordinarie diverse 32 account_type_income other TRUE
145 4 4 COSTI DELLA PRODUZIONE 0 account_type_view view TRUE
146 41 41 COSTO DEL VENDUTO 4 account_type_view view TRUE
147 4101 4101 merci c/acquisti 41 account_type_expense other TRUE
148 4102 4102 materie di consumo c/acquisti 41 account_type_expense other TRUE
149 4105 4105 merci c/apporti 41 account_type_expense other TRUE
150 4110 4110 resi su acquisti 41 account_type_expense other TRUE
151 4111 4111 ribassi e abbuoni attivi 41 account_type_expense other TRUE
152 4112 4112 premi su acquisti 41 account_type_expense other TRUE
153 4121 4121 merci c/esistenze iniziali 41 account_type_expense other TRUE
154 4122 4122 materie di consumo c/esistenze iniziali 41 account_type_expense other TRUE
155 4131 4131 merci c/rimanenze finali 41 account_type_expense other TRUE
156 4132 4132 materie di consumo c/rimanenze finali 41 account_type_expense other TRUE
157 42 42 COSTI PER SERVIZI 4 account_type_view view TRUE
158 4201 4201 costi di trasporto 42 account_type_expense other TRUE
159 4202 4202 costi per energia 42 account_type_expense other TRUE
160 4203 4203 costi di pubblicità 42 account_type_expense other TRUE
161 4204 4204 costi di consulenze 42 account_type_expense other TRUE
162 4205 4205 costi postali 42 account_type_expense other TRUE
163 4206 4206 costi telefonici 42 account_type_expense other TRUE
164 4207 4207 costi di assicurazione 42 account_type_expense other TRUE
165 4208 4208 costi di vigilanza 42 account_type_expense other TRUE
166 4209 4209 costi per i locali 42 account_type_expense other TRUE
167 4210 4210 costi di esercizio automezzi 42 account_type_expense other TRUE
168 4211 4211 costi di manutenzione e riparazione 42 account_type_expense other TRUE
169 4212 4212 provvigioni passive 42 account_type_expense other TRUE
170 4213 4213 spese di incasso 42 account_type_expense other TRUE
171 43 43 COSTI PER GODIMENTO BENI DI TERZI 4 account_type_view view TRUE
172 4301 4301 fitti passivi 43 account_type_expense other TRUE
173 4302 4302 canoni di leasing 43 account_type_expense other TRUE
174 44 44 COSTI PER IL PERSONALE 4 account_type_view view TRUE
175 4401 4401 salari e stipendi 44 account_type_expense other TRUE
176 4402 4402 oneri sociali 44 account_type_expense other TRUE
177 4403 4403 TFRL 44 account_type_expense other TRUE
178 4404 4404 altri costi per il personale 44 account_type_expense other TRUE
179 45 45 AMMORTAMENTI IMMOBILIZZAZIONI IMMATERIALI 4 account_type_view view TRUE
180 4501 4501 ammortamento costi di impianto 45 account_type_p_l other TRUE
181 4506 4506 ammortamento software 45 account_type_p_l other TRUE
182 4508 4508 ammortamento avviamento 45 account_type_p_l other TRUE
183 46 46 AMMORTAMENTI IMMOBILIZZAZIONI MATERIALI 4 account_type_view view TRUE
184 4601 4601 ammortamento fabbricati 46 account_type_p_l other TRUE
185 4602 4602 ammortamento impianti e macchinari 46 account_type_p_l other TRUE
186 4604 4604 ammortamento attrezzature commerciali 46 account_type_p_l other TRUE
187 4605 4605 ammortamento macchine d'ufficio 46 account_type_p_l other TRUE
188 4606 4606 ammortamento arredamento 46 account_type_p_l other TRUE
189 4607 4607 ammortamento automezzi 46 account_type_p_l other TRUE
190 4608 4608 ammortamento imballaggi durevoli 46 account_type_p_l other TRUE
191 47 47 SVALUTAZIONI 4 account_type_view view TRUE
192 4701 4701 svalutazioni immobilizzazioni immateriali 47 account_type_p_l other TRUE
193 4702 4702 svalutazioni immobilizzazioni materiali 47 account_type_p_l other TRUE
194 4706 4706 svalutazione crediti 47 account_type_p_l other TRUE
195 48 48 ACCANTONAMENTI 4 account_type_view view TRUE
196 481 481 ACCANTONAMENTI PER RISCHI 48 account_type_view view TRUE
197 4814 4814 accantonamento per responsabilità civile 481 account_type_p_l other TRUE
198 482 482 ALTRI ACCANTONAMENTI 48 account_type_view view TRUE
199 4821 4821 accantonamento per spese future 482 account_type_p_l other TRUE
200 4823 4823 accantonamento per manutenzioni programmate 482 account_type_p_l other TRUE
201 49 49 ONERI DIVERSI 4 account_type_view view TRUE
202 4901 4901 oneri fiscali diversi 49 account_type_p_l other TRUE
203 4903 4903 oneri vari 49 account_type_p_l other TRUE
204 4905 4905 perdite su crediti 49 account_type_p_l other TRUE
205 4910 4910 arrotondamenti passivi 49 account_type_p_l other TRUE
206 4920 4920 minusvalenze ordinarie diverse 49 account_type_p_l other TRUE
207 4930 4930 sopravvenienze passive ordinarie diverse 49 account_type_p_l other TRUE
208 4940 4940 insussistenze passive ordinarie diverse 49 account_type_p_l other TRUE
209 5 5 PROVENTI E ONERI FINANZIARI 0 account_type_view view TRUE
210 51 51 PROVENTI FINANZIARI 5 account_type_view view TRUE
211 5110 5110 interessi attivi v/clienti 51 account_type_p_l other TRUE
212 5115 5115 interessi attivi bancari 51 account_type_p_l other TRUE
213 5116 5116 interessi attivi postali 51 account_type_p_l other TRUE
214 5140 5140 proventi finanziari diversi 51 account_type_p_l other TRUE
215 52 52 ONERI FINANZIARI 5 account_type_view view TRUE
216 5201 5201 interessi passivi v/fornitori 52 account_type_p_l other TRUE
217 5202 5202 interessi passivi bancari 52 account_type_p_l other TRUE
218 5203 5203 sconti passivi bancari 52 account_type_p_l other TRUE
219 5210 5210 interessi passivi su mutui 52 account_type_p_l other TRUE
220 5240 5240 oneri finanziari diversi 52 account_type_p_l other TRUE
221 7 7 PROVENTI E ONERI STRAORDINARI 0 account_type_view view TRUE
222 71 71 PROVENTI STRAORDINARI 7 account_type_view view TRUE
223 7101 7101 plusvalenze straordinarie 71 account_type_p_l other TRUE
224 7102 7102 sopravvenienze attive straordinarie 71 account_type_p_l other TRUE
225 7103 7103 insussistenze attive straordinarie 71 account_type_p_l other TRUE
226 72 72 ONERI STRAORDINARI 7 account_type_view view TRUE
227 7201 7201 minusvalenze straordinarie 72 account_type_p_l other TRUE
228 7202 7202 sopravvenienze passive straordinarie 72 account_type_p_l other TRUE
229 7203 7203 insussistenze passive straordinarie 72 account_type_p_l other TRUE
230 7204 7204 imposte esercizi precedenti 72 account_type_p_l other TRUE
231 8 8 IMPOSTE DELL'ESERCIZIO 0 account_type_view view TRUE
232 8101 8101 imposte dell'esercizio 8 account_type_p_l other TRUE
233 9 9 CONTI DI RISULTATO 0 account_type_view view TRUE
234 9101 9101 conto di risultato economico 9 account_type_p_l other TRUE
235 9102 9102 stato patrimoniale 9 account_type_p_l other TRUE

View File

@ -2516,6 +2516,7 @@
<record id="pcg_4558" model="account.account.template">
<field name="name">Actionari/asociati dobanzi la conturi curente</field>
<field name="type">receivable</field>
<field name="code">4558</field>
<field name="user_type" ref="account_type_receivable"/>
<field name="parent_id" ref="pcg_455"/>
<field name="reconcile" eval="True"/>

View File

@ -131,7 +131,6 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('email_from', '!=', False)]</field>
<field name="context">{'search_default_received':1}</field>
<field name="search_view_id" ref="view_email_message_search"/>
</record>

File diff suppressed because it is too large Load Diff

View File

@ -133,7 +133,7 @@ Normal - the campaign runs normally and automatically sends all emails and repor
campaign = self.browse(cr, uid, ids[0])
if not campaign.activity_ids:
raise osv.except_osv(_("Error"), _("The campaign cannot be started: there are no activities in it"))
raise osv.except_osv(_("Error"), _("The campaign cannot be started: there are no activities in it."))
has_start = False
has_signal_without_from = False
@ -145,7 +145,7 @@ Normal - the campaign runs normally and automatically sends all emails and repor
has_signal_without_from = True
if not has_start and not has_signal_without_from:
raise osv.except_osv(_("Error"), _("The campaign cannot be started: it doesn't have any starting activity (or any activity with a signal and no previous activity)"))
raise osv.except_osv(_("Error"), _("The campaign cannot be started: it doesn't have any starting activity. Modify campaign's activities to mark one as the starting point."))
return self.write(cr, uid, ids, {'state': 'running'})
@ -155,7 +155,7 @@ Normal - the campaign runs normally and automatically sends all emails and repor
[('campaign_id', 'in', ids),
('state', '=', 'running')])
if segment_ids :
raise osv.except_osv(_("Error"), _("The campaign cannot be marked as done before all segments are done"))
raise osv.except_osv(_("Error"), _("The campaign cannot be marked as done before all segments are closed."))
self.write(cr, uid, ids, {'state': 'done'})
return True
@ -211,7 +211,7 @@ Normal - the campaign runs normally and automatically sends all emails and repor
# prevent duplication until the server properly duplicates several levels of nested o2m
def copy(self, cr, uid, id, default=None, context=None):
raise osv.except_osv(_("Operation not supported"), _("Sorry, campaign duplication is not supported at the moment."))
raise osv.except_osv(_("Operation not supported"), _("You can not duplicate a campaign, it's not supported yet."))
def _find_duplicate_workitems(self, cr, uid, record, campaign_rec, context=None):
"""Finds possible duplicates workitems for a record in this campaign, based on a uniqueness

Some files were not shown because too many files have changed in this diff Show More