[MERGE] MergeD lp:openobject-addons.
bzr revid: psa@tinyerp.com-20130607131449-dq4k9dam7adxsm6b
This commit is contained in:
commit
e6c711af32
|
@ -648,10 +648,10 @@ class account_account(osv.osv):
|
||||||
if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]):
|
if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]):
|
||||||
#Check for 'Closed' type
|
#Check for 'Closed' type
|
||||||
if old_type == 'closed' and new_type !='closed':
|
if old_type == 'closed' and new_type !='closed':
|
||||||
raise osv.except_osv(_('Warning !'), _("You cannot change the type of account from 'Closed' to any other type as it contains journal items!"))
|
raise osv.except_osv(_('Warning!'), _("You cannot change the type of account from 'Closed' to any other type as it contains journal items!"))
|
||||||
# Forbid to change an account type for restricted_groups as it contains journal items (or if one of its children does)
|
# Forbid to change an account type for restricted_groups as it contains journal items (or if one of its children does)
|
||||||
if (new_type in restricted_groups):
|
if (new_type in restricted_groups):
|
||||||
raise osv.except_osv(_('Warning !'), _("You cannot change the type of account to '%s' type as it contains journal items!") % (new_type,))
|
raise osv.except_osv(_('Warning!'), _("You cannot change the type of account to '%s' type as it contains journal items!") % (new_type,))
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -1015,14 +1015,14 @@ class account_period(osv.osv):
|
||||||
if not result:
|
if not result:
|
||||||
result = self.search(cr, uid, args, context=context)
|
result = self.search(cr, uid, args, context=context)
|
||||||
if not result:
|
if not result:
|
||||||
raise osv.except_osv(_('Error !'), _('There is no period defined for this date: %s.\nPlease create one.')%dt)
|
raise osv.except_osv(_('Error!'), _('There is no period defined for this date: %s.\nPlease create one.')%dt)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def action_draft(self, cr, uid, ids, *args):
|
def action_draft(self, cr, uid, ids, *args):
|
||||||
mode = 'draft'
|
mode = 'draft'
|
||||||
for period in self.browse(cr, uid, ids):
|
for period in self.browse(cr, uid, ids):
|
||||||
if period.fiscalyear_id.state == 'done':
|
if period.fiscalyear_id.state == 'done':
|
||||||
raise osv.except_osv(_('Warning !'), _('You can not re-open a period which belongs to closed fiscal year'))
|
raise osv.except_osv(_('Warning!'), _('You can not re-open a period which belongs to closed fiscal year'))
|
||||||
cr.execute('update account_journal_period set state=%s where period_id in %s', (mode, tuple(ids),))
|
cr.execute('update account_journal_period set state=%s where period_id in %s', (mode, tuple(ids),))
|
||||||
cr.execute('update account_period set state=%s where id in %s', (mode, tuple(ids),))
|
cr.execute('update account_period set state=%s where id in %s', (mode, tuple(ids),))
|
||||||
return True
|
return True
|
||||||
|
@ -1034,9 +1034,15 @@ class account_period(osv.osv):
|
||||||
context = {}
|
context = {}
|
||||||
ids = []
|
ids = []
|
||||||
if name:
|
if name:
|
||||||
ids = self.search(cr, user, [('code','ilike',name)]+ args, limit=limit)
|
ids = self.search(cr, user,
|
||||||
|
[('code', 'ilike', name)] + args,
|
||||||
|
limit=limit,
|
||||||
|
context=context)
|
||||||
if not ids:
|
if not ids:
|
||||||
ids = self.search(cr, user, [('name',operator,name)]+ args, limit=limit)
|
ids = self.search(cr, user,
|
||||||
|
[('name', operator, name)] + args,
|
||||||
|
limit=limit,
|
||||||
|
context=context)
|
||||||
return self.name_get(cr, user, ids, context=context)
|
return self.name_get(cr, user, ids, context=context)
|
||||||
|
|
||||||
def write(self, cr, uid, ids, vals, context=None):
|
def write(self, cr, uid, ids, vals, context=None):
|
||||||
|
@ -1059,10 +1065,14 @@ class account_period(osv.osv):
|
||||||
raise osv.except_osv(_('Error!'), _('You should choose the periods that belong to the same company.'))
|
raise osv.except_osv(_('Error!'), _('You should choose the periods that belong to the same company.'))
|
||||||
if period_date_start > period_date_stop:
|
if period_date_start > period_date_stop:
|
||||||
raise osv.except_osv(_('Error!'), _('Start period should precede then end period.'))
|
raise osv.except_osv(_('Error!'), _('Start period should precede then end period.'))
|
||||||
|
|
||||||
|
# /!\ We do not include a criterion on the company_id field below, to allow producing consolidated reports
|
||||||
|
# on multiple companies. It will only work when start/end periods are selected and no fiscal year is chosen.
|
||||||
|
|
||||||
#for period from = january, we want to exclude the opening period (but it has same date_from, so we have to check if period_from is special or not to include that clause or not in the search).
|
#for period from = january, we want to exclude the opening period (but it has same date_from, so we have to check if period_from is special or not to include that clause or not in the search).
|
||||||
if period_from.special:
|
if period_from.special:
|
||||||
return self.search(cr, uid, [('date_start', '>=', period_date_start), ('date_stop', '<=', period_date_stop), ('company_id', '=', company1_id)])
|
return self.search(cr, uid, [('date_start', '>=', period_date_start), ('date_stop', '<=', period_date_stop)])
|
||||||
return self.search(cr, uid, [('date_start', '>=', period_date_start), ('date_stop', '<=', period_date_stop), ('company_id', '=', company1_id), ('special', '=', False)])
|
return self.search(cr, uid, [('date_start', '>=', period_date_start), ('date_stop', '<=', period_date_stop), ('special', '=', False)])
|
||||||
|
|
||||||
|
|
||||||
class account_journal_period(osv.osv):
|
class account_journal_period(osv.osv):
|
||||||
|
@ -1854,6 +1864,12 @@ class account_tax_code(osv.osv):
|
||||||
_order = 'code'
|
_order = 'code'
|
||||||
|
|
||||||
|
|
||||||
|
def get_precision_tax():
|
||||||
|
def change_digit_tax(cr):
|
||||||
|
res = openerp.registry(cr.dbname)['decimal.precision'].precision_get(cr, SUPERUSER_ID, 'Account')
|
||||||
|
return (16, res+3)
|
||||||
|
return change_digit_tax
|
||||||
|
|
||||||
class account_tax(osv.osv):
|
class account_tax(osv.osv):
|
||||||
"""
|
"""
|
||||||
A tax object.
|
A tax object.
|
||||||
|
@ -1874,12 +1890,6 @@ class account_tax(osv.osv):
|
||||||
default.update({'name': name + _(' (Copy)')})
|
default.update({'name': name + _(' (Copy)')})
|
||||||
return super(account_tax, self).copy_data(cr, uid, id, default=default, context=context)
|
return super(account_tax, self).copy_data(cr, uid, id, default=default, context=context)
|
||||||
|
|
||||||
def get_precision_tax():
|
|
||||||
def change_digit_tax(cr):
|
|
||||||
res = openerp.registry(cr.dbname)['decimal.precision'].precision_get(cr, SUPERUSER_ID, 'Account')
|
|
||||||
return (16, res+2)
|
|
||||||
return change_digit_tax
|
|
||||||
|
|
||||||
_name = 'account.tax'
|
_name = 'account.tax'
|
||||||
_description = 'Tax'
|
_description = 'Tax'
|
||||||
_columns = {
|
_columns = {
|
||||||
|
@ -2307,7 +2317,7 @@ class account_model(osv.osv):
|
||||||
try:
|
try:
|
||||||
entry['name'] = model.name%{'year': move_date.strftime('%Y'), 'month': move_date.strftime('%m'), 'date': move_date.strftime('%Y-%m')}
|
entry['name'] = model.name%{'year': move_date.strftime('%Y'), 'month': move_date.strftime('%m'), 'date': move_date.strftime('%Y-%m')}
|
||||||
except:
|
except:
|
||||||
raise osv.except_osv(_('Wrong model !'), _('You have a wrong expression "%(...)s" in your model !'))
|
raise osv.except_osv(_('Wrong Model!'), _('You have a wrong expression "%(...)s" in your model!'))
|
||||||
move_id = account_move_obj.create(cr, uid, {
|
move_id = account_move_obj.create(cr, uid, {
|
||||||
'ref': entry['name'],
|
'ref': entry['name'],
|
||||||
'period_id': period_id,
|
'period_id': period_id,
|
||||||
|
@ -2319,7 +2329,7 @@ class account_model(osv.osv):
|
||||||
analytic_account_id = False
|
analytic_account_id = False
|
||||||
if line.analytic_account_id:
|
if line.analytic_account_id:
|
||||||
if not model.journal_id.analytic_journal_id:
|
if not model.journal_id.analytic_journal_id:
|
||||||
raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal!") % (model.journal_id.name,))
|
raise osv.except_osv(_('No Analytic Journal!'),_("You have to define an analytic journal on the '%s' journal!") % (model.journal_id.name,))
|
||||||
analytic_account_id = line.analytic_account_id.id
|
analytic_account_id = line.analytic_account_id.id
|
||||||
val = {
|
val = {
|
||||||
'move_id': move_id,
|
'move_id': move_id,
|
||||||
|
@ -2795,7 +2805,7 @@ class account_tax_template(osv.osv):
|
||||||
'chart_template_id': fields.many2one('account.chart.template', 'Chart Template', required=True),
|
'chart_template_id': fields.many2one('account.chart.template', 'Chart Template', required=True),
|
||||||
'name': fields.char('Tax Name', size=64, required=True),
|
'name': fields.char('Tax Name', size=64, required=True),
|
||||||
'sequence': fields.integer('Sequence', required=True, help="The sequence field is used to order the taxes lines from lower sequences to higher ones. The order is important if you have a tax that has several tax children. In this case, the evaluation order is important."),
|
'sequence': fields.integer('Sequence', required=True, help="The sequence field is used to order the taxes lines from lower sequences to higher ones. The order is important if you have a tax that has several tax children. In this case, the evaluation order is important."),
|
||||||
'amount': fields.float('Amount', required=True, digits=(14,4), help="For Tax Type percent enter % ratio between 0-1."),
|
'amount': fields.float('Amount', required=True, digits_compute=get_precision_tax(), help="For Tax Type percent enter % ratio between 0-1."),
|
||||||
'type': fields.selection( [('percent','Percent'), ('fixed','Fixed'), ('none','None'), ('code','Python Code'), ('balance','Balance')], 'Tax Type', required=True),
|
'type': fields.selection( [('percent','Percent'), ('fixed','Fixed'), ('none','None'), ('code','Python Code'), ('balance','Balance')], 'Tax Type', required=True),
|
||||||
'applicable_type': fields.selection( [('true','True'), ('code','Python Code')], 'Applicable Type', required=True, help="If not applicable (computed through a Python code), the tax won't appear on the invoice."),
|
'applicable_type': fields.selection( [('true','True'), ('code','Python Code')], 'Applicable Type', required=True, help="If not applicable (computed through a Python code), the tax won't appear on the invoice."),
|
||||||
'domain':fields.char('Domain', size=32, help="This field is only used if you develop your own module allowing developers to create specific taxes in a custom domain."),
|
'domain':fields.char('Domain', size=32, help="This field is only used if you develop your own module allowing developers to create specific taxes in a custom domain."),
|
||||||
|
|
|
@ -420,7 +420,7 @@ class account_bank_statement(osv.osv):
|
||||||
for st_line in st.line_ids:
|
for st_line in st.line_ids:
|
||||||
if st_line.analytic_account_id:
|
if st_line.analytic_account_id:
|
||||||
if not st.journal_id.analytic_journal_id:
|
if not st.journal_id.analytic_journal_id:
|
||||||
raise osv.except_osv(_('No Analytic Journal !'),_("You have to assign 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:
|
if not st_line.amount:
|
||||||
continue
|
continue
|
||||||
st_line_number = self.get_next_st_line_number(cr, uid, st_number, st_line, context)
|
st_line_number = self.get_next_st_line_number(cr, uid, st_number, st_line, context)
|
||||||
|
|
|
@ -252,7 +252,7 @@ class account_cash_statement(osv.osv):
|
||||||
for statement in statement_pool.browse(cr, uid, ids, context=context):
|
for statement in statement_pool.browse(cr, uid, ids, context=context):
|
||||||
vals = {}
|
vals = {}
|
||||||
if not self._user_allow(cr, uid, statement.id, context=context):
|
if not self._user_allow(cr, uid, statement.id, context=context):
|
||||||
raise osv.except_osv(_('Error!'), (_('You do not have rights to open this %s journal !') % (statement.journal_id.name, )))
|
raise osv.except_osv(_('Error!'), (_('You do not have rights to open this %s journal!') % (statement.journal_id.name, )))
|
||||||
|
|
||||||
if statement.name and statement.name == '/':
|
if statement.name and statement.name == '/':
|
||||||
c = {'fiscalyear_id': statement.period_id.fiscalyear_id.id}
|
c = {'fiscalyear_id': statement.period_id.fiscalyear_id.id}
|
||||||
|
|
|
@ -69,7 +69,7 @@ class account_invoice(osv.osv):
|
||||||
tt = type2journal.get(type_inv, 'sale')
|
tt = type2journal.get(type_inv, 'sale')
|
||||||
result = self.pool.get('account.analytic.journal').search(cr, uid, [('type','=',tt)], context=context)
|
result = self.pool.get('account.analytic.journal').search(cr, uid, [('type','=',tt)], context=context)
|
||||||
if not result:
|
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]
|
return result[0]
|
||||||
|
|
||||||
def _get_type(self, cr, uid, context=None):
|
def _get_type(self, cr, uid, context=None):
|
||||||
|
@ -89,13 +89,43 @@ class account_invoice(osv.osv):
|
||||||
return [('none', _('Free Reference'))]
|
return [('none', _('Free Reference'))]
|
||||||
|
|
||||||
def _amount_residual(self, cr, uid, ids, name, args, context=None):
|
def _amount_residual(self, cr, uid, ids, name, args, context=None):
|
||||||
|
"""Function of the field residua. It computes the residual amount (balance) for each invoice"""
|
||||||
|
if context is None:
|
||||||
|
context = {}
|
||||||
|
ctx = context.copy()
|
||||||
result = {}
|
result = {}
|
||||||
|
currency_obj = self.pool.get('res.currency')
|
||||||
for invoice in self.browse(cr, uid, ids, context=context):
|
for invoice in self.browse(cr, uid, ids, context=context):
|
||||||
|
nb_inv_in_partial_rec = max_invoice_id = 0
|
||||||
result[invoice.id] = 0.0
|
result[invoice.id] = 0.0
|
||||||
if invoice.move_id:
|
if invoice.move_id:
|
||||||
for m in invoice.move_id.line_id:
|
for aml in invoice.move_id.line_id:
|
||||||
if m.account_id.type in ('receivable','payable'):
|
if aml.account_id.type in ('receivable','payable'):
|
||||||
result[invoice.id] += m.amount_residual_currency
|
if aml.currency_id and aml.currency_id.id == invoice.currency_id.id:
|
||||||
|
result[invoice.id] += aml.amount_residual_currency
|
||||||
|
else:
|
||||||
|
ctx['date'] = aml.date
|
||||||
|
result[invoice.id] += currency_obj.compute(cr, uid, aml.company_id.currency_id.id, invoice.currency_id.id, aml.amount_residual, context=ctx)
|
||||||
|
|
||||||
|
if aml.reconcile_partial_id.line_partial_ids:
|
||||||
|
#we check if the invoice is partially reconciled and if there are other invoices
|
||||||
|
#involved in this partial reconciliation (and we sum these invoices)
|
||||||
|
for line in aml.reconcile_partial_id.line_partial_ids:
|
||||||
|
if line.invoice:
|
||||||
|
nb_inv_in_partial_rec += 1
|
||||||
|
#store the max invoice id as for this invoice we will make a balance instead of a simple division
|
||||||
|
max_invoice_id = max(max_invoice_id, line.invoice.id)
|
||||||
|
if nb_inv_in_partial_rec:
|
||||||
|
#if there are several invoices in a partial reconciliation, we split the residual by the number
|
||||||
|
#of invoice to have a sum of residual amounts that matches the partner balance
|
||||||
|
new_value = currency_obj.round(cr, uid, invoice.currency_id, result[invoice.id] / nb_inv_in_partial_rec)
|
||||||
|
if invoice.id == max_invoice_id:
|
||||||
|
#if it's the last the invoice of the bunch of invoices partially reconciled together, we make a
|
||||||
|
#balance to avoid rounding errors
|
||||||
|
result[invoice.id] = result[invoice.id] - ((nb_inv_in_partial_rec - 1) * new_value)
|
||||||
|
else:
|
||||||
|
result[invoice.id] = new_value
|
||||||
|
|
||||||
#prevent the residual amount on the invoice to be less than 0
|
#prevent the residual amount on the invoice to be less than 0
|
||||||
result[invoice.id] = max(result[invoice.id], 0.0)
|
result[invoice.id] = max(result[invoice.id], 0.0)
|
||||||
return result
|
return result
|
||||||
|
@ -600,7 +630,7 @@ class account_invoice(osv.osv):
|
||||||
obj_l = account_obj.browse(cr, uid, inv_line[2]['account_id'])
|
obj_l = account_obj.browse(cr, uid, inv_line[2]['account_id'])
|
||||||
if obj_l.company_id.id != company_id:
|
if obj_l.company_id.id != company_id:
|
||||||
raise osv.except_osv(_('Configuration Error!'),
|
raise osv.except_osv(_('Configuration Error!'),
|
||||||
_('Invoice line account\'s company and invoice\'s compnay does not match.'))
|
_('Invoice line account\'s company and invoice\'s company does not match.'))
|
||||||
else:
|
else:
|
||||||
continue
|
continue
|
||||||
if company_id and type:
|
if company_id and type:
|
||||||
|
@ -756,7 +786,7 @@ class account_invoice(osv.osv):
|
||||||
else:
|
else:
|
||||||
ref = self._convert_ref(cr, uid, inv.number)
|
ref = self._convert_ref(cr, uid, inv.number)
|
||||||
if not inv.journal_id.analytic_journal_id:
|
if not inv.journal_id.analytic_journal_id:
|
||||||
raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal!") % (inv.journal_id.name,))
|
raise osv.except_osv(_('No Analytic Journal!'),_("You have to define an analytic journal on the '%s' journal!") % (inv.journal_id.name,))
|
||||||
il['analytic_lines'] = [(0,0, {
|
il['analytic_lines'] = [(0,0, {
|
||||||
'name': il['name'],
|
'name': il['name'],
|
||||||
'date': inv['date_invoice'],
|
'date': inv['date_invoice'],
|
||||||
|
@ -882,7 +912,7 @@ class account_invoice(osv.osv):
|
||||||
if not inv.journal_id.sequence_id:
|
if not inv.journal_id.sequence_id:
|
||||||
raise osv.except_osv(_('Error!'), _('Please define sequence on the journal related to this invoice.'))
|
raise osv.except_osv(_('Error!'), _('Please define sequence on the journal related to this invoice.'))
|
||||||
if not inv.invoice_line:
|
if not inv.invoice_line:
|
||||||
raise osv.except_osv(_('No Invoice Lines !'), _('Please create some invoice lines.'))
|
raise osv.except_osv(_('No Invoice Lines!'), _('Please create some invoice lines.'))
|
||||||
if inv.move_id:
|
if inv.move_id:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
@ -903,7 +933,7 @@ class account_invoice(osv.osv):
|
||||||
group_check_total = self.pool.get('res.groups').browse(cr, uid, group_check_total_id, context=context)
|
group_check_total = self.pool.get('res.groups').browse(cr, uid, group_check_total_id, context=context)
|
||||||
if group_check_total and uid in [x.id for x in group_check_total.users]:
|
if group_check_total and uid in [x.id for x in group_check_total.users]:
|
||||||
if (inv.type in ('in_invoice', 'in_refund') and abs(inv.check_total - inv.amount_total) >= (inv.currency_id.rounding/2.0)):
|
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 encoded total does not match the computed total.'))
|
raise osv.except_osv(_('Bad Total!'), _('Please verify the price of the invoice!\nThe encoded total does not match the computed total.'))
|
||||||
|
|
||||||
if inv.payment_term:
|
if inv.payment_term:
|
||||||
total_fixed = total_percent = 0
|
total_fixed = total_percent = 0
|
||||||
|
@ -1445,7 +1475,7 @@ class account_invoice_line(osv.osv):
|
||||||
context = dict(context)
|
context = dict(context)
|
||||||
context.update({'company_id': company_id, 'force_company': company_id})
|
context.update({'company_id': company_id, 'force_company': company_id})
|
||||||
if not partner_id:
|
if not partner_id:
|
||||||
raise osv.except_osv(_('No Partner Defined !'),_("You must first select a partner !") )
|
raise osv.except_osv(_('No Partner Defined!'),_("You must first select a partner!") )
|
||||||
if not product:
|
if not product:
|
||||||
if type in ('in_invoice', 'in_refund'):
|
if type in ('in_invoice', 'in_refund'):
|
||||||
return {'value': {}, 'domain':{'product_uom':[]}}
|
return {'value': {}, 'domain':{'product_uom':[]}}
|
||||||
|
@ -1460,6 +1490,7 @@ class account_invoice_line(osv.osv):
|
||||||
result = {}
|
result = {}
|
||||||
res = self.pool.get('product.product').browse(cr, uid, product, context=context)
|
res = self.pool.get('product.product').browse(cr, uid, product, context=context)
|
||||||
|
|
||||||
|
result['name'] = res.partner_ref
|
||||||
if type in ('out_invoice','out_refund'):
|
if type in ('out_invoice','out_refund'):
|
||||||
a = res.property_account_income.id
|
a = res.property_account_income.id
|
||||||
if not a:
|
if not a:
|
||||||
|
@ -1474,19 +1505,21 @@ class account_invoice_line(osv.osv):
|
||||||
|
|
||||||
if type in ('out_invoice', 'out_refund'):
|
if type in ('out_invoice', 'out_refund'):
|
||||||
taxes = res.taxes_id and res.taxes_id or (a and self.pool.get('account.account').browse(cr, uid, a, context=context).tax_ids or False)
|
taxes = res.taxes_id and res.taxes_id or (a and self.pool.get('account.account').browse(cr, uid, a, context=context).tax_ids or False)
|
||||||
|
if res.description_sale:
|
||||||
|
result['name'] += '\n'+res.description_sale
|
||||||
else:
|
else:
|
||||||
taxes = res.supplier_taxes_id and res.supplier_taxes_id or (a and self.pool.get('account.account').browse(cr, uid, a, context=context).tax_ids or False)
|
taxes = res.supplier_taxes_id and res.supplier_taxes_id or (a and self.pool.get('account.account').browse(cr, uid, a, context=context).tax_ids or False)
|
||||||
|
if res.description_purchase:
|
||||||
|
result['name'] += '\n'+res.description_purchase
|
||||||
|
|
||||||
tax_id = fpos_obj.map_tax(cr, uid, fpos, taxes)
|
tax_id = fpos_obj.map_tax(cr, uid, fpos, taxes)
|
||||||
|
|
||||||
if type in ('in_invoice', 'in_refund'):
|
if type in ('in_invoice', 'in_refund'):
|
||||||
result.update( {'price_unit': price_unit or res.standard_price,'invoice_line_tax_id': tax_id} )
|
result.update( {'price_unit': price_unit or res.standard_price,'invoice_line_tax_id': tax_id} )
|
||||||
else:
|
else:
|
||||||
result.update({'price_unit': res.list_price, 'invoice_line_tax_id': tax_id})
|
result.update({'price_unit': res.list_price, 'invoice_line_tax_id': tax_id})
|
||||||
result['name'] = res.partner_ref
|
|
||||||
|
|
||||||
result['uos_id'] = uom_id or res.uom_id.id
|
result['uos_id'] = uom_id or res.uom_id.id
|
||||||
if res.description:
|
|
||||||
result['name'] += '\n'+res.description
|
|
||||||
|
|
||||||
domain = {'uos_id':[('category_id','=',res.uom_id.category_id.id)]}
|
domain = {'uos_id':[('category_id','=',res.uom_id.category_id.id)]}
|
||||||
|
|
||||||
|
|
|
@ -197,7 +197,7 @@
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="company_id" invisible="1"/>
|
<field name="company_id" invisible="1"/>
|
||||||
<field name="account_id" groups="account.group_account_user"
|
<field name="account_id" groups="account.group_account_user"
|
||||||
domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '!=', 'view')]"
|
domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '=', 'other')]"
|
||||||
on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)"/>
|
on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)"/>
|
||||||
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"
|
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"
|
||||||
domain="[('type','!=','view'), ('company_id', '=', parent.company_id)]"/>
|
domain="[('type','!=','view'), ('company_id', '=', parent.company_id)]"/>
|
||||||
|
@ -320,7 +320,7 @@
|
||||||
<group>
|
<group>
|
||||||
<field string="Customer" name="partner_id"
|
<field string="Customer" name="partner_id"
|
||||||
on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_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, 'show_address': 1}"
|
context="{'search_default_customer':1, 'show_address': 1}"
|
||||||
options='{"always_reload": True}'
|
options='{"always_reload": True}'
|
||||||
domain="[('customer', '=', True)]"/>
|
domain="[('customer', '=', True)]"/>
|
||||||
<field name="fiscal_position" widget="selection" />
|
<field name="fiscal_position" widget="selection" />
|
||||||
|
@ -353,7 +353,7 @@
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="company_id" invisible="1"/>
|
<field name="company_id" invisible="1"/>
|
||||||
<field name="account_id" groups="account.group_account_user"
|
<field name="account_id" groups="account.group_account_user"
|
||||||
domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '!=', 'view')]"
|
domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '=', 'other')]"
|
||||||
on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)"/>
|
on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)"/>
|
||||||
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"
|
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"
|
||||||
domain="[('type','!=','view'), ('company_id', '=', parent.company_id)]"/>
|
domain="[('type','!=','view'), ('company_id', '=', parent.company_id)]"/>
|
||||||
|
|
|
@ -192,7 +192,7 @@ class account_move_line(osv.osv):
|
||||||
for obj_line in self.browse(cr, uid, ids, context=context):
|
for obj_line in self.browse(cr, uid, ids, context=context):
|
||||||
if obj_line.analytic_account_id:
|
if obj_line.analytic_account_id:
|
||||||
if not obj_line.journal_id.analytic_journal_id:
|
if not obj_line.journal_id.analytic_journal_id:
|
||||||
raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal!") % (obj_line.journal_id.name, ))
|
raise osv.except_osv(_('No Analytic Journal!'),_("You have to define an analytic journal on the '%s' journal!") % (obj_line.journal_id.name, ))
|
||||||
vals_line = self._prepare_analytic_line(cr, uid, obj_line, context=context)
|
vals_line = self._prepare_analytic_line(cr, uid, obj_line, context=context)
|
||||||
acc_ana_line_obj.create(cr, uid, vals_line)
|
acc_ana_line_obj.create(cr, uid, vals_line)
|
||||||
return True
|
return True
|
||||||
|
@ -1101,7 +1101,7 @@ class account_move_line(osv.osv):
|
||||||
period = period_obj.browse(cr, uid, period_id, context=context)
|
period = period_obj.browse(cr, uid, period_id, context=context)
|
||||||
for (state,) in result:
|
for (state,) in result:
|
||||||
if state == 'done':
|
if state == 'done':
|
||||||
raise osv.except_osv(_('Error !'), _('You can not add/modify entries in a closed period %s of journal %s.' % (period.name,journal.name)))
|
raise osv.except_osv(_('Error!'), _('You can not add/modify entries in a closed period %s of journal %s.' % (period.name,journal.name)))
|
||||||
if not result:
|
if not result:
|
||||||
jour_period_obj.create(cr, uid, {
|
jour_period_obj.create(cr, uid, {
|
||||||
'name': (journal.code or journal.name)+':'+(period.name or ''),
|
'name': (journal.code or journal.name)+':'+(period.name or ''),
|
||||||
|
@ -1181,7 +1181,7 @@ class account_move_line(osv.osv):
|
||||||
move_id = move_obj.create(cr, uid, v, context)
|
move_id = move_obj.create(cr, uid, v, context)
|
||||||
vals['move_id'] = move_id
|
vals['move_id'] = move_id
|
||||||
else:
|
else:
|
||||||
raise osv.except_osv(_('No piece number !'), _('Cannot create an automatic sequence for this piece.\nPut a sequence in the journal definition for automatic numbering or create a sequence manually for this piece.'))
|
raise osv.except_osv(_('No Piece Number!'), _('Cannot create an automatic sequence for this piece.\nPut a sequence in the journal definition for automatic numbering or create a sequence manually for this piece.'))
|
||||||
ok = not (journal.type_control_ids or journal.account_control_ids)
|
ok = not (journal.type_control_ids or journal.account_control_ids)
|
||||||
if ('account_id' in vals):
|
if ('account_id' in vals):
|
||||||
account = account_obj.browse(cr, uid, vals['account_id'], context=context)
|
account = account_obj.browse(cr, uid, vals['account_id'], context=context)
|
||||||
|
|
|
@ -907,9 +907,7 @@
|
||||||
<label for="type"/>
|
<label for="type"/>
|
||||||
<div>
|
<div>
|
||||||
<field name="type"/>
|
<field name="type"/>
|
||||||
<field name="amount" class="oe_inline"
|
<field name="amount" attrs="{'invisible':[('type','in',('none', 'code', 'balance'))]}"/>
|
||||||
attrs="{'invisible':[('type','in',('none', 'code', 'balance'))]}"/>
|
|
||||||
<label string="%%" attrs="{'invisible':[('type','<>','percent')]}"/>
|
|
||||||
</div>
|
</div>
|
||||||
<field name="python_compute" attrs="{'invisible':[('type','!=','code')],'required':[('type','=','code')]}"/>
|
<field name="python_compute" attrs="{'invisible':[('type','!=','code')],'required':[('type','=','code')]}"/>
|
||||||
<field name="python_compute_inv" attrs="{'invisible':[('type','!=','code')],'required':[('type','=','code')]}"/>
|
<field name="python_compute_inv" attrs="{'invisible':[('type','!=','code')],'required':[('type','=','code')]}"/>
|
||||||
|
|
|
@ -313,8 +313,8 @@
|
||||||
<field name="code">TSAJ</field>
|
<field name="code">TSAJ</field>
|
||||||
<field name="type">sale</field>
|
<field name="type">sale</field>
|
||||||
<field name="sequence_id" ref="sequence_sale_journal"/>
|
<field name="sequence_id" ref="sequence_sale_journal"/>
|
||||||
<field model="account.account" name="default_credit_account_id" ref="a_sale"/>
|
<field name="default_credit_account_id" ref="a_sale"/>
|
||||||
<field model="account.account" name="default_debit_account_id" ref="a_sale"/>
|
<field name="default_debit_account_id" ref="a_sale"/>
|
||||||
<field name="analytic_journal_id" ref="cose_journal_sale"/>
|
<field name="analytic_journal_id" ref="cose_journal_sale"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
</record>
|
</record>
|
||||||
|
@ -323,8 +323,8 @@
|
||||||
<field name="code">TSCNJ</field>
|
<field name="code">TSCNJ</field>
|
||||||
<field name="type">sale_refund</field>
|
<field name="type">sale_refund</field>
|
||||||
<field name="sequence_id" ref="sequence_refund_sales_journal"/>
|
<field name="sequence_id" ref="sequence_refund_sales_journal"/>
|
||||||
<field model="account.account" name="default_credit_account_id" ref="a_sale"/>
|
<field name="default_credit_account_id" ref="a_sale"/>
|
||||||
<field model="account.account" name="default_debit_account_id" ref="a_sale"/>
|
<field name="default_debit_account_id" ref="a_sale"/>
|
||||||
<field name="analytic_journal_id" ref="cose_journal_sale"/>
|
<field name="analytic_journal_id" ref="cose_journal_sale"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
</record>
|
</record>
|
||||||
|
@ -334,8 +334,8 @@
|
||||||
<field name="code">TEXJ</field>
|
<field name="code">TEXJ</field>
|
||||||
<field name="type">purchase</field>
|
<field name="type">purchase</field>
|
||||||
<field name="sequence_id" ref="sequence_purchase_journal"/>
|
<field name="sequence_id" ref="sequence_purchase_journal"/>
|
||||||
<field model="account.account" name="default_debit_account_id" ref="a_expense"/>
|
<field name="default_debit_account_id" ref="a_expense"/>
|
||||||
<field model="account.account" name="default_credit_account_id" ref="a_expense"/>
|
<field name="default_credit_account_id" ref="a_expense"/>
|
||||||
<field name="analytic_journal_id" ref="exp"/>
|
<field name="analytic_journal_id" ref="exp"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
</record>
|
</record>
|
||||||
|
@ -344,8 +344,8 @@
|
||||||
<field name="code">TECNJ</field>
|
<field name="code">TECNJ</field>
|
||||||
<field name="type">purchase_refund</field>
|
<field name="type">purchase_refund</field>
|
||||||
<field name="sequence_id" ref="sequence_refund_purchase_journal"/>
|
<field name="sequence_id" ref="sequence_refund_purchase_journal"/>
|
||||||
<field model="account.account" name="default_debit_account_id" ref="a_expense"/>
|
<field name="default_debit_account_id" ref="a_expense"/>
|
||||||
<field model="account.account" name="default_credit_account_id" ref="a_expense"/>
|
<field name="default_credit_account_id" ref="a_expense"/>
|
||||||
<field name="analytic_journal_id" ref="exp"/>
|
<field name="analytic_journal_id" ref="exp"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
</record>
|
</record>
|
||||||
|
@ -355,8 +355,8 @@
|
||||||
<field name="code">TBNK</field>
|
<field name="code">TBNK</field>
|
||||||
<field name="type">bank</field>
|
<field name="type">bank</field>
|
||||||
<field name="sequence_id" ref="sequence_bank_journal"/>
|
<field name="sequence_id" ref="sequence_bank_journal"/>
|
||||||
<field model="account.account" name="default_debit_account_id" ref="bnk"/>
|
<field name="default_debit_account_id" ref="bnk"/>
|
||||||
<field model="account.account" name="default_credit_account_id" ref="bnk"/>
|
<field name="default_credit_account_id" ref="bnk"/>
|
||||||
<field name="analytic_journal_id" ref="sit"/>
|
<field name="analytic_journal_id" ref="sit"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
</record>
|
</record>
|
||||||
|
@ -365,8 +365,8 @@
|
||||||
<field name="code">TCHK</field>
|
<field name="code">TCHK</field>
|
||||||
<field name="type">bank</field>
|
<field name="type">bank</field>
|
||||||
<field name="sequence_id" ref="sequence_check_journal"/>
|
<field name="sequence_id" ref="sequence_check_journal"/>
|
||||||
<field model="account.account" name="default_debit_account_id" ref="cash"/>
|
<field name="default_debit_account_id" ref="cash"/>
|
||||||
<field model="account.account" name="default_credit_account_id" ref="cash"/>
|
<field name="default_credit_account_id" ref="cash"/>
|
||||||
<field name="analytic_journal_id" ref="sit"/>
|
<field name="analytic_journal_id" ref="sit"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
</record>
|
</record>
|
||||||
|
@ -374,9 +374,9 @@
|
||||||
<field name="name">Cash Journal - (test)</field>
|
<field name="name">Cash Journal - (test)</field>
|
||||||
<field name="code">TCSH</field>
|
<field name="code">TCSH</field>
|
||||||
<field name="type">cash</field>
|
<field name="type">cash</field>
|
||||||
<field name="profit_account_id" model="account.account" ref="rsa" />
|
<field name="profit_account_id" ref="rsa" />
|
||||||
<field name="loss_account_id" model="account.account" ref="rsa" />
|
<field name="loss_account_id" ref="rsa" />
|
||||||
<field name="internal_account_id" model="account.account" ref="rsa" />
|
<field name="internal_account_id" ref="rsa" />
|
||||||
<field name="with_last_closing_balance" eval="True" />
|
<field name="with_last_closing_balance" eval="True" />
|
||||||
<!--
|
<!--
|
||||||
Usually, cash payment methods requires a control at opening and closing.
|
Usually, cash payment methods requires a control at opening and closing.
|
||||||
|
@ -385,8 +385,8 @@
|
||||||
-->
|
-->
|
||||||
<field name="cash_control" eval="False"/>
|
<field name="cash_control" eval="False"/>
|
||||||
<field name="sequence_id" ref="sequence_cash_journal"/>
|
<field name="sequence_id" ref="sequence_cash_journal"/>
|
||||||
<field model="account.account" name="default_debit_account_id" ref="cash"/>
|
<field name="default_debit_account_id" ref="cash"/>
|
||||||
<field model="account.account" name="default_credit_account_id" ref="cash"/>
|
<field name="default_credit_account_id" ref="cash"/>
|
||||||
<field name="analytic_journal_id" ref="sit"/>
|
<field name="analytic_journal_id" ref="sit"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
</record>
|
</record>
|
||||||
|
@ -403,8 +403,8 @@
|
||||||
<field name="code">TOEJ</field>
|
<field name="code">TOEJ</field>
|
||||||
<field name="type">situation</field>
|
<field name="type">situation</field>
|
||||||
<field name="sequence_id" ref="sequence_opening_journal"/>
|
<field name="sequence_id" ref="sequence_opening_journal"/>
|
||||||
<field model="account.account" name="default_debit_account_id" ref="o_income"/>
|
<field name="default_debit_account_id" ref="o_income"/>
|
||||||
<field model="account.account" name="default_credit_account_id" ref="o_expense"/>
|
<field name="default_credit_account_id" ref="o_expense"/>
|
||||||
<field eval="True" name="centralisation"/>
|
<field eval="True" name="centralisation"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
</record>
|
</record>
|
||||||
|
@ -413,8 +413,8 @@
|
||||||
<field name="name">USD Bank Journal - (test)</field>
|
<field name="name">USD Bank Journal - (test)</field>
|
||||||
<field name="code">TUBK</field>
|
<field name="code">TUBK</field>
|
||||||
<field name="type">bank</field>
|
<field name="type">bank</field>
|
||||||
<field model="account.account" name="default_debit_account_id" ref="usd_bnk"/>
|
<field name="default_debit_account_id" ref="usd_bnk"/>
|
||||||
<field model="account.account" name="default_credit_account_id" ref="usd_bnk"/>
|
<field name="default_credit_account_id" ref="usd_bnk"/>
|
||||||
<field name="currency" ref="base.USD"/>
|
<field name="currency" ref="base.USD"/>
|
||||||
</record>
|
</record>
|
||||||
<!--
|
<!--
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
<a href="https://www.openerp.com/saas_master/demo?lang=en_US&module=account">
|
<a href="https://www.openerp.com/saas_master/demo?lang=en_US&module=account">
|
||||||
<img src="account_sc_00.png" alt="Online Demo">
|
<img src="account_sc_00.png" alt="Online Demo">
|
||||||
</a>
|
</a>
|
||||||
<span class="oe_demo_play"> </span>
|
|
||||||
<div class="oe_demo_footer oe_centeralign">Online Demo</div>
|
<div class="oe_demo_footer oe_centeralign">Online Demo</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||||
"PO-Revision-Date: 2013-03-14 06:41+0000\n"
|
"PO-Revision-Date: 2013-06-05 13:02+0000\n"
|
||||||
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:17+0000\n"
|
"X-Launchpad-Export-Date: 2013-06-06 05:21+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16667)\n"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
|
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
|
||||||
|
@ -465,7 +465,7 @@ msgstr "Шаблона плана счетов"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: selection:account.invoice.refund,filter_refund:0
|
#: selection:account.invoice.refund,filter_refund:0
|
||||||
msgid "Modify: create refund, reconcile and create a new draft invoice"
|
msgid "Modify: create refund, reconcile and create a new draft invoice"
|
||||||
msgstr ""
|
msgstr "Изменить: создать возврат, сверить и создать новый счет"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.config.settings,tax_calculation_rounding_method:0
|
#: help:account.config.settings,tax_calculation_rounding_method:0
|
||||||
|
@ -704,6 +704,8 @@ msgid ""
|
||||||
"Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' "
|
"Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' "
|
||||||
"and 'draft' or ''}"
|
"and 'draft' or ''}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' "
|
||||||
|
"and 'draft' or ''}"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.period:0
|
#: view:account.period:0
|
||||||
|
@ -731,6 +733,8 @@ msgstr "Период журнала"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You cannot create more than one move per period on a centralized journal."
|
"You cannot create more than one move per period on a centralized journal."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Вы не можете создать более одного движения за период в централизованном "
|
||||||
|
"журнале."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.tax,account_analytic_paid_id:0
|
#: help:account.tax,account_analytic_paid_id:0
|
||||||
|
@ -911,6 +915,7 @@ msgid ""
|
||||||
"Print Report with the currency column if the currency differs from the "
|
"Print Report with the currency column if the currency differs from the "
|
||||||
"company currency."
|
"company currency."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Печать отчета с колонкой валюты, если валюта отличается от валюты компании."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: report:account.analytic.account.quantity_cost_ledger:0
|
#: report:account.analytic.account.quantity_cost_ledger:0
|
||||||
|
@ -950,6 +955,10 @@ msgid ""
|
||||||
" </p>\n"
|
" </p>\n"
|
||||||
" "
|
" "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"<p>\n"
|
||||||
|
" Элементы журнала не найдены.\n"
|
||||||
|
" </p>\n"
|
||||||
|
" "
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: code:addons/account/account.py:1639
|
#: code:addons/account/account.py:1639
|
||||||
|
@ -1039,7 +1048,7 @@ msgstr "Обязательства"
|
||||||
#: code:addons/account/account_invoice.py:867
|
#: code:addons/account/account_invoice.py:867
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Please define sequence on the journal related to this invoice."
|
msgid "Please define sequence on the journal related to this invoice."
|
||||||
msgstr ""
|
msgstr "Пожалуйста, определите нумерацию в журнале, связанном с этим счетом."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.entries.report:0
|
#: view:account.entries.report:0
|
||||||
|
@ -1517,6 +1526,9 @@ msgid ""
|
||||||
"And after getting confirmation from the bank it will be in 'Confirmed' "
|
"And after getting confirmation from the bank it will be in 'Confirmed' "
|
||||||
"status."
|
"status."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Когда новый отчет создан - статус станет \"Черновик\".\n"
|
||||||
|
"После получения подтверждения из банка, статус измениться на \" "
|
||||||
|
"Подтверждено\"."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.invoice.report,state:0
|
#: field:account.invoice.report,state:0
|
||||||
|
@ -1560,6 +1572,8 @@ msgid ""
|
||||||
"There is no default debit account defined \n"
|
"There is no default debit account defined \n"
|
||||||
"on journal \"%s\"."
|
"on journal \"%s\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Дебетовый счет по умолчанию не определен\n"
|
||||||
|
"в журнале \"%s\"."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.tax:0
|
#: view:account.tax:0
|
||||||
|
@ -1662,7 +1676,7 @@ msgstr ""
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.config.settings,company_footer:0
|
#: field:account.config.settings,company_footer:0
|
||||||
msgid "Bank accounts footer preview"
|
msgid "Bank accounts footer preview"
|
||||||
msgstr ""
|
msgstr "Просмотр нижнего колонтитула банковских счетов"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: selection:account.account,type:0
|
#: selection:account.account,type:0
|
||||||
|
@ -7386,7 +7400,7 @@ msgstr ""
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.config.settings,module_account_voucher:0
|
#: field:account.config.settings,module_account_voucher:0
|
||||||
msgid "Manage customer payments"
|
msgid "Manage customer payments"
|
||||||
msgstr ""
|
msgstr "Управление платежами заказчиков"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:report.invoice.created,origin:0
|
#: help:report.invoice.created,origin:0
|
||||||
|
@ -7415,7 +7429,7 @@ msgstr ""
|
||||||
#: model:ir.actions.act_window,name:account.action_invoice_tree1
|
#: model:ir.actions.act_window,name:account.action_invoice_tree1
|
||||||
#: model:ir.ui.menu,name:account.menu_action_invoice_tree1
|
#: model:ir.ui.menu,name:account.menu_action_invoice_tree1
|
||||||
msgid "Customer Invoices"
|
msgid "Customer Invoices"
|
||||||
msgstr "Счета клиенту"
|
msgstr "Счета заказчику"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.tax:0
|
#: view:account.tax:0
|
||||||
|
@ -10543,7 +10557,7 @@ msgstr "Состояние счета - сделано"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.config.settings,module_account_followup:0
|
#: field:account.config.settings,module_account_followup:0
|
||||||
msgid "Manage customer payment follow-ups"
|
msgid "Manage customer payment follow-ups"
|
||||||
msgstr ""
|
msgstr "Управление напоминаниями заказчикам об оплатах"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:ir.model,name:account.model_report_account_sales
|
#: model:ir.model,name:account.model_report_account_sales
|
||||||
|
@ -11037,7 +11051,7 @@ msgstr "Счет расходов по шаблону ТМЦ"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:res.partner,property_payment_term:0
|
#: field:res.partner,property_payment_term:0
|
||||||
msgid "Customer Payment Term"
|
msgid "Customer Payment Term"
|
||||||
msgstr ""
|
msgstr "Срок платежа заказчика"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:accounting.report,label_filter:0
|
#: help:accounting.report,label_filter:0
|
||||||
|
|
|
@ -111,7 +111,7 @@ class account_installer(osv.osv_memory):
|
||||||
def check_unconfigured_cmp(self, cr, uid, context=None):
|
def check_unconfigured_cmp(self, cr, uid, context=None):
|
||||||
""" check if there are still unconfigured companies """
|
""" check if there are still unconfigured companies """
|
||||||
if not self.get_unconfigured_cmp(cr, uid, context=context):
|
if not self.get_unconfigured_cmp(cr, uid, context=context):
|
||||||
raise osv.except_osv(_('No unconfigured company !'), _("There is currently no company without chart of account. The wizard will therefore not be executed."))
|
raise osv.except_osv(_('No Unconfigured Company!'), _("There is currently no company without chart of account. The wizard will therefore not be executed."))
|
||||||
|
|
||||||
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
|
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
|
||||||
if context is None: context = {}
|
if context is None: context = {}
|
||||||
|
|
|
@ -68,7 +68,7 @@
|
||||||
name="%(account.action_invoice_tree)d"
|
name="%(account.action_invoice_tree)d"
|
||||||
context="{'search_default_partner_id': active_id,'default_partner_id': active_id}" groups="account.group_account_invoice"/>
|
context="{'search_default_partner_id': active_id,'default_partner_id': active_id}" groups="account.group_account_invoice"/>
|
||||||
<button type="action" string="Journal Items" name="%(account.action_account_moves_all_tree)d" groups="account.group_account_user"/>
|
<button type="action" string="Journal Items" name="%(account.action_account_moves_all_tree)d" groups="account.group_account_user"/>
|
||||||
<button type="action" string="Contracts/Analytic Accounts" name="%(account.action_open_partner_analytic_accounts)d"
|
<button type="action" string="Contracts" name="%(account.action_open_partner_analytic_accounts)d"
|
||||||
groups="analytic.group_analytic_accounting"/>
|
groups="analytic.group_analytic_accounting"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
|
|
|
@ -123,24 +123,24 @@
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Confirm statement"""" name="name"/>
|
<field eval=""""Confirm statement"""" name="name"/>
|
||||||
<field eval=""""The accountant confirms the statement."""" name="note"/>
|
<field eval=""""The accountant confirms the statement."""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_accountingstatemententries0"/>
|
<field name="target_node_id" ref="process_node_accountingstatemententries0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="account.process_node_draftstatement0"/>
|
<field name="source_node_id" ref="account.process_node_draftstatement0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="process_transition_analyticinvoice0" model="process.transition">
|
<record id="process_transition_analyticinvoice0" model="process.transition">
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""From analytic accounts"""" name="name"/>
|
<field eval=""""From analytic accounts"""" name="name"/>
|
||||||
<field eval=""""Analytic costs (timesheets, some purchased products, ...) come from analytic accounts. These generate draft invoices."""" name="note"/>
|
<field eval=""""Analytic costs (timesheets, some purchased products, ...) come from analytic accounts. These generate draft invoices."""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_draftinvoices0"/>
|
<field name="target_node_id" ref="process_node_draftinvoices0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_analytic0"/>
|
<field name="source_node_id" ref="process_node_analytic0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="process_transition_customerinvoice0" model="process.transition">
|
<record id="process_transition_customerinvoice0" model="process.transition">
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Validation"""" name="name"/>
|
<field eval=""""Validation"""" name="name"/>
|
||||||
<field eval=""""Draft invoices are checked, validated and printed."""" name="note"/>
|
<field eval=""""Draft invoices are checked, validated and printed."""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_invoiceinvoice0"/>
|
<field name="target_node_id" ref="process_node_invoiceinvoice0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_draftinvoices0"/>
|
<field name="source_node_id" ref="process_node_draftinvoices0"/>
|
||||||
<field eval="[(6,0,[ref('account.pro2_to_open')])]" name="transition_ids"/>
|
<field eval="[(6,0,[ref('account.pro2_to_open')])]" name="transition_ids"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
@ -148,40 +148,40 @@
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Validation"""" name="name"/>
|
<field eval=""""Validation"""" name="name"/>
|
||||||
<field eval=""""Accountant validates the accounting entries coming from the invoice."""" name="note"/>
|
<field eval=""""Accountant validates the accounting entries coming from the invoice."""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_accountingentries0"/>
|
<field name="target_node_id" ref="process_node_accountingentries0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_invoiceinvoice0"/>
|
<field name="source_node_id" ref="process_node_invoiceinvoice0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="process_transition_entriesreconcile0" model="process.transition">
|
<record id="process_transition_entriesreconcile0" model="process.transition">
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Accounting entries"""" name="name"/>
|
<field eval=""""Accounting entries"""" name="name"/>
|
||||||
<field eval=""""Accounting entries are the first input of the reconciliation."""" name="note"/>
|
<field eval=""""Accounting entries are the first input of the reconciliation."""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_reconciliation0"/>
|
<field name="target_node_id" ref="process_node_reconciliation0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_accountingentries0"/>
|
<field name="source_node_id" ref="process_node_accountingentries0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="process_transition_statemententries0" model="process.transition">
|
<record id="process_transition_statemententries0" model="process.transition">
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Validation"""" name="name"/>
|
<field eval=""""Validation"""" name="name"/>
|
||||||
<field eval=""""Manual or automatic creation of payment entries according to the statements"""" name="note"/>
|
<field eval=""""Manual or automatic creation of payment entries according to the statements"""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_paymententries0"/>
|
<field name="target_node_id" ref="process_node_paymententries0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_bankstatement0"/>
|
<field name="source_node_id" ref="process_node_bankstatement0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="process_transition_paymentreconcile0" model="process.transition">
|
<record id="process_transition_paymentreconcile0" model="process.transition">
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Payment entries"""" name="name"/>
|
<field eval=""""Payment entries"""" name="name"/>
|
||||||
<field eval=""""Payment entries are the second input of the reconciliation."""" name="note"/>
|
<field eval=""""Payment entries are the second input of the reconciliation."""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_reconciliation0"/>
|
<field name="target_node_id" ref="process_node_reconciliation0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_paymententries0"/>
|
<field name="source_node_id" ref="process_node_paymententries0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="process_transition_reconcilepaid0" model="process.transition">
|
<record id="process_transition_reconcilepaid0" model="process.transition">
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Payment"""" name="name"/>
|
<field eval=""""Payment"""" name="name"/>
|
||||||
<field eval=""""As soon as the reconciliation is done, the invoice can be paid."""" name="note"/>
|
<field eval=""""As soon as the reconciliation is done, the invoice can be paid."""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_paidinvoice0"/>
|
<field name="target_node_id" ref="process_node_paidinvoice0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_reconciliation0"/>
|
<field name="source_node_id" ref="process_node_reconciliation0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
|
@ -68,8 +68,8 @@
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Automatic import of the bank statement"""" name="name"/>
|
<field eval=""""Automatic import of the bank statement"""" name="name"/>
|
||||||
<field eval=""""Import of the statement in the system from an electronic file"""" name="note"/>
|
<field eval=""""Import of the statement in the system from an electronic file"""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_draftstatement0"/>
|
<field name="target_node_id" ref="process_node_draftstatement0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_electronicfile0"/>
|
<field name="source_node_id" ref="process_node_electronicfile0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="process_transition_invoicemanually0" model="process.transition">
|
<record id="process_transition_invoicemanually0" model="process.transition">
|
||||||
|
@ -77,17 +77,17 @@
|
||||||
<field eval=""""Manual entry"""" name="name"/>
|
<field eval=""""Manual entry"""" name="name"/>
|
||||||
<field eval=""""A statement with manual entries becomes a draft statement."""" name="note"/>
|
<field eval=""""A statement with manual entries becomes a draft statement."""" name="note"/>
|
||||||
|
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_draftstatement0"/>
|
<field name="target_node_id" ref="process_node_draftstatement0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_manually0"/>
|
<field name="source_node_id" ref="process_node_manually0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="process_transition_invoiceimport0" model="process.transition">
|
<record id="process_transition_invoiceimport0" model="process.transition">
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Import from invoice or payment"""" name="name"/>
|
<field eval=""""Import from invoice or payment"""" name="name"/>
|
||||||
<field eval=""""Import of the statement in the system from a supplier or customer invoice"""" name="note"/>
|
<field eval=""""Import of the statement in the system from a supplier or customer invoice"""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_draftstatement0"/>
|
<field name="target_node_id" ref="process_node_draftstatement0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_importinvoice0"/>
|
<field name="source_node_id" ref="process_node_importinvoice0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -111,16 +111,16 @@
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""From analytic accounts"""" name="name"/>
|
<field eval=""""From analytic accounts"""" name="name"/>
|
||||||
<field eval=""""Analytic costs (timesheets, some purchased products, ...) come from analytic accounts. These generate draft supplier invoices."""" name="note"/>
|
<field eval=""""Analytic costs (timesheets, some purchased products, ...) come from analytic accounts. These generate draft supplier invoices."""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_supplierdraftinvoices0"/>
|
<field name="target_node_id" ref="process_node_supplierdraftinvoices0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_analyticcost0"/>
|
<field name="source_node_id" ref="process_node_analyticcost0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="process_transition_suppliercustomerinvoice0" model="process.transition">
|
<record id="process_transition_suppliercustomerinvoice0" model="process.transition">
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Validation"""" name="name"/>
|
<field eval=""""Validation"""" name="name"/>
|
||||||
<field eval=""""Draft invoices are validated. """" name="note"/>
|
<field eval=""""Draft invoices are validated. """" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_supplierinvoiceinvoice0"/>
|
<field name="target_node_id" ref="process_node_supplierinvoiceinvoice0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_supplierdraftinvoices0"/>
|
<field name="source_node_id" ref="process_node_supplierdraftinvoices0"/>
|
||||||
<field eval="[(6,0,[ref('account.pro2_to_open')])]" name="transition_ids"/>
|
<field eval="[(6,0,[ref('account.pro2_to_open')])]" name="transition_ids"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
@ -128,40 +128,40 @@
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Validation"""" name="name"/>
|
<field eval=""""Validation"""" name="name"/>
|
||||||
<field eval=""""Accountant validates the accounting entries coming from the invoice. """" name="note"/>
|
<field eval=""""Accountant validates the accounting entries coming from the invoice. """" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_supplieraccountingentries0"/>
|
<field name="target_node_id" ref="process_node_supplieraccountingentries0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_supplierinvoiceinvoice0"/>
|
<field name="source_node_id" ref="process_node_supplierinvoiceinvoice0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="process_transition_supplierentriesreconcile0" model="process.transition">
|
<record id="process_transition_supplierentriesreconcile0" model="process.transition">
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Accounting entries"""" name="name"/>
|
<field eval=""""Accounting entries"""" name="name"/>
|
||||||
<field eval=""""Accounting entries are an input of the reconciliation."""" name="note"/>
|
<field eval=""""Accounting entries are an input of the reconciliation."""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_supplierreconciliation0"/>
|
<field name="target_node_id" ref="process_node_supplierreconciliation0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_supplieraccountingentries0"/>
|
<field name="source_node_id" ref="process_node_supplieraccountingentries0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="process_transition_paymentorderbank0" model="process.transition">
|
<record id="process_transition_paymentorderbank0" model="process.transition">
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Payment entries"""" name="name"/>
|
<field eval=""""Payment entries"""" name="name"/>
|
||||||
<field eval=""""The payment order is sent to the bank."""" name="note"/>
|
<field eval=""""The payment order is sent to the bank."""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_supplierbankstatement0"/>
|
<field name="target_node_id" ref="process_node_supplierbankstatement0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_supplierpaymentorder0"/>
|
<field name="source_node_id" ref="process_node_supplierpaymentorder0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="process_transition_paymentorderreconcilation0" model="process.transition">
|
<record id="process_transition_paymentorderreconcilation0" model="process.transition">
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Validation"""" name="name"/>
|
<field eval=""""Validation"""" name="name"/>
|
||||||
<field eval=""""Bank statements are entered in the system."""" name="note"/>
|
<field eval=""""Bank statements are entered in the system."""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_supplierreconciliation0"/>
|
<field name="target_node_id" ref="process_node_supplierreconciliation0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_supplierbankstatement0"/>
|
<field name="source_node_id" ref="process_node_supplierbankstatement0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="process_transition_supplierreconcilepaid0" model="process.transition">
|
<record id="process_transition_supplierreconcilepaid0" model="process.transition">
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""System payment"""" name="name"/>
|
<field eval=""""System payment"""" name="name"/>
|
||||||
<field eval=""""As soon as the reconciliation is done, the invoice's state turns to “done” (i.e. paid) in the system."""" name="note"/>
|
<field eval=""""As soon as the reconciliation is done, the invoice's state turns to “done” (i.e. paid) in the system."""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_supplierpaidinvoice0"/>
|
<field name="target_node_id" ref="process_node_supplierpaidinvoice0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_supplierreconciliation0"/>
|
<field name="source_node_id" ref="process_node_supplierreconciliation0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -11,11 +11,11 @@
|
||||||
<page string="Accounting" groups="account.group_account_invoice">
|
<page string="Accounting" groups="account.group_account_invoice">
|
||||||
<group name="properties">
|
<group name="properties">
|
||||||
<group>
|
<group>
|
||||||
<field name="property_account_income" domain="[('type','<>','view'),('type','<>','consolidation')]" groups="account.group_account_user"/>
|
<field name="property_account_income" domain="[('type','=','other')]" groups="account.group_account_user"/>
|
||||||
<field name="taxes_id" colspan="2" attrs="{'readonly':[('sale_ok','=',0)]}" widget="many2many_tags"/>
|
<field name="taxes_id" colspan="2" attrs="{'readonly':[('sale_ok','=',0)]}" widget="many2many_tags"/>
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="property_account_expense" domain="[('type','<>','view'),('type','<>','consolidation')]" groups="account.group_account_user"/>
|
<field name="property_account_expense" domain="[('type','=','other')]" groups="account.group_account_user"/>
|
||||||
<field name="supplier_taxes_id" colspan="2" widget="many2many_tags"/>
|
<field name="supplier_taxes_id" colspan="2" widget="many2many_tags"/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
|
|
|
@ -68,6 +68,7 @@
|
||||||
<field name="parent_id" invisible="1"/>
|
<field name="parent_id" invisible="1"/>
|
||||||
<field name="type"/>
|
<field name="type"/>
|
||||||
<field name="company_id" groups="base.group_multi_company"/>
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
|
<field name="template_id" invisible="1"/>
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -99,42 +99,39 @@
|
||||||
<initialize>
|
<initialize>
|
||||||
<paraStyle name="all" alignment="justify"/>
|
<paraStyle name="all" alignment="justify"/>
|
||||||
</initialize>
|
</initialize>
|
||||||
<paraStyle name="Standard" fontName="Helvetica"/>
|
<paraStyle name="Standard"/>
|
||||||
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
<paraStyle name="Text body" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||||
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
<paraStyle name="List" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||||
<paraStyle name="Table Contents" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
<paraStyle name="Table Contents" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||||
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
<paraStyle name="Caption" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
<paraStyle name="Caption" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
|
<paraStyle name="Index"/>
|
||||||
<paraStyle name="Index" fontName="Helvetica"/>
|
|
||||||
<paraStyle name="Heading" fontName="Helvetica" fontSize="15.0" leading="19" spaceBefore="12.0" spaceAfter="6.0"/>
|
<paraStyle name="terp_header" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||||
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
<paraStyle name="terp_default_8" rightIndent="0.0" leftIndent="0.0" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
<paraStyle name="terp_default_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
<paraStyle name="Footer"/>
|
||||||
<paraStyle name="Footer" fontName="Helvetica"/>
|
<paraStyle name="Horizontal Line" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
|
||||||
<paraStyle name="Horizontal Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
|
|
||||||
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
<paraStyle name="terp_tblheader_General" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
<paraStyle name="terp_tblheader_Details" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
<paraStyle name="terp_tblheader_General_Centre" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
<paraStyle name="terp_default_Bold_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
<paraStyle name="terp_tblheader_General_Right" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
|
<paraStyle name="terp_tblheader_Details_Centre" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
|
<paraStyle name="terp_tblheader_Details_Right" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
|
|
||||||
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
|
<paraStyle name="terp_default_Right_8" rightIndent="0.0" leftIndent="0.0" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
<paraStyle name="terp_default_Right_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
<paraStyle name="terp_default_Centre_8" rightIndent="0.0" leftIndent="0.0" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
<paraStyle name="terp_default_Centre_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
<paraStyle name="terp_default_address" rightIndent="0.0" leftIndent="0.0" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
<paraStyle name="terp_default_9" rightIndent="0.0" leftIndent="0.0" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
|
<paraStyle name="terp_default_Bold_9" rightIndent="0.0" leftIndent="-3.0" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
<paraStyle name="terp_default_address" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
<paraStyle name="terp_default_Centre_9" rightIndent="0.0" leftIndent="0.0" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
<paraStyle name="terp_default_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
<paraStyle name="terp_default_Right_9" rightIndent="0.0" leftIndent="0.0" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
<paraStyle name="terp_default_Bold_9" rightIndent="0.0" leftIndent="-3.0" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
<paraStyle name="terp_default_Bold_Right_9" rightIndent="0.0" leftIndent="-3.0" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
<paraStyle name="terp_default_Centre_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
<paraStyle name="terp_default_2" rightIndent="0.0" leftIndent="0.0" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
<paraStyle name="terp_default_Right_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
<paraStyle name="terp_default_White_2" rightIndent="0.0" leftIndent="0.0" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#ffffff"/>
|
||||||
<paraStyle name="terp_default_Bold_Right_9" rightIndent="0.0" leftIndent="-3.0" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
|
||||||
<paraStyle name="terp_default_2" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
<paraStyle name="Table" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
<paraStyle name="terp_default_White_2" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#ffffff"/>
|
<paraStyle name="User Index 10" rightIndent="0.0" leftIndent="127.0"/>
|
||||||
<paraStyle name="terp_default_Note" rightIndent="0.0" leftIndent="9.0" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
<paraStyle name="Preformatted Text" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
<paraStyle name="Table" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
|
|
||||||
<paraStyle name="User Index 10" rightIndent="0.0" leftIndent="127.0" fontName="Helvetica"/>
|
|
||||||
<paraStyle name="Preformatted Text" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="0.0"/>
|
|
||||||
<images/>
|
<images/>
|
||||||
</stylesheet>
|
</stylesheet>
|
||||||
<story>
|
<story>
|
||||||
|
@ -144,12 +141,12 @@
|
||||||
<pto_header><!-- Must be after setLang() -->
|
<pto_header><!-- Must be after setLang() -->
|
||||||
<blockTable colWidths="202.0,87.0,71.0,57.0,42.0,71.0" style="Table7">
|
<blockTable colWidths="202.0,87.0,71.0,57.0,42.0,71.0" style="Table7">
|
||||||
<tr>
|
<tr>
|
||||||
<td> <para style="terp_tblheader_Details">Description</para> </td>
|
<td><para style="terp_tblheader_Details"><b>Description</b></para></td>
|
||||||
<td> <para style="terp_tblheader_Details_Centre">Taxes</para> </td>
|
<td><para style="terp_tblheader_Details_Centre"><b>Taxes</b></para></td>
|
||||||
<td> <para style="terp_tblheader_Details_Centre">Quantity</para> </td>
|
<td><para style="terp_tblheader_Details_Centre"><b>Quantity</b></para></td>
|
||||||
<td> <para style="terp_tblheader_Details_Right">Unit Price </para> </td>
|
<td><para style="terp_tblheader_Details_Right"><b>Unit Price</b></para></td>
|
||||||
<td> <para style="terp_tblheader_Details_Right">Disc.(%)</para> </td>
|
<td><para style="terp_tblheader_Details_Right"><b>Disc.(%)</b></para></td>
|
||||||
<td> <para style="terp_tblheader_Details_Right">Price</para> </td>
|
<td><para style="terp_tblheader_Details_Right"><b>Price</b></para></td>
|
||||||
</tr>
|
</tr>
|
||||||
</blockTable>
|
</blockTable>
|
||||||
</pto_header>
|
</pto_header>
|
||||||
|
@ -172,29 +169,29 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</blockTable>
|
</blockTable>
|
||||||
<para style="terp_header">Invoice [[ ((o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')) or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
|
<para style="terp_header"><b>Invoice [[ ((o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')) or removeParentNode('para')) and '' ]] [[ o.number ]]</b></para>
|
||||||
<para style="terp_header">PRO-FORMA [[ ((o.type == 'out_invoice' and o.state == 'proforma2') or removeParentNode('para')) and '' ]]</para>
|
<para style="terp_header"><b>PRO-FORMA [[ ((o.type == 'out_invoice' and o.state == 'proforma2') or removeParentNode('para')) and '' ]]</b></para>
|
||||||
<para style="terp_header">Draft Invoice [[ ((o.type == 'out_invoice' and o.state == 'draft') or removeParentNode('para')) and '' ]]</para>
|
<para style="terp_header"><b>Draft Invoice [[ ((o.type == 'out_invoice' and o.state == 'draft') or removeParentNode('para')) and '' ]]</b></para>
|
||||||
<para style="terp_header">Cancelled Invoice [[ ((o.type == 'out_invoice' and o.state == 'cancel') or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
|
<para style="terp_header"><b>Cancelled Invoice [[ ((o.type == 'out_invoice' and o.state == 'cancel') or removeParentNode('para')) and '' ]] [[ o.number ]]</b></para>
|
||||||
<para style="terp_header">Refund [[ (o.type=='out_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
|
<para style="terp_header"><b>Refund [[ (o.type=='out_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</b></para>
|
||||||
<para style="terp_header">Supplier Refund [[ (o.type=='in_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
|
<para style="terp_header"><b>Supplier Refund [[ (o.type=='in_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</b></para>
|
||||||
<para style="terp_header">Supplier Invoice [[ (o.type=='in_invoice' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
|
<para style="terp_header"><b>Supplier Invoice [[ (o.type=='in_invoice' or removeParentNode('para')) and '' ]] [[ o.number ]]</b></para>
|
||||||
<para style="terp_default_8">
|
<para style="terp_default_8">
|
||||||
<font color="white"> </font>
|
<font color="white"> </font>
|
||||||
</para>
|
</para>
|
||||||
<blockTable colWidths="132.50,132.50,132.50,132.50" style="Table_Invoice_General_Header">
|
<blockTable colWidths="132.50,132.50,132.50,132.50" style="Table_Invoice_General_Header">
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_tblheader_General_Centre">Description</para>
|
<para style="terp_tblheader_General_Centre"><b>Description</b></para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_tblheader_General_Centre">Invoice Date</para>
|
<para style="terp_tblheader_General_Centre"><b>Invoice Date</b></para>
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<para style="terp_tblheader_General_Centre">Source</para>
|
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_tblheader_General_Centre">Customer Code</para>
|
<para style="terp_tblheader_General_Centre"><b>Source</b></para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_General_Centre"><b>Customer Code</b></para>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</blockTable>
|
</blockTable>
|
||||||
|
@ -220,22 +217,22 @@
|
||||||
<blockTable colWidths="185.0,70.0,80.0,60.0,50.0,85.0" style="Table7">
|
<blockTable colWidths="185.0,70.0,80.0,60.0,50.0,85.0" style="Table7">
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_tblheader_General">Description</para>
|
<para style="terp_tblheader_General"><b>Description</b></para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_tblheader_General_Centre">Taxes</para>
|
<para style="terp_tblheader_General_Centre"><b>Taxes</b></para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_tblheader_General_Right">Quantity</para>
|
<para style="terp_tblheader_General_Right"><b>Quantity</b></para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_tblheader_General_Right">Unit Price</para>
|
<para style="terp_tblheader_General_Right"><b>Unit Price</b></para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_tblheader_General_Right">Disc.(%)</para>
|
<para style="terp_tblheader_General_Right"><b>Disc.(%)</b></para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_tblheader_General_Right">Price</para>
|
<para style="terp_tblheader_General_Right"><b>Price</b></para>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</blockTable>
|
</blockTable>
|
||||||
|
@ -298,10 +295,10 @@
|
||||||
</para>
|
</para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_tblheader_Details">Total:</para>
|
<para style="terp_tblheader_Details"><b>Total:</b></para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_default_Bold_Right_9">[[ formatLang(o.amount_total, digits=get_digits(dp='Account'), currency_obj=o.currency_id) ]]</para>
|
<para style="terp_default_Bold_Right_9"><b>[[ formatLang(o.amount_total, digits=get_digits(dp='Account'), currency_obj=o.currency_id) ]]</b></para>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</blockTable>
|
</blockTable>
|
||||||
|
@ -311,13 +308,13 @@
|
||||||
<blockTable colWidths="205.0,71.0,71.0,183.0" style="Table9">
|
<blockTable colWidths="205.0,71.0,71.0,183.0" style="Table9">
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_tblheader_Details">Tax [[ o.tax_line==[] and removeParentNode('blockTable') ]]</para>
|
<para style="terp_tblheader_Details"><b>Tax [[ o.tax_line==[] and removeParentNode('blockTable') ]]</b></para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_tblheader_Details_Right">Base </para>
|
<para style="terp_tblheader_Details_Right"><b>Base </b></para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_tblheader_Details_Right">Amount </para>
|
<para style="terp_tblheader_Details_Right"><b>Amount </b></para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_default_8">
|
<para style="terp_default_8">
|
||||||
|
@ -361,7 +358,7 @@
|
||||||
<blockTable colWidths="120.0,410.0" style="Table1">
|
<blockTable colWidths="120.0,410.0" style="Table1">
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_default_Bold_9">Fiscal Position Remark : </para>
|
<para style="terp_default_Bold_9"><b>Fiscal Position Remark : </b></para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_default_9">[[ (o.fiscal_position and o.fiscal_position.note and format(o.fiscal_position.note)) or removeParentNode('blockTable') ]]</para>
|
<para style="terp_default_9">[[ (o.fiscal_position and o.fiscal_position.note and format(o.fiscal_position.note)) or removeParentNode('blockTable') ]]</para>
|
||||||
|
|
|
@ -338,4 +338,10 @@ class account_config_settings(osv.osv_memory):
|
||||||
dp = self.pool.get('ir.model.data').get_object(cr, uid, 'product','decimal_account')
|
dp = self.pool.get('ir.model.data').get_object(cr, uid, 'product','decimal_account')
|
||||||
dp.write({'digits': config.decimal_precision})
|
dp.write({'digits': config.decimal_precision})
|
||||||
|
|
||||||
|
def onchange_analytic_accounting(self, cr, uid, ids, analytic_accounting, context=None):
|
||||||
|
if analytic_accounting:
|
||||||
|
return {'value': {
|
||||||
|
'module_account_accountant': True,
|
||||||
|
}}
|
||||||
|
return {}
|
||||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||||
|
|
|
@ -130,7 +130,7 @@
|
||||||
<label for="module_account_accountant"/>
|
<label for="module_account_accountant"/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<field name="group_analytic_accounting" class="oe_inline"/>
|
<field name="group_analytic_accounting" class="oe_inline" on_change="onchange_analytic_accounting(group_analytic_accounting, context)"/>
|
||||||
<label for="group_analytic_accounting"/>
|
<label for="group_analytic_accounting"/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|
|
@ -57,7 +57,7 @@ class validate_account_move_lines(osv.osv_memory):
|
||||||
move_ids.append(line.move_id.id)
|
move_ids.append(line.move_id.id)
|
||||||
move_ids = list(set(move_ids))
|
move_ids = list(set(move_ids))
|
||||||
if not move_ids:
|
if not move_ids:
|
||||||
raise osv.except_osv(_('Warning!'), _('Selected Entry Lines does not have any account move enties in draft state.'))
|
raise osv.except_osv(_('Warning!'), _('Selected Entry Lines does not have any account move entries in draft state.'))
|
||||||
obj_move.button_validate(cr, uid, move_ids, context)
|
obj_move.button_validate(cr, uid, move_ids, context)
|
||||||
return {'type': 'ir.actions.act_window_close'}
|
return {'type': 'ir.actions.act_window_close'}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ class CashBox(osv.osv_memory):
|
||||||
|
|
||||||
records = self.pool[active_model].browse(cr, uid, active_ids, context=context)
|
records = self.pool[active_model].browse(cr, uid, active_ids, context=context)
|
||||||
|
|
||||||
return self._run(cr, uid, ids, records, context=None)
|
return self._run(cr, uid, ids, records, context=context)
|
||||||
|
|
||||||
def _run(self, cr, uid, ids, records, context=None):
|
def _run(self, cr, uid, ids, records, context=None):
|
||||||
for box in self.browse(cr, uid, ids, context=context):
|
for box in self.browse(cr, uid, ids, context=context):
|
||||||
|
|
|
@ -478,7 +478,7 @@ class account_analytic_account(osv.osv):
|
||||||
'remaining_hours': fields.function(_remaining_hours_calc, type='float', string='Remaining Time',
|
'remaining_hours': fields.function(_remaining_hours_calc, type='float', string='Remaining Time',
|
||||||
help="Computed using the formula: Maximum Time - Total Worked Time"),
|
help="Computed using the formula: Maximum Time - Total Worked Time"),
|
||||||
'remaining_hours_to_invoice': fields.function(_remaining_hours_to_invoice_calc, type='float', string='Remaining Time',
|
'remaining_hours_to_invoice': fields.function(_remaining_hours_to_invoice_calc, type='float', string='Remaining Time',
|
||||||
help="Computed using the formula: Maximum Time - Total Invoiced Time"),
|
help="Computed using the formula: Expected on timesheets - Total invoiced on timesheets"),
|
||||||
'fix_price_to_invoice': fields.function(_fix_price_to_invoice_calc, type='float', string='Remaining Time',
|
'fix_price_to_invoice': fields.function(_fix_price_to_invoice_calc, type='float', string='Remaining Time',
|
||||||
help="Sum of quotations for this contract."),
|
help="Sum of quotations for this contract."),
|
||||||
'timesheet_ca_invoiced': fields.function(_timesheet_ca_invoiced_calc, type='float', string='Remaining Time',
|
'timesheet_ca_invoiced': fields.function(_timesheet_ca_invoiced_calc, type='float', string='Remaining Time',
|
||||||
|
@ -653,7 +653,7 @@ class account_analytic_account(osv.osv):
|
||||||
fpos_obj = self.pool.get('account.fiscal.position')
|
fpos_obj = self.pool.get('account.fiscal.position')
|
||||||
|
|
||||||
if not contract.partner_id:
|
if not contract.partner_id:
|
||||||
raise osv.except_osv(_('No Customer Defined !'),_("You must first select a Customer for Contract %s!") % contract.name )
|
raise osv.except_osv(_('No Customer Defined!'),_("You must first select a Customer for Contract %s!") % contract.name )
|
||||||
|
|
||||||
fpos = contract.partner_id.property_account_position.id or False
|
fpos = contract.partner_id.property_account_position.id or False
|
||||||
journal_ids = journal_obj.search(cr, uid, [('type', '=','sale'),('company_id', '=', contract.company_id.id or False)], limit=1)
|
journal_ids = journal_obj.search(cr, uid, [('type', '=','sale'),('company_id', '=', contract.company_id.id or False)], limit=1)
|
||||||
|
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
|
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||||
"PO-Revision-Date: 2011-02-19 12:16+0000\n"
|
"PO-Revision-Date: 2013-05-31 07:35+0000\n"
|
||||||
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:25+0000\n"
|
"X-Launchpad-Export-Date: 2013-06-01 05:16+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16660)\n"
|
||||||
|
|
||||||
#. module: account_analytic_analysis
|
#. module: account_analytic_analysis
|
||||||
#: view:account.analytic.account:0
|
#: view:account.analytic.account:0
|
||||||
|
@ -73,7 +73,7 @@ msgstr ""
|
||||||
#. module: account_analytic_analysis
|
#. module: account_analytic_analysis
|
||||||
#: view:account.analytic.account:0
|
#: view:account.analytic.account:0
|
||||||
msgid "⇒ Invoice"
|
msgid "⇒ Invoice"
|
||||||
msgstr ""
|
msgstr "⇒ Счет"
|
||||||
|
|
||||||
#. module: account_analytic_analysis
|
#. module: account_analytic_analysis
|
||||||
#: field:account.analytic.account,ca_invoiced:0
|
#: field:account.analytic.account,ca_invoiced:0
|
||||||
|
@ -196,6 +196,8 @@ msgid ""
|
||||||
"{'required': [('type','=','contract')], 'invisible': [('type','in',['view', "
|
"{'required': [('type','=','contract')], 'invisible': [('type','in',['view', "
|
||||||
"'normal','template'])]}"
|
"'normal','template'])]}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"{'required': [('type','=','contract')], 'invisible': [('type','in',['view', "
|
||||||
|
"'normal','template'])]}"
|
||||||
|
|
||||||
#. module: account_analytic_analysis
|
#. module: account_analytic_analysis
|
||||||
#: field:account.analytic.account,real_margin_rate:0
|
#: field:account.analytic.account,real_margin_rate:0
|
||||||
|
@ -335,7 +337,7 @@ msgstr "Теоретическая выручка"
|
||||||
#. module: account_analytic_analysis
|
#. module: account_analytic_analysis
|
||||||
#: view:account.analytic.account:0
|
#: view:account.analytic.account:0
|
||||||
msgid "To Renew"
|
msgid "To Renew"
|
||||||
msgstr ""
|
msgstr "К продлению"
|
||||||
|
|
||||||
#. module: account_analytic_analysis
|
#. module: account_analytic_analysis
|
||||||
#: view:account.analytic.account:0
|
#: view:account.analytic.account:0
|
||||||
|
@ -431,7 +433,7 @@ msgstr ""
|
||||||
#. module: account_analytic_analysis
|
#. module: account_analytic_analysis
|
||||||
#: field:account.analytic.account,toinvoice_total:0
|
#: field:account.analytic.account,toinvoice_total:0
|
||||||
msgid "Total to Invoice"
|
msgid "Total to Invoice"
|
||||||
msgstr ""
|
msgstr "Всего в счет"
|
||||||
|
|
||||||
#. module: account_analytic_analysis
|
#. module: account_analytic_analysis
|
||||||
#: view:account.analytic.account:0
|
#: view:account.analytic.account:0
|
||||||
|
@ -546,18 +548,18 @@ msgstr "Дата последней операции по этому счету.
|
||||||
#. module: account_analytic_analysis
|
#. module: account_analytic_analysis
|
||||||
#: model:ir.model,name:account_analytic_analysis.model_sale_config_settings
|
#: model:ir.model,name:account_analytic_analysis.model_sale_config_settings
|
||||||
msgid "sale.config.settings"
|
msgid "sale.config.settings"
|
||||||
msgstr ""
|
msgstr "sale.config.settings"
|
||||||
|
|
||||||
#. module: account_analytic_analysis
|
#. module: account_analytic_analysis
|
||||||
#: field:sale.config.settings,group_template_required:0
|
#: field:sale.config.settings,group_template_required:0
|
||||||
msgid "Mandatory use of templates."
|
msgid "Mandatory use of templates."
|
||||||
msgstr ""
|
msgstr "Обязательное использование шаблонов."
|
||||||
|
|
||||||
#. module: account_analytic_analysis
|
#. module: account_analytic_analysis
|
||||||
#: model:ir.actions.act_window,name:account_analytic_analysis.template_of_contract_action
|
#: model:ir.actions.act_window,name:account_analytic_analysis.template_of_contract_action
|
||||||
#: model:ir.ui.menu,name:account_analytic_analysis.menu_template_of_contract_action
|
#: model:ir.ui.menu,name:account_analytic_analysis.menu_template_of_contract_action
|
||||||
msgid "Contract Template"
|
msgid "Contract Template"
|
||||||
msgstr ""
|
msgstr "Шаблон контракта"
|
||||||
|
|
||||||
#. module: account_analytic_analysis
|
#. module: account_analytic_analysis
|
||||||
#: view:account.analytic.account:0
|
#: view:account.analytic.account:0
|
||||||
|
@ -612,7 +614,7 @@ msgstr ""
|
||||||
#. module: account_analytic_analysis
|
#. module: account_analytic_analysis
|
||||||
#: view:account.analytic.account:0
|
#: view:account.analytic.account:0
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr ""
|
msgstr "Итого"
|
||||||
|
|
||||||
#~ msgid "Hours summary by user"
|
#~ msgid "Hours summary by user"
|
||||||
#~ msgstr "Итого часов по пользователям"
|
#~ msgstr "Итого часов по пользователям"
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
<record id="analytic_default_comp_rule" model="ir.rule">
|
<record id="analytic_default_comp_rule" model="ir.rule">
|
||||||
<field name="name">Analytic Default multi company rule</field>
|
<field name="name">Analytic Default multi company rule</field>
|
||||||
<field model="ir.model" name="model_id" ref="model_account_analytic_default"/>
|
<field name="model_id" ref="model_account_analytic_default"/>
|
||||||
<field eval="True" name="global"/>
|
<field eval="True" name="global"/>
|
||||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -332,7 +332,7 @@ class account_move_line(osv.osv):
|
||||||
for line in self.browse(cr, uid, ids, context=context):
|
for line in self.browse(cr, uid, ids, context=context):
|
||||||
if line.analytics_id:
|
if line.analytics_id:
|
||||||
if not line.journal_id.analytic_journal_id:
|
if not line.journal_id.analytic_journal_id:
|
||||||
raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal.") % (line.journal_id.name,))
|
raise osv.except_osv(_('No Analytic Journal!'),_("You have to define an analytic journal on the '%s' journal.") % (line.journal_id.name,))
|
||||||
|
|
||||||
toremove = analytic_line_obj.search(cr, uid, [('move_id','=',line.id)], context=context)
|
toremove = analytic_line_obj.search(cr, uid, [('move_id','=',line.id)], context=context)
|
||||||
if toremove:
|
if toremove:
|
||||||
|
@ -471,7 +471,7 @@ class account_bank_statement(osv.osv):
|
||||||
for st_line in st.line_ids:
|
for st_line in st.line_ids:
|
||||||
if st_line.analytics_id:
|
if st_line.analytics_id:
|
||||||
if not st.journal_id.analytic_journal_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 define an analytic journal on the '%s' journal.") % (st.journal_id.name,))
|
||||||
if not st_line.amount:
|
if not st_line.amount:
|
||||||
continue
|
continue
|
||||||
return True
|
return True
|
||||||
|
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
"PO-Revision-Date: 2012-12-28 10:00+0000\n"
|
"PO-Revision-Date: 2013-05-31 07:41+0000\n"
|
||||||
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:26+0000\n"
|
"X-Launchpad-Export-Date: 2013-06-01 05:16+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16660)\n"
|
||||||
|
|
||||||
#. module: account_analytic_plans
|
#. module: account_analytic_plans
|
||||||
#: field:account.analytic.plan.instance,account4_ids:0
|
#: field:account.analytic.plan.instance,account4_ids:0
|
||||||
|
@ -48,7 +48,7 @@ msgstr "Ставка (%)"
|
||||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:234
|
#: code:addons/account_analytic_plans/account_analytic_plans.py:234
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "The total should be between %s and %s."
|
msgid "The total should be between %s and %s."
|
||||||
msgstr ""
|
msgstr "Итог должен быть между %s и %s."
|
||||||
|
|
||||||
#. module: account_analytic_plans
|
#. module: account_analytic_plans
|
||||||
#: view:account.analytic.plan:0
|
#: view:account.analytic.plan:0
|
||||||
|
@ -131,7 +131,7 @@ msgstr "Не показывать пустые строки"
|
||||||
#: code:addons/account_analytic_plans/wizard/account_crossovered_analytic.py:61
|
#: code:addons/account_analytic_plans/wizard/account_crossovered_analytic.py:61
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "There are no analytic lines related to account %s."
|
msgid "There are no analytic lines related to account %s."
|
||||||
msgstr ""
|
msgstr "Нет позиций аналитики относящихся к счету %s."
|
||||||
|
|
||||||
#. module: account_analytic_plans
|
#. module: account_analytic_plans
|
||||||
#: field:account.analytic.plan.instance,account3_ids:0
|
#: field:account.analytic.plan.instance,account3_ids:0
|
||||||
|
@ -315,7 +315,7 @@ msgstr "Журнал аналитики"
|
||||||
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:38
|
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:38
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Please put a name and a code before saving the model."
|
msgid "Please put a name and a code before saving the model."
|
||||||
msgstr ""
|
msgstr "Пожалуйста, введите имя и код перед сохранением модели."
|
||||||
|
|
||||||
#. module: account_analytic_plans
|
#. module: account_analytic_plans
|
||||||
#: report:account.analytic.account.crossovered.analytic:0
|
#: report:account.analytic.account.crossovered.analytic:0
|
||||||
|
@ -347,7 +347,7 @@ msgstr "Журнал"
|
||||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:486
|
#: code:addons/account_analytic_plans/account_analytic_plans.py:486
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You have to define an analytic journal on the '%s' journal."
|
msgid "You have to define an analytic journal on the '%s' journal."
|
||||||
msgstr ""
|
msgstr "Вы должны определить журнал аналитики для журнала '%s'"
|
||||||
|
|
||||||
#. module: account_analytic_plans
|
#. module: account_analytic_plans
|
||||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:342
|
#: code:addons/account_analytic_plans/account_analytic_plans.py:342
|
||||||
|
@ -375,7 +375,7 @@ msgstr "Позиция счета"
|
||||||
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:41
|
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:41
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "There is no analytic plan defined."
|
msgid "There is no analytic plan defined."
|
||||||
msgstr ""
|
msgstr "Аналитический план счетов не определен."
|
||||||
|
|
||||||
#. module: account_analytic_plans
|
#. module: account_analytic_plans
|
||||||
#: model:ir.model,name:account_analytic_plans.model_account_bank_statement
|
#: model:ir.model,name:account_analytic_plans.model_account_bank_statement
|
||||||
|
@ -402,7 +402,7 @@ msgstr "Разнесение аналитики"
|
||||||
#: code:addons/account_analytic_plans/account_analytic_plans.py:221
|
#: code:addons/account_analytic_plans/account_analytic_plans.py:221
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "A model with this name and code already exists."
|
msgid "A model with this name and code already exists."
|
||||||
msgstr ""
|
msgstr "Модель с таким названием и кодом уже существует."
|
||||||
|
|
||||||
#. module: account_analytic_plans
|
#. module: account_analytic_plans
|
||||||
#: help:account.analytic.plan.line,root_analytic_id:0
|
#: help:account.analytic.plan.line,root_analytic_id:0
|
||||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||||
"PO-Revision-Date: 2011-07-12 12:04+0000\n"
|
"PO-Revision-Date: 2013-05-31 08:06+0000\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: Russian <ru@li.org>\n"
|
"Language-Team: Russian <ru@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:50+0000\n"
|
"X-Launchpad-Export-Date: 2013-06-01 05:16+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16660)\n"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: view:account.asset.asset:0
|
#: view:account.asset.asset:0
|
||||||
|
@ -148,7 +148,7 @@ msgstr ""
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: help:account.asset.asset,method_period:0
|
#: help:account.asset.asset,method_period:0
|
||||||
msgid "The amount of time between two depreciations, in months"
|
msgid "The amount of time between two depreciations, in months"
|
||||||
msgstr ""
|
msgstr "Количество времени между амортизациями, в месяцах"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.depreciation.line,depreciation_date:0
|
#: field:account.asset.depreciation.line,depreciation_date:0
|
||||||
|
@ -160,7 +160,7 @@ msgstr "Дата амортизации"
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: constraint:account.asset.asset:0
|
#: constraint:account.asset.asset:0
|
||||||
msgid "Error ! You cannot create recursive assets."
|
msgid "Error ! You cannot create recursive assets."
|
||||||
msgstr ""
|
msgstr "Ошибка! Нельзя создавать рекурсивные активы."
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:asset.asset.report,posted_value:0
|
#: field:asset.asset.report,posted_value:0
|
||||||
|
@ -205,7 +205,7 @@ msgstr "# позиций амортизации"
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.asset,method_period:0
|
#: field:account.asset.asset,method_period:0
|
||||||
msgid "Number of Months in a Period"
|
msgid "Number of Months in a Period"
|
||||||
msgstr ""
|
msgstr "Количество месяцев в периоде"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: view:asset.asset.report:0
|
#: view:asset.asset.report:0
|
||||||
|
@ -234,7 +234,7 @@ msgstr "Счет активов"
|
||||||
#: model:ir.actions.act_window,name:account_asset.action_asset_depreciation_confirmation_wizard
|
#: model:ir.actions.act_window,name:account_asset.action_asset_depreciation_confirmation_wizard
|
||||||
#: model:ir.ui.menu,name:account_asset.menu_asset_depreciation_confirmation_wizard
|
#: model:ir.ui.menu,name:account_asset.menu_asset_depreciation_confirmation_wizard
|
||||||
msgid "Compute Assets"
|
msgid "Compute Assets"
|
||||||
msgstr ""
|
msgstr "Вычислить активы"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.category,method_period:0
|
#: field:account.asset.category,method_period:0
|
||||||
|
@ -265,12 +265,12 @@ msgstr "Изменить длительность"
|
||||||
#: help:account.asset.category,method_number:0
|
#: help:account.asset.category,method_number:0
|
||||||
#: help:account.asset.history,method_number:0
|
#: help:account.asset.history,method_number:0
|
||||||
msgid "The number of depreciations needed to depreciate your asset"
|
msgid "The number of depreciations needed to depreciate your asset"
|
||||||
msgstr ""
|
msgstr "Количество амортизаций необходимых для обесценивания актива"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: view:account.asset.category:0
|
#: view:account.asset.category:0
|
||||||
msgid "Analytic Information"
|
msgid "Analytic Information"
|
||||||
msgstr ""
|
msgstr "Аналитическая информация"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.category,account_analytic_id:0
|
#: field:account.asset.category,account_analytic_id:0
|
||||||
|
@ -293,7 +293,7 @@ msgstr ""
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.depreciation.line,remaining_value:0
|
#: field:account.asset.depreciation.line,remaining_value:0
|
||||||
msgid "Next Period Depreciation"
|
msgid "Next Period Depreciation"
|
||||||
msgstr ""
|
msgstr "Следующий период амортизации"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: help:account.asset.history,method_period:0
|
#: help:account.asset.history,method_period:0
|
||||||
|
@ -344,7 +344,7 @@ msgstr "Поиск категории актива"
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: view:asset.modify:0
|
#: view:asset.modify:0
|
||||||
msgid "months"
|
msgid "months"
|
||||||
msgstr ""
|
msgstr "месяцы"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: model:ir.model,name:account_asset.model_account_invoice_line
|
#: model:ir.model,name:account_asset.model_account_invoice_line
|
||||||
|
@ -372,7 +372,7 @@ msgstr ""
|
||||||
#: view:asset.depreciation.confirmation.wizard:0
|
#: view:asset.depreciation.confirmation.wizard:0
|
||||||
#: view:asset.modify:0
|
#: view:asset.modify:0
|
||||||
msgid "or"
|
msgid "or"
|
||||||
msgstr ""
|
msgstr "или"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.asset,note:0
|
#: field:account.asset.asset,note:0
|
||||||
|
@ -406,7 +406,7 @@ msgstr ""
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: view:asset.asset.report:0
|
#: view:asset.asset.report:0
|
||||||
msgid "Assets in running state"
|
msgid "Assets in running state"
|
||||||
msgstr ""
|
msgstr "Активы в рабочем состоянии"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: view:account.asset.asset:0
|
#: view:account.asset.asset:0
|
||||||
|
@ -427,7 +427,7 @@ msgstr ""
|
||||||
#: field:account.asset.asset,state:0
|
#: field:account.asset.asset,state:0
|
||||||
#: field:asset.asset.report,state:0
|
#: field:asset.asset.report,state:0
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr ""
|
msgstr "Статус"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.asset,partner_id:0
|
#: field:account.asset.asset,partner_id:0
|
||||||
|
@ -474,12 +474,12 @@ msgstr "Вычислить"
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: view:account.asset.history:0
|
#: view:account.asset.history:0
|
||||||
msgid "Asset History"
|
msgid "Asset History"
|
||||||
msgstr ""
|
msgstr "История актива"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: model:ir.model,name:account_asset.model_asset_depreciation_confirmation_wizard
|
#: model:ir.model,name:account_asset.model_asset_depreciation_confirmation_wizard
|
||||||
msgid "asset.depreciation.confirmation.wizard"
|
msgid "asset.depreciation.confirmation.wizard"
|
||||||
msgstr ""
|
msgstr "asset.depreciation.confirmation.wizard"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.asset,active:0
|
#: field:account.asset.asset,active:0
|
||||||
|
@ -505,7 +505,7 @@ msgstr "История"
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: view:asset.depreciation.confirmation.wizard:0
|
#: view:asset.depreciation.confirmation.wizard:0
|
||||||
msgid "Compute Asset"
|
msgid "Compute Asset"
|
||||||
msgstr ""
|
msgstr "Вычислить актив"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:asset.depreciation.confirmation.wizard,period_id:0
|
#: field:asset.depreciation.confirmation.wizard,period_id:0
|
||||||
|
@ -521,7 +521,7 @@ msgstr "Общий"
|
||||||
#: field:account.asset.asset,prorata:0
|
#: field:account.asset.asset,prorata:0
|
||||||
#: field:account.asset.category,prorata:0
|
#: field:account.asset.category,prorata:0
|
||||||
msgid "Prorata Temporis"
|
msgid "Prorata Temporis"
|
||||||
msgstr ""
|
msgstr "По истечении срока"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: model:ir.model,name:account_asset.model_account_invoice
|
#: model:ir.model,name:account_asset.model_account_invoice
|
||||||
|
@ -553,7 +553,7 @@ msgstr "Элементы журнала"
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: view:asset.modify:0
|
#: view:asset.modify:0
|
||||||
msgid "Asset Durations to Modify"
|
msgid "Asset Durations to Modify"
|
||||||
msgstr ""
|
msgstr "Актив - интервал времени для изменения"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.asset,purchase_date:0
|
#: field:account.asset.asset,purchase_date:0
|
||||||
|
@ -574,6 +574,8 @@ msgid ""
|
||||||
"Choose the period for which you want to automatically post the depreciation "
|
"Choose the period for which you want to automatically post the depreciation "
|
||||||
"lines of running assets"
|
"lines of running assets"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Выберите период, за который вы хотите автоматически создавать записи "
|
||||||
|
"амортизации для актива"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: view:account.asset.asset:0
|
#: view:account.asset.asset:0
|
||||||
|
@ -588,12 +590,12 @@ msgstr "Метод амортизации"
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.depreciation.line,amount:0
|
#: field:account.asset.depreciation.line,amount:0
|
||||||
msgid "Current Depreciation"
|
msgid "Current Depreciation"
|
||||||
msgstr ""
|
msgstr "Текущая аммортизация"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.asset,name:0
|
#: field:account.asset.asset,name:0
|
||||||
msgid "Asset Name"
|
msgid "Asset Name"
|
||||||
msgstr ""
|
msgstr "Название актива"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.category,open_asset:0
|
#: field:account.asset.category,open_asset:0
|
||||||
|
@ -618,7 +620,7 @@ msgstr "Журнал"
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.history,name:0
|
#: field:account.asset.history,name:0
|
||||||
msgid "History name"
|
msgid "History name"
|
||||||
msgstr ""
|
msgstr "Название истории"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.depreciation.line,depreciated_value:0
|
#: field:account.asset.depreciation.line,depreciated_value:0
|
||||||
|
@ -657,7 +659,7 @@ msgstr ""
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.asset,purchase_value:0
|
#: field:account.asset.asset,purchase_value:0
|
||||||
msgid "Gross Value"
|
msgid "Gross Value"
|
||||||
msgstr ""
|
msgstr "Валовая стоимость"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.category,name:0
|
#: field:account.asset.category,name:0
|
||||||
|
@ -703,12 +705,12 @@ msgstr ""
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.depreciation.line,sequence:0
|
#: field:account.asset.depreciation.line,sequence:0
|
||||||
msgid "Sequence"
|
msgid "Sequence"
|
||||||
msgstr ""
|
msgstr "Нумерация"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: help:account.asset.category,method_period:0
|
#: help:account.asset.category,method_period:0
|
||||||
msgid "State here the time between 2 depreciations, in months"
|
msgid "State here the time between 2 depreciations, in months"
|
||||||
msgstr ""
|
msgstr "Время между двумя амортизациями в месяцах"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: field:account.asset.history,date:0
|
#: field:account.asset.history,date:0
|
||||||
|
@ -729,7 +731,7 @@ msgstr "Число амортизаций"
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: view:account.asset.asset:0
|
#: view:account.asset.asset:0
|
||||||
msgid "Create Move"
|
msgid "Create Move"
|
||||||
msgstr ""
|
msgstr "Создать перемещение"
|
||||||
|
|
||||||
#. module: account_asset
|
#. module: account_asset
|
||||||
#: view:account.asset.asset:0
|
#: view:account.asset.asset:0
|
||||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
"PO-Revision-Date: 2012-12-11 13:00+0000\n"
|
"PO-Revision-Date: 2013-06-03 07:47+0000\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: Russian <ru@li.org>\n"
|
"Language-Team: Russian <ru@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
|
"X-Launchpad-Export-Date: 2013-06-04 05:20+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16660)\n"
|
||||||
|
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: selection:res.company,check_layout:0
|
#: selection:res.company,check_layout:0
|
||||||
|
@ -25,13 +25,13 @@ msgstr ""
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: report:account.print.check.top:0
|
#: report:account.print.check.top:0
|
||||||
msgid "Open Balance"
|
msgid "Open Balance"
|
||||||
msgstr ""
|
msgstr "Открытый баланс"
|
||||||
|
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: view:account.check.write:0
|
#: view:account.check.write:0
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
msgid "Print Check"
|
msgid "Print Check"
|
||||||
msgstr ""
|
msgstr "Напечатать чек"
|
||||||
|
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: selection:res.company,check_layout:0
|
#: selection:res.company,check_layout:0
|
||||||
|
@ -82,7 +82,7 @@ msgstr "Описание"
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: model:ir.model,name:account_check_writing.model_account_journal
|
#: model:ir.model,name:account_check_writing.model_account_journal
|
||||||
msgid "Journal"
|
msgid "Journal"
|
||||||
msgstr ""
|
msgstr "Журнал"
|
||||||
|
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: model:ir.actions.act_window,name:account_check_writing.action_write_check
|
#: model:ir.actions.act_window,name:account_check_writing.action_write_check
|
||||||
|
@ -95,14 +95,14 @@ msgstr ""
|
||||||
#: report:account.print.check.middle:0
|
#: report:account.print.check.middle:0
|
||||||
#: report:account.print.check.top:0
|
#: report:account.print.check.top:0
|
||||||
msgid "Discount"
|
msgid "Discount"
|
||||||
msgstr ""
|
msgstr "Скидка"
|
||||||
|
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: report:account.print.check.bottom:0
|
#: report:account.print.check.bottom:0
|
||||||
#: report:account.print.check.middle:0
|
#: report:account.print.check.middle:0
|
||||||
#: report:account.print.check.top:0
|
#: report:account.print.check.top:0
|
||||||
msgid "Original Amount"
|
msgid "Original Amount"
|
||||||
msgstr ""
|
msgstr "Первоначальная сумма"
|
||||||
|
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: field:res.company,check_layout:0
|
#: field:res.company,check_layout:0
|
||||||
|
@ -119,7 +119,7 @@ msgstr ""
|
||||||
#: report:account.print.check.middle:0
|
#: report:account.print.check.middle:0
|
||||||
#: report:account.print.check.top:0
|
#: report:account.print.check.top:0
|
||||||
msgid "Payment"
|
msgid "Payment"
|
||||||
msgstr ""
|
msgstr "Платеж"
|
||||||
|
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: field:account.journal,use_preprint_check:0
|
#: field:account.journal,use_preprint_check:0
|
||||||
|
@ -153,7 +153,7 @@ msgstr ""
|
||||||
#: report:account.print.check.middle:0
|
#: report:account.print.check.middle:0
|
||||||
#: report:account.print.check.top:0
|
#: report:account.print.check.top:0
|
||||||
msgid "Due Date"
|
msgid "Due Date"
|
||||||
msgstr ""
|
msgstr "Дата исполнения"
|
||||||
|
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_middle
|
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_middle
|
||||||
|
@ -163,13 +163,13 @@ msgstr ""
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: model:ir.model,name:account_check_writing.model_res_company
|
#: model:ir.model,name:account_check_writing.model_res_company
|
||||||
msgid "Companies"
|
msgid "Companies"
|
||||||
msgstr ""
|
msgstr "Компании"
|
||||||
|
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: code:addons/account_check_writing/wizard/account_check_batch_printing.py:59
|
#: code:addons/account_check_writing/wizard/account_check_batch_printing.py:59
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Error!"
|
msgid "Error!"
|
||||||
msgstr ""
|
msgstr "Ошибка!"
|
||||||
|
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: help:account.check.write,check_number:0
|
#: help:account.check.write,check_number:0
|
||||||
|
@ -202,12 +202,12 @@ msgstr ""
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: view:account.check.write:0
|
#: view:account.check.write:0
|
||||||
msgid "or"
|
msgid "or"
|
||||||
msgstr ""
|
msgstr "или"
|
||||||
|
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: field:account.voucher,amount_in_word:0
|
#: field:account.voucher,amount_in_word:0
|
||||||
msgid "Amount in Word"
|
msgid "Amount in Word"
|
||||||
msgstr ""
|
msgstr "Сумма прописью"
|
||||||
|
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: model:ir.model,name:account_check_writing.model_account_check_write
|
#: model:ir.model,name:account_check_writing.model_account_check_write
|
||||||
|
@ -217,7 +217,7 @@ msgstr ""
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: view:account.check.write:0
|
#: view:account.check.write:0
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr ""
|
msgstr "Отмена"
|
||||||
|
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: field:account.check.write,check_number:0
|
#: field:account.check.write,check_number:0
|
||||||
|
|
|
@ -9,11 +9,12 @@
|
||||||
<field name="model">res.partner</field>
|
<field name="model">res.partner</field>
|
||||||
<field name="priority" eval="20"/>
|
<field name="priority" eval="20"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Customer Followup">
|
<tree string="Customer Followup" create="false" delete="false">
|
||||||
<field name="display_name"/>
|
<field name="display_name"/>
|
||||||
<field name="payment_next_action_date"/>
|
<field name="payment_next_action_date"/>
|
||||||
<field name="payment_next_action"/>
|
<field name="payment_next_action"/>
|
||||||
<field name="user_id" invisible="1"/>
|
<field name="user_id" invisible="1"/>
|
||||||
|
<field name="country_id" invisible="1"/>
|
||||||
<field name="parent_id" invisible="1"/>
|
<field name="parent_id" invisible="1"/>
|
||||||
<field name="payment_responsible_id"/>
|
<field name="payment_responsible_id"/>
|
||||||
<field name="payment_earliest_due_date"/>
|
<field name="payment_earliest_due_date"/>
|
||||||
|
@ -97,7 +98,7 @@
|
||||||
<button name="action_done" type="object" string="⇾ Mark as Done"
|
<button name="action_done" type="object" string="⇾ Mark as Done"
|
||||||
help="Click to mark the action as done." class="oe_link"
|
help="Click to mark the action as done." class="oe_link"
|
||||||
attrs="{'invisible':[('payment_next_action_date','=', False)]}"
|
attrs="{'invisible':[('payment_next_action_date','=', False)]}"
|
||||||
groups="base.group_partner_manager"/>
|
groups="account.group_account_user"/>
|
||||||
<field name="payment_next_action" placeholder="Action to be taken e.g. Give a phonecall, Check if it's paid, ..."/>
|
<field name="payment_next_action" placeholder="Action to be taken e.g. Give a phonecall, Check if it's paid, ..."/>
|
||||||
</div>
|
</div>
|
||||||
</group>
|
</group>
|
||||||
|
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
"PO-Revision-Date: 2011-11-11 15:21+0000\n"
|
"PO-Revision-Date: 2013-05-31 10:28+0000\n"
|
||||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:11+0000\n"
|
"X-Launchpad-Export-Date: 2013-06-01 05:16+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16660)\n"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: model:email.template,subject:account_followup.email_template_account_followup_default
|
#: model:email.template,subject:account_followup.email_template_account_followup_default
|
||||||
|
@ -22,7 +22,7 @@ msgstr ""
|
||||||
#: model:email.template,subject:account_followup.email_template_account_followup_level1
|
#: model:email.template,subject:account_followup.email_template_account_followup_level1
|
||||||
#: model:email.template,subject:account_followup.email_template_account_followup_level2
|
#: model:email.template,subject:account_followup.email_template_account_followup_level2
|
||||||
msgid "${user.company_id.name} Payment Reminder"
|
msgid "${user.company_id.name} Payment Reminder"
|
||||||
msgstr ""
|
msgstr "${user.company_id.name} напоминание о платеже"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: help:res.partner,latest_followup_level_id:0
|
#: help:res.partner,latest_followup_level_id:0
|
||||||
|
@ -43,12 +43,12 @@ msgstr "Дальнейшие действия"
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: view:account_followup.followup.line:0
|
#: view:account_followup.followup.line:0
|
||||||
msgid "%(date)s"
|
msgid "%(date)s"
|
||||||
msgstr ""
|
msgstr "%(date)s"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: field:res.partner,payment_next_action_date:0
|
#: field:res.partner,payment_next_action_date:0
|
||||||
msgid "Next Action Date"
|
msgid "Next Action Date"
|
||||||
msgstr ""
|
msgstr "Дата следующего действия"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: view:account_followup.followup.line:0
|
#: view:account_followup.followup.line:0
|
||||||
|
@ -64,7 +64,7 @@ msgstr ""
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: view:res.partner:0
|
#: view:res.partner:0
|
||||||
msgid "⇾ Mark as Done"
|
msgid "⇾ Mark as Done"
|
||||||
msgstr ""
|
msgstr "⇾ отметить как сделанное"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: field:account_followup.followup.line,manual_action_note:0
|
#: field:account_followup.followup.line,manual_action_note:0
|
||||||
|
@ -94,7 +94,7 @@ msgstr "Тема эл.письма"
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: view:account_followup.followup.line:0
|
#: view:account_followup.followup.line:0
|
||||||
msgid "%(user_signature)s"
|
msgid "%(user_signature)s"
|
||||||
msgstr ""
|
msgstr "%(user_signature)s"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: view:account_followup.followup.line:0
|
#: view:account_followup.followup.line:0
|
||||||
|
@ -109,19 +109,19 @@ msgstr ""
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: field:account_followup.print,email_body:0
|
#: field:account_followup.print,email_body:0
|
||||||
msgid "Email Body"
|
msgid "Email Body"
|
||||||
msgstr ""
|
msgstr "Тело эл. письма"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: model:ir.actions.act_window,name:account_followup.action_account_followup_print
|
#: model:ir.actions.act_window,name:account_followup.action_account_followup_print
|
||||||
msgid "Send Follow-Ups"
|
msgid "Send Follow-Ups"
|
||||||
msgstr ""
|
msgstr "Послать напоминания"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: report:account_followup.followup.print:0
|
#: report:account_followup.followup.print:0
|
||||||
#: code:addons/account_followup/account_followup.py:263
|
#: code:addons/account_followup/account_followup.py:263
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Amount"
|
msgid "Amount"
|
||||||
msgstr ""
|
msgstr "Сумма"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: help:res.partner,payment_next_action:0
|
#: help:res.partner,payment_next_action:0
|
||||||
|
@ -133,7 +133,7 @@ msgstr ""
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: view:res.partner:0
|
#: view:res.partner:0
|
||||||
msgid "No Responsible"
|
msgid "No Responsible"
|
||||||
msgstr ""
|
msgstr "Нет ответственного"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: model:account_followup.followup.line,description:account_followup.demo_followup_line2
|
#: model:account_followup.followup.line,description:account_followup.demo_followup_line2
|
||||||
|
@ -209,17 +209,17 @@ msgstr "Всего по дебету"
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: field:res.partner,payment_next_action:0
|
#: field:res.partner,payment_next_action:0
|
||||||
msgid "Next Action"
|
msgid "Next Action"
|
||||||
msgstr ""
|
msgstr "Следующее действие"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: view:account_followup.followup.line:0
|
#: view:account_followup.followup.line:0
|
||||||
msgid ": Partner Name"
|
msgid ": Partner Name"
|
||||||
msgstr ""
|
msgstr ": Название партнера"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: field:account_followup.followup.line,manual_action_responsible_id:0
|
#: field:account_followup.followup.line,manual_action_responsible_id:0
|
||||||
msgid "Assign a Responsible"
|
msgid "Assign a Responsible"
|
||||||
msgstr ""
|
msgstr "Назначить ответственного"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: view:account_followup.followup:0
|
#: view:account_followup.followup:0
|
||||||
|
@ -305,7 +305,7 @@ msgstr ""
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: view:account_followup.followup.line:0
|
#: view:account_followup.followup.line:0
|
||||||
msgid "%(partner_name)s"
|
msgid "%(partner_name)s"
|
||||||
msgstr ""
|
msgstr "%(partner_name)s"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: model:email.template,body_html:account_followup.email_template_account_followup_level1
|
#: model:email.template,body_html:account_followup.email_template_account_followup_level1
|
||||||
|
@ -377,7 +377,7 @@ msgstr "Определяет порядок вывода списка напом
|
||||||
#: code:addons/account_followup/wizard/account_followup_print.py:166
|
#: code:addons/account_followup/wizard/account_followup_print.py:166
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid " will be sent"
|
msgid " will be sent"
|
||||||
msgstr ""
|
msgstr " будет отправлен"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: view:account_followup.followup.line:0
|
#: view:account_followup.followup.line:0
|
||||||
|
@ -388,7 +388,7 @@ msgstr ""
|
||||||
#: view:account_followup.followup.line:0
|
#: view:account_followup.followup.line:0
|
||||||
#: field:account_followup.followup.line,send_letter:0
|
#: field:account_followup.followup.line,send_letter:0
|
||||||
msgid "Send a Letter"
|
msgid "Send a Letter"
|
||||||
msgstr ""
|
msgstr "Отправить письмо"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: model:ir.actions.act_window,name:account_followup.action_account_followup_definition_form
|
#: model:ir.actions.act_window,name:account_followup.action_account_followup_definition_form
|
||||||
|
@ -466,7 +466,7 @@ msgstr "Напечатанное сообщение"
|
||||||
#: code:addons/account_followup/wizard/account_followup_print.py:155
|
#: code:addons/account_followup/wizard/account_followup_print.py:155
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Anybody"
|
msgid "Anybody"
|
||||||
msgstr ""
|
msgstr "Кто угодно"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: help:account_followup.followup.line,send_email:0
|
#: help:account_followup.followup.line,send_email:0
|
||||||
|
@ -528,7 +528,7 @@ msgstr ""
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: view:res.partner:0
|
#: view:res.partner:0
|
||||||
msgid "Search Partner"
|
msgid "Search Partner"
|
||||||
msgstr ""
|
msgstr "Поиск партнера"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: model:ir.ui.menu,name:account_followup.account_followup_print_menu
|
#: model:ir.ui.menu,name:account_followup.account_followup_print_menu
|
||||||
|
@ -554,7 +554,7 @@ msgstr ""
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: view:account_followup.print:0
|
#: view:account_followup.print:0
|
||||||
msgid "or"
|
msgid "or"
|
||||||
msgstr ""
|
msgstr "или"
|
||||||
|
|
||||||
#. module: account_followup
|
#. module: account_followup
|
||||||
#: view:res.partner:0
|
#: view:res.partner:0
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<field name="name">account_followup.stat.tree</field>
|
<field name="name">account_followup.stat.tree</field>
|
||||||
<field name="model">account_followup.stat</field>
|
<field name="model">account_followup.stat</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Follow-up lines">
|
<tree string="Follow-up lines" create="false">
|
||||||
<field name="partner_id"/>
|
<field name="partner_id"/>
|
||||||
<field name="date_move"/>
|
<field name="date_move"/>
|
||||||
<field name="date_move_last"/>
|
<field name="date_move_last"/>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
<record id="account_followup_comp_rule" model="ir.rule">
|
<record id="account_followup_comp_rule" model="ir.rule">
|
||||||
<field name="name">Account Follow-up multi company rule</field>
|
<field name="name">Account Follow-up multi company rule</field>
|
||||||
<field model="ir.model" name="model_id" ref="model_account_followup_followup"/>
|
<field name="model_id" ref="model_account_followup_followup"/>
|
||||||
<field eval="True" name="global"/>
|
<field eval="True" name="global"/>
|
||||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -15,21 +15,21 @@
|
||||||
|
|
||||||
<record id="payment_mode_comp_rule" model="ir.rule">
|
<record id="payment_mode_comp_rule" model="ir.rule">
|
||||||
<field name="name">Payment Mode company rule</field>
|
<field name="name">Payment Mode company rule</field>
|
||||||
<field model="ir.model" name="model_id" ref="model_payment_mode"/>
|
<field name="model_id" ref="model_payment_mode"/>
|
||||||
<field eval="True" name="global"/>
|
<field eval="True" name="global"/>
|
||||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="payment_order_comp_rule" model="ir.rule">
|
<record id="payment_order_comp_rule" model="ir.rule">
|
||||||
<field name="name">Payment order multi company rule</field>
|
<field name="name">Payment order multi company rule</field>
|
||||||
<field model="ir.model" name="model_id" ref="model_payment_order"/>
|
<field name="model_id" ref="model_payment_order"/>
|
||||||
<field eval="True" name="global"/>
|
<field eval="True" name="global"/>
|
||||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="payment_line_comp_rule" model="ir.rule">
|
<record id="payment_line_comp_rule" model="ir.rule">
|
||||||
<field name="name">Payment line multi company rule</field>
|
<field name="name">Payment line multi company rule</field>
|
||||||
<field model="ir.model" name="model_id" ref="model_payment_line"/>
|
<field name="model_id" ref="model_payment_line"/>
|
||||||
<field eval="True" name="global"/>
|
<field eval="True" name="global"/>
|
||||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -23,6 +23,7 @@ import time
|
||||||
from lxml import etree
|
from lxml import etree
|
||||||
|
|
||||||
from openerp.osv import fields, osv
|
from openerp.osv import fields, osv
|
||||||
|
from openerp.tools.translate import _
|
||||||
|
|
||||||
class payment_order_create(osv.osv_memory):
|
class payment_order_create(osv.osv_memory):
|
||||||
"""
|
"""
|
||||||
|
@ -108,7 +109,7 @@ class payment_order_create(osv.osv_memory):
|
||||||
context.update({'line_ids': line_ids})
|
context.update({'line_ids': line_ids})
|
||||||
model_data_ids = mod_obj.search(cr, uid,[('model', '=', 'ir.ui.view'), ('name', '=', 'view_create_payment_order_lines')], context=context)
|
model_data_ids = mod_obj.search(cr, uid,[('model', '=', 'ir.ui.view'), ('name', '=', 'view_create_payment_order_lines')], context=context)
|
||||||
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
|
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
|
||||||
return {'name': ('Entrie Lines'),
|
return {'name': _('Entry Lines'),
|
||||||
'context': context,
|
'context': context,
|
||||||
'view_type': 'form',
|
'view_type': 'form',
|
||||||
'view_mode': 'form',
|
'view_mode': 'form',
|
||||||
|
|
|
@ -0,0 +1,241 @@
|
||||||
|
# Russian translation for openobject-addons
|
||||||
|
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||||
|
# This file is distributed under the same license as the openobject-addons package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: openobject-addons\n"
|
||||||
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
|
"PO-Revision-Date: 2013-06-05 07:09+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Russian <ru@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: 2013-06-06 05:21+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16667)\n"
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: view:accounting.assert.test:0
|
||||||
|
msgid ""
|
||||||
|
"Code should always set a variable named `result` with the result of your "
|
||||||
|
"test, that can be a list or\n"
|
||||||
|
"a dictionary. If `result` is an empty list, it means that the test was "
|
||||||
|
"succesful. Otherwise it will\n"
|
||||||
|
"try to translate and print what is inside `result`.\n"
|
||||||
|
"\n"
|
||||||
|
"If the result of your test is a dictionary, you can set a variable named "
|
||||||
|
"`column_order` to choose in\n"
|
||||||
|
"what order you want to print `result`'s content.\n"
|
||||||
|
"\n"
|
||||||
|
"Should you need them, you can also use the following variables into your "
|
||||||
|
"code:\n"
|
||||||
|
" * cr: cursor to the database\n"
|
||||||
|
" * uid: ID of the current user\n"
|
||||||
|
"\n"
|
||||||
|
"In any ways, the code must be legal python statements with correct "
|
||||||
|
"indentation (if needed).\n"
|
||||||
|
"\n"
|
||||||
|
"Example: \n"
|
||||||
|
" sql = '''SELECT id, name, ref, date\n"
|
||||||
|
" FROM account_move_line \n"
|
||||||
|
" WHERE account_id IN (SELECT id FROM account_account WHERE type "
|
||||||
|
"= 'view')\n"
|
||||||
|
" '''\n"
|
||||||
|
" cr.execute(sql)\n"
|
||||||
|
" result = cr.dictfetchall()"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,name:account_test.account_test_02
|
||||||
|
msgid "Test 2: Opening a fiscal year"
|
||||||
|
msgstr "Проверка 2: Открытие фискального года"
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,desc:account_test.account_test_05
|
||||||
|
msgid ""
|
||||||
|
"Check that reconciled invoice for Sales/Purchases has reconciled entries for "
|
||||||
|
"Payable and Receivable Accounts"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,desc:account_test.account_test_03
|
||||||
|
msgid ""
|
||||||
|
"Check if movement lines are balanced and have the same date and period"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: field:accounting.assert.test,name:0
|
||||||
|
msgid "Test Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: report:account.test.assert.print:0
|
||||||
|
msgid "Accouting tests on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,name:account_test.account_test_01
|
||||||
|
msgid "Test 1: General balance"
|
||||||
|
msgstr "Проверка 1: Общий баланс"
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,desc:account_test.account_test_06
|
||||||
|
msgid "Check that paid/reconciled invoices are not in 'Open' state"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,desc:account_test.account_test_05_2
|
||||||
|
msgid ""
|
||||||
|
"Check that reconciled account moves, that define Payable and Receivable "
|
||||||
|
"accounts, are belonging to reconciled invoices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: view:accounting.assert.test:0
|
||||||
|
msgid "Tests"
|
||||||
|
msgstr "Проверки"
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: field:accounting.assert.test,desc:0
|
||||||
|
msgid "Test Description"
|
||||||
|
msgstr "Описание проверки"
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: view:accounting.assert.test:0
|
||||||
|
msgid "Description"
|
||||||
|
msgstr "Описание"
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,desc:account_test.account_test_06_1
|
||||||
|
msgid "Check that there's no move for any account with « View » account type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,name:account_test.account_test_08
|
||||||
|
msgid "Test 9 : Accounts and partners on account moves"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:ir.actions.act_window,name:account_test.action_accounting_assert
|
||||||
|
#: model:ir.actions.report.xml,name:account_test.account_assert_test_report
|
||||||
|
#: model:ir.ui.menu,name:account_test.menu_action_license
|
||||||
|
msgid "Accounting Tests"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: code:addons/account_test/report/account_test_report.py:74
|
||||||
|
#, python-format
|
||||||
|
msgid "The test was passed successfully"
|
||||||
|
msgstr "Проверка прошла успешно"
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: field:accounting.assert.test,active:0
|
||||||
|
msgid "Active"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,name:account_test.account_test_06
|
||||||
|
msgid "Test 6 : Invoices status"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:ir.model,name:account_test.model_accounting_assert_test
|
||||||
|
msgid "accounting.assert.test"
|
||||||
|
msgstr "accounting.assert.test"
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,name:account_test.account_test_05
|
||||||
|
msgid ""
|
||||||
|
"Test 5.1 : Payable and Receivable accountant lines of reconciled invoices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: field:accounting.assert.test,code_exec:0
|
||||||
|
msgid "Python code"
|
||||||
|
msgstr "Код на Python"
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,desc:account_test.account_test_07
|
||||||
|
msgid ""
|
||||||
|
"Check on bank statement that the Closing Balance = Starting Balance + sum of "
|
||||||
|
"statement lines"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,name:account_test.account_test_07
|
||||||
|
msgid "Test 8 : Closing balance on bank statements"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,name:account_test.account_test_03
|
||||||
|
msgid "Test 3: Movement lines"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,name:account_test.account_test_05_2
|
||||||
|
msgid "Test 5.2 : Reconcilied invoices and Payable/Receivable accounts"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: view:accounting.assert.test:0
|
||||||
|
msgid "Expression"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,name:account_test.account_test_04
|
||||||
|
msgid "Test 4: Totally reconciled mouvements"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,desc:account_test.account_test_04
|
||||||
|
msgid "Check if the totally reconciled movements are balanced"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: field:accounting.assert.test,sequence:0
|
||||||
|
msgid "Sequence"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,desc:account_test.account_test_02
|
||||||
|
msgid ""
|
||||||
|
"Check if the balance of the new opened fiscal year matches with last year's "
|
||||||
|
"balance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: view:accounting.assert.test:0
|
||||||
|
msgid "Python Code"
|
||||||
|
msgstr "Код на Python"
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:ir.actions.act_window,help:account_test.action_accounting_assert
|
||||||
|
msgid ""
|
||||||
|
"<p class=\"oe_view_nocontent_create\">\n"
|
||||||
|
" Click to create Accounting Test.\n"
|
||||||
|
" </p>\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,desc:account_test.account_test_01
|
||||||
|
msgid "Check the balance: Debit sum = Credit sum"
|
||||||
|
msgstr "Проверяет баланс: сумма дебита = сумма кредита"
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,desc:account_test.account_test_08
|
||||||
|
msgid "Check that general accounts and partners on account moves are active"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: model:accounting.assert.test,name:account_test.account_test_06_1
|
||||||
|
msgid "Test 7: « View » account type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_test
|
||||||
|
#: view:accounting.assert.test:0
|
||||||
|
msgid "Code Help"
|
||||||
|
msgstr ""
|
|
@ -1622,7 +1622,7 @@ class account_bank_statement(osv.osv):
|
||||||
for bk_st in self.browse(cr, uid, ids, context=context):
|
for bk_st in self.browse(cr, uid, ids, context=context):
|
||||||
if vals.get('journal_id') and bk_st.line_ids:
|
if vals.get('journal_id') and bk_st.line_ids:
|
||||||
if any([x.voucher_id and True or False for x in bk_st.line_ids]):
|
if any([x.voucher_id and True or False for x in bk_st.line_ids]):
|
||||||
raise osv.except_osv(_('Unable to change journal !'), _('You can not change the journal as you already reconciled some statement lines!'))
|
raise osv.except_osv(_('Unable to Change Journal!'), _('You can not change the journal as you already reconciled some statement lines!'))
|
||||||
return super(account_bank_statement, self).write(cr, uid, ids, vals, context=context)
|
return super(account_bank_statement, self).write(cr, uid, ids, vals, context=context)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
<a href="https://www.openerp.com/saas_master/demo?lang=en_US&module=account">
|
<a href="https://www.openerp.com/saas_master/demo?lang=en_US&module=account">
|
||||||
<img src="account_sc_00.png" alt="Online Demo">
|
<img src="account_sc_00.png" alt="Online Demo">
|
||||||
</a>
|
</a>
|
||||||
<span class="oe_demo_play"> </span>
|
|
||||||
<div class="oe_demo_footer oe_centeralign">Online Demo</div>
|
<div class="oe_demo_footer oe_centeralign">Online Demo</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -137,4 +136,5 @@ material. Define recurrencies to produce recurring invoice automatically.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section class="oe_container oe_separator"/>
|
<section class="oe_container oe_separator">
|
||||||
|
</section>
|
||||||
|
|
|
@ -7,24 +7,24 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||||
"PO-Revision-Date: 2012-05-10 17:46+0000\n"
|
"PO-Revision-Date: 2013-05-29 13:17+0000\n"
|
||||||
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:33+0000\n"
|
"X-Launchpad-Export-Date: 2013-05-30 05:45+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16652)\n"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.bank.statement.line,voucher_id:0
|
#: field:account.bank.statement.line,voucher_id:0
|
||||||
msgid "Reconciliation"
|
msgid "Reconciliation"
|
||||||
msgstr ""
|
msgstr "Сверка"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: model:ir.model,name:account_voucher.model_account_config_settings
|
#: model:ir.model,name:account_voucher.model_account_config_settings
|
||||||
msgid "account.config.settings"
|
msgid "account.config.settings"
|
||||||
msgstr ""
|
msgstr "account.config.settings"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: code:addons/account_voucher/account_voucher.py:369
|
#: code:addons/account_voucher/account_voucher.py:369
|
||||||
|
@ -45,7 +45,7 @@ msgstr "Общая сумма"
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
msgid "Open Customer Journal Entries"
|
msgid "Open Customer Journal Entries"
|
||||||
msgstr ""
|
msgstr "Открыть записи журнала по заказчику"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
|
@ -63,7 +63,7 @@ msgstr ""
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
msgid "(Update)"
|
msgid "(Update)"
|
||||||
msgstr ""
|
msgstr "(Обновить)"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
|
@ -90,7 +90,7 @@ msgstr "Март"
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,message_unread:0
|
#: field:account.voucher,message_unread:0
|
||||||
msgid "Unread Messages"
|
msgid "Unread Messages"
|
||||||
msgstr ""
|
msgstr "Непрочитанные"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
|
@ -115,13 +115,13 @@ msgstr "Номер транзакции."
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:sale.receipt.report:0
|
#: view:sale.receipt.report:0
|
||||||
msgid "Group by year of Invoice Date"
|
msgid "Group by year of Invoice Date"
|
||||||
msgstr ""
|
msgstr "Группировать по году в дате счета"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:sale.receipt.report:0
|
#: view:sale.receipt.report:0
|
||||||
#: field:sale.receipt.report,user_id:0
|
#: field:sale.receipt.report,user_id:0
|
||||||
msgid "Salesperson"
|
msgid "Salesperson"
|
||||||
msgstr ""
|
msgstr "Продавец"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
|
@ -135,6 +135,8 @@ msgid ""
|
||||||
"You can not change the journal as you already reconciled some statement "
|
"You can not change the journal as you already reconciled some statement "
|
||||||
"lines!"
|
"lines!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Вы не можете изменить журнал, так как вы уже сверили некоторые позиции "
|
||||||
|
"документа!"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
|
@ -145,7 +147,7 @@ msgstr "Утвердить"
|
||||||
#: model:ir.actions.act_window,name:account_voucher.action_vendor_payment
|
#: model:ir.actions.act_window,name:account_voucher.action_vendor_payment
|
||||||
#: model:ir.ui.menu,name:account_voucher.menu_action_vendor_payment
|
#: model:ir.ui.menu,name:account_voucher.menu_action_vendor_payment
|
||||||
msgid "Supplier Payments"
|
msgid "Supplier Payments"
|
||||||
msgstr ""
|
msgstr "Оплаты поставщикам"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: model:ir.actions.act_window,help:account_voucher.action_purchase_receipt
|
#: model:ir.actions.act_window,help:account_voucher.action_purchase_receipt
|
||||||
|
@ -167,7 +169,7 @@ msgstr "Искать ваучеры"
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,writeoff_acc_id:0
|
#: field:account.voucher,writeoff_acc_id:0
|
||||||
msgid "Counterpart Account"
|
msgid "Counterpart Account"
|
||||||
msgstr ""
|
msgstr "Корреспондирующий счет"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,account_id:0
|
#: field:account.voucher,account_id:0
|
||||||
|
@ -189,7 +191,7 @@ msgstr "OK"
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher.line,reconcile:0
|
#: field:account.voucher.line,reconcile:0
|
||||||
msgid "Full Reconcile"
|
msgid "Full Reconcile"
|
||||||
msgstr ""
|
msgstr "Полная сверка"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,date_due:0
|
#: field:account.voucher,date_due:0
|
||||||
|
@ -207,7 +209,7 @@ msgstr "Примечания"
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,message_ids:0
|
#: field:account.voucher,message_ids:0
|
||||||
msgid "Messages"
|
msgid "Messages"
|
||||||
msgstr ""
|
msgstr "Сообщения"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt
|
#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt
|
||||||
|
@ -225,7 +227,7 @@ msgstr "Элемент журнала"
|
||||||
#: code:addons/account_voucher/account_voucher.py:981
|
#: code:addons/account_voucher/account_voucher.py:981
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Error!"
|
msgid "Error!"
|
||||||
msgstr ""
|
msgstr "Ошибка!"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher.line,amount:0
|
#: field:account.voucher.line,amount:0
|
||||||
|
@ -235,7 +237,7 @@ msgstr "Суммма"
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
msgid "Payment Options"
|
msgid "Payment Options"
|
||||||
msgstr ""
|
msgstr "Варианты оплаты"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
|
@ -254,6 +256,8 @@ msgstr "Отменено"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You have to configure account base code and account tax code on the '%s' tax!"
|
"You have to configure account base code and account tax code on the '%s' tax!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Вы должны настроить код базового счета и код налогового счета для налога "
|
||||||
|
"'%s'!"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: model:ir.actions.act_window,help:account_voucher.action_sale_receipt
|
#: model:ir.actions.act_window,help:account_voucher.action_sale_receipt
|
||||||
|
@ -271,7 +275,7 @@ msgstr ""
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: help:account.voucher,message_unread:0
|
#: help:account.voucher,message_unread:0
|
||||||
msgid "If checked new messages require your attention."
|
msgid "If checked new messages require your attention."
|
||||||
msgstr ""
|
msgstr "Если отмечено, новые сообщения требуют вашего внимания."
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: model:ir.model,name:account_voucher.model_account_bank_statement_line
|
#: model:ir.model,name:account_voucher.model_account_bank_statement_line
|
||||||
|
@ -294,12 +298,12 @@ msgstr "Налог"
|
||||||
#: code:addons/account_voucher/account_voucher.py:879
|
#: code:addons/account_voucher/account_voucher.py:879
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Invalid Action!"
|
msgid "Invalid Action!"
|
||||||
msgstr ""
|
msgstr "Неверное действие!"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,comment:0
|
#: field:account.voucher,comment:0
|
||||||
msgid "Counterpart Comment"
|
msgid "Counterpart Comment"
|
||||||
msgstr ""
|
msgstr "Корреспондирующий коментарий"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher.line,account_analytic_id:0
|
#: field:account.voucher.line,account_analytic_id:0
|
||||||
|
@ -312,6 +316,8 @@ msgid ""
|
||||||
"Holds the Chatter summary (number of messages, ...). This summary is "
|
"Holds the Chatter summary (number of messages, ...). This summary is "
|
||||||
"directly in html format in order to be inserted in kanban views."
|
"directly in html format in order to be inserted in kanban views."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Содержит сводку по Чаттеру (количество сообщений,...). Эта сводка в формате "
|
||||||
|
"html для возможности использования в канбан виде"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
|
@ -326,7 +332,7 @@ msgstr "Информация о платеже"
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
msgid "(update)"
|
msgid "(update)"
|
||||||
msgstr ""
|
msgstr "(обновить)"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
|
@ -395,7 +401,7 @@ msgstr "Ваучер поставщика"
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,message_follower_ids:0
|
#: field:account.voucher,message_follower_ids:0
|
||||||
msgid "Followers"
|
msgid "Followers"
|
||||||
msgstr ""
|
msgstr "Подписчики"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: selection:account.voucher.line,type:0
|
#: selection:account.voucher.line,type:0
|
||||||
|
@ -406,7 +412,7 @@ msgstr "Дебет"
|
||||||
#: code:addons/account_voucher/account_voucher.py:1547
|
#: code:addons/account_voucher/account_voucher.py:1547
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Unable to change journal !"
|
msgid "Unable to change journal !"
|
||||||
msgstr ""
|
msgstr "Невозможно изменить журнал!"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:sale.receipt.report:0
|
#: view:sale.receipt.report:0
|
||||||
|
@ -446,7 +452,7 @@ msgstr ""
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
msgid "Open Supplier Journal Entries"
|
msgid "Open Supplier Journal Entries"
|
||||||
msgstr ""
|
msgstr "Открыть журнал проводок по поставщику"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list
|
#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list
|
||||||
|
@ -461,7 +467,7 @@ msgstr "Памятка"
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
msgid "Are you sure to unreconcile and cancel this record ?"
|
msgid "Are you sure to unreconcile and cancel this record ?"
|
||||||
msgstr ""
|
msgstr "Вы уверены, что надо отменить сверку и саму запись ?"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,is_multi_currency:0
|
#: field:account.voucher,is_multi_currency:0
|
||||||
|
@ -494,13 +500,13 @@ msgstr ""
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,writeoff_amount:0
|
#: field:account.voucher,writeoff_amount:0
|
||||||
msgid "Difference Amount"
|
msgid "Difference Amount"
|
||||||
msgstr ""
|
msgstr "Сумма разницы"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:sale.receipt.report:0
|
#: view:sale.receipt.report:0
|
||||||
#: field:sale.receipt.report,due_delay:0
|
#: field:sale.receipt.report,due_delay:0
|
||||||
msgid "Avg. Due Delay"
|
msgid "Avg. Due Delay"
|
||||||
msgstr ""
|
msgstr "Средн. задержка"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: code:addons/account_voucher/invoice.py:34
|
#: code:addons/account_voucher/invoice.py:34
|
||||||
|
@ -554,7 +560,7 @@ msgstr "Оплаченная сумма"
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,payment_option:0
|
#: field:account.voucher,payment_option:0
|
||||||
msgid "Payment Difference"
|
msgid "Payment Difference"
|
||||||
msgstr ""
|
msgstr "Оплата разницы"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
|
@ -568,7 +574,7 @@ msgstr "Для проверки"
|
||||||
#: code:addons/account_voucher/account_voucher.py:1194
|
#: code:addons/account_voucher/account_voucher.py:1194
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "change"
|
msgid "change"
|
||||||
msgstr ""
|
msgstr "изменить"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: code:addons/account_voucher/account_voucher.py:1014
|
#: code:addons/account_voucher/account_voucher.py:1014
|
||||||
|
@ -599,7 +605,7 @@ msgstr ""
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.invoice:0
|
#: view:account.invoice:0
|
||||||
msgid "Register Payment"
|
msgid "Register Payment"
|
||||||
msgstr ""
|
msgstr "Регистрация оплаты"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.statement.from.invoice.lines,line_ids:0
|
#: field:account.statement.from.invoice.lines,line_ids:0
|
||||||
|
@ -614,7 +620,7 @@ msgstr "декабрём"
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:sale.receipt.report:0
|
#: view:sale.receipt.report:0
|
||||||
msgid "Group by month of Invoice Date"
|
msgid "Group by month of Invoice Date"
|
||||||
msgstr ""
|
msgstr "Группировать по месяцу даты счета"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:sale.receipt.report:0
|
#: view:sale.receipt.report:0
|
||||||
|
@ -647,7 +653,7 @@ msgstr ""
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
msgid "Are you sure to unreconcile this record?"
|
msgid "Are you sure to unreconcile this record?"
|
||||||
msgstr ""
|
msgstr "Вы уверены в отмене сверки"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,company_id:0
|
#: field:account.voucher,company_id:0
|
||||||
|
@ -665,13 +671,13 @@ msgstr ""
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: selection:account.voucher,payment_option:0
|
#: selection:account.voucher,payment_option:0
|
||||||
msgid "Reconcile Payment Balance"
|
msgid "Reconcile Payment Balance"
|
||||||
msgstr ""
|
msgstr "Сверка платежного баланса"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: code:addons/account_voucher/account_voucher.py:975
|
#: code:addons/account_voucher/account_voucher.py:975
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Configuration Error !"
|
msgid "Configuration Error !"
|
||||||
msgstr ""
|
msgstr "Ошибка конфигурации !"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
|
@ -695,18 +701,18 @@ msgstr ""
|
||||||
#: field:account.voucher,state:0
|
#: field:account.voucher,state:0
|
||||||
#: view:sale.receipt.report:0
|
#: view:sale.receipt.report:0
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr ""
|
msgstr "Статус"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
msgid "Allocation"
|
msgid "Allocation"
|
||||||
msgstr ""
|
msgstr "Распределение"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.statement.from.invoice.lines:0
|
#: view:account.statement.from.invoice.lines:0
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
msgid "or"
|
msgid "or"
|
||||||
msgstr ""
|
msgstr "или"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: selection:sale.receipt.report,month:0
|
#: selection:sale.receipt.report,month:0
|
||||||
|
@ -716,7 +722,7 @@ msgstr "Август"
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
msgid "Validate Payment"
|
msgid "Validate Payment"
|
||||||
msgstr ""
|
msgstr "Утвердить оплату"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: help:account.voucher,audit:0
|
#: help:account.voucher,audit:0
|
||||||
|
@ -724,6 +730,8 @@ msgid ""
|
||||||
"Check this box if you are unsure of that journal entry and if you want to "
|
"Check this box if you are unsure of that journal entry and if you want to "
|
||||||
"note it as 'to be reviewed' by an accounting expert."
|
"note it as 'to be reviewed' by an accounting expert."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Отметьте, если вы не уверены в этой проводке журнала и хотите отметить её "
|
||||||
|
"\"для проверки\" опытному бухгалтеру."
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: selection:sale.receipt.report,month:0
|
#: selection:sale.receipt.report,month:0
|
||||||
|
@ -734,7 +742,7 @@ msgstr "Октябрь"
|
||||||
#: code:addons/account_voucher/account_voucher.py:976
|
#: code:addons/account_voucher/account_voucher.py:976
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Please activate the sequence of selected journal !"
|
msgid "Please activate the sequence of selected journal !"
|
||||||
msgstr ""
|
msgstr "Пожалуйста, включите нумерацию выбранного журнала!"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: selection:sale.receipt.report,month:0
|
#: selection:sale.receipt.report,month:0
|
||||||
|
@ -749,7 +757,7 @@ msgstr ""
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,paid:0
|
#: field:account.voucher,paid:0
|
||||||
msgid "Paid"
|
msgid "Paid"
|
||||||
msgstr ""
|
msgstr "Оплачено"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt
|
#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt
|
||||||
|
@ -760,7 +768,7 @@ msgstr ""
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,message_is_follower:0
|
#: field:account.voucher,message_is_follower:0
|
||||||
msgid "Is a Follower"
|
msgid "Is a Follower"
|
||||||
msgstr ""
|
msgstr "Подписан"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,analytic_id:0
|
#: field:account.voucher,analytic_id:0
|
||||||
|
@ -787,7 +795,7 @@ msgstr "Расширенные фильтры..."
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,paid_amount_in_company_currency:0
|
#: field:account.voucher,paid_amount_in_company_currency:0
|
||||||
msgid "Paid Amount in Company Currency"
|
msgid "Paid Amount in Company Currency"
|
||||||
msgstr ""
|
msgstr "Оплаченная сумма в валюте компании"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.bank.statement.line,amount_reconciled:0
|
#: field:account.bank.statement.line,amount_reconciled:0
|
||||||
|
@ -814,7 +822,7 @@ msgstr "Предыдущие платежи ?"
|
||||||
#: code:addons/account_voucher/account_voucher.py:1112
|
#: code:addons/account_voucher/account_voucher.py:1112
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "The invoice you are willing to pay is not valid anymore."
|
msgid "The invoice you are willing to pay is not valid anymore."
|
||||||
msgstr ""
|
msgstr "Счет, который вы готовы платить, уже не актуален ."
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: selection:sale.receipt.report,month:0
|
#: selection:sale.receipt.report,month:0
|
||||||
|
@ -830,30 +838,30 @@ msgstr "Журнал ваучеров"
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: model:ir.model,name:account_voucher.model_res_company
|
#: model:ir.model,name:account_voucher.model_res_company
|
||||||
msgid "Companies"
|
msgid "Companies"
|
||||||
msgstr ""
|
msgstr "Компании"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,message_summary:0
|
#: field:account.voucher,message_summary:0
|
||||||
msgid "Summary"
|
msgid "Summary"
|
||||||
msgstr ""
|
msgstr "Итог"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: field:account.voucher,active:0
|
#: field:account.voucher,active:0
|
||||||
msgid "Active"
|
msgid "Active"
|
||||||
msgstr ""
|
msgstr "Активно"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: code:addons/account_voucher/account_voucher.py:982
|
#: code:addons/account_voucher/account_voucher.py:982
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Please define a sequence on the journal."
|
msgid "Please define a sequence on the journal."
|
||||||
msgstr ""
|
msgstr "Пожалуйста, определите нумерацию журнала."
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: model:ir.actions.act_window,name:account_voucher.act_pay_voucher
|
#: model:ir.actions.act_window,name:account_voucher.act_pay_voucher
|
||||||
#: model:ir.actions.act_window,name:account_voucher.action_vendor_receipt
|
#: model:ir.actions.act_window,name:account_voucher.action_vendor_receipt
|
||||||
#: model:ir.ui.menu,name:account_voucher.menu_action_vendor_receipt
|
#: model:ir.ui.menu,name:account_voucher.menu_action_vendor_receipt
|
||||||
msgid "Customer Payments"
|
msgid "Customer Payments"
|
||||||
msgstr ""
|
msgstr "Платежи клиентов"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt_report_all
|
#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt_report_all
|
||||||
|
@ -865,7 +873,7 @@ msgstr ""
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:sale.receipt.report:0
|
#: view:sale.receipt.report:0
|
||||||
msgid "Group by Invoice Date"
|
msgid "Group by Invoice Date"
|
||||||
msgstr ""
|
msgstr "Группировать по дате счета"
|
||||||
|
|
||||||
#. module: account_voucher
|
#. module: account_voucher
|
||||||
#: view:account.voucher:0
|
#: view:account.voucher:0
|
||||||
|
|
|
@ -3,13 +3,13 @@
|
||||||
<data noupdate="1">
|
<data noupdate="1">
|
||||||
<record id="voucher_comp_rule" model="ir.rule">
|
<record id="voucher_comp_rule" model="ir.rule">
|
||||||
<field name="name">Voucher multi-company</field>
|
<field name="name">Voucher multi-company</field>
|
||||||
<field model="ir.model" name="model_id" ref="model_account_voucher"/>
|
<field name="model_id" ref="model_account_voucher"/>
|
||||||
<field eval="True" name="global"/>
|
<field eval="True" name="global"/>
|
||||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||||
</record>
|
</record>
|
||||||
<record id="voucher_line_comp_rule" model="ir.rule">
|
<record id="voucher_line_comp_rule" model="ir.rule">
|
||||||
<field name="name">Voucher Line multi-company</field>
|
<field name="name">Voucher Line multi-company</field>
|
||||||
<field model="ir.model" name="model_id" ref="model_account_voucher_line"/>
|
<field name="model_id" ref="model_account_voucher_line"/>
|
||||||
<field eval="True" name="global"/>
|
<field eval="True" name="global"/>
|
||||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -157,7 +157,7 @@ class account_analytic_account(osv.osv):
|
||||||
for account in self.browse(cr, uid, ids, context=context):
|
for account in self.browse(cr, uid, ids, context=context):
|
||||||
if account.company_id:
|
if account.company_id:
|
||||||
if account.company_id.currency_id.id != value:
|
if account.company_id.currency_id.id != value:
|
||||||
raise osv.except_osv(_('Error!'), _("If you set a company, the currency selected has to be the same as it's currency. \nYou 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."))
|
raise osv.except_osv(_('Error!'), _("If you set a company, the currency selected has to be the same as it's currency. \nYou can remove the company belonging, and thus change the currency, only on analytic account of type 'view'. This can be really useful for consolidation purposes of several companies charts with different currencies, for example."))
|
||||||
if value:
|
if value:
|
||||||
return cr.execute("""update account_analytic_account set currency_id=%s where id=%s""", (value, account.id, ))
|
return cr.execute("""update account_analytic_account set currency_id=%s where id=%s""", (value, account.id, ))
|
||||||
|
|
||||||
|
|
|
@ -4,14 +4,14 @@
|
||||||
|
|
||||||
<record id="analytic_comp_rule" model="ir.rule">
|
<record id="analytic_comp_rule" model="ir.rule">
|
||||||
<field name="name">Analytic multi company rule</field>
|
<field name="name">Analytic multi company rule</field>
|
||||||
<field model="ir.model" name="model_id" ref="model_account_analytic_account"/>
|
<field name="model_id" ref="model_account_analytic_account"/>
|
||||||
<field eval="True" name="global"/>
|
<field eval="True" name="global"/>
|
||||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="analytic_line_comp_rule" model="ir.rule">
|
<record id="analytic_line_comp_rule" model="ir.rule">
|
||||||
<field name="name">Analytic line multi company rule</field>
|
<field name="name">Analytic line multi company rule</field>
|
||||||
<field model="ir.model" name="model_id" ref="model_account_analytic_line"/>
|
<field name="model_id" ref="model_account_analytic_line"/>
|
||||||
<field eval="True" name="global"/>
|
<field eval="True" name="global"/>
|
||||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -104,7 +104,7 @@ class hr_analytic_timesheet(osv.osv):
|
||||||
a = r.product_id.categ_id.property_account_expense_categ.id
|
a = r.product_id.categ_id.property_account_expense_categ.id
|
||||||
if not a:
|
if not a:
|
||||||
raise osv.except_osv(_('Error!'),
|
raise osv.except_osv(_('Error!'),
|
||||||
_('There is no expense account define ' \
|
_('There is no expense account defined ' \
|
||||||
'for this product: "%s" (id:%d)') % \
|
'for this product: "%s" (id:%d)') % \
|
||||||
(r.product_id.name, r.product_id.id,))
|
(r.product_id.name, r.product_id.id,))
|
||||||
# Compute based on pricetype
|
# Compute based on pricetype
|
||||||
|
@ -133,7 +133,7 @@ class hr_analytic_timesheet(osv.osv):
|
||||||
a = r.product_id.categ_id.property_account_expense_categ.id
|
a = r.product_id.categ_id.property_account_expense_categ.id
|
||||||
if not a:
|
if not a:
|
||||||
raise osv.except_osv(_('Error!'),
|
raise osv.except_osv(_('Error!'),
|
||||||
_('There is no expense account define ' \
|
_('There is no expense account defined ' \
|
||||||
'for this product: "%s" (id:%d)') % \
|
'for this product: "%s" (id:%d)') % \
|
||||||
(r.product_id.name, r.product_id.id,))
|
(r.product_id.name, r.product_id.id,))
|
||||||
# Compute based on pricetype
|
# Compute based on pricetype
|
||||||
|
|
|
@ -86,11 +86,11 @@ class ir_model_fields_anonymization(osv.osv):
|
||||||
if context.get('manual'):
|
if context.get('manual'):
|
||||||
global_state = self._get_global_state(cr, uid, context=context)
|
global_state = self._get_global_state(cr, uid, context=context)
|
||||||
if global_state == 'anonymized':
|
if global_state == 'anonymized':
|
||||||
raise osv.except_osv('Error !', "The database is currently anonymized, you cannot create, modify or delete fields.")
|
raise osv.except_osv('Error!', "The database is currently anonymized, you cannot create, modify or delete fields.")
|
||||||
elif global_state == 'unstable':
|
elif global_state == 'unstable':
|
||||||
msg = _("The database anonymization is currently in an unstable state. Some fields are anonymized," + \
|
msg = _("The database anonymization is currently in an unstable state. Some fields are anonymized," + \
|
||||||
" while some fields are not anonymized. You should try to solve this problem before trying to create, write or delete fields.")
|
" while some fields are not anonymized. You should try to solve this problem before trying to create, write or delete fields.")
|
||||||
raise osv.except_osv('Error !', msg)
|
raise osv.except_osv('Error!', msg)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -357,7 +357,7 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
|
||||||
else:
|
else:
|
||||||
msg = _("The database anonymization is currently in an unstable state. Some fields are anonymized," + \
|
msg = _("The database anonymization is currently in an unstable state. Some fields are anonymized," + \
|
||||||
" while some fields are not anonymized. You should try to solve this problem before trying to do anything else.")
|
" while some fields are not anonymized. You should try to solve this problem before trying to do anything else.")
|
||||||
raise osv.except_osv('Error !', msg)
|
raise osv.except_osv('Error!', msg)
|
||||||
|
|
||||||
res['arch'] = etree.tostring(eview)
|
res['arch'] = etree.tostring(eview)
|
||||||
|
|
||||||
|
@ -521,11 +521,11 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
|
||||||
# check that all the defined fields are in the 'anonymized' state
|
# check that all the defined fields are in the 'anonymized' state
|
||||||
state = ir_model_fields_anonymization_model._get_global_state(cr, uid, context=context)
|
state = ir_model_fields_anonymization_model._get_global_state(cr, uid, context=context)
|
||||||
if state == 'clear':
|
if state == 'clear':
|
||||||
raise osv.except_osv_('Error !', "The database is not currently anonymized, you cannot reverse the anonymization.")
|
raise osv.except_osv_('Error!', "The database is not currently anonymized, you cannot reverse the anonymization.")
|
||||||
elif state == 'unstable':
|
elif state == 'unstable':
|
||||||
msg = _("The database anonymization is currently in an unstable state. Some fields are anonymized," + \
|
msg = _("The database anonymization is currently in an unstable state. Some fields are anonymized," + \
|
||||||
" while some fields are not anonymized. You should try to solve this problem before trying to do anything.")
|
" while some fields are not anonymized. You should try to solve this problem before trying to do anything.")
|
||||||
raise osv.except_osv('Error !', msg)
|
raise osv.except_osv('Error!', msg)
|
||||||
|
|
||||||
wizards = self.browse(cr, uid, ids, context=context)
|
wizards = self.browse(cr, uid, ids, context=context)
|
||||||
for wizard in wizards:
|
for wizard in wizards:
|
||||||
|
|
|
@ -8,21 +8,21 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
"PO-Revision-Date: 2013-03-23 11:37+0000\n"
|
"PO-Revision-Date: 2013-05-28 06:19+0000\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: Глория Хрусталёва <gloriya@hushmail.com>\n"
|
||||||
"Language-Team: Russian <ru@li.org>\n"
|
"Language-Team: Russian <ru@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-24 04:45+0000\n"
|
"X-Launchpad-Export-Date: 2013-05-29 05:37+0000\n"
|
||||||
"X-Generator: Launchpad (build 16540)\n"
|
"X-Generator: Launchpad (build 16640)\n"
|
||||||
|
|
||||||
#. module: auth_openid
|
#. module: auth_openid
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:24
|
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:24
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr ""
|
msgstr "Имя пользователя"
|
||||||
|
|
||||||
#. module: auth_openid
|
#. module: auth_openid
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
|
@ -30,7 +30,7 @@ msgstr ""
|
||||||
#: view:res.users:0
|
#: view:res.users:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "OpenID"
|
msgid "OpenID"
|
||||||
msgstr ""
|
msgstr "OpenID"
|
||||||
|
|
||||||
#. module: auth_openid
|
#. module: auth_openid
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
|
@ -46,14 +46,14 @@ msgstr ""
|
||||||
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:10
|
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:10
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Google"
|
msgid "Google"
|
||||||
msgstr ""
|
msgstr "Google"
|
||||||
|
|
||||||
#. module: auth_openid
|
#. module: auth_openid
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:11
|
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:11
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Launchpad"
|
msgid "Launchpad"
|
||||||
msgstr ""
|
msgstr "Launchpad"
|
||||||
|
|
||||||
#. module: auth_openid
|
#. module: auth_openid
|
||||||
#: help:res.users,openid_email:0
|
#: help:res.users,openid_email:0
|
||||||
|
@ -82,7 +82,7 @@ msgstr ""
|
||||||
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:8
|
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:8
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr ""
|
msgstr "Пароль"
|
||||||
|
|
||||||
#. module: auth_openid
|
#. module: auth_openid
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
|
@ -94,4 +94,4 @@ msgstr ""
|
||||||
#. module: auth_openid
|
#. module: auth_openid
|
||||||
#: model:ir.model,name:auth_openid.model_res_users
|
#: model:ir.model,name:auth_openid.model_res_users
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr ""
|
msgstr "Пользователи"
|
||||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
"PO-Revision-Date: 2012-12-11 06:59+0000\n"
|
"PO-Revision-Date: 2013-05-27 12:12+0000\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: Глория Хрусталёва <gloriya@hushmail.com>\n"
|
||||||
"Language-Team: Russian <ru@li.org>\n"
|
"Language-Team: Russian <ru@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:52+0000\n"
|
"X-Launchpad-Export-Date: 2013-05-28 05:17+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16640)\n"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: field:res.partner,signup_type:0
|
#: field:res.partner,signup_type:0
|
||||||
|
@ -25,25 +25,25 @@ msgstr ""
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: field:base.config.settings,auth_signup_uninvited:0
|
#: field:base.config.settings,auth_signup_uninvited:0
|
||||||
msgid "Allow external users to sign up"
|
msgid "Allow external users to sign up"
|
||||||
msgstr ""
|
msgstr "Разрешить регистрацию внешним пользователям"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:16
|
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:16
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr ""
|
msgstr "Подтвердите пароль"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: help:base.config.settings,auth_signup_uninvited:0
|
#: help:base.config.settings,auth_signup_uninvited:0
|
||||||
msgid "If unchecked, only invited users may sign up."
|
msgid "If unchecked, only invited users may sign up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Если отмечено, только приглашенные пользователи могут зарегистрироваться"
|
"Если не отмечено, только приглашенные пользователи могут зарегистрироваться"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: model:ir.model,name:auth_signup.model_base_config_settings
|
#: model:ir.model,name:auth_signup.model_base_config_settings
|
||||||
msgid "base.config.settings"
|
msgid "base.config.settings"
|
||||||
msgstr ""
|
msgstr "base.config.settings"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: code:addons/auth_signup/res_users.py:265
|
#: code:addons/auth_signup/res_users.py:265
|
||||||
|
@ -57,17 +57,17 @@ msgstr "Невозможно отправить письмо: у пользов
|
||||||
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:28
|
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:28
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Reset password"
|
msgid "Reset password"
|
||||||
msgstr ""
|
msgstr "Сброс пароля"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: field:base.config.settings,auth_signup_template_user_id:0
|
#: field:base.config.settings,auth_signup_template_user_id:0
|
||||||
msgid "Template user for new users created through signup"
|
msgid "Template user for new users created through signup"
|
||||||
msgstr ""
|
msgstr "Шаблон новых пользователей, созданных в процессе регистрации"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: model:email.template,subject:auth_signup.reset_password_email
|
#: model:email.template,subject:auth_signup.reset_password_email
|
||||||
msgid "Password reset"
|
msgid "Password reset"
|
||||||
msgstr ""
|
msgstr "Сброс пароля"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
|
@ -88,12 +88,12 @@ msgstr ""
|
||||||
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:26
|
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:26
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Sign Up"
|
msgid "Sign Up"
|
||||||
msgstr ""
|
msgstr "Регистрация"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: selection:res.users,state:0
|
#: selection:res.users,state:0
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr ""
|
msgstr "Новый"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: code:addons/auth_signup/res_users.py:258
|
#: code:addons/auth_signup/res_users.py:258
|
||||||
|
@ -104,7 +104,7 @@ msgstr ""
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: field:res.users,state:0
|
#: field:res.users,state:0
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr ""
|
msgstr "Статус"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: model:email.template,body_html:auth_signup.reset_password_email
|
#: model:email.template,body_html:auth_signup.reset_password_email
|
||||||
|
@ -118,18 +118,27 @@ msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"<p>Note: If you do not expect this, you can safely ignore this email.</p>"
|
"<p>Note: If you do not expect this, you can safely ignore this email.</p>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"\n"
|
||||||
|
"<p>Был запрошен сброс пароля для аккаунта OpenERP связанного с этим адресом "
|
||||||
|
"эл.почты</p>\n"
|
||||||
|
"\n"
|
||||||
|
"<p>Вы можете сменить пароль, проследовав по <a "
|
||||||
|
"href=\"${object.signup_url}\">ссылке</a>.</p>\n"
|
||||||
|
"\n"
|
||||||
|
"<p>Примечание: если вы не запрашивали сброс пароля, просто проигнорируйте "
|
||||||
|
"данное письмо</p>"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
#: code:addons/auth_signup/static/src/js/auth_signup.js:111
|
#: code:addons/auth_signup/static/src/js/auth_signup.js:111
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Please enter a name."
|
msgid "Please enter a name."
|
||||||
msgstr ""
|
msgstr "Пожалуйста, введите имя"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: model:ir.model,name:auth_signup.model_res_users
|
#: model:ir.model,name:auth_signup.model_res_users
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr ""
|
msgstr "Пользователи"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: field:res.partner,signup_url:0
|
#: field:res.partner,signup_url:0
|
||||||
|
@ -146,7 +155,7 @@ msgstr "Пожалуйста, введите имя пользователя."
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: selection:res.users,state:0
|
#: selection:res.users,state:0
|
||||||
msgid "Active"
|
msgid "Active"
|
||||||
msgstr ""
|
msgstr "Активен"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: code:addons/auth_signup/res_users.py:269
|
#: code:addons/auth_signup/res_users.py:269
|
||||||
|
@ -155,39 +164,41 @@ msgid ""
|
||||||
"Cannot send email: no outgoing email server configured.\n"
|
"Cannot send email: no outgoing email server configured.\n"
|
||||||
"You can configure it under Settings/General Settings."
|
"You can configure it under Settings/General Settings."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Невозможно отправить email: не настроены сервера исходящей почты.\n"
|
||||||
|
"Вы можете настроить их в меню Настройки/Общие настройки"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:12
|
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:12
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr ""
|
msgstr "Имя пользователя"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:8
|
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:8
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr ""
|
msgstr "Имя"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
#: code:addons/auth_signup/static/src/js/auth_signup.js:170
|
#: code:addons/auth_signup/static/src/js/auth_signup.js:170
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Please enter a username or email address."
|
msgid "Please enter a username or email address."
|
||||||
msgstr ""
|
msgstr "Пожалуйста, введите имя пользователя или адрес эл. почты."
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: selection:res.users,state:0
|
#: selection:res.users,state:0
|
||||||
msgid "Resetting Password"
|
msgid "Resetting Password"
|
||||||
msgstr ""
|
msgstr "Переустановка пароля"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:13
|
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:13
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Username (Email)"
|
msgid "Username (Email)"
|
||||||
msgstr ""
|
msgstr "Имя пользователя (Email)"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: field:res.partner,signup_expiration:0
|
#: field:res.partner,signup_expiration:0
|
||||||
|
@ -198,13 +209,15 @@ msgstr ""
|
||||||
#: help:base.config.settings,auth_signup_reset_password:0
|
#: help:base.config.settings,auth_signup_reset_password:0
|
||||||
msgid "This allows users to trigger a password reset from the Login page."
|
msgid "This allows users to trigger a password reset from the Login page."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Это позволяет пользователям запросить сброс пароля со страницы входа в "
|
||||||
|
"систему."
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:22
|
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:22
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr ""
|
msgstr "Вход"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: field:res.partner,signup_valid:0
|
#: field:res.partner,signup_valid:0
|
||||||
|
@ -222,7 +235,7 @@ msgstr ""
|
||||||
#: code:addons/auth_signup/static/src/js/auth_signup.js:170
|
#: code:addons/auth_signup/static/src/js/auth_signup.js:170
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr ""
|
msgstr "Вход"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
|
@ -236,7 +249,7 @@ msgstr ""
|
||||||
#: code:addons/auth_signup/static/src/js/auth_signup.js:120
|
#: code:addons/auth_signup/static/src/js/auth_signup.js:120
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Passwords do not match; please retype them."
|
msgid "Passwords do not match; please retype them."
|
||||||
msgstr ""
|
msgstr "Пароли не совпадают; пожалуйста, введите их заново."
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
|
@ -244,7 +257,7 @@ msgstr ""
|
||||||
#: code:addons/auth_signup/static/src/js/auth_signup.js:167
|
#: code:addons/auth_signup/static/src/js/auth_signup.js:167
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "No database selected !"
|
msgid "No database selected !"
|
||||||
msgstr ""
|
msgstr "Не выбрана база данных!"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: view:res.users:0
|
#: view:res.users:0
|
||||||
|
@ -254,14 +267,14 @@ msgstr ""
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: field:base.config.settings,auth_signup_reset_password:0
|
#: field:base.config.settings,auth_signup_reset_password:0
|
||||||
msgid "Enable password reset from Login page"
|
msgid "Enable password reset from Login page"
|
||||||
msgstr ""
|
msgstr "Включить сброс пароля со страницы входа"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:27
|
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:27
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Back to Login"
|
msgid "Back to Login"
|
||||||
msgstr ""
|
msgstr "Вернуться к странице входа"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
|
@ -273,7 +286,7 @@ msgstr ""
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: model:ir.model,name:auth_signup.model_res_partner
|
#: model:ir.model,name:auth_signup.model_res_partner
|
||||||
msgid "Partner"
|
msgid "Partner"
|
||||||
msgstr ""
|
msgstr "Партнер"
|
||||||
|
|
||||||
#. module: auth_signup
|
#. module: auth_signup
|
||||||
#: field:res.partner,signup_token:0
|
#: field:res.partner,signup_token:0
|
||||||
|
|
|
@ -23,6 +23,7 @@ import random
|
||||||
from urllib import urlencode
|
from urllib import urlencode
|
||||||
from urlparse import urljoin
|
from urlparse import urljoin
|
||||||
|
|
||||||
|
from openerp.addons.base.ir.ir_mail_server import MailDeliveryException
|
||||||
from openerp.osv import osv, fields
|
from openerp.osv import osv, fields
|
||||||
from openerp.tools.misc import DEFAULT_SERVER_DATETIME_FORMAT
|
from openerp.tools.misc import DEFAULT_SERVER_DATETIME_FORMAT
|
||||||
from openerp.tools.safe_eval import safe_eval
|
from openerp.tools.safe_eval import safe_eval
|
||||||
|
@ -55,19 +56,22 @@ class res_partner(osv.Model):
|
||||||
def _get_signup_url_for_action(self, cr, uid, ids, action='login', view_type=None, menu_id=None, res_id=None, model=None, context=None):
|
def _get_signup_url_for_action(self, cr, uid, ids, action='login', view_type=None, menu_id=None, res_id=None, model=None, context=None):
|
||||||
""" generate a signup url for the given partner ids and action, possibly overriding
|
""" generate a signup url for the given partner ids and action, possibly overriding
|
||||||
the url state components (menu_id, id, view_type) """
|
the url state components (menu_id, id, view_type) """
|
||||||
|
if context is None:
|
||||||
|
context= {}
|
||||||
res = dict.fromkeys(ids, False)
|
res = dict.fromkeys(ids, False)
|
||||||
base_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url')
|
base_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url')
|
||||||
for partner in self.browse(cr, uid, ids, context):
|
for partner in self.browse(cr, uid, ids, context):
|
||||||
# when required, make sure the partner has a valid signup token
|
# when required, make sure the partner has a valid signup token
|
||||||
if context and context.get('signup_valid') and not partner.user_ids:
|
if context.get('signup_valid') and not partner.user_ids:
|
||||||
self.signup_prepare(cr, uid, [partner.id], context=context)
|
self.signup_prepare(cr, uid, [partner.id], context=context)
|
||||||
partner.refresh()
|
partner.refresh()
|
||||||
|
|
||||||
# the parameters to encode for the query and fragment part of url
|
# the parameters to encode for the query and fragment part of url
|
||||||
query = {'db': cr.dbname}
|
query = {'db': cr.dbname}
|
||||||
fragment = {'action': action, 'type': partner.signup_type}
|
signup_type = context.get('signup_force_type_in_url', partner.signup_type or '')
|
||||||
|
fragment = {'action': action, 'type': signup_type}
|
||||||
|
|
||||||
if partner.signup_token:
|
if partner.signup_token and signup_type:
|
||||||
fragment['token'] = partner.signup_token
|
fragment['token'] = partner.signup_token
|
||||||
elif partner.user_ids:
|
elif partner.user_ids:
|
||||||
fragment['db'] = cr.dbname
|
fragment['db'] = cr.dbname
|
||||||
|
@ -103,6 +107,9 @@ class res_partner(osv.Model):
|
||||||
def action_signup_prepare(self, cr, uid, ids, context=None):
|
def action_signup_prepare(self, cr, uid, ids, context=None):
|
||||||
return self.signup_prepare(cr, uid, ids, context=context)
|
return self.signup_prepare(cr, uid, ids, context=context)
|
||||||
|
|
||||||
|
def signup_cancel(self, cr, uid, ids, context=None):
|
||||||
|
return self.write(cr, uid, ids, {'signup_token': False, 'signup_type': False, 'signup_expiration': False}, context=context)
|
||||||
|
|
||||||
def signup_prepare(self, cr, uid, ids, signup_type="signup", expiration=False, context=None):
|
def signup_prepare(self, cr, uid, ids, signup_type="signup", expiration=False, context=None):
|
||||||
""" generate a new token for the partners with the given validity, if necessary
|
""" generate a new token for the partners with the given validity, if necessary
|
||||||
:param expiration: the expiration datetime of the token (string, optional)
|
:param expiration: the expiration datetime of the token (string, optional)
|
||||||
|
@ -202,7 +209,7 @@ class res_users(osv.Model):
|
||||||
})
|
})
|
||||||
if partner.company_id:
|
if partner.company_id:
|
||||||
values['company_id'] = partner.company_id.id
|
values['company_id'] = partner.company_id.id
|
||||||
values['company_ids'] = [(6,0,[partner.company_id.id])]
|
values['company_ids'] = [(6, 0, [partner.company_id.id])]
|
||||||
self._signup_create_user(cr, uid, values, context=context)
|
self._signup_create_user(cr, uid, values, context=context)
|
||||||
else:
|
else:
|
||||||
# no token, sign up an external user
|
# no token, sign up an external user
|
||||||
|
@ -259,25 +266,26 @@ class res_users(osv.Model):
|
||||||
pass
|
pass
|
||||||
if not bool(template):
|
if not bool(template):
|
||||||
template = self.pool.get('ir.model.data').get_object(cr, uid, 'auth_signup', 'reset_password_email')
|
template = self.pool.get('ir.model.data').get_object(cr, uid, 'auth_signup', 'reset_password_email')
|
||||||
mail_obj = self.pool.get('mail.mail')
|
|
||||||
assert template._name == 'email.template'
|
assert template._name == 'email.template'
|
||||||
|
|
||||||
for user in self.browse(cr, uid, ids, context):
|
for user in self.browse(cr, uid, ids, context):
|
||||||
if not user.email:
|
if not user.email:
|
||||||
raise osv.except_osv(_("Cannot send email: user has no email address."), user.name)
|
raise osv.except_osv(_("Cannot send email: user has no email address."), user.name)
|
||||||
mail_id = self.pool.get('email.template').send_mail(cr, uid, template.id, user.id, True, context=context)
|
try:
|
||||||
mail_state = mail_obj.read(cr, uid, mail_id, ['state'], context=context)
|
self.pool.get('email.template').send_mail(cr, uid, template.id, user.id, force_send=True, raise_exception=True, context=context)
|
||||||
|
except Exception:
|
||||||
if mail_state and mail_state['state'] == 'exception':
|
raise
|
||||||
raise self.pool.get('res.config.settings').get_config_warning(cr, _("Cannot send email: no outgoing email server configured.\nYou can configure it under %(menu:base_setup.menu_general_configuration)s."), context)
|
|
||||||
else:
|
|
||||||
return True
|
|
||||||
|
|
||||||
def create(self, cr, uid, values, context=None):
|
def create(self, cr, uid, values, context=None):
|
||||||
|
if context is None:
|
||||||
|
context = {}
|
||||||
# overridden to automatically invite user to sign up
|
# overridden to automatically invite user to sign up
|
||||||
user_id = super(res_users, self).create(cr, uid, values, context=context)
|
user_id = super(res_users, self).create(cr, uid, values, context=context)
|
||||||
user = self.browse(cr, uid, user_id, context=context)
|
user = self.browse(cr, uid, user_id, context=context)
|
||||||
if context and context.get('reset_password') and user.email:
|
if user.email and not context.get('no_reset_password'):
|
||||||
ctx = dict(context, create_user=True)
|
context.update({'create_user': True})
|
||||||
self.action_reset_password(cr, uid, [user.id], context=ctx)
|
try:
|
||||||
|
self.action_reset_password(cr, uid, [user.id], context=context)
|
||||||
|
except MailDeliveryException:
|
||||||
|
self.pool.get('res.partner').signup_cancel(cr, uid, [user.partner_id.id], context=context)
|
||||||
return user_id
|
return user_id
|
||||||
|
|
|
@ -31,9 +31,11 @@
|
||||||
<!-- add Reset Password button -->
|
<!-- add Reset Password button -->
|
||||||
<xpath expr="//div[@class='oe_right oe_button_box']//button" position="replace">
|
<xpath expr="//div[@class='oe_right oe_button_box']//button" position="replace">
|
||||||
<button string="Send Reset Password Instructions"
|
<button string="Send Reset Password Instructions"
|
||||||
|
class="oe_link"
|
||||||
type="object" name="action_reset_password"
|
type="object" name="action_reset_password"
|
||||||
attrs="{'invisible': [('state', '!=', 'active')]}"/>
|
attrs="{'invisible': [('state', '!=', 'active')]}"/>
|
||||||
<button string="Send an Invitation Email"
|
<button string="Send an Invitation Email"
|
||||||
|
class="oe_link"
|
||||||
type="object" name="action_reset_password" context="{'create_user': 1}"
|
type="object" name="action_reset_password" context="{'create_user': 1}"
|
||||||
attrs="{'invisible': [('state', '!=', 'new')]}"/>
|
attrs="{'invisible': [('state', '!=', 'new')]}"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
|
|
|
@ -7,7 +7,7 @@ openerp.auth_signup = function(instance) {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.signup_enabled = false;
|
this.signup_enabled = false;
|
||||||
this.reset_password_enabled = false;
|
this.reset_password_enabled = false;
|
||||||
return this._super().then(function() {
|
return this._super().always(function() {
|
||||||
|
|
||||||
// Switches the login box to the select mode whith mode == [default|signup|reset]
|
// Switches the login box to the select mode whith mode == [default|signup|reset]
|
||||||
self.on('change:login_mode', self, function() {
|
self.on('change:login_mode', self, function() {
|
||||||
|
|
|
@ -50,6 +50,7 @@ class base_action_rule(osv.osv):
|
||||||
|
|
||||||
_name = 'base.action.rule'
|
_name = 'base.action.rule'
|
||||||
_description = 'Action Rules'
|
_description = 'Action Rules'
|
||||||
|
_order = 'sequence'
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
'name': fields.char('Rule Name', size=64, required=True),
|
'name': fields.char('Rule Name', size=64, required=True),
|
||||||
|
@ -61,7 +62,11 @@ class base_action_rule(osv.osv):
|
||||||
help="When unchecked, the rule is hidden and will not be executed."),
|
help="When unchecked, the rule is hidden and will not be executed."),
|
||||||
'sequence': fields.integer('Sequence',
|
'sequence': fields.integer('Sequence',
|
||||||
help="Gives the sequence order when displaying a list of rules."),
|
help="Gives the sequence order when displaying a list of rules."),
|
||||||
|
'kind': fields.selection(
|
||||||
|
[('on_create', 'On Creation'), ('on_write', 'On Update'), ('on_time', 'Based on Timed Condition')],
|
||||||
|
string='When to Run'),
|
||||||
'trg_date_id': fields.many2one('ir.model.fields', string='Trigger Date',
|
'trg_date_id': fields.many2one('ir.model.fields', string='Trigger Date',
|
||||||
|
help="When should the condition be triggered. If present, will be checked by the scheduler. If empty, will be checked at creation and update.",
|
||||||
domain="[('model_id', '=', model_id), ('ttype', 'in', ('date', 'datetime'))]"),
|
domain="[('model_id', '=', model_id), ('ttype', 'in', ('date', 'datetime'))]"),
|
||||||
'trg_date_range': fields.integer('Delay after trigger date',
|
'trg_date_range': fields.integer('Delay after trigger date',
|
||||||
help="Delay after the trigger date." \
|
help="Delay after the trigger date." \
|
||||||
|
@ -78,10 +83,10 @@ class base_action_rule(osv.osv):
|
||||||
ondelete='restrict',
|
ondelete='restrict',
|
||||||
domain="[('model_id', '=', model_id.model)]",
|
domain="[('model_id', '=', model_id.model)]",
|
||||||
help="If present, this condition must be satisfied before the update of the record."),
|
help="If present, this condition must be satisfied before the update of the record."),
|
||||||
'filter_id': fields.many2one('ir.filters', string='After Update Filter',
|
'filter_id': fields.many2one('ir.filters', string='Filter',
|
||||||
ondelete='restrict',
|
ondelete='restrict',
|
||||||
domain="[('model_id', '=', model_id.model)]",
|
domain="[('model_id', '=', model_id.model)]",
|
||||||
help="If present, this condition must be satisfied after the update of the record."),
|
help="If present, this condition must be satisfied before executing the action rule."),
|
||||||
'last_run': fields.datetime('Last Run', readonly=1),
|
'last_run': fields.datetime('Last Run', readonly=1),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,7 +95,15 @@ class base_action_rule(osv.osv):
|
||||||
'trg_date_range_type': 'day',
|
'trg_date_range_type': 'day',
|
||||||
}
|
}
|
||||||
|
|
||||||
_order = 'sequence'
|
def onchange_kind(self, cr, uid, ids, kind, context=None):
|
||||||
|
clear_fields = []
|
||||||
|
if kind == 'on_create':
|
||||||
|
clear_fields = ['filter_pre_id', 'trg_date_id', 'trg_date_range', 'trg_date_range_type']
|
||||||
|
elif kind == 'on_write':
|
||||||
|
clear_fields = ['trg_date_id', 'trg_date_range', 'trg_date_range_type']
|
||||||
|
elif kind == 'on_time':
|
||||||
|
clear_fields = ['filter_pre_id']
|
||||||
|
return {'value': dict.fromkeys(clear_fields, False)}
|
||||||
|
|
||||||
def _filter(self, cr, uid, action, action_filter, record_ids, context=None):
|
def _filter(self, cr, uid, action, action_filter, record_ids, context=None):
|
||||||
""" filter the list record_ids that satisfy the action filter """
|
""" filter the list record_ids that satisfy the action filter """
|
||||||
|
@ -105,14 +118,7 @@ class base_action_rule(osv.osv):
|
||||||
|
|
||||||
def _process(self, cr, uid, action, record_ids, context=None):
|
def _process(self, cr, uid, action, record_ids, context=None):
|
||||||
""" process the given action on the records """
|
""" process the given action on the records """
|
||||||
# execute server actions
|
|
||||||
model = self.pool[action.model_id.model]
|
model = self.pool[action.model_id.model]
|
||||||
if action.server_action_ids:
|
|
||||||
server_action_ids = map(int, action.server_action_ids)
|
|
||||||
for record in model.browse(cr, uid, record_ids, context):
|
|
||||||
action_server_obj = self.pool.get('ir.actions.server')
|
|
||||||
ctx = dict(context, active_model=model._name, active_ids=[record.id], active_id=record.id)
|
|
||||||
action_server_obj.run(cr, uid, server_action_ids, context=ctx)
|
|
||||||
|
|
||||||
# modify records
|
# modify records
|
||||||
values = {}
|
values = {}
|
||||||
|
@ -127,13 +133,21 @@ class base_action_rule(osv.osv):
|
||||||
follower_ids = map(int, action.act_followers)
|
follower_ids = map(int, action.act_followers)
|
||||||
model.message_subscribe(cr, uid, record_ids, follower_ids, context=context)
|
model.message_subscribe(cr, uid, record_ids, follower_ids, context=context)
|
||||||
|
|
||||||
|
# execute server actions
|
||||||
|
if action.server_action_ids:
|
||||||
|
server_action_ids = map(int, action.server_action_ids)
|
||||||
|
for record in model.browse(cr, uid, record_ids, context):
|
||||||
|
action_server_obj = self.pool.get('ir.actions.server')
|
||||||
|
ctx = dict(context, active_model=model._name, active_ids=[record.id], active_id=record.id)
|
||||||
|
action_server_obj.run(cr, uid, server_action_ids, context=ctx)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def _wrap_create(self, old_create, model):
|
def _wrap_create(self, old_create, model):
|
||||||
""" Return a wrapper around `old_create` calling both `old_create` and
|
""" Return a wrapper around `old_create` calling both `old_create` and
|
||||||
`_process`, in that order.
|
`_process`, in that order.
|
||||||
"""
|
"""
|
||||||
def wrapper(cr, uid, vals, context=None):
|
def create(cr, uid, vals, context=None):
|
||||||
# avoid loops or cascading actions
|
# avoid loops or cascading actions
|
||||||
if context and context.get('action'):
|
if context and context.get('action'):
|
||||||
return old_create(cr, uid, vals, context=context)
|
return old_create(cr, uid, vals, context=context)
|
||||||
|
@ -141,8 +155,8 @@ class base_action_rule(osv.osv):
|
||||||
context = dict(context or {}, action=True)
|
context = dict(context or {}, action=True)
|
||||||
new_id = old_create(cr, uid, vals, context=context)
|
new_id = old_create(cr, uid, vals, context=context)
|
||||||
|
|
||||||
# as it is a new record, we do not consider the actions that have a prefilter
|
# retrieve the action rules to run on creation
|
||||||
action_dom = [('model', '=', model), ('trg_date_id', '=', False), ('filter_pre_id', '=', False)]
|
action_dom = [('model', '=', model), ('kind', '=', 'on_create')]
|
||||||
action_ids = self.search(cr, uid, action_dom, context=context)
|
action_ids = self.search(cr, uid, action_dom, context=context)
|
||||||
|
|
||||||
# check postconditions, and execute actions on the records that satisfy them
|
# check postconditions, and execute actions on the records that satisfy them
|
||||||
|
@ -151,13 +165,13 @@ class base_action_rule(osv.osv):
|
||||||
self._process(cr, uid, action, [new_id], context=context)
|
self._process(cr, uid, action, [new_id], context=context)
|
||||||
return new_id
|
return new_id
|
||||||
|
|
||||||
return wrapper
|
return create
|
||||||
|
|
||||||
def _wrap_write(self, old_write, model):
|
def _wrap_write(self, old_write, model):
|
||||||
""" Return a wrapper around `old_write` calling both `old_write` and
|
""" Return a wrapper around `old_write` calling both `old_write` and
|
||||||
`_process`, in that order.
|
`_process`, in that order.
|
||||||
"""
|
"""
|
||||||
def wrapper(cr, uid, ids, vals, context=None):
|
def write(cr, uid, ids, vals, context=None):
|
||||||
# avoid loops or cascading actions
|
# avoid loops or cascading actions
|
||||||
if context and context.get('action'):
|
if context and context.get('action'):
|
||||||
return old_write(cr, uid, ids, vals, context=context)
|
return old_write(cr, uid, ids, vals, context=context)
|
||||||
|
@ -165,8 +179,8 @@ class base_action_rule(osv.osv):
|
||||||
context = dict(context or {}, action=True)
|
context = dict(context or {}, action=True)
|
||||||
ids = [ids] if isinstance(ids, (int, long, str)) else ids
|
ids = [ids] if isinstance(ids, (int, long, str)) else ids
|
||||||
|
|
||||||
# retrieve the action rules to possibly execute
|
# retrieve the action rules to run on update
|
||||||
action_dom = [('model', '=', model), ('trg_date_id', '=', False)]
|
action_dom = [('model', '=', model), ('kind', '=', 'on_write')]
|
||||||
action_ids = self.search(cr, uid, action_dom, context=context)
|
action_ids = self.search(cr, uid, action_dom, context=context)
|
||||||
actions = self.browse(cr, uid, action_ids, context=context)
|
actions = self.browse(cr, uid, action_ids, context=context)
|
||||||
|
|
||||||
|
@ -185,7 +199,7 @@ class base_action_rule(osv.osv):
|
||||||
self._process(cr, uid, action, post_ids, context=context)
|
self._process(cr, uid, action, post_ids, context=context)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
return wrapper
|
return write
|
||||||
|
|
||||||
def _register_hook(self, cr, ids=None):
|
def _register_hook(self, cr, ids=None):
|
||||||
""" Wrap the methods `create` and `write` of the models specified by
|
""" Wrap the methods `create` and `write` of the models specified by
|
||||||
|
@ -224,8 +238,8 @@ class base_action_rule(osv.osv):
|
||||||
def _check(self, cr, uid, automatic=False, use_new_cursor=False, context=None):
|
def _check(self, cr, uid, automatic=False, use_new_cursor=False, context=None):
|
||||||
""" This Function is called by scheduler. """
|
""" This Function is called by scheduler. """
|
||||||
context = context or {}
|
context = context or {}
|
||||||
# retrieve all the action rules that have a trg_date_id and no precondition
|
# retrieve all the action rules to run based on a timed condition
|
||||||
action_dom = [('trg_date_id', '!=', False), ('filter_pre_id', '=', False)]
|
action_dom = [('kind', '=', 'on_time')]
|
||||||
action_ids = self.search(cr, uid, action_dom, context=context)
|
action_ids = self.search(cr, uid, action_dom, context=context)
|
||||||
for action in self.browse(cr, uid, action_ids, context=context):
|
for action in self.browse(cr, uid, action_ids, context=context):
|
||||||
now = datetime.now()
|
now = datetime.now()
|
||||||
|
|
|
@ -26,24 +26,32 @@
|
||||||
<notebook>
|
<notebook>
|
||||||
<page string="Conditions">
|
<page string="Conditions">
|
||||||
<group>
|
<group>
|
||||||
<group name="filter" string="Filter Condition">
|
<field name="kind" required="1"
|
||||||
<field name="filter_pre_id" domain="[('model_id','=',model)]" context="{'default_model_id': model}"/>
|
on_change="onchange_kind(kind)"/>
|
||||||
<field name="filter_id" domain="[('model_id','=',model)]" context="{'default_model_id': model}"/>
|
<field name="filter_pre_id"
|
||||||
</group>
|
domain="[('model_id','=',model), ('user_id', '=', False)]"
|
||||||
<group name="timing" string="Timer">
|
context="{'default_model_id': model}"
|
||||||
<field name="trg_date_id"/>
|
attrs="{'invisible': [('kind', '!=', 'on_write')]}"/>
|
||||||
<label for="trg_date_range" string="Delay After Trigger Date" attrs="{'invisible': [('trg_date_id','=',False)]}"/>
|
<field name="filter_id"
|
||||||
<div attrs="{'invisible': [('trg_date_id','=',False)]}">
|
domain="[('model_id','=',model), ('user_id', '=', False)]"
|
||||||
<field name="trg_date_range" class="oe_inline"/>
|
context="{'default_model_id': model}"/>
|
||||||
<field name="trg_date_range_type" class="oe_inline" attrs="{'required': [('trg_date_id','!=',False)]}"/>
|
<field name="trg_date_id"
|
||||||
</div>
|
attrs="{'invisible': [('kind', '!=', 'on_time')], 'required': [('kind', '=', 'on_time')]}"/>
|
||||||
</group>
|
<label for="trg_date_range" string="Delay After Trigger Date"
|
||||||
|
attrs="{'invisible': [('trg_date_id','=',False)]}"/>
|
||||||
|
<div attrs="{'invisible': [('trg_date_id','=',False)]}">
|
||||||
|
<field name="trg_date_range" class="oe_inline"/>
|
||||||
|
<field name="trg_date_range_type" class="oe_inline" attrs="{'required': [('trg_date_id','!=',False)]}"/>
|
||||||
|
</div>
|
||||||
</group>
|
</group>
|
||||||
<p class="oe_grey">
|
<p>
|
||||||
<b>Select a filter or a timer as condition.</b><br/> An action rule is checked when you create or modify the "Related Document Model". The precondition filter is checked right before the modification while the postcondition filter is checked after the modification. A precondition filter will therefore not work during a creation.<br/>
|
Select when the action must be run, and add filters and/or timing conditions.
|
||||||
<b>To create a new filter:</b><br/>
|
<br/>
|
||||||
- Go to your "Related Document Model" page and set the filter parameters in the "Search" view (Example of filter based on Leads/Opportunities: Creation Date "is equal to" 01/01/2012)<br/>
|
In order to create a new filter:
|
||||||
- In this same "Search" view, select the menu "Save Current Filter", enter the name (Ex: Create the 01/01/2012) and add the option "Share with all users"<br/>
|
<ul>
|
||||||
|
<li>Go to your "Related Document Model" page and set the filter parameters in the "Search" view (Example of filter based on Leads/Opportunities: Creation Date "is equal to" 01/01/2012)</li>
|
||||||
|
<li>In this same "Search" view, select the menu "Save Current Filter", enter the name (Ex: Create the 01/01/2012) and add the option "Share with all users"</li>
|
||||||
|
</ul>
|
||||||
The filter must therefore be available in this page.
|
The filter must therefore be available in this page.
|
||||||
</p>
|
</p>
|
||||||
</page>
|
</page>
|
||||||
|
@ -76,6 +84,7 @@
|
||||||
<tree string="Action Rule">
|
<tree string="Action Rule">
|
||||||
<field name="sequence"/>
|
<field name="sequence"/>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
|
<field name="kind"/>
|
||||||
<field name="filter_id"/>
|
<field name="filter_id"/>
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
"PO-Revision-Date: 2012-05-10 18:17+0000\n"
|
"PO-Revision-Date: 2013-05-31 10:23+0000\n"
|
||||||
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: Russian <ru@li.org>\n"
|
"Language-Team: Russian <ru@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:46+0000\n"
|
"X-Launchpad-Export-Date: 2013-06-01 05:16+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16660)\n"
|
||||||
|
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: selection:base.action.rule.lead.test,state:0
|
#: selection:base.action.rule.lead.test,state:0
|
||||||
|
@ -58,7 +58,7 @@ msgstr "Добавить подписчиков"
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: field:base.action.rule,act_user_id:0
|
#: field:base.action.rule,act_user_id:0
|
||||||
msgid "Set Responsible"
|
msgid "Set Responsible"
|
||||||
msgstr ""
|
msgstr "Указать ответственного"
|
||||||
|
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: help:base.action.rule,trg_date_range:0
|
#: help:base.action.rule,trg_date_range:0
|
||||||
|
@ -71,7 +71,7 @@ msgstr ""
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: model:ir.model,name:base_action_rule.model_base_action_rule_lead_test
|
#: model:ir.model,name:base_action_rule.model_base_action_rule_lead_test
|
||||||
msgid "base.action.rule.lead.test"
|
msgid "base.action.rule.lead.test"
|
||||||
msgstr ""
|
msgstr "base.action.rule.lead.test"
|
||||||
|
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: selection:base.action.rule.lead.test,state:0
|
#: selection:base.action.rule.lead.test,state:0
|
||||||
|
@ -142,7 +142,7 @@ msgstr "Часы"
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: view:base.action.rule:0
|
#: view:base.action.rule:0
|
||||||
msgid "To create a new filter:"
|
msgid "To create a new filter:"
|
||||||
msgstr ""
|
msgstr "Для создания нового фильтра:"
|
||||||
|
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: field:base.action.rule,active:0
|
#: field:base.action.rule,active:0
|
||||||
|
@ -167,7 +167,7 @@ msgstr ""
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: view:base.action.rule:0
|
#: view:base.action.rule:0
|
||||||
msgid "Filter Condition"
|
msgid "Filter Condition"
|
||||||
msgstr ""
|
msgstr "Условие фильтра"
|
||||||
|
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: view:base.action.rule:0
|
#: view:base.action.rule:0
|
||||||
|
@ -216,7 +216,7 @@ msgstr "Тип задержки"
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: view:base.action.rule:0
|
#: view:base.action.rule:0
|
||||||
msgid "Server actions to run"
|
msgid "Server actions to run"
|
||||||
msgstr ""
|
msgstr "Действия сервера для запуска"
|
||||||
|
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: help:base.action.rule,active:0
|
#: help:base.action.rule,active:0
|
||||||
|
@ -246,7 +246,7 @@ msgstr "Минуты"
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: field:base.action.rule,model_id:0
|
#: field:base.action.rule,model_id:0
|
||||||
msgid "Related Document Model"
|
msgid "Related Document Model"
|
||||||
msgstr ""
|
msgstr "Модель связанного документа"
|
||||||
|
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: help:base.action.rule,filter_pre_id:0
|
#: help:base.action.rule,filter_pre_id:0
|
||||||
|
@ -310,7 +310,7 @@ msgstr "Действия сервера"
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: field:base.action.rule.lead.test,name:0
|
#: field:base.action.rule.lead.test,name:0
|
||||||
msgid "Subject"
|
msgid "Subject"
|
||||||
msgstr ""
|
msgstr "Тема"
|
||||||
|
|
||||||
#~ msgid "Set State to"
|
#~ msgid "Set State to"
|
||||||
#~ msgstr "Уснатовить состояние в"
|
#~ msgstr "Уснатовить состояние в"
|
||||||
|
|
|
@ -19,8 +19,8 @@ class base_action_rule_test(common.TransactionCase):
|
||||||
'name': "Lead is in done state",
|
'name': "Lead is in done state",
|
||||||
'is_default': False,
|
'is_default': False,
|
||||||
'model_id': 'base.action.rule.lead.test',
|
'model_id': 'base.action.rule.lead.test',
|
||||||
'domain' : "[('state','=','done')]",
|
'domain': "[('state','=','done')]",
|
||||||
}, context=context)
|
}, context=context)
|
||||||
|
|
||||||
def create_filter_draft(self, cr, uid, context=None):
|
def create_filter_draft(self, cr, uid, context=None):
|
||||||
filter_pool = self.registry('ir.filters')
|
filter_pool = self.registry('ir.filters')
|
||||||
|
@ -40,16 +40,16 @@ class base_action_rule_test(common.TransactionCase):
|
||||||
'user_id': self.admin,
|
'user_id': self.admin,
|
||||||
}, context=context)
|
}, context=context)
|
||||||
|
|
||||||
def create_rule(self, cr, uid, filter_id=False, filter_pre_id=False, context=None):
|
def create_rule(self, cr, uid, kind, filter_id=False, filter_pre_id=False, context=None):
|
||||||
"""
|
"""
|
||||||
The "Rule 1" says that when a lead goes to the 'draft' state, the responsible for that lead changes to user "demo"
|
The "Rule 1" says that when a lead goes to the 'draft' state, the responsible for that lead changes to user "demo"
|
||||||
"""
|
"""
|
||||||
return self.base_action_rule.create(cr,uid,{
|
return self.base_action_rule.create(cr,uid,{
|
||||||
'name' : "Rule 1",
|
'name': "Rule 1",
|
||||||
'model_id': self.registry('ir.model').search(cr, uid, [('model','=','base.action.rule.lead.test')], context=context)[0],
|
'model_id': self.registry('ir.model').search(cr, uid, [('model','=','base.action.rule.lead.test')], context=context)[0],
|
||||||
'active' : 1,
|
'kind': kind,
|
||||||
'filter_pre_id' : filter_pre_id,
|
'filter_pre_id': filter_pre_id,
|
||||||
'filter_id' : filter_id,
|
'filter_id': filter_id,
|
||||||
'act_user_id': self.demo,
|
'act_user_id': self.demo,
|
||||||
}, context=context)
|
}, context=context)
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ class base_action_rule_test(common.TransactionCase):
|
||||||
"""
|
"""
|
||||||
cr, uid = self.cr, self.uid
|
cr, uid = self.cr, self.uid
|
||||||
filter_draft = self.create_filter_draft(cr, uid)
|
filter_draft = self.create_filter_draft(cr, uid)
|
||||||
self.create_rule(cr, uid, filter_pre_id=filter_draft)
|
self.create_rule(cr, uid, 'on_write', filter_pre_id=filter_draft)
|
||||||
new_lead_id = self.create_lead_test_1(cr, uid)
|
new_lead_id = self.create_lead_test_1(cr, uid)
|
||||||
new_lead = self.model.browse(cr, uid, new_lead_id)
|
new_lead = self.model.browse(cr, uid, new_lead_id)
|
||||||
self.assertEquals(new_lead.state, 'draft')
|
self.assertEquals(new_lead.state, 'draft')
|
||||||
|
@ -73,11 +73,11 @@ class base_action_rule_test(common.TransactionCase):
|
||||||
|
|
||||||
def test_01_check_to_state_draft_post(self):
|
def test_01_check_to_state_draft_post(self):
|
||||||
"""
|
"""
|
||||||
Check that a new record (with state = draft) changes its responsible when there is a postcondition filter which check that the state is draft.
|
Check that a new record changes its responsible when there is a postcondition filter which check that the state is draft.
|
||||||
"""
|
"""
|
||||||
cr, uid = self.cr, self.uid
|
cr, uid = self.cr, self.uid
|
||||||
filter_draft = self.create_filter_draft(cr, uid)
|
filter_draft = self.create_filter_draft(cr, uid)
|
||||||
self.create_rule(cr, uid, filter_id=filter_draft)
|
self.create_rule(cr, uid, 'on_create')
|
||||||
new_lead_id = self.create_lead_test_1(cr, uid)
|
new_lead_id = self.create_lead_test_1(cr, uid)
|
||||||
new_lead = self.model.browse(cr, uid, new_lead_id)
|
new_lead = self.model.browse(cr, uid, new_lead_id)
|
||||||
self.assertEquals(new_lead.state, 'draft')
|
self.assertEquals(new_lead.state, 'draft')
|
||||||
|
@ -95,7 +95,7 @@ class base_action_rule_test(common.TransactionCase):
|
||||||
cr, uid = self.cr, self.uid
|
cr, uid = self.cr, self.uid
|
||||||
filter_draft = self.create_filter_draft(cr, uid)
|
filter_draft = self.create_filter_draft(cr, uid)
|
||||||
filter_done = self.create_filter_done(cr, uid)
|
filter_done = self.create_filter_done(cr, uid)
|
||||||
self.create_rule(cr, uid, filter_pre_id=filter_draft, filter_id=filter_done)
|
self.create_rule(cr, uid, 'on_write', filter_pre_id=filter_draft, filter_id=filter_done)
|
||||||
new_lead_id = self.create_lead_test_1(cr, uid)
|
new_lead_id = self.create_lead_test_1(cr, uid)
|
||||||
new_lead = self.model.browse(cr, uid, new_lead_id)
|
new_lead = self.model.browse(cr, uid, new_lead_id)
|
||||||
self.assertEquals(new_lead.state, 'draft')
|
self.assertEquals(new_lead.state, 'draft')
|
||||||
|
@ -133,7 +133,7 @@ class base_action_rule_test(common.TransactionCase):
|
||||||
cr, uid = self.cr, self.uid
|
cr, uid = self.cr, self.uid
|
||||||
filter_draft = self.create_filter_draft(cr, uid)
|
filter_draft = self.create_filter_draft(cr, uid)
|
||||||
filter_done = self.create_filter_done(cr, uid)
|
filter_done = self.create_filter_done(cr, uid)
|
||||||
self.create_rule(cr, uid, filter_pre_id=filter_draft, filter_id=filter_done)
|
self.create_rule(cr, uid, 'on_write', filter_pre_id=filter_draft, filter_id=filter_done)
|
||||||
new_lead_id = self.create_lead_test_1(cr, uid)
|
new_lead_id = self.create_lead_test_1(cr, uid)
|
||||||
new_lead = self.model.browse(cr, uid, new_lead_id)
|
new_lead = self.model.browse(cr, uid, new_lead_id)
|
||||||
self.assertEquals(new_lead.state, 'draft')
|
self.assertEquals(new_lead.state, 'draft')
|
||||||
|
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
"PO-Revision-Date: 2012-12-28 10:09+0000\n"
|
"PO-Revision-Date: 2013-05-27 12:19+0000\n"
|
||||||
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
"Last-Translator: leksei <lirgus@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:12+0000\n"
|
"X-Launchpad-Export-Date: 2013-05-28 05:17+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16640)\n"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: view:sale.config.settings:0
|
#: view:sale.config.settings:0
|
||||||
|
@ -41,6 +41,8 @@ msgstr "base.config.settings"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Use external authentication providers, sign in with google, facebook, ..."
|
"Use external authentication providers, sign in with google, facebook, ..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Использовать внешние сервисы аутентификации, например, вход через google, "
|
||||||
|
"facebook, ..."
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: view:sale.config.settings:0
|
#: view:sale.config.settings:0
|
||||||
|
@ -68,7 +70,7 @@ msgstr "Участник"
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: view:base.config.settings:0
|
#: view:base.config.settings:0
|
||||||
msgid "Portal access"
|
msgid "Portal access"
|
||||||
msgstr ""
|
msgstr "Доступ к порталу"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: view:base.config.settings:0
|
#: view:base.config.settings:0
|
||||||
|
@ -192,6 +194,9 @@ msgid ""
|
||||||
"When you create a new contact (person or company), you will be able to load "
|
"When you create a new contact (person or company), you will be able to load "
|
||||||
"all the data from LinkedIn (photos, address, etc)."
|
"all the data from LinkedIn (photos, address, etc)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Когда вы создаете новый контакт (человека или компанию), у вас есть "
|
||||||
|
"возможность загрузить из LinkedIn всю информацию о нем (адреса, фотографии и "
|
||||||
|
"т.д.)"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: help:base.config.settings,module_multi_company:0
|
#: help:base.config.settings,module_multi_company:0
|
||||||
|
@ -200,6 +205,9 @@ msgid ""
|
||||||
"companies.\n"
|
"companies.\n"
|
||||||
" This installs the module multi_company."
|
" This installs the module multi_company."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Работать в режиме Мульти-компании, с соответствующими правами доступа между "
|
||||||
|
"компаниями.\n"
|
||||||
|
" Будет установлен модуль multi_company."
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: view:base.config.settings:0
|
#: view:base.config.settings:0
|
||||||
|
@ -208,6 +216,9 @@ msgid ""
|
||||||
"You can\n"
|
"You can\n"
|
||||||
" launch the OpenERP Server with the option"
|
" launch the OpenERP Server with the option"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Публичный портал доступен только при использовании одной базы данных. Вы "
|
||||||
|
"можете\n"
|
||||||
|
" запустить сервер OpenERP с этой опцией"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: view:base.config.settings:0
|
#: view:base.config.settings:0
|
||||||
|
@ -215,6 +226,8 @@ msgid ""
|
||||||
"You will find more options in your company details: address for the header "
|
"You will find more options in your company details: address for the header "
|
||||||
"and footer, overdue payments texts, etc."
|
"and footer, overdue payments texts, etc."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Больше опций вы можете найти в настройках компании: адреса для "
|
||||||
|
"верхнего/нижнего колонтитула, тексты для просроченных платежей и т.д."
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: model:ir.model,name:base_setup.model_sale_config_settings
|
#: model:ir.model,name:base_setup.model_sale_config_settings
|
||||||
|
@ -238,6 +251,14 @@ msgid ""
|
||||||
"projects,\n"
|
"projects,\n"
|
||||||
" etc."
|
" etc."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Когда вы отправляете заказчику документы\n"
|
||||||
|
" (прайсы, счета), для их получения он "
|
||||||
|
"сможет\n"
|
||||||
|
" войти на портал, где так же сможет "
|
||||||
|
"прочитать\n"
|
||||||
|
" новости вашей компании, узнать "
|
||||||
|
"обновления по\n"
|
||||||
|
" его проектам и т.д."
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: model:ir.model,name:base_setup.model_base_setup_terminology
|
#: model:ir.model,name:base_setup.model_base_setup_terminology
|
||||||
|
@ -252,7 +273,7 @@ msgstr "Клиент"
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: help:base.config.settings,module_portal_anonymous:0
|
#: help:base.config.settings,module_portal_anonymous:0
|
||||||
msgid "Enable the public part of openerp, openerp becomes a public website."
|
msgid "Enable the public part of openerp, openerp becomes a public website."
|
||||||
msgstr ""
|
msgstr "Включая публичную часть, openerp становится общедоступным сайтом."
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: help:sale.config.settings,module_plugin_thunderbird:0
|
#: help:sale.config.settings,module_plugin_thunderbird:0
|
||||||
|
@ -274,13 +295,13 @@ msgstr "Контрагент"
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: model:ir.actions.act_window,name:base_setup.action_partner_terminology_config_form
|
#: model:ir.actions.act_window,name:base_setup.action_partner_terminology_config_form
|
||||||
msgid "Use another word to say \"Customer\""
|
msgid "Use another word to say \"Customer\""
|
||||||
msgstr ""
|
msgstr "Использовать другое слово вместо \"Заказчик\""
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: model:ir.actions.act_window,name:base_setup.action_sale_config
|
#: model:ir.actions.act_window,name:base_setup.action_sale_config
|
||||||
#: view:sale.config.settings:0
|
#: view:sale.config.settings:0
|
||||||
msgid "Configure Sales"
|
msgid "Configure Sales"
|
||||||
msgstr ""
|
msgstr "Настройки продаж"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: help:sale.config.settings,module_plugin_outlook:0
|
#: help:sale.config.settings,module_plugin_outlook:0
|
||||||
|
@ -297,12 +318,12 @@ msgstr ""
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: view:base.config.settings:0
|
#: view:base.config.settings:0
|
||||||
msgid "Options"
|
msgid "Options"
|
||||||
msgstr ""
|
msgstr "Настройки"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: field:base.config.settings,module_portal:0
|
#: field:base.config.settings,module_portal:0
|
||||||
msgid "Activate the customer portal"
|
msgid "Activate the customer portal"
|
||||||
msgstr ""
|
msgstr "Включить клиентский портал"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: view:base.config.settings:0
|
#: view:base.config.settings:0
|
||||||
|
@ -315,32 +336,32 @@ msgstr ""
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: field:base.config.settings,module_share:0
|
#: field:base.config.settings,module_share:0
|
||||||
msgid "Allow documents sharing"
|
msgid "Allow documents sharing"
|
||||||
msgstr ""
|
msgstr "Разрешить совместный доступ к документам"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: view:base.config.settings:0
|
#: view:base.config.settings:0
|
||||||
msgid "(company news, jobs, contact form, etc.)"
|
msgid "(company news, jobs, contact form, etc.)"
|
||||||
msgstr ""
|
msgstr "(новости компании, вакансии, форма обратной связи т.д.)"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: field:base.config.settings,module_portal_anonymous:0
|
#: field:base.config.settings,module_portal_anonymous:0
|
||||||
msgid "Activate the public portal"
|
msgid "Activate the public portal"
|
||||||
msgstr ""
|
msgstr "Включить публичный портал"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: view:base.config.settings:0
|
#: view:base.config.settings:0
|
||||||
msgid "Configure outgoing email servers"
|
msgid "Configure outgoing email servers"
|
||||||
msgstr ""
|
msgstr "Настроить сервер(а) исходящей почты"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: view:sale.config.settings:0
|
#: view:sale.config.settings:0
|
||||||
msgid "Social Network Integration"
|
msgid "Social Network Integration"
|
||||||
msgstr ""
|
msgstr "Интеграция с социальными сетями"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: help:base.config.settings,module_portal:0
|
#: help:base.config.settings,module_portal:0
|
||||||
msgid "Give your customers access to their documents."
|
msgid "Give your customers access to their documents."
|
||||||
msgstr ""
|
msgstr "Разрешить заказчикам доступ к своим документам"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: view:base.config.settings:0
|
#: view:base.config.settings:0
|
||||||
|
@ -352,23 +373,23 @@ msgstr "Отмена"
|
||||||
#: view:base.config.settings:0
|
#: view:base.config.settings:0
|
||||||
#: view:sale.config.settings:0
|
#: view:sale.config.settings:0
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr ""
|
msgstr "Применить"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: view:base.setup.terminology:0
|
#: view:base.setup.terminology:0
|
||||||
msgid "Specify Your Terminology"
|
msgid "Specify Your Terminology"
|
||||||
msgstr ""
|
msgstr "Определить терминологию"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: view:base.config.settings:0
|
#: view:base.config.settings:0
|
||||||
#: view:sale.config.settings:0
|
#: view:sale.config.settings:0
|
||||||
msgid "or"
|
msgid "or"
|
||||||
msgstr ""
|
msgstr "или"
|
||||||
|
|
||||||
#. module: base_setup
|
#. module: base_setup
|
||||||
#: view:base.config.settings:0
|
#: view:base.config.settings:0
|
||||||
msgid "Configure your company data"
|
msgid "Configure your company data"
|
||||||
msgstr ""
|
msgstr "Настроить информацию о компании"
|
||||||
|
|
||||||
#~ msgid "City"
|
#~ msgid "City"
|
||||||
#~ msgstr "Город"
|
#~ msgstr "Город"
|
||||||
|
|
|
@ -104,7 +104,7 @@ class base_state(object):
|
||||||
if parent_id.change_responsible and parent_id.user_id:
|
if parent_id.change_responsible and parent_id.user_id:
|
||||||
data['user_id'] = parent_id.user_id.id
|
data['user_id'] = parent_id.user_id.id
|
||||||
else:
|
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, context=context)
|
self.write(cr, uid, [case.id], data, context=context)
|
||||||
case.case_escalate_send_note(parent_id, context=context)
|
case.case_escalate_send_note(parent_id, context=context)
|
||||||
return True
|
return True
|
||||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
"PO-Revision-Date: 2012-12-28 10:04+0000\n"
|
"PO-Revision-Date: 2013-06-05 07:16+0000\n"
|
||||||
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: Russian <ru@li.org>\n"
|
"Language-Team: Russian <ru@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:52+0000\n"
|
"X-Launchpad-Export-Date: 2013-06-06 05:21+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16667)\n"
|
||||||
|
|
||||||
#. module: base_status
|
#. module: base_status
|
||||||
#: code:addons/base_status/base_state.py:107
|
#: code:addons/base_status/base_state.py:107
|
||||||
|
@ -27,13 +27,13 @@ msgstr "Ошибка !"
|
||||||
#: code:addons/base_status/base_state.py:166
|
#: code:addons/base_status/base_state.py:166
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%s has been <b>opened</b>."
|
msgid "%s has been <b>opened</b>."
|
||||||
msgstr ""
|
msgstr "%s было <b>открыто</b>."
|
||||||
|
|
||||||
#. module: base_status
|
#. module: base_status
|
||||||
#: code:addons/base_status/base_state.py:199
|
#: code:addons/base_status/base_state.py:199
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%s has been <b>renewed</b>."
|
msgid "%s has been <b>renewed</b>."
|
||||||
msgstr ""
|
msgstr "%s было <b>обновлено</b>."
|
||||||
|
|
||||||
#. module: base_status
|
#. module: base_status
|
||||||
#: code:addons/base_status/base_stage.py:210
|
#: code:addons/base_status/base_stage.py:210
|
||||||
|
@ -55,13 +55,13 @@ msgstr ""
|
||||||
#: code:addons/base_status/base_state.py:193
|
#: code:addons/base_status/base_state.py:193
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%s is now <b>pending</b>."
|
msgid "%s is now <b>pending</b>."
|
||||||
msgstr ""
|
msgstr "%s сейчас <b>в ожидании</b>."
|
||||||
|
|
||||||
#. module: base_status
|
#. module: base_status
|
||||||
#: code:addons/base_status/base_state.py:187
|
#: code:addons/base_status/base_state.py:187
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%s has been <b>canceled</b>."
|
msgid "%s has been <b>canceled</b>."
|
||||||
msgstr ""
|
msgstr "%s было <b>отменено</b>."
|
||||||
|
|
||||||
#. module: base_status
|
#. module: base_status
|
||||||
#: code:addons/base_status/base_stage.py:210
|
#: code:addons/base_status/base_stage.py:210
|
||||||
|
@ -70,9 +70,11 @@ msgid ""
|
||||||
"You are already at the top level of your sales-team category.\n"
|
"You are already at the top level of your sales-team category.\n"
|
||||||
"Therefore you cannot escalate furthermore."
|
"Therefore you cannot escalate furthermore."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Вы уже на высшем уровне категории вашей команды продаж.\n"
|
||||||
|
"Поэтому вы не можете обострить."
|
||||||
|
|
||||||
#. module: base_status
|
#. module: base_status
|
||||||
#: code:addons/base_status/base_state.py:181
|
#: code:addons/base_status/base_state.py:181
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%s has been <b>closed</b>."
|
msgid "%s has been <b>closed</b>."
|
||||||
msgstr ""
|
msgstr "%s было <b>закрыто</b>."
|
||||||
|
|
|
@ -83,6 +83,8 @@ class res_partner(osv.osv):
|
||||||
Check the VAT number depending of the country.
|
Check the VAT number depending of the country.
|
||||||
http://sima-pc.com/nif.php
|
http://sima-pc.com/nif.php
|
||||||
'''
|
'''
|
||||||
|
if not ustr(country_code).encode('utf-8').isalpha():
|
||||||
|
return False
|
||||||
check_func_name = 'check_vat_' + country_code
|
check_func_name = 'check_vat_' + country_code
|
||||||
check_func = getattr(self, check_func_name, None) or \
|
check_func = getattr(self, check_func_name, None) or \
|
||||||
getattr(vatnumber, check_func_name, None)
|
getattr(vatnumber, check_func_name, None)
|
||||||
|
|
|
@ -8,29 +8,29 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
"PO-Revision-Date: 2010-09-30 06:47+0000\n"
|
"PO-Revision-Date: 2013-06-05 07:11+0000\n"
|
||||||
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: Russian <ru@li.org>\n"
|
"Language-Team: Russian <ru@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:41+0000\n"
|
"X-Launchpad-Export-Date: 2013-06-06 05:21+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16667)\n"
|
||||||
|
|
||||||
#. module: claim_from_delivery
|
#. module: claim_from_delivery
|
||||||
#: view:stock.picking.out:0
|
#: view:stock.picking.out:0
|
||||||
msgid "Claims"
|
msgid "Claims"
|
||||||
msgstr ""
|
msgstr "Рекламации"
|
||||||
|
|
||||||
#. module: claim_from_delivery
|
#. module: claim_from_delivery
|
||||||
#: model:res.request.link,name:claim_from_delivery.request_link_claim_from_delivery
|
#: model:res.request.link,name:claim_from_delivery.request_link_claim_from_delivery
|
||||||
msgid "Delivery Order"
|
msgid "Delivery Order"
|
||||||
msgstr ""
|
msgstr "Заказ доставки"
|
||||||
|
|
||||||
#. module: claim_from_delivery
|
#. module: claim_from_delivery
|
||||||
#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery
|
#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery
|
||||||
msgid "Claim From Delivery"
|
msgid "Claim From Delivery"
|
||||||
msgstr ""
|
msgstr "Рекламация по доставке"
|
||||||
|
|
||||||
#~ msgid "Claim from delivery"
|
#~ msgid "Claim from delivery"
|
||||||
#~ msgstr "Претензия из доставки"
|
#~ msgstr "Претензия из доставки"
|
||||||
|
|
|
@ -81,8 +81,6 @@ Dashboard for CRM will include:
|
||||||
'crm_lead_view.xml',
|
'crm_lead_view.xml',
|
||||||
'crm_lead_menu.xml',
|
'crm_lead_menu.xml',
|
||||||
|
|
||||||
'crm_case_section_view.xml',
|
|
||||||
|
|
||||||
'crm_meeting_menu.xml',
|
'crm_meeting_menu.xml',
|
||||||
|
|
||||||
'crm_phonecall_view.xml',
|
'crm_phonecall_view.xml',
|
||||||
|
@ -98,6 +96,8 @@ Dashboard for CRM will include:
|
||||||
|
|
||||||
'res_config_view.xml',
|
'res_config_view.xml',
|
||||||
'base_partner_merge_view.xml',
|
'base_partner_merge_view.xml',
|
||||||
|
|
||||||
|
'crm_case_section_view.xml',
|
||||||
],
|
],
|
||||||
'demo': [
|
'demo': [
|
||||||
'crm_demo.xml',
|
'crm_demo.xml',
|
||||||
|
@ -121,7 +121,8 @@ Dashboard for CRM will include:
|
||||||
'static/src/css/crm.css'
|
'static/src/css/crm.css'
|
||||||
],
|
],
|
||||||
'js': [
|
'js': [
|
||||||
'static/src/js/crm.js'
|
'static/lib/sparkline/jquery.sparkline.js',
|
||||||
|
'static/src/js/crm_case_section.js',
|
||||||
],
|
],
|
||||||
'installable': True,
|
'installable': True,
|
||||||
'application': True,
|
'application': True,
|
||||||
|
|
|
@ -13,6 +13,7 @@ from openerp.tools import mute_logger
|
||||||
# Validation Library https://pypi.python.org/pypi/validate_email/1.1
|
# Validation Library https://pypi.python.org/pypi/validate_email/1.1
|
||||||
from .validate_email import validate_email
|
from .validate_email import validate_email
|
||||||
|
|
||||||
|
import openerp
|
||||||
from openerp.osv import osv, orm
|
from openerp.osv import osv, orm
|
||||||
from openerp.osv import fields
|
from openerp.osv import fields
|
||||||
from openerp.osv.orm import browse_record
|
from openerp.osv.orm import browse_record
|
||||||
|
@ -101,14 +102,26 @@ class MergePartnerAutomatic(osv.TransientModel):
|
||||||
'current_line_id': fields.many2one('base.partner.merge.line', 'Current Line'),
|
'current_line_id': fields.many2one('base.partner.merge.line', 'Current Line'),
|
||||||
'line_ids': fields.one2many('base.partner.merge.line', 'wizard_id', 'Lines'),
|
'line_ids': fields.one2many('base.partner.merge.line', 'wizard_id', 'Lines'),
|
||||||
'partner_ids': fields.many2many('res.partner', string='Contacts'),
|
'partner_ids': fields.many2many('res.partner', string='Contacts'),
|
||||||
|
'dst_partner_id': fields.many2one('res.partner', string='Destination Contact'),
|
||||||
|
|
||||||
'exclude_contact': fields.boolean('A user associated to the contact'),
|
'exclude_contact': fields.boolean('A user associated to the contact'),
|
||||||
'exclude_journal_item': fields.boolean('Journal Items associated to the contact'),
|
'exclude_journal_item': fields.boolean('Journal Items associated to the contact'),
|
||||||
'maximum_group': fields.integer("Maximum of Group of Contacts"),
|
'maximum_group': fields.integer("Maximum of Group of Contacts"),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def default_get(self, cr, uid, fields, context=None):
|
||||||
|
if context is None:
|
||||||
|
context = {}
|
||||||
|
res = super(MergePartnerAutomatic, self).default_get(cr, uid, fields, context)
|
||||||
|
if context.get('active_model') == 'res.partner' and context.get('active_ids'):
|
||||||
|
partner_ids = context['active_ids']
|
||||||
|
res['state'] = 'selection'
|
||||||
|
res['partner_ids'] = partner_ids
|
||||||
|
res['dst_partner_id'] = self._get_ordered_partner(cr, uid, partner_ids, context=context)[-1].id
|
||||||
|
return res
|
||||||
|
|
||||||
_defaults = {
|
_defaults = {
|
||||||
'state': 'option',
|
'state': 'option'
|
||||||
}
|
}
|
||||||
|
|
||||||
def get_fk_on(self, cr, table):
|
def get_fk_on(self, cr, table):
|
||||||
|
@ -204,8 +217,8 @@ class MergePartnerAutomatic(osv.TransientModel):
|
||||||
if proxy is None:
|
if proxy is None:
|
||||||
return
|
return
|
||||||
domain = [(field_model, '=', 'res.partner'), (field_id, '=', src.id)]
|
domain = [(field_model, '=', 'res.partner'), (field_id, '=', src.id)]
|
||||||
ids = proxy.search(cr, uid, domain, context=context)
|
ids = proxy.search(cr, openerp.SUPERUSER_ID, domain, context=context)
|
||||||
return proxy.write(cr, uid, ids, {field_id: dst_partner.id}, context=context)
|
return proxy.write(cr, openerp.SUPERUSER_ID, ids, {field_id: dst_partner.id}, context=context)
|
||||||
|
|
||||||
update_records = functools.partial(update_records, context=context)
|
update_records = functools.partial(update_records, context=context)
|
||||||
|
|
||||||
|
@ -219,9 +232,9 @@ class MergePartnerAutomatic(osv.TransientModel):
|
||||||
|
|
||||||
proxy = self.pool['ir.model.fields']
|
proxy = self.pool['ir.model.fields']
|
||||||
domain = [('ttype', '=', 'reference')]
|
domain = [('ttype', '=', 'reference')]
|
||||||
record_ids = proxy.search(cr, uid, domain, context=context)
|
record_ids = proxy.search(cr, openerp.SUPERUSER_ID, domain, context=context)
|
||||||
|
|
||||||
for record in proxy.browse(cr, uid, record_ids, context=context):
|
for record in proxy.browse(cr, openerp.SUPERUSER_ID, record_ids, context=context):
|
||||||
proxy_model = self.pool[record.model]
|
proxy_model = self.pool[record.model]
|
||||||
|
|
||||||
field_type = proxy_model._columns.get(record.name).__class__._type
|
field_type = proxy_model._columns.get(record.name).__class__._type
|
||||||
|
@ -233,11 +246,11 @@ class MergePartnerAutomatic(osv.TransientModel):
|
||||||
domain = [
|
domain = [
|
||||||
(record.name, '=', 'res.partner,%d' % partner.id)
|
(record.name, '=', 'res.partner,%d' % partner.id)
|
||||||
]
|
]
|
||||||
model_ids = proxy_model.search(cr, uid, domain, context=context)
|
model_ids = proxy_model.search(cr, openerp.SUPERUSER_ID, domain, context=context)
|
||||||
values = {
|
values = {
|
||||||
record.name: 'res.partner,%d' % dst_partner.id,
|
record.name: 'res.partner,%d' % dst_partner.id,
|
||||||
}
|
}
|
||||||
proxy_model.write(cr, uid, model_ids, values, context=context)
|
proxy_model.write(cr, openerp.SUPERUSER_ID, model_ids, values, context=context)
|
||||||
|
|
||||||
def _update_values(self, cr, uid, src_partners, dst_partner, context=None):
|
def _update_values(self, cr, uid, src_partners, dst_partner, context=None):
|
||||||
_logger.debug('_update_values for dst_partner: %s for src_partners: %r', dst_partner.id, list(map(operator.attrgetter('id'), src_partners)))
|
_logger.debug('_update_values for dst_partner: %s for src_partners: %r', dst_partner.id, list(map(operator.attrgetter('id'), src_partners)))
|
||||||
|
@ -251,7 +264,7 @@ class MergePartnerAutomatic(osv.TransientModel):
|
||||||
|
|
||||||
values = dict()
|
values = dict()
|
||||||
for column, field in columns.iteritems():
|
for column, field in columns.iteritems():
|
||||||
if field._type not in ('many2many', 'one2many', 'function'):
|
if field._type not in ('many2many', 'one2many') and not isinstance(field, fields.function):
|
||||||
for item in itertools.chain(src_partners, [dst_partner]):
|
for item in itertools.chain(src_partners, [dst_partner]):
|
||||||
if item[column]:
|
if item[column]:
|
||||||
values[column] = write_serializer(column, item[column])
|
values[column] = write_serializer(column, item[column])
|
||||||
|
@ -266,22 +279,31 @@ class MergePartnerAutomatic(osv.TransientModel):
|
||||||
_logger.info('Skip recursive partner hierarchies for parent_id %s of partner: %s', parent_id, dst_partner.id)
|
_logger.info('Skip recursive partner hierarchies for parent_id %s of partner: %s', parent_id, dst_partner.id)
|
||||||
|
|
||||||
@mute_logger('openerp.osv.expression', 'openerp.osv.orm')
|
@mute_logger('openerp.osv.expression', 'openerp.osv.orm')
|
||||||
def _merge(self, cr, uid, partner_ids, context=None):
|
def _merge(self, cr, uid, partner_ids, dst_partner=None, context=None):
|
||||||
proxy = self.pool.get('res.partner')
|
proxy = self.pool.get('res.partner')
|
||||||
|
|
||||||
partner_ids = proxy.exists(cr, uid, list(partner_ids), context=context)
|
partner_ids = proxy.exists(cr, uid, list(partner_ids), context=context)
|
||||||
if len(partner_ids) < 2:
|
if len(partner_ids) < 2:
|
||||||
return
|
return
|
||||||
|
|
||||||
partners = proxy.browse(cr, uid, list(partner_ids), context=context)
|
if len(partner_ids) > 3:
|
||||||
ordered_partners = sorted(sorted(partners,
|
raise osv.except_osv(_('Error'), _("For safety reasons, you cannot merge more than 3 contacts together. You can re-open the wizard several times if needed."))
|
||||||
key=operator.attrgetter('create_date'), reverse=True),
|
|
||||||
key=operator.attrgetter('active'), reverse=True)
|
|
||||||
|
|
||||||
dst_partner = ordered_partners[-1]
|
if openerp.SUPERUSER_ID != uid and len(set(partner.email for partner in proxy.browse(cr, uid, partner_ids, context=context))) > 1:
|
||||||
src_partners = ordered_partners[:-1]
|
raise osv.except_osv(_('Error'), _("All contacts must have the same email. Only the Administrator can merge contacts with different emails."))
|
||||||
|
|
||||||
|
if dst_partner and dst_partner.id in partner_ids:
|
||||||
|
src_partners = proxy.browse(cr, uid, [id for id in partner_ids if id != dst_partner.id], context=context)
|
||||||
|
else:
|
||||||
|
ordered_partners = self._get_ordered_partner(cr, uid, partner_ids, context)
|
||||||
|
dst_partner = ordered_partners[-1]
|
||||||
|
src_partners = ordered_partners[:-1]
|
||||||
_logger.info("dst_partner: %s", dst_partner.id)
|
_logger.info("dst_partner: %s", dst_partner.id)
|
||||||
|
|
||||||
|
if openerp.SUPERUSER_ID != uid and self._model_is_installed(cr, uid, 'account.move.line', context=context) and \
|
||||||
|
self.pool.get('account.move.line').search(cr, openerp.SUPERUSER_ID, [('partner_id', 'in', [partner.id for partner in src_partners])], context=context):
|
||||||
|
raise osv.except_osv(_('Error'), _("Only the destination contact may be linked to existing Journal Items. Please ask the Administrator if you need to merge several contacts linked to existing Journal Items."))
|
||||||
|
|
||||||
call_it = lambda function: function(cr, uid, src_partners, dst_partner,
|
call_it = lambda function: function(cr, uid, src_partners, dst_partner,
|
||||||
context=context)
|
context=context)
|
||||||
|
|
||||||
|
@ -289,12 +311,12 @@ class MergePartnerAutomatic(osv.TransientModel):
|
||||||
call_it(self._update_reference_fields)
|
call_it(self._update_reference_fields)
|
||||||
call_it(self._update_values)
|
call_it(self._update_values)
|
||||||
|
|
||||||
_logger.info("---merged---")
|
_logger.info('(uid = %s) merged the partners %r with %s', uid, list(map(operator.attrgetter('id'), src_partners)), dst_partner.id)
|
||||||
|
dst_partner.message_post(body='%s %s'%(_("Merged with the following partners:"), ", ".join('%s<%s>(ID %s)' % (p.name, p.email or 'n/a', p.id) for p in src_partners)))
|
||||||
|
|
||||||
for partner in src_partners:
|
for partner in src_partners:
|
||||||
partner.unlink()
|
partner.unlink()
|
||||||
|
|
||||||
|
|
||||||
def clean_emails(self, cr, uid, context=None):
|
def clean_emails(self, cr, uid, context=None):
|
||||||
"""
|
"""
|
||||||
Clean the email address of the partner, if there is an email field with
|
Clean the email address of the partner, if there is an email field with
|
||||||
|
@ -414,9 +436,16 @@ class MergePartnerAutomatic(osv.TransientModel):
|
||||||
this = self.browse(cr, uid, ids[0], context=context)
|
this = self.browse(cr, uid, ids[0], context=context)
|
||||||
if this.current_line_id:
|
if this.current_line_id:
|
||||||
this.current_line_id.unlink()
|
this.current_line_id.unlink()
|
||||||
return self._next_screen(this)
|
return self._next_screen(cr, uid, this, context)
|
||||||
|
|
||||||
def _next_screen(self, this):
|
def _get_ordered_partner(self, cr, uid, partner_ids, context=None):
|
||||||
|
partners = self.pool.get('res.partner').browse(cr, uid, list(partner_ids), context=context)
|
||||||
|
ordered_partners = sorted(sorted(partners,
|
||||||
|
key=operator.attrgetter('create_date'), reverse=True),
|
||||||
|
key=operator.attrgetter('active'), reverse=True)
|
||||||
|
return ordered_partners
|
||||||
|
|
||||||
|
def _next_screen(self, cr, uid, this, context=None):
|
||||||
this.refresh()
|
this.refresh()
|
||||||
values = {}
|
values = {}
|
||||||
if this.line_ids:
|
if this.line_ids:
|
||||||
|
@ -426,6 +455,7 @@ class MergePartnerAutomatic(osv.TransientModel):
|
||||||
values.update({
|
values.update({
|
||||||
'current_line_id': current_line.id,
|
'current_line_id': current_line.id,
|
||||||
'partner_ids': [(6, 0, current_partner_ids)],
|
'partner_ids': [(6, 0, current_partner_ids)],
|
||||||
|
'dst_partner_id': self._get_ordered_partner(cr, uid, current_partner_ids, context)[-1].id,
|
||||||
'state': 'selection',
|
'state': 'selection',
|
||||||
})
|
})
|
||||||
else:
|
else:
|
||||||
|
@ -525,7 +555,7 @@ class MergePartnerAutomatic(osv.TransientModel):
|
||||||
query = self._generate_query(groups, this.maximum_group)
|
query = self._generate_query(groups, this.maximum_group)
|
||||||
self._process_query(cr, uid, ids, query, context=context)
|
self._process_query(cr, uid, ids, query, context=context)
|
||||||
|
|
||||||
return self._next_screen(this)
|
return self._next_screen(cr, uid, this, context)
|
||||||
|
|
||||||
def automatic_process_cb(self, cr, uid, ids, context=None):
|
def automatic_process_cb(self, cr, uid, ids, context=None):
|
||||||
assert is_integer_list(ids)
|
assert is_integer_list(ids)
|
||||||
|
@ -666,7 +696,7 @@ class MergePartnerAutomatic(osv.TransientModel):
|
||||||
# p1.parent_id = p1.id
|
# p1.parent_id = p1.id
|
||||||
# """)
|
# """)
|
||||||
|
|
||||||
return self._next_screen(this)
|
return self._next_screen(cr, uid, this, context)
|
||||||
|
|
||||||
def merge_cb(self, cr, uid, ids, context=None):
|
def merge_cb(self, cr, uid, ids, context=None):
|
||||||
assert is_integer_list(ids)
|
assert is_integer_list(ids)
|
||||||
|
@ -685,33 +715,12 @@ class MergePartnerAutomatic(osv.TransientModel):
|
||||||
'target': 'new',
|
'target': 'new',
|
||||||
}
|
}
|
||||||
|
|
||||||
self._merge(cr, uid, partner_ids, context=context)
|
self._merge(cr, uid, partner_ids, this.dst_partner_id, context=context)
|
||||||
|
|
||||||
this.current_line_id.unlink()
|
if this.current_line_id:
|
||||||
|
this.current_line_id.unlink()
|
||||||
|
|
||||||
return self._next_screen(this)
|
return self._next_screen(cr, uid, this, context)
|
||||||
|
|
||||||
def merge_multi(self, cr, uid, ids, context=None):
|
|
||||||
|
|
||||||
active_model = context.get('active_model')
|
|
||||||
if active_model != 'res.partner':
|
|
||||||
raise osv.except_osv(
|
|
||||||
_('Error'),
|
|
||||||
_('This wizard can only used with the Partners')
|
|
||||||
)
|
|
||||||
|
|
||||||
partner_ids = context.get('active_ids', [])
|
|
||||||
|
|
||||||
MINIMAL_NUMBER = 2
|
|
||||||
if len(partner_ids) < MINIMAL_NUMBER:
|
|
||||||
raise osv.except_osv(
|
|
||||||
_('Error'),
|
|
||||||
_("You can't use this wizard with only one Partner")
|
|
||||||
)
|
|
||||||
|
|
||||||
self._merge(cr, uid, partner_ids, context=context)
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
def auto_set_parent_id(self, cr, uid, ids, context=None):
|
def auto_set_parent_id(self, cr, uid, ids, context=None):
|
||||||
assert is_integer_list(ids)
|
assert is_integer_list(ids)
|
||||||
|
|
|
@ -68,9 +68,9 @@
|
||||||
OpenERP will propose you to merge only those having
|
OpenERP will propose you to merge only those having
|
||||||
all these fields in common. (not one of the fields).
|
all these fields in common. (not one of the fields).
|
||||||
</p>
|
</p>
|
||||||
<group attrs="{'invisible': [('state', 'not in', ('selection', 'finished'))]}">
|
<group attrs="{'invisible': ['|', ('state', 'not in', ('selection', 'finished')), ('number_group', '=', 0)]}">
|
||||||
<field name="state" invisible="1" />
|
<field name="state" invisible="1" />
|
||||||
<field name="number_group" invisible="0" />
|
<field name="number_group"/>
|
||||||
</group>
|
</group>
|
||||||
<group string="Search duplicates based on duplicated data in"
|
<group string="Search duplicates based on duplicated data in"
|
||||||
attrs="{'invisible': [('state', 'not in', ('option',))]}">
|
attrs="{'invisible': [('state', 'not in', ('option',))]}">
|
||||||
|
@ -98,15 +98,15 @@
|
||||||
redirected to the aggregated contact. You can remove
|
redirected to the aggregated contact. You can remove
|
||||||
contacts from this list to avoid merging them.
|
contacts from this list to avoid merging them.
|
||||||
</p>
|
</p>
|
||||||
|
<field name="dst_partner_id" domain="[('id', 'in', partner_ids and partner_ids[0] and partner_ids[0][2] or False)]" attrs="{'required': [('state', '=', 'selection')]}"/>
|
||||||
<field name="partner_ids" nolabel="1">
|
<field name="partner_ids" nolabel="1">
|
||||||
<tree string="Partners">
|
<tree string="Partners">
|
||||||
<field name="id" />
|
<field name="id" />
|
||||||
<field name="name" />
|
<field name="display_name" />
|
||||||
<field name="email" />
|
<field name="email" />
|
||||||
<field name="is_company" />
|
<field name="is_company" />
|
||||||
<field name="vat" />
|
<field name="vat" />
|
||||||
<field name="country_id" />
|
<field name="country_id" />
|
||||||
<field name="parent_id" />
|
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
</group>
|
</group>
|
||||||
|
@ -114,24 +114,9 @@
|
||||||
</form>
|
</form>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="ir.actions.server"
|
<act_window id="action_partner_merge" res_model="base.partner.merge.automatic.wizard" src_model="res.partner"
|
||||||
id="ir_actions_server_merge_automatic">
|
target="new" multi="True" key2="client_action_multi" view_mode="form" name="Automatic Merge"/>
|
||||||
<field name="code">pool.get('base.partner.merge.automatic.wizard').merge_multi(cr, uid, None, context)</field>
|
|
||||||
<field name="condition">True</field>
|
|
||||||
<field name="model_id" ref="base.model_res_partner" />
|
|
||||||
<field name="name">Automatic Merge</field>
|
|
||||||
<field name="sequence" eval="5" />
|
|
||||||
<field name="state">code</field>
|
|
||||||
<field name="type">ir.actions.server</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<record model="ir.values" id="ir_open_merge_automatic">
|
|
||||||
<field name="key2" eval="'client_action_multi'" />
|
|
||||||
<field name="model">res.partner</field>
|
|
||||||
<field name="name">Automatic Merge</field>
|
|
||||||
<field name="value" eval="'ir.actions.server,%d' % ir_actions_server_merge_automatic" />
|
|
||||||
</record>
|
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
|
|
|
@ -19,13 +19,12 @@
|
||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
import base64
|
from datetime import date, datetime
|
||||||
import time
|
from dateutil import relativedelta
|
||||||
from lxml import etree
|
|
||||||
|
from openerp import tools
|
||||||
from openerp.osv import fields
|
from openerp.osv import fields
|
||||||
from openerp.osv import osv
|
from openerp.osv import osv
|
||||||
from openerp import tools
|
|
||||||
from openerp.tools.translate import _
|
|
||||||
|
|
||||||
MAX_LEVEL = 15
|
MAX_LEVEL = 15
|
||||||
AVAILABLE_STATES = [
|
AVAILABLE_STATES = [
|
||||||
|
@ -106,10 +105,57 @@ class crm_case_section(osv.osv):
|
||||||
_inherit = "mail.thread"
|
_inherit = "mail.thread"
|
||||||
_description = "Sales Teams"
|
_description = "Sales Teams"
|
||||||
_order = "complete_name"
|
_order = "complete_name"
|
||||||
|
# number of periods for lead/opportunities/... tracking in salesteam kanban dashboard/kanban view
|
||||||
|
_period_number = 5
|
||||||
|
|
||||||
def get_full_name(self, cr, uid, ids, field_name, arg, context=None):
|
def get_full_name(self, cr, uid, ids, field_name, arg, context=None):
|
||||||
return dict(self.name_get(cr, uid, ids, context=context))
|
return dict(self.name_get(cr, uid, ids, context=context))
|
||||||
|
|
||||||
|
def __get_bar_values(self, cr, uid, obj, domain, read_fields, value_field, groupby_field, context=None):
|
||||||
|
""" Generic method to generate data for bar chart values using SparklineBarWidget.
|
||||||
|
This method performs obj.read_group(cr, uid, domain, read_fields, groupby_field).
|
||||||
|
|
||||||
|
:param obj: the target model (i.e. crm_lead)
|
||||||
|
:param domain: the domain applied to the read_group
|
||||||
|
:param list read_fields: the list of fields to read in the read_group
|
||||||
|
:param str value_field: the field used to compute the value of the bar slice
|
||||||
|
:param str groupby_field: the fields used to group
|
||||||
|
|
||||||
|
:return list section_result: a list of dicts: [
|
||||||
|
{ 'value': (int) bar_column_value,
|
||||||
|
'tootip': (str) bar_column_tooltip,
|
||||||
|
}
|
||||||
|
]
|
||||||
|
"""
|
||||||
|
month_begin = date.today().replace(day=1)
|
||||||
|
section_result = [{
|
||||||
|
'value': 0,
|
||||||
|
'tooltip': (month_begin + relativedelta.relativedelta(months=-i)).strftime('%B'),
|
||||||
|
} for i in range(self._period_number - 1, -1, -1)]
|
||||||
|
group_obj = obj.read_group(cr, uid, domain, read_fields, groupby_field, context=context)
|
||||||
|
for group in group_obj:
|
||||||
|
group_begin_date = datetime.strptime(group['__domain'][0][2], tools.DEFAULT_SERVER_DATE_FORMAT)
|
||||||
|
month_delta = relativedelta.relativedelta(month_begin, group_begin_date)
|
||||||
|
section_result[self._period_number - (month_delta.months + 1)] = {'value': group.get(value_field, 0), 'tooltip': group_begin_date.strftime('%B')}
|
||||||
|
return section_result
|
||||||
|
|
||||||
|
def _get_opportunities_data(self, cr, uid, ids, field_name, arg, context=None):
|
||||||
|
""" Get opportunities-related data for salesteam kanban view
|
||||||
|
monthly_open_leads: number of open lead during the last months
|
||||||
|
monthly_planned_revenue: planned revenu of opportunities during the last months
|
||||||
|
"""
|
||||||
|
obj = self.pool.get('crm.lead')
|
||||||
|
res = dict.fromkeys(ids, False)
|
||||||
|
month_begin = date.today().replace(day=1)
|
||||||
|
groupby_begin = (month_begin + relativedelta.relativedelta(months=-4)).strftime(tools.DEFAULT_SERVER_DATE_FORMAT)
|
||||||
|
for id in ids:
|
||||||
|
res[id] = dict()
|
||||||
|
lead_domain = [('type', '=', 'lead'), ('section_id', '=', id), ('create_date', '>=', groupby_begin)]
|
||||||
|
res[id]['monthly_open_leads'] = self.__get_bar_values(cr, uid, obj, lead_domain, ['create_date'], 'create_date_count', 'create_date', context=context)
|
||||||
|
opp_domain = [('type', '=', 'opportunity'), ('section_id', '=', id), ('create_date', '>=', groupby_begin)]
|
||||||
|
res[id]['monthly_planned_revenue'] = self.__get_bar_values(cr, uid, obj, opp_domain, ['planned_revenue', 'create_date'], 'planned_revenue', 'create_date', context=context)
|
||||||
|
return res
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
'name': fields.char('Sales Team', size=64, required=True, translate=True),
|
'name': fields.char('Sales Team', size=64, required=True, translate=True),
|
||||||
'complete_name': fields.function(get_full_name, type='char', size=256, readonly=True, store=True),
|
'complete_name': fields.function(get_full_name, type='char', size=256, readonly=True, store=True),
|
||||||
|
@ -129,15 +175,16 @@ class crm_case_section(osv.osv):
|
||||||
'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="cascade", required=True,
|
'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="cascade", required=True,
|
||||||
help="The email address associated with this team. New emails received will automatically "
|
help="The email address associated with this team. New emails received will automatically "
|
||||||
"create new leads assigned to the team."),
|
"create new leads assigned to the team."),
|
||||||
'open_lead_ids': fields.one2many('crm.lead', 'section_id',
|
|
||||||
string='Open Leads', readonly=True,
|
|
||||||
domain=['&', ('type', '!=', 'opportunity'), ('state', 'not in', ['done', 'cancel'])]),
|
|
||||||
'open_opportunity_ids': fields.one2many('crm.lead', 'section_id',
|
|
||||||
string='Open Opportunities', readonly=True,
|
|
||||||
domain=['&', '|', ('type', '=', 'opportunity'), ('type', '=', 'both'), ('state', 'not in', ['done', 'cancel'])]),
|
|
||||||
'color': fields.integer('Color Index'),
|
'color': fields.integer('Color Index'),
|
||||||
'use_leads': fields.boolean('Leads',
|
'use_leads': fields.boolean('Leads',
|
||||||
help="This enables the management of leads in the sales team. Otherwise the sales team manages only opportunities."),
|
help="The first contact you get with a potential customer is a lead you qualify before converting it into a real business opportunity. Check this box to manage leads in this sales team."),
|
||||||
|
|
||||||
|
'monthly_open_leads': fields.function(_get_opportunities_data,
|
||||||
|
type="string", readonly=True, multi='_get_opportunities_data',
|
||||||
|
string='Open Leads per Month'),
|
||||||
|
'monthly_planned_revenue': fields.function(_get_opportunities_data,
|
||||||
|
type="string", readonly=True, multi='_get_opportunities_data',
|
||||||
|
string='Planned Revenue per Month')
|
||||||
}
|
}
|
||||||
|
|
||||||
def _get_stage_common(self, cr, uid, context):
|
def _get_stage_common(self, cr, uid, context):
|
||||||
|
|
|
@ -26,6 +26,7 @@ Description: [[object.description]]
|
||||||
<field name="name">Set Auto Reminder on leads which are not open since 5 days.</field>
|
<field name="name">Set Auto Reminder on leads which are not open since 5 days.</field>
|
||||||
<field name="model_id" ref="model_crm_lead"/>
|
<field name="model_id" ref="model_crm_lead"/>
|
||||||
<field name="sequence">1</field>
|
<field name="sequence">1</field>
|
||||||
|
<field name="kind">on_time</field>
|
||||||
<field name="filter_id" ref="filter_draft_lead"/>
|
<field name="filter_id" ref="filter_draft_lead"/>
|
||||||
<field name="trg_date_id" ref="field_crm_lead_create_date"/>
|
<field name="trg_date_id" ref="field_crm_lead_create_date"/>
|
||||||
<field name="trg_date_range">5</field>
|
<field name="trg_date_range">5</field>
|
||||||
|
@ -54,12 +55,10 @@ object.write({'section_id': sales_team.id})
|
||||||
<field name="name">Set Auto Followers on leads which are urgent and come from USA.</field>
|
<field name="name">Set Auto Followers on leads which are urgent and come from USA.</field>
|
||||||
<field name="model_id" ref="model_crm_lead"/>
|
<field name="model_id" ref="model_crm_lead"/>
|
||||||
<field name="sequence">2</field>
|
<field name="sequence">2</field>
|
||||||
|
<field name="kind">on_create</field>
|
||||||
<field name="filter_id" ref="filter_usa_lead"/>
|
<field name="filter_id" ref="filter_usa_lead"/>
|
||||||
<field name="act_followers" eval="[(6,0,[ref('base.res_partner_4'), ref('base.res_partner_5'), ref('base.res_partner_6')])]"/>
|
|
||||||
<field name="act_user_id" ref="base.user_root"/>
|
<field name="act_user_id" ref="base.user_root"/>
|
||||||
<field name="trg_date_id" ref="field_crm_lead_create_date"/>
|
<field name="act_followers" eval="[(6,0,[ref('base.res_partner_4'), ref('base.res_partner_5'), ref('base.res_partner_6')])]"/>
|
||||||
<field name="trg_date_range">0</field>
|
|
||||||
<field name="trg_date_range_type">minutes</field>
|
|
||||||
<field name="server_action_ids" eval="[(6,0,[ref('action_set_team_sales_department')])]"/>
|
<field name="server_action_ids" eval="[(6,0,[ref('action_set_team_sales_department')])]"/>
|
||||||
</record>
|
</record>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -78,12 +78,12 @@
|
||||||
<field name="note"/>
|
<field name="note"/>
|
||||||
<field name="alias_id"/>
|
<field name="alias_id"/>
|
||||||
<field name="color"/>
|
<field name="color"/>
|
||||||
<field name="open_lead_ids"/>
|
<field name="monthly_open_leads"/>
|
||||||
<field name="open_opportunity_ids"/>
|
<field name="monthly_planned_revenue"/>
|
||||||
<templates>
|
<templates>
|
||||||
<t t-name="kanban-box">
|
<t t-name="kanban-box">
|
||||||
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_project oe_kanban_global_click oe_kanban_crm_salesteams">
|
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click oe_kanban_crm_salesteams">
|
||||||
<div class="oe_dropdown_toggle oe_dropdown_kanban" groups="base.group_user">
|
<div class="oe_dropdown_toggle oe_dropdown_kanban" groups="base.group_sale_manager">
|
||||||
<span class="oe_e">í</span>
|
<span class="oe_e">í</span>
|
||||||
<ul class="oe_dropdown_menu">
|
<ul class="oe_dropdown_menu">
|
||||||
<li t-if="widget.view.is_action_enabled('edit')"><a type="edit">Sales Teams Settings</a></li>
|
<li t-if="widget.view.is_action_enabled('edit')"><a type="edit">Sales Teams Settings</a></li>
|
||||||
|
@ -92,25 +92,19 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="oe_kanban_content">
|
<div class="oe_kanban_content">
|
||||||
<h4><field name="name"/></h4>
|
<h4 class="oe_center"><field name="name"/></h4>
|
||||||
<div class="oe_kanban_alias" t-if="record.use_leads.raw_value and record.alias_id.value">
|
<div class="oe_kanban_alias oe_center" t-if="record.use_leads.raw_value and record.alias_id.value">
|
||||||
<span class="oe_e">%%</span><small><field name="alias_id"/></small>
|
<small><span class="oe_e" style="float: none;">%%</span><t t-raw="record.alias_id.raw_value[1]"/></small>
|
||||||
</div>
|
</div>
|
||||||
<div class="oe_items_list">
|
<div class="oe_items_list">
|
||||||
<a t-if="record.use_leads.raw_value" name="%(crm_case_form_view_salesteams_lead)d" type="action">
|
<div class="oe_salesteams_leads" t-if="record.use_leads.raw_value">
|
||||||
<t t-raw="record.open_lead_ids.raw_value.length"/>
|
<a name="%(crm_case_form_view_salesteams_lead)d" type="action">Leads</a>
|
||||||
<t t-if="record.open_lead_ids.raw_value.length >= 2">Leads</t>
|
<a name="%(action_report_crm_lead)d" type="action" class="oe_sparkline_bar_link"><field name="monthly_open_leads" widget="sparkline_bar">Open Leads per Month<br/>Click to see a detailed analysis of leads.</field></a>
|
||||||
<t t-if="record.open_lead_ids.raw_value.length < 2">Lead</t></a>
|
</div>
|
||||||
<a name="%(crm_case_form_view_salesteams_opportunity)d" type="action">
|
<div class="oe_salesteams_opportunities">
|
||||||
<t t-raw="record.open_opportunity_ids.raw_value.length"/>
|
<a name="%(crm_case_form_view_salesteams_opportunity)d" type="action">Opportunities</a>
|
||||||
<t t-if="record.open_opportunity_ids.raw_value.length >= 2">Opportunities</t>
|
<a name="%(action_report_crm_opportunity)d" type="action"><field name="monthly_planned_revenue" widget="sparkline_bar">Planned Revenue per Month<br/>Click to see a detailed analysis of opportunities.</field></a>
|
||||||
<t t-if="record.open_opportunity_ids.raw_value.length < 2">Opportunity</t></a>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="oe_avatars">
|
|
||||||
<img t-if="record.user_id.raw_value" t-att-src="kanban_image('res.users', 'image_small', record.user_id.raw_value)" t-att-data-member_id="record.user_id.raw_value"/>
|
|
||||||
<t t-foreach="record.member_ids.raw_value.slice(0,11)" t-as="member">
|
|
||||||
<img t-att-src="kanban_image('res.users', 'image_small', member)" t-att-data-member_id="member"/>
|
|
||||||
</t>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -120,6 +114,27 @@
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<!-- Case Sections Search view -->
|
||||||
|
|
||||||
|
<record id="crm_case_section_salesteams_search" model="ir.ui.view">
|
||||||
|
<field name="name">Case Sections - Search</field>
|
||||||
|
<field name="model">crm.case.section</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<search string="Salesteams Search">
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="parent_id"/>
|
||||||
|
<field name="user_id"/>
|
||||||
|
<field name="note"/>
|
||||||
|
<field name="code"/>
|
||||||
|
<filter name="personal" string="My Salesteams" domain="['|', ('member_ids', '=', uid), ('user_id', '=', uid)]"/>
|
||||||
|
<group expand="0" string="Group By...">
|
||||||
|
<filter string="Team Leader" domain="[]" context="{'group_by':'user_id'}"/>
|
||||||
|
<filter string="Parent Sales Teams" domain="[]" context="{'group_by':'parent_id'}"/>
|
||||||
|
</group>
|
||||||
|
</search>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
<!-- Case Sections Action -->
|
<!-- Case Sections Action -->
|
||||||
|
|
||||||
<record id="crm_case_section_salesteams_act" model="ir.actions.act_window">
|
<record id="crm_case_section_salesteams_act" model="ir.actions.act_window">
|
||||||
|
@ -127,6 +142,7 @@
|
||||||
<field name="res_model">crm.case.section</field>
|
<field name="res_model">crm.case.section</field>
|
||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
<field name="view_mode">kanban,tree,form</field>
|
<field name="view_mode">kanban,tree,form</field>
|
||||||
|
<field name="context">{'search_default_personal': True}</field>
|
||||||
<field name="view_id" ref="crm_case_section_salesteams_view_kanban"/>
|
<field name="view_id" ref="crm_case_section_salesteams_view_kanban"/>
|
||||||
<field name="help" type="html">
|
<field name="help" type="html">
|
||||||
<p class="oe_view_nocontent_create">
|
<p class="oe_view_nocontent_create">
|
||||||
|
@ -148,9 +164,9 @@
|
||||||
<form string="Sales Team" version="7.0">
|
<form string="Sales Team" version="7.0">
|
||||||
<sheet>
|
<sheet>
|
||||||
<div class="oe_title">
|
<div class="oe_title">
|
||||||
<label for="name" class="oe_edit_only" string="Project Name"/>
|
<label for="name" class="oe_edit_only" string="Sales team"/>
|
||||||
<h1>
|
<h1>
|
||||||
<field name="name" string="Project Name"/>
|
<field name="name" string="Salesteam"/>
|
||||||
</h1>
|
</h1>
|
||||||
<div name="group_alias"
|
<div name="group_alias"
|
||||||
attrs="{'invisible': [('alias_domain', '=', False)]}">
|
attrs="{'invisible': [('alias_domain', '=', False)]}">
|
||||||
|
@ -168,25 +184,18 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<group>
|
<group>
|
||||||
<group>
|
|
||||||
<field name="parent_id"/>
|
|
||||||
<field name="resource_calendar_id"/>
|
|
||||||
<field name="active"/>
|
|
||||||
</group>
|
|
||||||
<group>
|
<group>
|
||||||
<field name="user_id"/>
|
<field name="user_id"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
</group>
|
</group>
|
||||||
<group colspan="4" attrs="{'invisible': [('use_leads', '=', False)]}">
|
<group>
|
||||||
|
<field name="parent_id"/>
|
||||||
|
<field name="change_responsible"/>
|
||||||
|
<field name="active"/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
<notebook colspan="4">
|
<notebook colspan="4">
|
||||||
<page string="Sales Team">
|
<page string="Team Members">
|
||||||
<group>
|
|
||||||
<field name="change_responsible"/>
|
|
||||||
</group>
|
|
||||||
<separator string="Team Members"/>
|
|
||||||
<field name="member_ids" widget="many2many_kanban">
|
<field name="member_ids" widget="many2many_kanban">
|
||||||
<kanban quick_create="false" create="true">
|
<kanban quick_create="false" create="true">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
|
|
|
@ -27,9 +27,10 @@
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="crm.case.section" id="section_sales_department">
|
<record model="crm.case.section" id="section_sales_department">
|
||||||
<field name="name">Sales</field>
|
<field name="name">Direct Sales</field>
|
||||||
<field name="code">Sales</field>
|
<field name="code">DM</field>
|
||||||
<field name="use_leads">True</field>
|
<field name="use_leads">True</field>
|
||||||
|
<field name="alias_name">info</field>
|
||||||
<field name="member_ids" eval="[(4, ref('base.user_root'))]"/>
|
<field name="member_ids" eval="[(4, ref('base.user_root'))]"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|
|
@ -7,27 +7,13 @@
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="crm.case.section" id="crm_case_section_1">
|
<record model="crm.case.section" id="crm_case_section_1">
|
||||||
<field name="name">Sales Marketing Department</field>
|
<field name="name">Indirect Sales</field>
|
||||||
<field name="code">SMD</field>
|
<field name="code">IM</field>
|
||||||
<field name="parent_id" ref="crm.section_sales_department"/>
|
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="crm.case.section" id="crm_case_section_2">
|
<record model="crm.case.section" id="crm_case_section_2">
|
||||||
<field name="name">Support Department</field>
|
<field name="name">Marketing</field>
|
||||||
<field name="code">SPD</field>
|
<field name="code">SPD</field>
|
||||||
<field name="parent_id" ref="crm.section_sales_department"/>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<record model="crm.case.section" id="crm_case_section_3">
|
|
||||||
<field name="name">Direct Marketing</field>
|
|
||||||
<field name="code">DM</field>
|
|
||||||
<field name="parent_id" ref="crm.section_sales_department"/>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<record model="crm.case.section" id="crm_case_section_4">
|
|
||||||
<field name="name">Online Support</field>
|
|
||||||
<field name="code">OS</field>
|
|
||||||
<field name="parent_id" ref="crm.crm_case_section_2"/>
|
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="crm.segmentation" id="crm_segmentation0">
|
<record model="crm.segmentation" id="crm_segmentation0">
|
||||||
|
|
|
@ -77,12 +77,12 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||||
|
|
||||||
_track = {
|
_track = {
|
||||||
'state': {
|
'state': {
|
||||||
'crm.mt_lead_create': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'new',
|
'crm.mt_lead_create': lambda self, cr, uid, obj, ctx=None: obj['state'] in ['new', 'draft'],
|
||||||
'crm.mt_lead_won': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'done',
|
'crm.mt_lead_won': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'done',
|
||||||
'crm.mt_lead_lost': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'cancel',
|
'crm.mt_lead_lost': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'cancel',
|
||||||
},
|
},
|
||||||
'stage_id': {
|
'stage_id': {
|
||||||
'crm.mt_lead_stage': lambda self, cr, uid, obj, ctx=None: obj['state'] not in ['new', 'cancel', 'done'],
|
'crm.mt_lead_stage': lambda self, cr, uid, obj, ctx=None: obj['state'] not in ['new', 'draft', 'cancel', 'done'],
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,7 +103,9 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||||
if vals.get('type'):
|
if vals.get('type'):
|
||||||
ctx['default_type'] = vals['type']
|
ctx['default_type'] = vals['type']
|
||||||
vals['stage_id'] = self._get_default_stage_id(cr, uid, context=ctx)
|
vals['stage_id'] = self._get_default_stage_id(cr, uid, context=ctx)
|
||||||
return super(crm_lead, self).create(cr, uid, vals, context=context)
|
# context: no_log, because subtype already handle this
|
||||||
|
create_context = dict(context, mail_create_nolog=True)
|
||||||
|
return super(crm_lead, self).create(cr, uid, vals, context=create_context)
|
||||||
|
|
||||||
def _get_default_section_id(self, cr, uid, context=None):
|
def _get_default_section_id(self, cr, uid, context=None):
|
||||||
""" Gives default section by checking if present in the context """
|
""" Gives default section by checking if present in the context """
|
||||||
|
@ -367,8 +369,8 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||||
def on_change_user(self, cr, uid, ids, user_id, context=None):
|
def on_change_user(self, cr, uid, ids, user_id, context=None):
|
||||||
""" When changing the user, also set a section_id or restrict section id
|
""" When changing the user, also set a section_id or restrict section id
|
||||||
to the ones user_id is member of. """
|
to the ones user_id is member of. """
|
||||||
section_id = False
|
section_id = self._get_default_section_id(cr, uid, context=context) or False
|
||||||
if user_id:
|
if user_id and not section_id:
|
||||||
section_ids = self.pool.get('crm.case.section').search(cr, uid, ['|', ('user_id', '=', user_id), ('member_ids', '=', user_id)], context=context)
|
section_ids = self.pool.get('crm.case.section').search(cr, uid, ['|', ('user_id', '=', user_id), ('member_ids', '=', user_id)], context=context)
|
||||||
if section_ids:
|
if section_ids:
|
||||||
section_id = section_ids[0]
|
section_id = section_ids[0]
|
||||||
|
@ -678,8 +680,9 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||||
merged_data['stage_id'] = section_stage_ids and section_stage_ids[0] or False
|
merged_data['stage_id'] = section_stage_ids and section_stage_ids[0] or False
|
||||||
# Write merged data into first opportunity
|
# Write merged data into first opportunity
|
||||||
self.write(cr, uid, [highest.id], merged_data, context=context)
|
self.write(cr, uid, [highest.id], merged_data, context=context)
|
||||||
# Delete tail opportunities
|
# Delete tail opportunities
|
||||||
self.unlink(cr, uid, [x.id for x in tail_opportunities], context=context)
|
# We use the SUPERUSER to avoid access rights issues because as the user had the rights to see the records it should be safe to do so
|
||||||
|
self.unlink(cr, SUPERUSER_ID, [x.id for x in tail_opportunities], context=context)
|
||||||
|
|
||||||
return highest.id
|
return highest.id
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
<field name="categ_ids" eval="[(6, 0, [categ_oppor6])]"/>
|
<field name="categ_ids" eval="[(6, 0, [categ_oppor6])]"/>
|
||||||
<field name="channel_id" ref="crm_case_channel_email"/>
|
<field name="channel_id" ref="crm_case_channel_email"/>
|
||||||
<field name="priority">1</field>
|
<field name="priority">1</field>
|
||||||
<field name="section_id" ref="crm_case_section_4"/>
|
<field name="section_id" ref="crm_case_section_2"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
<field name="stage_id" ref="stage_lead1"/>
|
<field name="stage_id" ref="stage_lead1"/>
|
||||||
<field name="description">Hello,
|
<field name="description">Hello,
|
||||||
|
@ -44,7 +44,7 @@ Can you send me the details ?</field>
|
||||||
<field name="categ_ids" eval="[(6, 0, [categ_oppor2])]"/>
|
<field name="categ_ids" eval="[(6, 0, [categ_oppor2])]"/>
|
||||||
<field name="channel_id" ref="crm_case_channel_website"/>
|
<field name="channel_id" ref="crm_case_channel_website"/>
|
||||||
<field name="priority">4</field>
|
<field name="priority">4</field>
|
||||||
<field name="section_id" ref="crm_case_section_3"/>
|
<field name="section_id" ref="crm_case_section_2"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
<field name="stage_id" ref="stage_lead1"/>
|
<field name="stage_id" ref="stage_lead1"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
@ -63,7 +63,7 @@ Can you send me the details ?</field>
|
||||||
<field name="categ_ids" eval="[(6, 0, [categ_oppor4])]"/>
|
<field name="categ_ids" eval="[(6, 0, [categ_oppor4])]"/>
|
||||||
<field name="channel_id" ref=""/>
|
<field name="channel_id" ref=""/>
|
||||||
<field name="priority">2</field>
|
<field name="priority">2</field>
|
||||||
<field name="section_id" ref="crm_case_section_2"/>
|
<field name="section_id" ref="crm_case_section_1"/>
|
||||||
<field name="user_id" ref="base.user_demo"/>
|
<field name="user_id" ref="base.user_demo"/>
|
||||||
<field name="stage_id" ref="stage_lead2"/>
|
<field name="stage_id" ref="stage_lead2"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
@ -82,7 +82,7 @@ Can you send me the details ?</field>
|
||||||
<field name="categ_ids" eval="[(6, 0, [categ_oppor5])]"/>
|
<field name="categ_ids" eval="[(6, 0, [categ_oppor5])]"/>
|
||||||
<field name="channel_id" ref=""/>
|
<field name="channel_id" ref=""/>
|
||||||
<field name="priority">3</field>
|
<field name="priority">3</field>
|
||||||
<field name="section_id" ref="crm_case_section_2"/>
|
<field name="section_id" ref="crm_case_section_1"/>
|
||||||
<field name="user_id" ref=""/>
|
<field name="user_id" ref=""/>
|
||||||
<field name="stage_id" ref="stage_lead7"/>
|
<field name="stage_id" ref="stage_lead7"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
@ -133,7 +133,7 @@ Contact: +1 813 494 5005</field>
|
||||||
<field name="categ_ids" eval="[(6, 0, [categ_oppor3,categ_oppor4])]"/>
|
<field name="categ_ids" eval="[(6, 0, [categ_oppor3,categ_oppor4])]"/>
|
||||||
<field name="channel_id" ref=""/>
|
<field name="channel_id" ref=""/>
|
||||||
<field name="priority">3</field>
|
<field name="priority">3</field>
|
||||||
<field name="section_id" ref="crm_case_section_4"/>
|
<field name="section_id" ref="crm_case_section_2"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
<field name="stage_id" ref="stage_lead1"/>
|
<field name="stage_id" ref="stage_lead1"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
@ -152,7 +152,7 @@ Contact: +1 813 494 5005</field>
|
||||||
<field name="categ_ids" eval="[(6, 0, [categ_oppor4])]"/>
|
<field name="categ_ids" eval="[(6, 0, [categ_oppor4])]"/>
|
||||||
<field name="channel_id" ref=""/>
|
<field name="channel_id" ref=""/>
|
||||||
<field name="priority">5</field>
|
<field name="priority">5</field>
|
||||||
<field name="section_id" ref="crm_case_section_4"/>
|
<field name="section_id" ref="crm_case_section_2"/>
|
||||||
<field name="user_id" ref="base.user_demo"/>
|
<field name="user_id" ref="base.user_demo"/>
|
||||||
<field name="stage_id" ref="stage_lead7"/>
|
<field name="stage_id" ref="stage_lead7"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
@ -197,6 +197,9 @@ Contact: +1 813 494 5005</field>
|
||||||
<field name="stage_id" ref="stage_lead1"/>
|
<field name="stage_id" ref="stage_lead1"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record id="crm_case_9" model="crm.lead">
|
||||||
|
<field name="create_date" eval="(DateTime.today() - relativedelta(months=1)).strftime('%Y-%m-%d %H:%M')"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
<record id="crm_case_10" model="crm.lead">
|
<record id="crm_case_10" model="crm.lead">
|
||||||
<field name="type">lead</field>
|
<field name="type">lead</field>
|
||||||
|
@ -211,7 +214,7 @@ Contact: +1 813 494 5005</field>
|
||||||
<field name="categ_ids" eval="[(6, 0, [categ_oppor1])]"/>
|
<field name="categ_ids" eval="[(6, 0, [categ_oppor1])]"/>
|
||||||
<field name="channel_id" ref="crm_case_channel_email"/>
|
<field name="channel_id" ref="crm_case_channel_email"/>
|
||||||
<field name="priority">2</field>
|
<field name="priority">2</field>
|
||||||
<field name="section_id" ref="crm_case_section_3"/>
|
<field name="section_id" ref="crm_case_section_2"/>
|
||||||
<field name="user_id" ref=""/>
|
<field name="user_id" ref=""/>
|
||||||
<field name="stage_id" ref="stage_lead1"/>
|
<field name="stage_id" ref="stage_lead1"/>
|
||||||
<field name="description">Hi,
|
<field name="description">Hi,
|
||||||
|
@ -235,7 +238,7 @@ Andrew</field>
|
||||||
<field name="categ_ids" eval="[(6, 0, [categ_oppor7])]"/>
|
<field name="categ_ids" eval="[(6, 0, [categ_oppor7])]"/>
|
||||||
<field name="channel_id" ref="crm_case_channel_direct"/>
|
<field name="channel_id" ref="crm_case_channel_direct"/>
|
||||||
<field name="priority">3</field>
|
<field name="priority">3</field>
|
||||||
<field name="section_id" ref="crm_case_section_2"/>
|
<field name="section_id" ref="crm_case_section_1"/>
|
||||||
<field name="user_id" ref="base.user_demo"/>
|
<field name="user_id" ref="base.user_demo"/>
|
||||||
<field name="stage_id" ref="stage_lead1"/>
|
<field name="stage_id" ref="stage_lead1"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
@ -291,7 +294,7 @@ Andrew</field>
|
||||||
<field eval="time.strftime('%Y-%m-25')" name="date_deadline"/>
|
<field eval="time.strftime('%Y-%m-25')" name="date_deadline"/>
|
||||||
<field eval="time.strftime('%Y-%m-12')" name="date_action"/>
|
<field eval="time.strftime('%Y-%m-12')" name="date_action"/>
|
||||||
<field name="title_action">Meeting for pricing information.</field>
|
<field name="title_action">Meeting for pricing information.</field>
|
||||||
<field name="section_id" ref="crm_case_section_3"/>
|
<field name="section_id" ref="section_sales_department"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
<field name="stage_id" ref="crm.stage_lead3"/>
|
<field name="stage_id" ref="crm.stage_lead3"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
@ -317,7 +320,7 @@ Andrew</field>
|
||||||
<field eval="time.strftime('%Y-%m-23')" name="date_deadline"/>
|
<field eval="time.strftime('%Y-%m-23')" name="date_deadline"/>
|
||||||
<field eval="time.strftime('%Y-%m-10')" name="date_action"/>
|
<field eval="time.strftime('%Y-%m-10')" name="date_action"/>
|
||||||
<field name="title_action">Send Catalogue by Email</field>
|
<field name="title_action">Send Catalogue by Email</field>
|
||||||
<field name="section_id" ref="crm_case_section_4"/>
|
<field name="section_id" ref="section_sales_department"/>
|
||||||
<field name="user_id" ref="base.user_demo"/>
|
<field name="user_id" ref="base.user_demo"/>
|
||||||
<field name="stage_id" ref="crm.stage_lead3"/>
|
<field name="stage_id" ref="crm.stage_lead3"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
@ -326,7 +329,7 @@ Andrew</field>
|
||||||
<record id="crm_case_15" model="crm.lead">
|
<record id="crm_case_15" model="crm.lead">
|
||||||
<field name="type">opportunity</field>
|
<field name="type">opportunity</field>
|
||||||
<field name="name">Plan to buy RedHat servers</field>
|
<field name="name">Plan to buy RedHat servers</field>
|
||||||
<field eval="35000" name="planned_revenue"/>
|
<field eval="25000" name="planned_revenue"/>
|
||||||
<field eval="30.0" name="probability"/>
|
<field eval="30.0" name="probability"/>
|
||||||
<field name="street">69 rue de Chimay</field>
|
<field name="street">69 rue de Chimay</field>
|
||||||
<field name="country_id" ref="base.be"/>
|
<field name="country_id" ref="base.be"/>
|
||||||
|
@ -339,10 +342,11 @@ Andrew</field>
|
||||||
<field eval="time.strftime('%Y-%m-12')" name="date_deadline"/>
|
<field eval="time.strftime('%Y-%m-12')" name="date_deadline"/>
|
||||||
<field eval="time.strftime('%Y-%m-10')" name="date_action"/>
|
<field eval="time.strftime('%Y-%m-10')" name="date_action"/>
|
||||||
<field name="title_action">Call to ask system requirement</field>
|
<field name="title_action">Call to ask system requirement</field>
|
||||||
<field name="section_id" ref="crm_case_section_3"/>
|
<field name="section_id" ref="section_sales_department"/>
|
||||||
<field name="user_id" ref="base.user_demo"/>
|
<field name="user_id" ref="base.user_demo"/>
|
||||||
<field name="stage_id" ref="crm.stage_lead4"/>
|
<field name="stage_id" ref="crm.stage_lead6"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
<field name="date_closed" eval="(DateTime.today() - relativedelta(months=2)).strftime('%Y-%m-%d %H:%M')"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="crm_case_16" model="crm.lead">
|
<record id="crm_case_16" model="crm.lead">
|
||||||
|
@ -367,6 +371,7 @@ Andrew</field>
|
||||||
<field name="user_id" ref="base.user_demo"/>
|
<field name="user_id" ref="base.user_demo"/>
|
||||||
<field name="stage_id" ref="crm.stage_lead6"/>
|
<field name="stage_id" ref="crm.stage_lead6"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
<field name="date_closed" eval="(DateTime.today() - relativedelta(hours=1)).strftime('%Y-%m-%d %H:%M')"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="crm_case_17" model="crm.lead">
|
<record id="crm_case_17" model="crm.lead">
|
||||||
|
@ -388,10 +393,11 @@ Andrew</field>
|
||||||
<field eval="time.strftime('%Y-%m-8')" name="date_deadline"/>
|
<field eval="time.strftime('%Y-%m-8')" name="date_deadline"/>
|
||||||
<field eval="time.strftime('%Y-%m-3')" name="date_action"/>
|
<field eval="time.strftime('%Y-%m-3')" name="date_action"/>
|
||||||
<field name="title_action">Send price list regarding our interventions</field>
|
<field name="title_action">Send price list regarding our interventions</field>
|
||||||
<field name="section_id" ref="crm_case_section_2"/>
|
<field name="section_id" ref="crm_case_section_1"/>
|
||||||
<field name="user_id" ref="base.user_demo"/>
|
<field name="user_id" ref="base.user_demo"/>
|
||||||
<field name="stage_id" ref="crm.stage_lead3"/>
|
<field name="stage_id" ref="crm.stage_lead6"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
<field name="date_closed" eval="(DateTime.today() - relativedelta(hours=1)).strftime('%Y-%m-%d %H:%M')"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="crm_case_18" model="crm.lead">
|
<record id="crm_case_18" model="crm.lead">
|
||||||
|
@ -412,7 +418,7 @@ Andrew</field>
|
||||||
<field eval="time.strftime('%Y-%m-13')" name="date_deadline"/>
|
<field eval="time.strftime('%Y-%m-13')" name="date_deadline"/>
|
||||||
<field eval="time.strftime('%Y-%m-4')" name="date_action"/>
|
<field eval="time.strftime('%Y-%m-4')" name="date_action"/>
|
||||||
<field name="title_action">Call to define real needs about training</field>
|
<field name="title_action">Call to define real needs about training</field>
|
||||||
<field name="section_id" ref="crm_case_section_2"/>
|
<field name="section_id" ref="crm_case_section_1"/>
|
||||||
<field name="user_id" ref="base.user_demo"/>
|
<field name="user_id" ref="base.user_demo"/>
|
||||||
<field name="stage_id" ref="crm.stage_lead3"/>
|
<field name="stage_id" ref="crm.stage_lead3"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
@ -438,8 +444,9 @@ Andrew</field>
|
||||||
<field name="title_action">Ask for the good receprion of the proposition</field>
|
<field name="title_action">Ask for the good receprion of the proposition</field>
|
||||||
<field name="section_id" ref="crm_case_section_1"/>
|
<field name="section_id" ref="crm_case_section_1"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
<field name="stage_id" ref="crm.stage_lead4"/>
|
<field name="stage_id" ref="crm.stage_lead6"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
<field name="date_closed" eval="(DateTime.today() - relativedelta(months=3)).strftime('%Y-%m-%d %H:%M')"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="crm_case_20" model="crm.lead">
|
<record id="crm_case_20" model="crm.lead">
|
||||||
|
@ -468,10 +475,11 @@ Andrew</field>
|
||||||
<field name="categ_ids" eval="[(6, 0, [categ_oppor7])]"/>
|
<field name="categ_ids" eval="[(6, 0, [categ_oppor7])]"/>
|
||||||
<field name="channel_id" ref="crm_case_channel_phone"/>
|
<field name="channel_id" ref="crm_case_channel_phone"/>
|
||||||
<field name="priority">3</field>
|
<field name="priority">3</field>
|
||||||
<field name="section_id" ref="crm_case_section_4"/>
|
<field name="section_id" ref="crm_case_section_2"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
<field name="stage_id" ref="crm.stage_lead8"/>
|
<field name="stage_id" ref="crm.stage_lead6"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
<field name="date_closed" eval="(DateTime.today() - relativedelta(months=1)).strftime('%Y-%m-%d %H:%M')"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="crm_case_22" model="crm.lead">
|
<record id="crm_case_22" model="crm.lead">
|
||||||
|
@ -486,7 +494,7 @@ Andrew</field>
|
||||||
<field name="categ_ids" eval="[(6, 0, [categ_oppor3])]"/>
|
<field name="categ_ids" eval="[(6, 0, [categ_oppor3])]"/>
|
||||||
<field name="channel_id" ref="crm_case_channel_email"/>
|
<field name="channel_id" ref="crm_case_channel_email"/>
|
||||||
<field name="priority">3</field>
|
<field name="priority">3</field>
|
||||||
<field name="section_id" ref="crm_case_section_4"/>
|
<field name="section_id" ref="crm_case_section_2"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
<field name="stage_id" ref="crm.stage_lead8"/>
|
<field name="stage_id" ref="crm.stage_lead8"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
@ -504,14 +512,15 @@ Andrew</field>
|
||||||
<field name="priority">5</field>
|
<field name="priority">5</field>
|
||||||
<field name="section_id" ref="section_sales_department"/>
|
<field name="section_id" ref="section_sales_department"/>
|
||||||
<field name="user_id" ref="base.user_demo"/>
|
<field name="user_id" ref="base.user_demo"/>
|
||||||
<field name="stage_id" ref="crm.stage_lead5"/>
|
<field name="stage_id" ref="crm.stage_lead6"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
<field name="date_closed" eval="(DateTime.today() - relativedelta(hours=1)).strftime('%Y-%m-%d %H:%M')"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="crm_case_24" model="crm.lead">
|
<record id="crm_case_24" model="crm.lead">
|
||||||
<field name="type">opportunity</field>
|
<field name="type">opportunity</field>
|
||||||
<field name="name">Need 20 Days of Consultancy</field>
|
<field name="name">Need 20 Days of Consultancy</field>
|
||||||
<field eval="5025" name="planned_revenue"/>
|
<field eval="6025" name="planned_revenue"/>
|
||||||
<field eval="90.0" name="probability"/>
|
<field eval="90.0" name="probability"/>
|
||||||
<field name="email_from">info@mycompany.net</field>
|
<field name="email_from">info@mycompany.net</field>
|
||||||
<field name="country_id" ref="base.pe"/>
|
<field name="country_id" ref="base.pe"/>
|
||||||
|
@ -525,6 +534,7 @@ Andrew</field>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
<field name="stage_id" ref="crm.stage_lead6"/>
|
<field name="stage_id" ref="crm.stage_lead6"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
<field name="date_closed" eval="(DateTime.today() - relativedelta(month=1)).strftime('%Y-%m-%d %H:%M')"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="crm_case_25" model="crm.lead">
|
<record id="crm_case_25" model="crm.lead">
|
||||||
|
@ -544,7 +554,7 @@ Andrew</field>
|
||||||
<field name="categ_ids" eval="[(6, 0, [categ_oppor4])]"/>
|
<field name="categ_ids" eval="[(6, 0, [categ_oppor4])]"/>
|
||||||
<field name="priority">2</field>
|
<field name="priority">2</field>
|
||||||
<field name="title_action">Conf call with technical service</field>
|
<field name="title_action">Conf call with technical service</field>
|
||||||
<field name="section_id" ref="crm_case_section_2"/>
|
<field name="section_id" ref="crm_case_section_1"/>
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
<field name="stage_id" ref="crm.stage_lead4"/>
|
<field name="stage_id" ref="crm.stage_lead4"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
@ -569,10 +579,11 @@ Andrew</field>
|
||||||
<field eval="time.strftime('%Y-%m-23')" name="date_deadline"/>
|
<field eval="time.strftime('%Y-%m-23')" name="date_deadline"/>
|
||||||
<field eval="time.strftime('%Y-%m-10')" name="date_action"/>
|
<field eval="time.strftime('%Y-%m-10')" name="date_action"/>
|
||||||
<field name="title_action">Send Catalogue by Email</field>
|
<field name="title_action">Send Catalogue by Email</field>
|
||||||
<field name="section_id" ref="crm_case_section_4"/>
|
<field name="section_id" ref="crm_case_section_2"/>
|
||||||
<field name="user_id" ref="base.user_demo"/>
|
<field name="user_id" ref="base.user_demo"/>
|
||||||
<field name="stage_id" ref="crm.stage_lead3"/>
|
<field name="stage_id" ref="crm.stage_lead6"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
|
<field name="date_closed" eval="(DateTime.today() - relativedelta(hours=1)).strftime('%Y-%m-%d %H:%M')"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<!-- Unsubscribe Admin from case15, subscribe Demo -->
|
<!-- Unsubscribe Admin from case15, subscribe Demo -->
|
||||||
|
|
|
@ -157,7 +157,8 @@
|
||||||
<label for="section_id" groups="base.group_multi_salesteams"/>
|
<label for="section_id" groups="base.group_multi_salesteams"/>
|
||||||
<div groups="base.group_multi_salesteams">
|
<div groups="base.group_multi_salesteams">
|
||||||
<field name="section_id"/>
|
<field name="section_id"/>
|
||||||
<button name="case_escalate" string="Escalate" type="object"
|
<button name="case_escalate" string="Escalate"
|
||||||
|
type="object" class="oe_link"
|
||||||
attrs="{'invisible': ['|', ('section_id','=',False), ('state', 'not in', ['draft','open','pending'])]}"/>
|
attrs="{'invisible': ['|', ('section_id','=',False), ('state', 'not in', ['draft','open','pending'])]}"/>
|
||||||
</div>
|
</div>
|
||||||
<field name="type" invisible="1"/>
|
<field name="type" invisible="1"/>
|
||||||
|
@ -343,7 +344,7 @@
|
||||||
help="Leads that are assigned to me"/>
|
help="Leads that are assigned to me"/>
|
||||||
<filter string="Assigned to My Team(s)"
|
<filter string="Assigned to My Team(s)"
|
||||||
domain="[('section_id.member_ids', 'in', [uid])]" context="{'invisible_section': False}"
|
domain="[('section_id.member_ids', 'in', [uid])]" context="{'invisible_section': False}"
|
||||||
help="Leads that are assigned to any sales teams I am member of"/>
|
help="Leads that are assigned to any sales teams I am member of" groups="base.group_multi_salesteams"/>
|
||||||
<separator />
|
<separator />
|
||||||
<filter string="Available for mass mailing"
|
<filter string="Available for mass mailing"
|
||||||
name='not_opt_out' domain="[('opt_out', '=', False)]"
|
name='not_opt_out' domain="[('opt_out', '=', False)]"
|
||||||
|
@ -351,7 +352,7 @@
|
||||||
<separator />
|
<separator />
|
||||||
<group expand="0" string="Group By...">
|
<group expand="0" string="Group By...">
|
||||||
<filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}"/>
|
<filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}"/>
|
||||||
<filter string="Team" domain="[]" context="{'group_by':'section_id'}"/>
|
<filter string="Team" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
|
||||||
<filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/>
|
<filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/>
|
||||||
<filter string="Customer" help="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
<filter string="Customer" help="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||||
<filter string="Country" domain="[]" context="{'group_by':'country_id'}"/>
|
<filter string="Country" domain="[]" context="{'group_by':'country_id'}"/>
|
||||||
|
@ -362,7 +363,7 @@
|
||||||
</group>
|
</group>
|
||||||
<group string="Display">
|
<group string="Display">
|
||||||
<filter string="Show Countries" context="{'invisible_country': False}" help="Show Countries"/>
|
<filter string="Show Countries" context="{'invisible_country': False}" help="Show Countries"/>
|
||||||
<filter string="Show Sales Team" context="{'invisible_section': False}" domain="[]" help="Show Sales Team"/>
|
<filter string="Show Sales Team" context="{'invisible_section': False}" domain="[]" help="Show Sales Team" groups="base.group_multi_salesteams"/>
|
||||||
</group>
|
</group>
|
||||||
</search>
|
</search>
|
||||||
</field>
|
</field>
|
||||||
|
@ -556,7 +557,7 @@
|
||||||
<filter string="Lost" name="lost" domain="[('state','=','cancel')]"/>
|
<filter string="Lost" name="lost" domain="[('state','=','cancel')]"/>
|
||||||
<filter string="Unassigned" name="unassigned" domain="[('user_id','=', False)]" help="No salesperson"/>
|
<filter string="Unassigned" name="unassigned" domain="[('user_id','=', False)]" help="No salesperson"/>
|
||||||
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]" help="Unread messages"/>
|
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]" help="Unread messages"/>
|
||||||
<filter string="Mine" name="assigned_to_me"
|
<filter string="My Opportunities" name="assigned_to_me"
|
||||||
domain="[('user_id','=',uid)]" context="{'invisible_section': False}"
|
domain="[('user_id','=',uid)]" context="{'invisible_section': False}"
|
||||||
help="Opportunities that are assigned to me"/>
|
help="Opportunities that are assigned to me"/>
|
||||||
<filter string="Assigned to My Team(s)"
|
<filter string="Assigned to My Team(s)"
|
||||||
|
@ -577,7 +578,7 @@
|
||||||
<filter string="Creation" domain="[]" context="{'group_by':'create_date'}"/>
|
<filter string="Creation" domain="[]" context="{'group_by':'create_date'}"/>
|
||||||
</group>
|
</group>
|
||||||
<group string="Display">
|
<group string="Display">
|
||||||
<filter string="Show Sales Team" context="{'invisible_section': False}" domain="[]" help="Show Sales Team"/>
|
<filter string="Show Sales Team" context="{'invisible_section': False}" domain="[]" help="Show Sales Team" groups="base.group_multi_salesteams"/>
|
||||||
<filter string="Show Countries" context="{'invisible_country': False}" help="Show Countries"/>
|
<filter string="Show Countries" context="{'invisible_country': False}" help="Show Countries"/>
|
||||||
</group>
|
</group>
|
||||||
</search>
|
</search>
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
<field name="name">Ask for convenient time of meeting</field>
|
<field name="name">Ask for convenient time of meeting</field>
|
||||||
<field name="state">open</field>
|
<field name="state">open</field>
|
||||||
<field name="partner_phone">+1 786 525 0724</field>
|
<field name="partner_phone">+1 786 525 0724</field>
|
||||||
<field name="section_id" ref="crm.crm_case_section_3"/>
|
<field name="section_id" ref="crm.crm_case_section_2"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
<field name="categ_id" ref="crm.categ_phone2"/>
|
<field name="categ_id" ref="crm.categ_phone2"/>
|
||||||
<field eval="5.0" name="duration"/>
|
<field eval="5.0" name="duration"/>
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
<field name="state">done</field>
|
<field name="state">done</field>
|
||||||
<field name="partner_phone">(077) 582-4035</field>
|
<field name="partner_phone">(077) 582-4035</field>
|
||||||
<field name="partner_mobile">(077) 341-3591</field>
|
<field name="partner_mobile">(077) 341-3591</field>
|
||||||
<field name="section_id" ref="crm.crm_case_section_4"/>
|
<field name="section_id" ref="crm.crm_case_section_2"/>
|
||||||
<field eval="1" name="active"/>
|
<field eval="1" name="active"/>
|
||||||
<field name="categ_id" ref="crm.categ_phone1"/>
|
<field name="categ_id" ref="crm.categ_phone1"/>
|
||||||
<field eval="5.45" name="duration"/>
|
<field eval="5.45" name="duration"/>
|
||||||
|
@ -74,7 +74,7 @@
|
||||||
<field name="name">Proposal for discount offer</field>
|
<field name="name">Proposal for discount offer</field>
|
||||||
<field name="state">open</field>
|
<field name="state">open</field>
|
||||||
<field name="partner_phone">+34 230 953 485</field>
|
<field name="partner_phone">+34 230 953 485</field>
|
||||||
<field name="section_id" ref="crm.crm_case_section_3"/>
|
<field name="section_id" ref="crm.crm_case_section_2"/>
|
||||||
<field eval="time.strftime('%Y-%m-28 14:15:30')" name="date"/>
|
<field eval="time.strftime('%Y-%m-28 14:15:30')" name="date"/>
|
||||||
<field name="categ_id" ref="crm.categ_phone2"/>
|
<field name="categ_id" ref="crm.categ_phone2"/>
|
||||||
<field eval="8.56" name="duration"/>
|
<field eval="8.56" name="duration"/>
|
||||||
|
|
|
@ -101,7 +101,7 @@
|
||||||
<field name="type"/>
|
<field name="type"/>
|
||||||
<field name="on_change"/>
|
<field name="on_change"/>
|
||||||
<field name="sequence"/>
|
<field name="sequence"/>
|
||||||
<field name="case_default"/>
|
<field name="case_default" groups="base.group_multi_salesteams"/>
|
||||||
<field name="fold"/>
|
<field name="fold"/>
|
||||||
</group>
|
</group>
|
||||||
<separator string="Requirements"/>
|
<separator string="Requirements"/>
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
<a href="https://www.openerp.com/saas_master/demo?lang=en_US&module=crm">
|
<a href="https://www.openerp.com/saas_master/demo?lang=en_US&module=crm">
|
||||||
<img src="crm_sc_01.png">
|
<img src="crm_sc_01.png">
|
||||||
</a>
|
</a>
|
||||||
<span class="oe_demo_play"> </span>
|
|
||||||
<div class="oe_demo_footer oe_centeralign">Online Demo</div>
|
<div class="oe_demo_footer oe_centeralign">Online Demo</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||||
"PO-Revision-Date: 2013-03-01 11:27+0000\n"
|
"PO-Revision-Date: 2013-06-06 09:56+0000\n"
|
||||||
"Last-Translator: Антон Лаврёнов <lavrton@gmail.com>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:09+0000\n"
|
"X-Launchpad-Export-Date: 2013-06-07 05:48+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16667)\n"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead.report:0
|
#: view:crm.lead.report:0
|
||||||
|
@ -56,6 +56,11 @@ msgid ""
|
||||||
"Description: [[object.description]]\n"
|
"Description: [[object.description]]\n"
|
||||||
" "
|
" "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Внимание, необработанный кандидат создан более 5 дней назад.\n"
|
||||||
|
"Название: [[object.name ]]\n"
|
||||||
|
"Идентификатор: [[object.id ]]\n"
|
||||||
|
"Описание: [[object.description]]\n"
|
||||||
|
" "
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.opportunity2phonecall,action:0
|
#: field:crm.opportunity2phonecall,action:0
|
||||||
|
@ -452,7 +457,7 @@ msgstr "# Предложений"
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Please select more than one element (lead or opportunity) from the list view."
|
"Please select more than one element (lead or opportunity) from the list view."
|
||||||
msgstr ""
|
msgstr "Пожалуйста, выберите хотя бы один элемент из списка ниже."
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
|
@ -953,7 +958,7 @@ msgstr "Следующее действие"
|
||||||
#: code:addons/crm/crm_lead.py:763
|
#: code:addons/crm/crm_lead.py:763
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "<b>Partner</b> set to <em>%s</em>."
|
msgid "<b>Partner</b> set to <em>%s</em>."
|
||||||
msgstr ""
|
msgstr "<b>Партнер</b> установлен как <em>%s</em>."
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: selection:crm.lead.report,state:0
|
#: selection:crm.lead.report,state:0
|
||||||
|
@ -1108,7 +1113,7 @@ msgstr "Удалить"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:mail.message.subtype,description:crm.mt_lead_create
|
#: model:mail.message.subtype,description:crm.mt_lead_create
|
||||||
msgid "Opportunity created"
|
msgid "Opportunity created"
|
||||||
msgstr ""
|
msgstr "Предложение создано"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
|
@ -1397,7 +1402,7 @@ msgstr "Сделать"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:mail.message.subtype,description:crm.mt_lead_lost
|
#: model:mail.message.subtype,description:crm.mt_lead_lost
|
||||||
msgid "Opportunity lost"
|
msgid "Opportunity lost"
|
||||||
msgstr ""
|
msgstr "Предложение отклонено"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.lead2opportunity.partner,action:0
|
#: field:crm.lead2opportunity.partner,action:0
|
||||||
|
@ -1446,7 +1451,7 @@ msgstr "Пользователи"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:mail.message.subtype,name:crm.mt_lead_stage
|
#: model:mail.message.subtype,name:crm.mt_lead_stage
|
||||||
msgid "Stage Changed"
|
msgid "Stage Changed"
|
||||||
msgstr ""
|
msgstr "Стадия изменена"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.case.stage,section_ids:0
|
#: field:crm.case.stage,section_ids:0
|
||||||
|
@ -1759,7 +1764,7 @@ msgstr "Способ оплаты"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:ir.model,name:crm.model_crm_lead2opportunity_partner_mass
|
#: model:ir.model,name:crm.model_crm_lead2opportunity_partner_mass
|
||||||
msgid "Mass Lead To Opportunity Partner"
|
msgid "Mass Lead To Opportunity Partner"
|
||||||
msgstr "Массовое проведение предложений партнёру"
|
msgstr "Массовое преобразование кандидатов в предложения"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:sale.config.settings:0
|
#: view:sale.config.settings:0
|
||||||
|
@ -1894,7 +1899,7 @@ msgstr "Кандидаты"
|
||||||
#: code:addons/crm/crm_lead.py:563
|
#: code:addons/crm/crm_lead.py:563
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Merged leads"
|
msgid "Merged leads"
|
||||||
msgstr ""
|
msgstr "Объединенные кандидаты"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:crm.case.categ,name:crm.categ_oppor5
|
#: model:crm.case.categ,name:crm.categ_oppor5
|
||||||
|
@ -1917,7 +1922,7 @@ msgstr "Сделать"
|
||||||
#: model:mail.message.subtype,name:crm.mt_lead_convert_to_opportunity
|
#: model:mail.message.subtype,name:crm.mt_lead_convert_to_opportunity
|
||||||
#: model:mail.message.subtype,name:crm.mt_salesteam_lead_opportunity
|
#: model:mail.message.subtype,name:crm.mt_salesteam_lead_opportunity
|
||||||
msgid "Lead to Opportunity"
|
msgid "Lead to Opportunity"
|
||||||
msgstr ""
|
msgstr "Кандидат в предложение"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.lead,user_email:0
|
#: field:crm.lead,user_email:0
|
||||||
|
@ -2126,7 +2131,7 @@ msgstr ""
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
msgid "Address"
|
msgid "Address"
|
||||||
msgstr ""
|
msgstr "Адрес"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: help:crm.case.section,alias_id:0
|
#: help:crm.case.section,alias_id:0
|
||||||
|
@ -2134,6 +2139,8 @@ msgid ""
|
||||||
"The email address associated with this team. New emails received will "
|
"The email address associated with this team. New emails received will "
|
||||||
"automatically create new leads assigned to the team."
|
"automatically create new leads assigned to the team."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Адрес эл. почты связанный с этой командой. Новая полученная эл. почта будет "
|
||||||
|
"автоматически создавать новые кандидаты связанные с командой."
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
|
@ -2192,7 +2199,7 @@ msgstr "Продолжение процесса"
|
||||||
#: selection:crm.lead2opportunity.partner.mass,name:0
|
#: selection:crm.lead2opportunity.partner.mass,name:0
|
||||||
#: model:ir.actions.act_window,name:crm.action_crm_lead2opportunity_partner
|
#: model:ir.actions.act_window,name:crm.action_crm_lead2opportunity_partner
|
||||||
msgid "Convert to opportunity"
|
msgid "Convert to opportunity"
|
||||||
msgstr "Преобразовать в возможность"
|
msgstr "Преобразовать в предложение"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.opportunity2phonecall,user_id:0
|
#: field:crm.opportunity2phonecall,user_id:0
|
||||||
|
@ -2234,6 +2241,8 @@ msgid ""
|
||||||
"This stage is not visible, for example in status bar or kanban view, when "
|
"This stage is not visible, for example in status bar or kanban view, when "
|
||||||
"there are no records in that stage to display."
|
"there are no records in that stage to display."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Эта стадия не видима, например в статус-баре или виде канбан, когда нет "
|
||||||
|
"записей этой стадии для отображения."
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.lead.report,nbr:0
|
#: field:crm.lead.report,nbr:0
|
||||||
|
@ -2249,7 +2258,7 @@ msgstr "Отдел продаж, которому принадлежит воп
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:crm.case.resource.type,name:crm.type_lead6
|
#: model:crm.case.resource.type,name:crm.type_lead6
|
||||||
msgid "Banner Ads"
|
msgid "Banner Ads"
|
||||||
msgstr ""
|
msgstr "Баннер"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.merge.opportunity,opportunity_ids:0
|
#: field:crm.merge.opportunity,opportunity_ids:0
|
||||||
|
@ -2279,7 +2288,7 @@ msgstr "Выполняется"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:mail.message.subtype,description:crm.mt_lead_convert_to_opportunity
|
#: model:mail.message.subtype,description:crm.mt_lead_convert_to_opportunity
|
||||||
msgid "Lead converted into an opportunity"
|
msgid "Lead converted into an opportunity"
|
||||||
msgstr ""
|
msgstr "Кандидат превращенный в предложение"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
|
@ -2289,7 +2298,7 @@ msgstr "Нераспределенные кандидаты"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:mail.message.subtype,description:crm.mt_lead_won
|
#: model:mail.message.subtype,description:crm.mt_lead_won
|
||||||
msgid "Opportunity won"
|
msgid "Opportunity won"
|
||||||
msgstr ""
|
msgstr "Предложение принято"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.case.categ,object_id:0
|
#: field:crm.case.categ,object_id:0
|
||||||
|
@ -2364,7 +2373,7 @@ msgstr ""
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.case.stage,state:0
|
#: field:crm.case.stage,state:0
|
||||||
msgid "Related Status"
|
msgid "Related Status"
|
||||||
msgstr ""
|
msgstr "Связанный статус"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.phonecall,name:0
|
#: field:crm.phonecall,name:0
|
||||||
|
@ -2410,7 +2419,7 @@ msgstr "Подтвердить"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
msgid "Unread messages"
|
msgid "Unread messages"
|
||||||
msgstr ""
|
msgstr "Непрочитанные сообщения"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.phonecall.report,section_id:0
|
#: field:crm.phonecall.report,section_id:0
|
||||||
|
@ -2501,7 +2510,7 @@ msgstr "Создание предложений из кандидатов"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:crm.case.resource.type,name:crm.type_lead3
|
#: model:crm.case.resource.type,name:crm.type_lead3
|
||||||
msgid "Email Campaign - Products"
|
msgid "Email Campaign - Products"
|
||||||
msgstr ""
|
msgstr "Кампания эл. почты - Продукция"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:ir.actions.act_window,help:crm.crm_case_categ_phone_incoming0
|
#: model:ir.actions.act_window,help:crm.crm_case_categ_phone_incoming0
|
||||||
|
@ -2578,7 +2587,7 @@ msgstr "Август"
|
||||||
#: model:mail.message.subtype,name:crm.mt_lead_lost
|
#: model:mail.message.subtype,name:crm.mt_lead_lost
|
||||||
#: model:mail.message.subtype,name:crm.mt_salesteam_lead_lost
|
#: model:mail.message.subtype,name:crm.mt_salesteam_lead_lost
|
||||||
msgid "Opportunity Lost"
|
msgid "Opportunity Lost"
|
||||||
msgstr ""
|
msgstr "Предложение отклонено"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.lead.report,deadline_month:0
|
#: field:crm.lead.report,deadline_month:0
|
||||||
|
@ -2644,7 +2653,7 @@ msgstr "Сотрудники отдела"
|
||||||
#: view:crm.opportunity2phonecall:0
|
#: view:crm.opportunity2phonecall:0
|
||||||
#: view:crm.phonecall2phonecall:0
|
#: view:crm.phonecall2phonecall:0
|
||||||
msgid "Schedule/Log a Call"
|
msgid "Schedule/Log a Call"
|
||||||
msgstr ""
|
msgstr "Запланировать/Описать звонок"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.lead,planned_cost:0
|
#: field:crm.lead,planned_cost:0
|
||||||
|
@ -2654,7 +2663,7 @@ msgstr "Планируемые затраты"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: help:crm.lead,date_deadline:0
|
#: help:crm.lead,date_deadline:0
|
||||||
msgid "Estimate of the date on which the opportunity will be won."
|
msgid "Estimate of the date on which the opportunity will be won."
|
||||||
msgstr ""
|
msgstr "Оценка даты на которую это предложение будет принято."
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: help:crm.lead,email_cc:0
|
#: help:crm.lead,email_cc:0
|
||||||
|
@ -2676,7 +2685,7 @@ msgstr "Описанные звонки"
|
||||||
#: model:mail.message.subtype,name:crm.mt_lead_won
|
#: model:mail.message.subtype,name:crm.mt_lead_won
|
||||||
#: model:mail.message.subtype,name:crm.mt_salesteam_lead_won
|
#: model:mail.message.subtype,name:crm.mt_salesteam_lead_won
|
||||||
msgid "Opportunity Won"
|
msgid "Opportunity Won"
|
||||||
msgstr ""
|
msgstr "Предложение принято"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:ir.actions.act_window,name:crm.crm_case_section_act_tree
|
#: model:ir.actions.act_window,name:crm.crm_case_section_act_tree
|
||||||
|
@ -2717,7 +2726,7 @@ msgstr "Улица (2-я строка)"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:sale.config.settings,module_crm_helpdesk:0
|
#: field:sale.config.settings,module_crm_helpdesk:0
|
||||||
msgid "Manage Helpdesk and Support"
|
msgid "Manage Helpdesk and Support"
|
||||||
msgstr ""
|
msgstr "Управление поддержкой"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.lead.report,delay_open:0
|
#: field:crm.lead.report,delay_open:0
|
||||||
|
@ -2826,7 +2835,7 @@ msgstr "Дата создания"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
msgid "at"
|
msgid "at"
|
||||||
msgstr ""
|
msgstr "в"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:crm.case.stage,name:crm.stage_lead1
|
#: model:crm.case.stage,name:crm.stage_lead1
|
||||||
|
@ -2895,7 +2904,7 @@ msgstr ""
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
msgid "Internal Notes"
|
msgid "Internal Notes"
|
||||||
msgstr ""
|
msgstr "Внутренние заметки"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
|
@ -2960,6 +2969,7 @@ msgstr "Проиграно"
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Closed/Cancelled leads cannot be converted into opportunities."
|
msgid "Closed/Cancelled leads cannot be converted into opportunities."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Закрытые/Отмененные кандидаты не могут быть конвертированы в возможности."
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
|
@ -3050,7 +3060,7 @@ msgstr "Рассылка"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:mail.message.subtype,name:crm.mt_salesteam_lead_stage
|
#: model:mail.message.subtype,name:crm.mt_salesteam_lead_stage
|
||||||
msgid "Opportunity Stage Changed"
|
msgid "Opportunity Stage Changed"
|
||||||
msgstr ""
|
msgstr "Этап предложения изменен"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:ir.actions.act_window,help:crm.crm_lead_stage_act
|
#: model:ir.actions.act_window,help:crm.crm_lead_stage_act
|
||||||
|
|
|
@ -60,24 +60,24 @@
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Prospect Opportunity"""" name="name"/>
|
<field eval=""""Prospect Opportunity"""" name="name"/>
|
||||||
<field eval=""""Creating business opportunities from Leads"""" name="note"/>
|
<field eval=""""Creating business opportunities from Leads"""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_opportunities0"/>
|
<field name="target_node_id" ref="process_node_opportunities0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_leads0"/>
|
<field name="source_node_id" ref="process_node_leads0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="process_transition_leadpartner0" model="process.transition">
|
<record id="process_transition_leadpartner0" model="process.transition">
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Prospect Partner"""" name="name"/>
|
<field eval=""""Prospect Partner"""" name="name"/>
|
||||||
<field eval=""""Prospect is converting to business partner"""" name="note"/>
|
<field eval=""""Prospect is converting to business partner"""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_partner0"/>
|
<field name="target_node_id" ref="process_node_partner0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_leads0"/>
|
<field name="source_node_id" ref="process_node_leads0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="process_transition_opportunitymeeting0" model="process.transition">
|
<record id="process_transition_opportunitymeeting0" model="process.transition">
|
||||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||||
<field eval=""""Opportunity Meeting"""" name="name"/>
|
<field eval=""""Opportunity Meeting"""" name="name"/>
|
||||||
<field eval=""""Normal or phone meeting for opportunity"""" name="note"/>
|
<field eval=""""Normal or phone meeting for opportunity"""" name="note"/>
|
||||||
<field model="process.node" name="target_node_id" ref="process_node_meeting0"/>
|
<field name="target_node_id" ref="process_node_meeting0"/>
|
||||||
<field model="process.node" name="source_node_id" ref="process_node_opportunities0"/>
|
<field name="source_node_id" ref="process_node_opportunities0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
<filter icon="terp-dialog-close" string="Closed" domain="[('state','=','done')]" help="Leads/Opportunities which are in done state"/>
|
<filter icon="terp-dialog-close" string="Closed" domain="[('state','=','done')]" help="Leads/Opportunities which are in done state"/>
|
||||||
<separator/>
|
<separator/>
|
||||||
<filter string="My Sales Team(s)" icon="terp-personal+" context="{'invisible_section': False}" domain="[('section_id.user_id','=',uid)]"
|
<filter string="My Sales Team(s)" icon="terp-personal+" context="{'invisible_section': False}" domain="[('section_id.user_id','=',uid)]"
|
||||||
help="Leads/Opportunities that are assigned to one of the sale teams I manage"/>
|
help="Leads/Opportunities that are assigned to one of the sale teams I manage" groups="base.group_multi_salesteams"/>
|
||||||
<separator/>
|
<separator/>
|
||||||
<filter icon="terp-personal" string="My Case(s)" help="Leads/Opportunities that are assigned to me" domain="[('user_id','=',uid)]"/>
|
<filter icon="terp-personal" string="My Case(s)" help="Leads/Opportunities that are assigned to me" domain="[('user_id','=',uid)]"/>
|
||||||
<field name="section_id" context="{'invisible_section': False}"
|
<field name="section_id" context="{'invisible_section': False}"
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
help="Phone calls which are in pending state"/>
|
help="Phone calls which are in pending state"/>
|
||||||
<separator/>
|
<separator/>
|
||||||
<filter string="My Sales Team(s)" icon="terp-personal+" context="{'invisible_section': False}" domain="[('section_id.user_id','=',uid)]"
|
<filter string="My Sales Team(s)" icon="terp-personal+" context="{'invisible_section': False}" domain="[('section_id.user_id','=',uid)]"
|
||||||
help="Phone calls that are assigned to one of the sale teams I manage"/>
|
help="Phone calls that are assigned to one of the sale teams I manage" groups="base.group_multi_salesteams"/>
|
||||||
<separator/>
|
<separator/>
|
||||||
<filter icon="terp-personal" string="My Phone Calls" help="Phone Calls that are assigned to me" domain="[('user_id','=',uid)]" />
|
<filter icon="terp-personal" string="My Phone Calls" help="Phone Calls that are assigned to me" domain="[('user_id','=',uid)]" />
|
||||||
<field name="section_id" string="Sales Team" context="{'invisible_section': False}"
|
<field name="section_id" string="Sales Team" context="{'invisible_section': False}"
|
||||||
|
|
|
@ -22,9 +22,9 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</group>
|
</group>
|
||||||
<separator string="Sales Teams Configuration"/>
|
<separator string="Sales Teams"/>
|
||||||
<group>
|
<group>
|
||||||
<label for="id" string="Use Sales Teams"/>
|
<label for="id" string="Manage Sales Teams"/>
|
||||||
<div>
|
<div>
|
||||||
<field name="group_multi_salesteams" class="oe_inline"/>
|
<field name="group_multi_salesteams" class="oe_inline"/>
|
||||||
<label for="group_multi_salesteams"/>
|
<label for="group_multi_salesteams"/>
|
||||||
|
|
|
@ -12,7 +12,7 @@ access_crm_phonecall_manager,crm.phonecall.manager,model_crm_phonecall,base.grou
|
||||||
access_crm_case_categ,crm.case.categ,model_crm_case_categ,base.group_user,1,0,0,0
|
access_crm_case_categ,crm.case.categ,model_crm_case_categ,base.group_user,1,0,0,0
|
||||||
access_crm_lead,crm.lead,model_crm_lead,base.group_sale_salesman,1,1,1,0
|
access_crm_lead,crm.lead,model_crm_lead,base.group_sale_salesman,1,1,1,0
|
||||||
access_crm_phonecall,crm.phonecall,model_crm_phonecall,base.group_sale_salesman,1,1,1,0
|
access_crm_phonecall,crm.phonecall,model_crm_phonecall,base.group_sale_salesman,1,1,1,0
|
||||||
access_crm_case_section_user,crm.case.section.user,model_crm_case_section,base.group_sale_salesman,1,1,1,0
|
access_crm_case_section_user,crm.case.section.user,model_crm_case_section,base.group_sale_salesman,1,0,0,0
|
||||||
access_crm_case_section_manager,crm.case.section.manager,model_crm_case_section,base.group_sale_manager,1,1,1,1
|
access_crm_case_section_manager,crm.case.section.manager,model_crm_case_section,base.group_sale_manager,1,1,1,1
|
||||||
access_crm_case_stage,crm.case.stage,model_crm_case_stage,,1,0,0,0
|
access_crm_case_stage,crm.case.stage,model_crm_case_stage,,1,0,0,0
|
||||||
access_crm_case_stage_manager,crm.case.stage,model_crm_case_stage,base.group_sale_manager,1,1,1,1
|
access_crm_case_stage_manager,crm.case.stage,model_crm_case_stage,base.group_sale_manager,1,1,1,1
|
||||||
|
|
|
File diff suppressed because it is too large
Load Diff
|
@ -20,15 +20,27 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list {
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list {
|
||||||
margin: 10px 0;
|
position: relative;
|
||||||
|
margin: 10px;
|
||||||
}
|
}
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list a {
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list div {
|
||||||
width: 110px;
|
width: 160px;
|
||||||
|
height: 22px;
|
||||||
|
margin: 0 !important;
|
||||||
|
position: relative;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list a:hover {
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list a:hover {
|
||||||
text-decoration: underline !important;
|
text-decoration: underline !important;
|
||||||
}
|
}
|
||||||
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list div a:nth-child(2n) {
|
||||||
|
position: absolute;
|
||||||
|
left: 90px;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list div:nth-child(2n) a:nth-child(2n) {
|
||||||
|
left: 110px;
|
||||||
|
}
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_center {
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_center {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin: 3px 0;
|
margin: 3px 0;
|
||||||
|
@ -40,3 +52,13 @@
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_center .oe_subsum {
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_center .oe_subsum {
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.openerp .oe_kanban_view .oe_justgage {
|
||||||
|
color: black;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.openerp .oe_kanban_view .oe_sparkline_bar {
|
||||||
|
height: 20px;
|
||||||
|
width: 36px;
|
||||||
|
}
|
|
@ -1,11 +0,0 @@
|
||||||
openerp.crm = function(openerp) {
|
|
||||||
openerp.web_kanban.KanbanRecord.include({
|
|
||||||
on_card_clicked: function() {
|
|
||||||
if (this.view.dataset.model === 'crm.case.section') {
|
|
||||||
this.$('.oe_kanban_crm_salesteams_list a').first().click();
|
|
||||||
} else {
|
|
||||||
this._super.apply(this, arguments);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
|
||||||
};
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
openerp.crm = function(openerp) {
|
||||||
|
openerp.web_kanban.KanbanRecord.include({
|
||||||
|
on_card_clicked: function() {
|
||||||
|
if (this.view.dataset.model === 'crm.case.section') {
|
||||||
|
this.$('.oe_kanban_crm_salesteams_list a').first().click();
|
||||||
|
} else {
|
||||||
|
this._super.apply(this, arguments);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
openerp.crm.SparklineBarWidget = openerp.web_kanban.AbstractField.extend({
|
||||||
|
className: "oe_sparkline_bar",
|
||||||
|
start: function() {
|
||||||
|
var self = this;
|
||||||
|
var title = this.$node.html();
|
||||||
|
setTimeout(function () {
|
||||||
|
var value = _.pluck(self.field.value, 'value');
|
||||||
|
var tooltips = _.pluck(self.field.value, 'tooltip');
|
||||||
|
self.$el.sparkline(value, {
|
||||||
|
type: 'bar',
|
||||||
|
barWidth: 5,
|
||||||
|
tooltipFormat: '{{offset:offset}} {{value}}',
|
||||||
|
tooltipValueLookups: {
|
||||||
|
'offset': tooltips
|
||||||
|
},
|
||||||
|
});
|
||||||
|
self.$el.tipsy({'delayIn': 0, 'html': true, 'title': function(){return title}, 'gravity': 'n'});
|
||||||
|
}, 0);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
openerp.web_kanban.fields_registry.add("sparkline_bar", "openerp.crm.SparklineBarWidget");
|
||||||
|
|
||||||
|
};
|
|
@ -1,7 +1,9 @@
|
||||||
-
|
-
|
||||||
I cancel unqualified lead.
|
I set a new sale team (with Marketing at parent) and I cancel unqualified lead .
|
||||||
-
|
-
|
||||||
!python {model: crm.lead}: |
|
!python {model: crm.lead}: |
|
||||||
|
section_id = self.pool.get('crm.case.section').create(cr, uid, {'name': "Phone Marketing", 'parent_id': ref("crm.crm_case_section_2")})
|
||||||
|
self.write(cr, uid, [ref("crm_case_1")], {'section_id': section_id})
|
||||||
self.case_cancel(cr, uid, [ref("crm_case_1")])
|
self.case_cancel(cr, uid, [ref("crm_case_1")])
|
||||||
-
|
-
|
||||||
I check cancelled lead.
|
I check cancelled lead.
|
||||||
|
@ -42,4 +44,4 @@
|
||||||
I check the lead is correctly escalated to the parent team.
|
I check the lead is correctly escalated to the parent team.
|
||||||
-
|
-
|
||||||
!assert {model: crm.lead, id: crm.crm_case_1, string: Escalate lead to parent team}:
|
!assert {model: crm.lead, id: crm.crm_case_1, string: Escalate lead to parent team}:
|
||||||
- section_id.name == "Support Department"
|
- section_id.name == "Marketing"
|
||||||
|
|
|
@ -86,7 +86,7 @@ class crm_lead2opportunity_partner(osv.osv_memory):
|
||||||
lead_obj = self.pool.get('crm.lead')
|
lead_obj = self.pool.get('crm.lead')
|
||||||
for lead in lead_obj.browse(cr, uid, context.get('active_ids', []), context=context):
|
for lead in lead_obj.browse(cr, uid, context.get('active_ids', []), context=context):
|
||||||
if lead.state in ['done', 'cancel']:
|
if lead.state in ['done', 'cancel']:
|
||||||
raise osv.except_osv(_("Warning !"), _("Closed/Cancelled leads cannot be converted into opportunities."))
|
raise osv.except_osv(_("Warning!"), _("Closed/Cancelled leads cannot be converted into opportunities."))
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def _convert_opportunity(self, cr, uid, ids, vals, context=None):
|
def _convert_opportunity(self, cr, uid, ids, vals, context=None):
|
||||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
"PO-Revision-Date: 2012-10-24 05:01+0000\n"
|
"PO-Revision-Date: 2013-05-30 14:03+0000\n"
|
||||||
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: Russian <ru@li.org>\n"
|
"Language-Team: Russian <ru@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:44+0000\n"
|
"X-Launchpad-Export-Date: 2013-05-31 05:38+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16660)\n"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: help:crm.claim.stage,fold:0
|
#: help:crm.claim.stage,fold:0
|
||||||
|
@ -23,6 +23,8 @@ msgid ""
|
||||||
"This stage is not visible, for example in status bar or kanban view, when "
|
"This stage is not visible, for example in status bar or kanban view, when "
|
||||||
"there are no records in that stage to display."
|
"there are no records in that stage to display."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Эта стадия не видима, например в статус-баре или виде канбан, когда нет "
|
||||||
|
"записей этой стадии для отображения."
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim.report,nbr:0
|
#: field:crm.claim.report,nbr:0
|
||||||
|
@ -46,11 +48,13 @@ msgid ""
|
||||||
"Allows you to configure your incoming mail server, and create claims from "
|
"Allows you to configure your incoming mail server, and create claims from "
|
||||||
"incoming emails."
|
"incoming emails."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Позволяет настроить сервер входящей почты и создавать претензии из входящих "
|
||||||
|
"эл. писем."
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: model:ir.model,name:crm_claim.model_crm_claim_stage
|
#: model:ir.model,name:crm_claim.model_crm_claim_stage
|
||||||
msgid "Claim stages"
|
msgid "Claim stages"
|
||||||
msgstr ""
|
msgstr "Этапы претензии"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: selection:crm.claim.report,month:0
|
#: selection:crm.claim.report,month:0
|
||||||
|
@ -65,7 +69,7 @@ msgstr "Задержка закрытия"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim,message_unread:0
|
#: field:crm.claim,message_unread:0
|
||||||
msgid "Unread Messages"
|
msgid "Unread Messages"
|
||||||
msgstr ""
|
msgstr "Непрочитанные"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim,resolution:0
|
#: field:crm.claim,resolution:0
|
||||||
|
@ -100,12 +104,12 @@ msgstr "# претензий"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim.stage,name:0
|
#: field:crm.claim.stage,name:0
|
||||||
msgid "Stage Name"
|
msgid "Stage Name"
|
||||||
msgstr ""
|
msgstr "Название этапа"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: view:crm.claim.report:0
|
#: view:crm.claim.report:0
|
||||||
msgid "Salesperson"
|
msgid "Salesperson"
|
||||||
msgstr ""
|
msgstr "Продавец"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: selection:crm.claim,priority:0
|
#: selection:crm.claim,priority:0
|
||||||
|
@ -149,7 +153,7 @@ msgstr "Предупредительная мера"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: help:crm.claim,message_unread:0
|
#: help:crm.claim,message_unread:0
|
||||||
msgid "If checked new messages require your attention."
|
msgid "If checked new messages require your attention."
|
||||||
msgstr ""
|
msgstr "Если отмечено, новые сообщения требуют вашего внимания."
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim.report,date_closed:0
|
#: field:crm.claim.report,date_closed:0
|
||||||
|
@ -182,6 +186,8 @@ msgid ""
|
||||||
"Holds the Chatter summary (number of messages, ...). This summary is "
|
"Holds the Chatter summary (number of messages, ...). This summary is "
|
||||||
"directly in html format in order to be inserted in kanban views."
|
"directly in html format in order to be inserted in kanban views."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Содержит сводку по Чаттеру (количество сообщений,...). Эта сводка в формате "
|
||||||
|
"html для возможности использования в канбан виде"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: view:crm.claim:0
|
#: view:crm.claim:0
|
||||||
|
@ -235,12 +241,12 @@ msgstr "Важность"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim.stage,fold:0
|
#: field:crm.claim.stage,fold:0
|
||||||
msgid "Hide in Views when Empty"
|
msgid "Hide in Views when Empty"
|
||||||
msgstr ""
|
msgstr "Скрыть вид, если пусто"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim,message_follower_ids:0
|
#: field:crm.claim,message_follower_ids:0
|
||||||
msgid "Followers"
|
msgid "Followers"
|
||||||
msgstr ""
|
msgstr "Подписчики"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: view:crm.claim:0
|
#: view:crm.claim:0
|
||||||
|
@ -254,7 +260,7 @@ msgstr "Новый"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim.stage,section_ids:0
|
#: field:crm.claim.stage,section_ids:0
|
||||||
msgid "Sections"
|
msgid "Sections"
|
||||||
msgstr ""
|
msgstr "Секции"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim,email_from:0
|
#: field:crm.claim,email_from:0
|
||||||
|
@ -290,7 +296,7 @@ msgstr "Предмет претензии"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: model:crm.claim.stage,name:crm_claim.stage_claim3
|
#: model:crm.claim.stage,name:crm_claim.stage_claim3
|
||||||
msgid "Rejected"
|
msgid "Rejected"
|
||||||
msgstr ""
|
msgstr "Отклонено"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim,date_action_next:0
|
#: field:crm.claim,date_action_next:0
|
||||||
|
@ -344,7 +350,7 @@ msgstr ""
|
||||||
#: code:addons/crm_claim/crm_claim.py:194
|
#: code:addons/crm_claim/crm_claim.py:194
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "No Subject"
|
msgid "No Subject"
|
||||||
msgstr ""
|
msgstr "Без темы"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: help:crm.claim.stage,state:0
|
#: help:crm.claim.stage,state:0
|
||||||
|
@ -358,7 +364,7 @@ msgstr ""
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: view:crm.claim:0
|
#: view:crm.claim:0
|
||||||
msgid "Settle"
|
msgid "Settle"
|
||||||
msgstr ""
|
msgstr "Решать"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: model:ir.ui.menu,name:crm_claim.menu_claim_stage_view
|
#: model:ir.ui.menu,name:crm_claim.menu_claim_stage_view
|
||||||
|
@ -384,7 +390,7 @@ msgstr "Отчет о претензиях"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: view:sale.config.settings:0
|
#: view:sale.config.settings:0
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr ""
|
msgstr "Настроить"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: model:crm.case.resource.type,name:crm_claim.type_claim1
|
#: model:crm.case.resource.type,name:crm_claim.type_claim1
|
||||||
|
@ -430,6 +436,8 @@ msgid ""
|
||||||
"If you check this field, this stage will be proposed by default on each "
|
"If you check this field, this stage will be proposed by default on each "
|
||||||
"sales team. It will not assign this stage to existing teams."
|
"sales team. It will not assign this stage to existing teams."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Если вы отметите это поле, этот этап будет предложен по умолчанию каждому "
|
||||||
|
"отделу продаж. Этот этап не будет назначен существующим отделам."
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim,categ_id:0
|
#: field:crm.claim,categ_id:0
|
||||||
|
@ -485,7 +493,7 @@ msgstr "Закрыто"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: view:crm.claim:0
|
#: view:crm.claim:0
|
||||||
msgid "Reject"
|
msgid "Reject"
|
||||||
msgstr ""
|
msgstr "Отклонить"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: view:res.partner:0
|
#: view:res.partner:0
|
||||||
|
@ -495,7 +503,7 @@ msgstr "Претензии партнера"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: view:crm.claim.stage:0
|
#: view:crm.claim.stage:0
|
||||||
msgid "Claim Stage"
|
msgid "Claim Stage"
|
||||||
msgstr ""
|
msgstr "Этап претензии"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: view:crm.claim:0
|
#: view:crm.claim:0
|
||||||
|
@ -513,7 +521,7 @@ msgstr "Отложено"
|
||||||
#: field:crm.claim.report,state:0
|
#: field:crm.claim.report,state:0
|
||||||
#: field:crm.claim.stage,state:0
|
#: field:crm.claim.stage,state:0
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr ""
|
msgstr "Статус"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: selection:crm.claim.report,month:0
|
#: selection:crm.claim.report,month:0
|
||||||
|
@ -529,7 +537,7 @@ msgstr "Обычный"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: help:crm.claim.stage,sequence:0
|
#: help:crm.claim.stage,sequence:0
|
||||||
msgid "Used to order stages. Lower is better."
|
msgid "Used to order stages. Lower is better."
|
||||||
msgstr ""
|
msgstr "Используется для упорядочивания этапов. Меньше - лучше."
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: selection:crm.claim.report,month:0
|
#: selection:crm.claim.report,month:0
|
||||||
|
@ -549,7 +557,7 @@ msgstr "Телефон"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim,message_is_follower:0
|
#: field:crm.claim,message_is_follower:0
|
||||||
msgid "Is a Follower"
|
msgid "Is a Follower"
|
||||||
msgstr ""
|
msgstr "Подписан"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim.report,user_id:0
|
#: field:crm.claim.report,user_id:0
|
||||||
|
@ -581,6 +589,10 @@ msgid ""
|
||||||
"the case needs to be reviewed then the status is set "
|
"the case needs to be reviewed then the status is set "
|
||||||
"to 'Pending'."
|
"to 'Pending'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Статус устанавливается в \"Черновик\", при создании дела. Если дело в "
|
||||||
|
"процессе, то статус - «Открыт». Когда дело закончено, устанавливается статус "
|
||||||
|
"\"Готово\". Если дело должно быть пересмотрено то статус установлен в "
|
||||||
|
"'Ожидание'."
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim,active:0
|
#: field:crm.claim,active:0
|
||||||
|
@ -628,7 +640,7 @@ msgstr "Дата претензии"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim,message_summary:0
|
#: field:crm.claim,message_summary:0
|
||||||
msgid "Summary"
|
msgid "Summary"
|
||||||
msgstr ""
|
msgstr "Итог"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: model:ir.actions.act_window,name:crm_claim.crm_claim_categ_action
|
#: model:ir.actions.act_window,name:crm_claim.crm_claim_categ_action
|
||||||
|
@ -638,7 +650,7 @@ msgstr "Категории претензий"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim.stage,case_default:0
|
#: field:crm.claim.stage,case_default:0
|
||||||
msgid "Common to All Teams"
|
msgid "Common to All Teams"
|
||||||
msgstr ""
|
msgstr "Общее для всех отделов"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: view:crm.claim:0
|
#: view:crm.claim:0
|
||||||
|
@ -677,7 +689,7 @@ msgstr "Претензия"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: view:crm.claim.report:0
|
#: view:crm.claim.report:0
|
||||||
msgid "My Company"
|
msgid "My Company"
|
||||||
msgstr ""
|
msgstr "Моя компания"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: view:crm.claim.report:0
|
#: view:crm.claim.report:0
|
||||||
|
@ -807,7 +819,7 @@ msgstr "Февраль"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: model:ir.model,name:crm_claim.model_sale_config_settings
|
#: model:ir.model,name:crm_claim.model_sale_config_settings
|
||||||
msgid "sale.config.settings"
|
msgid "sale.config.settings"
|
||||||
msgstr ""
|
msgstr "sale.config.settings"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: view:crm.claim.report:0
|
#: view:crm.claim.report:0
|
||||||
|
@ -833,22 +845,22 @@ msgstr "Мои дела"
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: model:crm.claim.stage,name:crm_claim.stage_claim2
|
#: model:crm.claim.stage,name:crm_claim.stage_claim2
|
||||||
msgid "Settled"
|
msgid "Settled"
|
||||||
msgstr ""
|
msgstr "Решено"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: help:crm.claim,message_ids:0
|
#: help:crm.claim,message_ids:0
|
||||||
msgid "Messages and communication history"
|
msgid "Messages and communication history"
|
||||||
msgstr ""
|
msgstr "Сообщения и история общения"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:sale.config.settings,fetchmail_claim:0
|
#: field:sale.config.settings,fetchmail_claim:0
|
||||||
msgid "Create claims from incoming mails"
|
msgid "Create claims from incoming mails"
|
||||||
msgstr ""
|
msgstr "Создать претензии из входящей почты"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: field:crm.claim.stage,sequence:0
|
#: field:crm.claim.stage,sequence:0
|
||||||
msgid "Sequence"
|
msgid "Sequence"
|
||||||
msgstr ""
|
msgstr "Нумерация"
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: view:crm.claim:0
|
#: view:crm.claim:0
|
||||||
|
@ -883,6 +895,8 @@ msgid ""
|
||||||
"Link between stages and sales teams. When set, this limitate the current "
|
"Link between stages and sales teams. When set, this limitate the current "
|
||||||
"stage to the selected sales teams."
|
"stage to the selected sales teams."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Связь между этапами и отделами продаж. При установке, ограничивает этап для "
|
||||||
|
"выбранного отдела продаж."
|
||||||
|
|
||||||
#. module: crm_claim
|
#. module: crm_claim
|
||||||
#: help:crm.claim.stage,case_refused:0
|
#: help:crm.claim.stage,case_refused:0
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
<filter icon="terp-camera_test" string="Open" domain="[('state','=','open')]"/>
|
<filter icon="terp-camera_test" string="Open" domain="[('state','=','open')]"/>
|
||||||
<filter icon="terp-gtk-media-pause" string="Pending" domain="[('state','=','pending')]"/>
|
<filter icon="terp-gtk-media-pause" string="Pending" domain="[('state','=','pending')]"/>
|
||||||
<separator/>
|
<separator/>
|
||||||
<filter string="My Sales Team(s)" icon="terp-personal+" context="{'invisible_section': False}" domain="[('section_id.user_id','=',uid)]" help="My Sales Team(s)" />
|
<filter string="My Sales Team(s)" icon="terp-personal+" context="{'invisible_section': False}" domain="[('section_id.user_id','=',uid)]" help="My Sales Team(s)" groups="base.group_multi_salesteams"/>
|
||||||
<separator/>
|
<separator/>
|
||||||
<filter string="My Company" icon="terp-go-home" context="{'invisible_section': False}" domain="[('section_id.user_id.company_id','=',uid)]" help="My company"/>
|
<filter string="My Company" icon="terp-go-home" context="{'invisible_section': False}" domain="[('section_id.user_id.company_id','=',uid)]" help="My company"/>
|
||||||
<separator/>
|
<separator/>
|
||||||
|
@ -78,7 +78,7 @@
|
||||||
</group>
|
</group>
|
||||||
<group expand="1" string="Group By...">
|
<group expand="1" string="Group By...">
|
||||||
<filter string="Salesperson" name="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}" />
|
<filter string="Salesperson" name="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}" />
|
||||||
<filter string="Sales Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}" />
|
<filter string="Sales Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
|
||||||
<filter string="Partner" name="partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}" />
|
<filter string="Partner" name="partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}" />
|
||||||
<filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}" />
|
<filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}" />
|
||||||
<filter string="Priority" icon="terp-rating-rated" domain="[]" context="{'group_by':'priority'}" />
|
<filter string="Priority" icon="terp-rating-rated" domain="[]" context="{'group_by':'priority'}" />
|
||||||
|
|
|
@ -151,14 +151,14 @@
|
||||||
<filter icon="terp-gtk-media-pause" string="Pending" domain="[('state','=','pending')]" help="All pending Helpdesk Request" />
|
<filter icon="terp-gtk-media-pause" string="Pending" domain="[('state','=','pending')]" help="All pending Helpdesk Request" />
|
||||||
<separator/>
|
<separator/>
|
||||||
<filter string="Assigned to Me or My Sales Team(s)" icon="terp-personal+" domain="['|', ('section_id.user_id','=',uid), ('section_id.member_ids', 'in', [uid])]"
|
<filter string="Assigned to Me or My Sales Team(s)" icon="terp-personal+" domain="['|', ('section_id.user_id','=',uid), ('section_id.member_ids', 'in', [uid])]"
|
||||||
help="Helpdesk requests that are assigned to me or to one of the sale teams I manage" />
|
help="Helpdesk requests that are assigned to me or to one of the sale teams I manage" groups="base.group_multi_salesteams"/>
|
||||||
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
|
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
|
||||||
<field name="user_id"/>
|
<field name="user_id"/>
|
||||||
<field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/>
|
<field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/>
|
||||||
<group expand="0" string="Group By...">
|
<group expand="0" string="Group By...">
|
||||||
<filter string="Partner" icon="terp-partner" domain="[]" help="Partner" context="{'group_by':'partner_id'}" />
|
<filter string="Partner" icon="terp-partner" domain="[]" help="Partner" context="{'group_by':'partner_id'}" />
|
||||||
<filter string="Responsible" icon="terp-personal" domain="[]" help="Responsible User" context="{'group_by':'user_id'}" />
|
<filter string="Responsible" icon="terp-personal" domain="[]" help="Responsible User" context="{'group_by':'user_id'}" />
|
||||||
<filter string="Sales Team" icon="terp-personal+" domain="[]" help="Sales Team" context="{'group_by':'section_id'}" />
|
<filter string="Sales Team" icon="terp-personal+" domain="[]" help="Sales Team" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
|
||||||
<filter string="Priority" icon="terp-rating-rated" domain="[]" context="{'group_by':'priority'}" />
|
<filter string="Priority" icon="terp-rating-rated" domain="[]" context="{'group_by':'priority'}" />
|
||||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}" />
|
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}" />
|
||||||
<filter string="Date" icon="terp-go-month" domain="[]" help="Request Date" context="{'group_by':'date'}" />
|
<filter string="Date" icon="terp-go-month" domain="[]" help="Request Date" context="{'group_by':'date'}" />
|
||||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
"PO-Revision-Date: 2012-10-24 05:08+0000\n"
|
"PO-Revision-Date: 2013-05-30 14:09+0000\n"
|
||||||
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: Russian <ru@li.org>\n"
|
"Language-Team: Russian <ru@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:46+0000\n"
|
"X-Launchpad-Export-Date: 2013-05-31 05:38+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16660)\n"
|
||||||
|
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: field:crm.helpdesk.report,delay_close:0
|
#: field:crm.helpdesk.report,delay_close:0
|
||||||
|
@ -46,7 +46,7 @@ msgstr "Март"
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: field:crm.helpdesk,message_unread:0
|
#: field:crm.helpdesk,message_unread:0
|
||||||
msgid "Unread Messages"
|
msgid "Unread Messages"
|
||||||
msgstr ""
|
msgstr "Непрочитанные"
|
||||||
|
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: field:crm.helpdesk,company_id:0
|
#: field:crm.helpdesk,company_id:0
|
||||||
|
@ -63,7 +63,7 @@ msgstr "Адреса наблюдателей"
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: view:crm.helpdesk.report:0
|
#: view:crm.helpdesk.report:0
|
||||||
msgid "Salesperson"
|
msgid "Salesperson"
|
||||||
msgstr ""
|
msgstr "Продавец"
|
||||||
|
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: selection:crm.helpdesk,priority:0
|
#: selection:crm.helpdesk,priority:0
|
||||||
|
@ -106,7 +106,7 @@ msgstr "Отменено"
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: help:crm.helpdesk,message_unread:0
|
#: help:crm.helpdesk,message_unread:0
|
||||||
msgid "If checked new messages require your attention."
|
msgid "If checked new messages require your attention."
|
||||||
msgstr ""
|
msgstr "Если отмечено, новые сообщения требуют вашего внимания."
|
||||||
|
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: model:ir.actions.act_window,name:crm_helpdesk.action_report_crm_helpdesk
|
#: model:ir.actions.act_window,name:crm_helpdesk.action_report_crm_helpdesk
|
||||||
|
@ -136,6 +136,8 @@ msgid ""
|
||||||
"Holds the Chatter summary (number of messages, ...). This summary is "
|
"Holds the Chatter summary (number of messages, ...). This summary is "
|
||||||
"directly in html format in order to be inserted in kanban views."
|
"directly in html format in order to be inserted in kanban views."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Содержит сводку по Чаттеру (количество сообщений,...). Эта сводка в формате "
|
||||||
|
"html для возможности использования в канбан виде"
|
||||||
|
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: view:crm.helpdesk:0
|
#: view:crm.helpdesk:0
|
||||||
|
@ -176,7 +178,7 @@ msgstr "Приоритет"
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: field:crm.helpdesk,message_follower_ids:0
|
#: field:crm.helpdesk,message_follower_ids:0
|
||||||
msgid "Followers"
|
msgid "Followers"
|
||||||
msgstr ""
|
msgstr "Подписчики"
|
||||||
|
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: view:crm.helpdesk:0
|
#: view:crm.helpdesk:0
|
||||||
|
@ -400,7 +402,7 @@ msgstr "В ожидании"
|
||||||
#: view:crm.helpdesk.report:0
|
#: view:crm.helpdesk.report:0
|
||||||
#: field:crm.helpdesk.report,state:0
|
#: field:crm.helpdesk.report,state:0
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr ""
|
msgstr "Статус"
|
||||||
|
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: selection:crm.helpdesk.report,month:0
|
#: selection:crm.helpdesk.report,month:0
|
||||||
|
@ -454,7 +456,7 @@ msgstr "Планируемая выручка"
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: field:crm.helpdesk,message_is_follower:0
|
#: field:crm.helpdesk,message_is_follower:0
|
||||||
msgid "Is a Follower"
|
msgid "Is a Follower"
|
||||||
msgstr ""
|
msgstr "Подписан"
|
||||||
|
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: field:crm.helpdesk.report,user_id:0
|
#: field:crm.helpdesk.report,user_id:0
|
||||||
|
@ -501,7 +503,7 @@ msgstr "Январь"
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: field:crm.helpdesk,message_summary:0
|
#: field:crm.helpdesk,message_summary:0
|
||||||
msgid "Summary"
|
msgid "Summary"
|
||||||
msgstr ""
|
msgstr "Итог"
|
||||||
|
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: view:crm.helpdesk:0
|
#: view:crm.helpdesk:0
|
||||||
|
@ -517,7 +519,7 @@ msgstr "Прочее"
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: view:crm.helpdesk.report:0
|
#: view:crm.helpdesk.report:0
|
||||||
msgid "My Company"
|
msgid "My Company"
|
||||||
msgstr ""
|
msgstr "Моя компания"
|
||||||
|
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: view:crm.helpdesk:0
|
#: view:crm.helpdesk:0
|
||||||
|
@ -666,7 +668,7 @@ msgstr ""
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: help:crm.helpdesk,message_ids:0
|
#: help:crm.helpdesk,message_ids:0
|
||||||
msgid "Messages and communication history"
|
msgid "Messages and communication history"
|
||||||
msgstr ""
|
msgstr "Сообщения и история общения"
|
||||||
|
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: model:ir.actions.act_window,help:crm_helpdesk.crm_helpdesk_categ_action
|
#: model:ir.actions.act_window,help:crm_helpdesk.crm_helpdesk_categ_action
|
||||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
"PO-Revision-Date: 2012-12-14 13:33+0000\n"
|
"PO-Revision-Date: 2013-06-07 05:02+0000\n"
|
||||||
"Last-Translator: 盈通 ccdos <ccdos@163.com>\n"
|
"Last-Translator: PeterGao <306739889@qq.com>\n"
|
||||||
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
|
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:46+0000\n"
|
"X-Launchpad-Export-Date: 2013-06-07 05:48+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16667)\n"
|
||||||
|
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: field:crm.helpdesk.report,delay_close:0
|
#: field:crm.helpdesk.report,delay_close:0
|
||||||
|
@ -656,6 +656,12 @@ msgid ""
|
||||||
" \n"
|
" \n"
|
||||||
"If the case needs to be reviewed then the status is set to 'Pending'."
|
"If the case needs to be reviewed then the status is set to 'Pending'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"当一个“case(事件)\"被新创建后,这个“case(事件)\"的状态为“草稿”状态。 "
|
||||||
|
" \n"
|
||||||
|
"若这个“case(事件)\"正在处理中,这个“case(事件)\"的状态为“开启”状态。\n"
|
||||||
|
"若这个“case(事件)\"已处理完结,这个“case(事件)\"的状态为“结单”状态。 "
|
||||||
|
" \n"
|
||||||
|
"若这个“case(事件)\"需暂停再议,这个“case(事件)\"的状态为“挂起”状态。"
|
||||||
|
|
||||||
#. module: crm_helpdesk
|
#. module: crm_helpdesk
|
||||||
#: help:crm.helpdesk,message_ids:0
|
#: help:crm.helpdesk,message_ids:0
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
<separator/>
|
<separator/>
|
||||||
<filter icon="terp-personal" string="My Case(s)" help="My Case(s)" domain="[('user_id','=',uid)]" />
|
<filter icon="terp-personal" string="My Case(s)" help="My Case(s)" domain="[('user_id','=',uid)]" />
|
||||||
<separator/>
|
<separator/>
|
||||||
<filter string="My Sales Team(s)" icon="terp-personal+" context="{'invisible_section': False}" domain="[('section_id.user_id','=',uid)]" help="My Sales Team(s)" />
|
<filter string="My Sales Team(s)" icon="terp-personal+" context="{'invisible_section': False}" domain="[('section_id.user_id','=',uid)]" help="My Sales Team(s)" groups="base.group_multi_salesteams"/>
|
||||||
<separator/>
|
<separator/>
|
||||||
<filter string="My Company" icon="terp-go-home" context="{'invisible_section': False}" domain="[('section_id.user_id.company_id','=',uid)]" help="My company"/>
|
<filter string="My Company" icon="terp-go-home" context="{'invisible_section': False}" domain="[('section_id.user_id.company_id','=',uid)]" help="My company"/>
|
||||||
<field name="user_id" string="Salesperson"/>
|
<field name="user_id" string="Salesperson"/>
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
</group>
|
</group>
|
||||||
<group expand="1" string="Group By...">
|
<group expand="1" string="Group By...">
|
||||||
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||||
<filter string="Sales Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}" />
|
<filter string="Sales Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
|
||||||
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}" />
|
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}" />
|
||||||
<filter string="Channel" icon="terp-call-start" domain="[]" context="{'group_by':'channel_id'}" />
|
<filter string="Channel" icon="terp-call-start" domain="[]" context="{'group_by':'channel_id'}" />
|
||||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}" />
|
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}" />
|
||||||
|
|
|
@ -3,7 +3,7 @@ Date: Tue, 25 Oct 2011 13:41:17 +0530
|
||||||
From: Mr. John Right <info@customer.com>
|
From: Mr. John Right <info@customer.com>
|
||||||
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110223 Lightning/1.0b2 Thunderbird/3.1.8
|
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110223 Lightning/1.0b2 Thunderbird/3.1.8
|
||||||
MIME-Version: 1.0
|
MIME-Version: 1.0
|
||||||
To: info@my.com
|
To: _helpdesk@my.com
|
||||||
Subject: Where is download link of user manual of your product ?
|
Subject: Where is download link of user manual of your product ?
|
||||||
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
|
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
|
||||||
Content-Transfer-Encoding: 8bit
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
"PO-Revision-Date: 2011-03-23 13:46+0000\n"
|
"PO-Revision-Date: 2013-06-06 10:24+0000\n"
|
||||||
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: Russian <ru@li.org>\n"
|
"Language-Team: Russian <ru@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:47+0000\n"
|
"X-Launchpad-Export-Date: 2013-06-07 05:48+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16667)\n"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.report.assign,delay_close:0
|
#: field:crm.lead.report.assign,delay_close:0
|
||||||
|
@ -25,7 +25,7 @@ msgstr "Задержка закрытия"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,author_id:0
|
#: field:crm.lead.forward.to.partner,author_id:0
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr ""
|
msgstr "Автор"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.report.assign,planned_revenue:0
|
#: field:crm.lead.report.assign,planned_revenue:0
|
||||||
|
@ -38,6 +38,9 @@ msgid ""
|
||||||
"Message type: email for email message, notification for system message, "
|
"Message type: email for email message, notification for system message, "
|
||||||
"comment for other messages such as user replies"
|
"comment for other messages such as user replies"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Тип сообщения: эл. почта - для эл. почты, уведомление - для системных "
|
||||||
|
"сообщений, комментарий - для остальных сообщений таких как сообщения "
|
||||||
|
"пользователя"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.report.assign,nbr:0
|
#: field:crm.lead.report.assign,nbr:0
|
||||||
|
@ -53,7 +56,7 @@ msgstr "Группировать по ..."
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: help:crm.lead.forward.to.partner,body:0
|
#: help:crm.lead.forward.to.partner,body:0
|
||||||
msgid "Automatically sanitized HTML contents"
|
msgid "Automatically sanitized HTML contents"
|
||||||
msgstr ""
|
msgstr "Автоматически обработанное HTML содержимое"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
|
@ -68,7 +71,7 @@ msgstr "Геолоцировать"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,starred:0
|
#: field:crm.lead.forward.to.partner,starred:0
|
||||||
msgid "Starred"
|
msgid "Starred"
|
||||||
msgstr ""
|
msgstr "Отмеченные"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.forward.to.partner:0
|
#: view:crm.lead.forward.to.partner:0
|
||||||
|
@ -81,6 +84,8 @@ msgid ""
|
||||||
"Email address of the sender. This field is set when no matching partner is "
|
"Email address of the sender. This field is set when no matching partner is "
|
||||||
"found for incoming emails."
|
"found for incoming emails."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Адрес эл. почты отправителя. Это поле устанавливается когда партнер не "
|
||||||
|
"определен для входящих писем."
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.partner.report.assign:0
|
#: view:crm.partner.report.assign:0
|
||||||
|
@ -111,7 +116,7 @@ msgstr "Компания"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,notification_ids:0
|
#: field:crm.lead.forward.to.partner,notification_ids:0
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr ""
|
msgstr "Уведомления"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.report.assign,date_assign:0
|
#: field:crm.lead.report.assign,date_assign:0
|
||||||
|
@ -123,7 +128,7 @@ msgstr "Дата партнера"
|
||||||
#: view:crm.partner.report.assign:0
|
#: view:crm.partner.report.assign:0
|
||||||
#: view:res.partner:0
|
#: view:res.partner:0
|
||||||
msgid "Salesperson"
|
msgid "Salesperson"
|
||||||
msgstr ""
|
msgstr "Продавец"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.report.assign,priority:0
|
#: selection:crm.lead.report.assign,priority:0
|
||||||
|
@ -170,12 +175,12 @@ msgstr "Географическое назначение"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: model:ir.model,name:crm_partner_assign.model_crm_lead_forward_to_partner
|
#: model:ir.model,name:crm_partner_assign.model_crm_lead_forward_to_partner
|
||||||
msgid "Email composition wizard"
|
msgid "Email composition wizard"
|
||||||
msgstr ""
|
msgstr "Мастер составления эл. почты"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.partner.report.assign,turnover:0
|
#: field:crm.partner.report.assign,turnover:0
|
||||||
msgid "Turnover"
|
msgid "Turnover"
|
||||||
msgstr ""
|
msgstr "Оборот"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.report.assign,date_closed:0
|
#: field:crm.lead.report.assign,date_closed:0
|
||||||
|
@ -199,7 +204,7 @@ msgstr ""
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.forward.to.partner,type:0
|
#: selection:crm.lead.forward.to.partner,type:0
|
||||||
msgid "System notification"
|
msgid "System notification"
|
||||||
msgstr ""
|
msgstr "Системное уведомление"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: code:addons/crm_partner_assign/wizard/crm_forward_to_partner.py:74
|
#: code:addons/crm_partner_assign/wizard/crm_forward_to_partner.py:74
|
||||||
|
@ -271,7 +276,7 @@ msgstr "Тип"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.forward.to.partner,type:0
|
#: selection:crm.lead.forward.to.partner,type:0
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr ""
|
msgstr "Эл. почта"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: help:crm.lead,partner_assigned_id:0
|
#: help:crm.lead,partner_assigned_id:0
|
||||||
|
@ -286,7 +291,7 @@ msgstr "Низший"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.partner.report.assign:0
|
#: view:crm.partner.report.assign:0
|
||||||
msgid "Date Invoice"
|
msgid "Date Invoice"
|
||||||
msgstr ""
|
msgstr "Дата счета"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,template_id:0
|
#: field:crm.lead.forward.to.partner,template_id:0
|
||||||
|
@ -311,12 +316,12 @@ msgstr "Дата создания"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: model:ir.model,name:crm_partner_assign.model_res_partner_activation
|
#: model:ir.model,name:crm_partner_assign.model_res_partner_activation
|
||||||
msgid "res.partner.activation"
|
msgid "res.partner.activation"
|
||||||
msgstr ""
|
msgstr "res.partner.activation"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,parent_id:0
|
#: field:crm.lead.forward.to.partner,parent_id:0
|
||||||
msgid "Parent Message"
|
msgid "Parent Message"
|
||||||
msgstr ""
|
msgstr "Родительское сообщение"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,res_id:0
|
#: field:crm.lead.forward.to.partner,res_id:0
|
||||||
|
@ -358,12 +363,12 @@ msgstr "Этап"
|
||||||
#: view:crm.lead.report.assign:0
|
#: view:crm.lead.report.assign:0
|
||||||
#: field:crm.lead.report.assign,state:0
|
#: field:crm.lead.report.assign,state:0
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr ""
|
msgstr "Статус"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,to_read:0
|
#: field:crm.lead.forward.to.partner,to_read:0
|
||||||
msgid "To read"
|
msgid "To read"
|
||||||
msgstr ""
|
msgstr "Прочитать"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: code:addons/crm_partner_assign/wizard/crm_forward_to_partner.py:74
|
#: code:addons/crm_partner_assign/wizard/crm_forward_to_partner.py:74
|
||||||
|
@ -418,12 +423,12 @@ msgstr "Количество дней, для закрытия вопроса"
|
||||||
#: help:crm.lead.forward.to.partner,notified_partner_ids:0
|
#: help:crm.lead.forward.to.partner,notified_partner_ids:0
|
||||||
msgid ""
|
msgid ""
|
||||||
"Partners that have a notification pushing this message in their mailboxes"
|
"Partners that have a notification pushing this message in their mailboxes"
|
||||||
msgstr ""
|
msgstr "Партнеры которые имеют уведомление доставляемое в их почтовые ящики"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.forward.to.partner,type:0
|
#: selection:crm.lead.forward.to.partner,type:0
|
||||||
msgid "Comment"
|
msgid "Comment"
|
||||||
msgstr ""
|
msgstr "Комментарий"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:res.partner,partner_weight:0
|
#: field:res.partner,partner_weight:0
|
||||||
|
@ -451,7 +456,7 @@ msgstr "Декабрь"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: help:crm.lead.forward.to.partner,vote_user_ids:0
|
#: help:crm.lead.forward.to.partner,vote_user_ids:0
|
||||||
msgid "Users that voted for this message"
|
msgid "Users that voted for this message"
|
||||||
msgstr ""
|
msgstr "Пользователи, которые проголосовали за это сообщение"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.report.assign:0
|
#: view:crm.lead.report.assign:0
|
||||||
|
@ -467,7 +472,7 @@ msgstr "Дата открытия"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,child_ids:0
|
#: field:crm.lead.forward.to.partner,child_ids:0
|
||||||
msgid "Child Messages"
|
msgid "Child Messages"
|
||||||
msgstr ""
|
msgstr "Связанные сообщения"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.partner.report.assign,date_review:0
|
#: field:crm.partner.report.assign,date_review:0
|
||||||
|
@ -483,17 +488,17 @@ msgstr "Тема"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.forward.to.partner:0
|
#: view:crm.lead.forward.to.partner:0
|
||||||
msgid "or"
|
msgid "or"
|
||||||
msgstr ""
|
msgstr "или"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,body:0
|
#: field:crm.lead.forward.to.partner,body:0
|
||||||
msgid "Contents"
|
msgid "Contents"
|
||||||
msgstr ""
|
msgstr "Содержимое"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,vote_user_ids:0
|
#: field:crm.lead.forward.to.partner,vote_user_ids:0
|
||||||
msgid "Votes"
|
msgid "Votes"
|
||||||
msgstr ""
|
msgstr "Голоса"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.report.assign:0
|
#: view:crm.lead.report.assign:0
|
||||||
|
@ -504,6 +509,8 @@ msgstr "# Предложений"
|
||||||
#: help:crm.lead.forward.to.partner,starred:0
|
#: help:crm.lead.forward.to.partner,starred:0
|
||||||
msgid "Current user has a starred notification linked to this message"
|
msgid "Current user has a starred notification linked to this message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Текущий пользователь имеет отмеченное уведомление, связанное с этим "
|
||||||
|
"сообщением"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.partner.report.assign,date_partnership:0
|
#: field:crm.partner.report.assign,date_partnership:0
|
||||||
|
@ -561,7 +568,7 @@ msgstr "Август"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: help:crm.lead.forward.to.partner,record_name:0
|
#: help:crm.lead.forward.to.partner,record_name:0
|
||||||
msgid "Name get of the related document."
|
msgid "Name get of the related document."
|
||||||
msgstr ""
|
msgstr "Название связанного документа."
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.report.assign,priority:0
|
#: selection:crm.lead.report.assign,priority:0
|
||||||
|
@ -663,7 +670,7 @@ msgstr ""
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.partner.report.assign,period_id:0
|
#: field:crm.partner.report.assign,period_id:0
|
||||||
msgid "Invoice Period"
|
msgid "Invoice Period"
|
||||||
msgstr ""
|
msgstr "Период счета"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: model:ir.model,name:crm_partner_assign.model_res_partner_grade
|
#: model:ir.model,name:crm_partner_assign.model_res_partner_grade
|
||||||
|
@ -684,7 +691,7 @@ msgstr "Вложения"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,record_name:0
|
#: field:crm.lead.forward.to.partner,record_name:0
|
||||||
msgid "Message Record Name"
|
msgid "Message Record Name"
|
||||||
msgstr ""
|
msgstr "Название записи сообщения"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:res.partner.activation,sequence:0
|
#: field:res.partner.activation,sequence:0
|
||||||
|
@ -699,6 +706,8 @@ msgid ""
|
||||||
"Cannot contact geolocation servers. Please make sure that your internet "
|
"Cannot contact geolocation servers. Please make sure that your internet "
|
||||||
"connection is up and running (%s)."
|
"connection is up and running (%s)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Не удается связаться с сервером геолокации. Пожалуйста, убедитесь, что ваше "
|
||||||
|
"подключение к интернету работает (%s)."
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.report.assign,month:0
|
#: selection:crm.lead.report.assign,month:0
|
||||||
|
@ -724,7 +733,7 @@ msgstr "Открыто"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,subtype_id:0
|
#: field:crm.lead.forward.to.partner,subtype_id:0
|
||||||
msgid "Subtype"
|
msgid "Subtype"
|
||||||
msgstr ""
|
msgstr "Подтип"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:res.partner,date_localization:0
|
#: field:res.partner,date_localization:0
|
||||||
|
@ -739,12 +748,12 @@ msgstr "Текущий"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: model:ir.model,name:crm_partner_assign.model_crm_lead
|
#: model:ir.model,name:crm_partner_assign.model_crm_lead
|
||||||
msgid "Lead/Opportunity"
|
msgid "Lead/Opportunity"
|
||||||
msgstr ""
|
msgstr "Кандидат/Предложение"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,notified_partner_ids:0
|
#: field:crm.lead.forward.to.partner,notified_partner_ids:0
|
||||||
msgid "Notified partners"
|
msgid "Notified partners"
|
||||||
msgstr ""
|
msgstr "Уведомленные партнеры"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.forward.to.partner:0
|
#: view:crm.lead.forward.to.partner:0
|
||||||
|
@ -775,7 +784,7 @@ msgstr "Вероятная выручка"
|
||||||
#: field:res.partner,activation:0
|
#: field:res.partner,activation:0
|
||||||
#: view:res.partner.activation:0
|
#: view:res.partner.activation:0
|
||||||
msgid "Activation"
|
msgid "Activation"
|
||||||
msgstr ""
|
msgstr "Активация"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
|
@ -792,6 +801,8 @@ msgstr ""
|
||||||
#: help:crm.lead.forward.to.partner,to_read:0
|
#: help:crm.lead.forward.to.partner,to_read:0
|
||||||
msgid "Current user has an unread notification linked to this message"
|
msgid "Current user has an unread notification linked to this message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Текущий пользователь имеет непрочитанные уведомления, связанные с этим "
|
||||||
|
"сообщением"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.report.assign,type:0
|
#: selection:crm.lead.report.assign,type:0
|
||||||
|
@ -860,6 +871,8 @@ msgid ""
|
||||||
"Technical field holding the message notifications. Use notified_partner_ids "
|
"Technical field holding the message notifications. Use notified_partner_ids "
|
||||||
"to access notified partners."
|
"to access notified partners."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Техническое поле, содержащее уведомления. Используйте notified_partner_ids "
|
||||||
|
"для доступа к оповещаемым партнерам."
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.partner.report.assign:0
|
#: view:crm.partner.report.assign:0
|
||||||
|
@ -874,12 +887,12 @@ msgstr "CRM - отчет по кандидатам"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,composition_mode:0
|
#: field:crm.lead.forward.to.partner,composition_mode:0
|
||||||
msgid "Composition mode"
|
msgid "Composition mode"
|
||||||
msgstr ""
|
msgstr "Режим составления"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,model:0
|
#: field:crm.lead.forward.to.partner,model:0
|
||||||
msgid "Related Document Model"
|
msgid "Related Document Model"
|
||||||
msgstr ""
|
msgstr "Модель связанного документа"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.forward.to.partner,history_mode:0
|
#: selection:crm.lead.forward.to.partner,history_mode:0
|
||||||
|
@ -892,6 +905,8 @@ msgid ""
|
||||||
"Author of the message. If not set, email_from may hold an email address that "
|
"Author of the message. If not set, email_from may hold an email address that "
|
||||||
"did not match any partner."
|
"did not match any partner."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Автор сообщения. Если не установлен, email_from может содержать адрес почты, "
|
||||||
|
"который не соответствует ни одному партнеру."
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: model:ir.model,name:crm_partner_assign.model_crm_partner_report_assign
|
#: model:ir.model,name:crm_partner_assign.model_crm_partner_report_assign
|
||||||
|
@ -906,12 +921,12 @@ msgstr "Высокий"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,partner_ids:0
|
#: field:crm.lead.forward.to.partner,partner_ids:0
|
||||||
msgid "Additional contacts"
|
msgid "Additional contacts"
|
||||||
msgstr ""
|
msgstr "Дополнительные контакты"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: help:crm.lead.forward.to.partner,parent_id:0
|
#: help:crm.lead.forward.to.partner,parent_id:0
|
||||||
msgid "Initial thread message."
|
msgid "Initial thread message."
|
||||||
msgstr ""
|
msgstr "Первое сообщение цепочки."
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.report.assign,create_date:0
|
#: field:crm.lead.report.assign,create_date:0
|
||||||
|
|
|
@ -124,6 +124,7 @@ class crm_lead_forward_to_partner(osv.TransientModel):
|
||||||
lead_ids = context and context.get('active_ids', []) or []
|
lead_ids = context and context.get('active_ids', []) or []
|
||||||
value = self.default_get(cr, uid, ['body', 'email_to', 'email_cc', 'subject', 'history_mode'], context=context)
|
value = self.default_get(cr, uid, ['body', 'email_to', 'email_cc', 'subject', 'history_mode'], context=context)
|
||||||
value.pop('composition_mode')
|
value.pop('composition_mode')
|
||||||
|
self.pool.get('crm.lead').message_subscribe(cr, uid, lead_ids, [partner.id for partner in wizard.partner_ids], context=context)
|
||||||
self.write(cr, uid, ids, value, context=context)
|
self.write(cr, uid, ids, value, context=context)
|
||||||
|
|
||||||
return self.send_mail(cr, uid, ids, context=context)
|
return self.send_mail(cr, uid, ids, context=context)
|
||||||
|
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
"PO-Revision-Date: 2012-05-10 17:51+0000\n"
|
"PO-Revision-Date: 2013-05-30 14:05+0000\n"
|
||||||
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:32+0000\n"
|
"X-Launchpad-Export-Date: 2013-05-31 05:38+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16660)\n"
|
||||||
|
|
||||||
#. module: crm_profiling
|
#. module: crm_profiling
|
||||||
#: view:crm_profiling.questionnaire:0
|
#: view:crm_profiling.questionnaire:0
|
||||||
|
@ -151,7 +151,7 @@ msgstr "Используйте правила профилирования"
|
||||||
#. module: crm_profiling
|
#. module: crm_profiling
|
||||||
#: constraint:crm.segmentation:0
|
#: constraint:crm.segmentation:0
|
||||||
msgid "Error ! You cannot create recursive profiles."
|
msgid "Error ! You cannot create recursive profiles."
|
||||||
msgstr ""
|
msgstr "Ошибка ! Нельзя создать рекурсивный профиль."
|
||||||
|
|
||||||
#. module: crm_profiling
|
#. module: crm_profiling
|
||||||
#: field:crm.segmentation,answer_yes:0
|
#: field:crm.segmentation,answer_yes:0
|
||||||
|
@ -200,7 +200,7 @@ msgstr "Сохранить данные"
|
||||||
#. module: crm_profiling
|
#. module: crm_profiling
|
||||||
#: view:open.questionnaire:0
|
#: view:open.questionnaire:0
|
||||||
msgid "or"
|
msgid "or"
|
||||||
msgstr ""
|
msgstr "или"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "The Object name must start with x_ and not contain any special character !"
|
#~ "The Object name must start with x_ and not contain any special character !"
|
||||||
|
|
|
@ -51,10 +51,10 @@ class sale_order(osv.osv):
|
||||||
for order in self.browse(cr, uid, ids, context=context):
|
for order in self.browse(cr, uid, ids, context=context):
|
||||||
grid_id = carrier_obj.grid_get(cr, uid, [order.carrier_id.id], order.partner_shipping_id.id)
|
grid_id = carrier_obj.grid_get(cr, uid, [order.carrier_id.id], order.partner_shipping_id.id)
|
||||||
if not grid_id:
|
if not grid_id:
|
||||||
raise osv.except_osv(_('No grid available !'), _('No grid matching for this carrier !'))
|
raise osv.except_osv(_('No Grid Available!'), _('No grid matching for this carrier!'))
|
||||||
|
|
||||||
if not order.state in ('draft'):
|
if not order.state in ('draft'):
|
||||||
raise osv.except_osv(_('Order not in draft state !'), _('The order state have to be draft to add delivery lines.'))
|
raise osv.except_osv(_('Order not in Draft State!'), _('The order state have to be draft to add delivery lines.'))
|
||||||
|
|
||||||
grid = grid_obj.browse(cr, uid, grid_id, context=context)
|
grid = grid_obj.browse(cr, uid, grid_id, context=context)
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
<tree string="Document Page">
|
<tree string="Document Page">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="parent_id"/>
|
<field name="parent_id"/>
|
||||||
|
<field name="create_uid" invisible="1"/>
|
||||||
<field name="write_uid"/>
|
<field name="write_uid"/>
|
||||||
<field name="write_date"/>
|
<field name="write_date"/>
|
||||||
</tree>
|
</tree>
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<openerp>
|
<openerp>
|
||||||
<data noupdate="1">
|
<data noupdate="1">
|
||||||
<!--This file contains a typical setup of a WebDAV folders' structure,
|
<!--This file contains a typical setup of a WebDAV folders' structure,
|
||||||
|
@ -25,7 +24,7 @@
|
||||||
<field eval="0" name="ressource_tree"/>
|
<field eval="0" name="ressource_tree"/>
|
||||||
<field name="user_id" eval="False"/>
|
<field name="user_id" eval="False"/>
|
||||||
<field name="company_id" ref="base.main_company"/>
|
<field name="company_id" ref="base.main_company"/>
|
||||||
<field model="document.directory" name="parent_id" ref="document_directory_principals0"/>
|
<field name="parent_id" ref="document_directory_principals0"/>
|
||||||
<field name="type">directory</field>
|
<field name="type">directory</field>
|
||||||
<field eval="[(6,0,[])]" name="group_ids"/>
|
<field eval="[(6,0,[])]" name="group_ids"/>
|
||||||
<field name="name">groups</field>
|
<field name="name">groups</field>
|
||||||
|
@ -36,7 +35,7 @@
|
||||||
<field eval="1" name="resource_find_all"/>
|
<field eval="1" name="resource_find_all"/>
|
||||||
<field eval="0" name="ressource_tree"/>
|
<field eval="0" name="ressource_tree"/>
|
||||||
<field name="company_id" ref="base.main_company"/>
|
<field name="company_id" ref="base.main_company"/>
|
||||||
<field model="document.directory" name="parent_id" ref="document_directory_principals0"/>
|
<field name="parent_id" ref="document_directory_principals0"/>
|
||||||
<field name="type">directory</field>
|
<field name="type">directory</field>
|
||||||
<field eval="[(6,0,[])]" name="group_ids"/>
|
<field eval="[(6,0,[])]" name="group_ids"/>
|
||||||
<field name="name">resources</field>
|
<field name="name">resources</field>
|
||||||
|
@ -48,7 +47,7 @@
|
||||||
<field name="user_id" eval="False"/>
|
<field name="user_id" eval="False"/>
|
||||||
<field name="resource_field" ref="base.field_res_users_login"/>
|
<field name="resource_field" ref="base.field_res_users_login"/>
|
||||||
<field name="company_id" ref="base.main_company"/>
|
<field name="company_id" ref="base.main_company"/>
|
||||||
<field model="document.directory" name="parent_id" ref="document_directory_principals0"/>
|
<field name="parent_id" ref="document_directory_principals0"/>
|
||||||
<field name="type">ressource</field>
|
<field name="type">ressource</field>
|
||||||
<field name="ressource_type_id" ref="base.model_res_users"/>
|
<field name="ressource_type_id" ref="base.model_res_users"/>
|
||||||
<field eval="[(6,0,[])]" name="group_ids"/>
|
<field eval="[(6,0,[])]" name="group_ids"/>
|
||||||
|
@ -61,7 +60,7 @@
|
||||||
<field name="user_id" eval="False"/>
|
<field name="user_id" eval="False"/>
|
||||||
<field name="resource_field" ref="base.field_res_users_login"/>
|
<field name="resource_field" ref="base.field_res_users_login"/>
|
||||||
<field name="company_id" ref="base.main_company"/>
|
<field name="company_id" ref="base.main_company"/>
|
||||||
<field model="document.directory" name="parent_id" ref="document_directory_principals0"/>
|
<field name="parent_id" ref="document_directory_principals0"/>
|
||||||
<field name="type">ressource</field>
|
<field name="type">ressource</field>
|
||||||
<field name="ressource_type_id" ref="base.model_res_users"/>
|
<field name="ressource_type_id" ref="base.model_res_users"/>
|
||||||
<field eval="[(6,0,[])]" name="group_ids"/>
|
<field eval="[(6,0,[])]" name="group_ids"/>
|
||||||
|
@ -72,7 +71,7 @@
|
||||||
<field eval="1" name="resource_find_all"/>
|
<field eval="1" name="resource_find_all"/>
|
||||||
<field eval="0" name="ressource_tree"/>
|
<field eval="0" name="ressource_tree"/>
|
||||||
<field name="company_id" ref="base.main_company"/>
|
<field name="company_id" ref="base.main_company"/>
|
||||||
<field model="document.directory" name="parent_id" ref="document_directory_principals0"/>
|
<field name="parent_id" ref="document_directory_principals0"/>
|
||||||
<field name="type">directory</field>
|
<field name="type">directory</field>
|
||||||
<field eval="[(6,0,[])]" name="group_ids"/>
|
<field eval="[(6,0,[])]" name="group_ids"/>
|
||||||
<field name="name">locations</field>
|
<field name="name">locations</field>
|
||||||
|
@ -91,4 +90,4 @@
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
|
@ -8,35 +8,35 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
"PO-Revision-Date: 2012-09-10 15:12+0000\n"
|
"PO-Revision-Date: 2013-05-30 13:32+0000\n"
|
||||||
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||||
"Language-Team: Russian <ru@li.org>\n"
|
"Language-Team: Russian <ru@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-03-16 05:50+0000\n"
|
"X-Launchpad-Export-Date: 2013-05-31 05:38+0000\n"
|
||||||
"X-Generator: Launchpad (build 16532)\n"
|
"X-Generator: Launchpad (build 16660)\n"
|
||||||
|
|
||||||
#. module: edi
|
#. module: edi
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
#: code:addons/edi/static/src/js/edi.js:67
|
#: code:addons/edi/static/src/js/edi.js:67
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Reason:"
|
msgid "Reason:"
|
||||||
msgstr ""
|
msgstr "Причина:"
|
||||||
|
|
||||||
#. module: edi
|
#. module: edi
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
#: code:addons/edi/static/src/js/edi.js:60
|
#: code:addons/edi/static/src/js/edi.js:60
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "The document has been successfully imported!"
|
msgid "The document has been successfully imported!"
|
||||||
msgstr ""
|
msgstr "Документ был успешно импортирован!"
|
||||||
|
|
||||||
#. module: edi
|
#. module: edi
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
#: code:addons/edi/static/src/js/edi.js:65
|
#: code:addons/edi/static/src/js/edi.js:65
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Sorry, the document could not be imported."
|
msgid "Sorry, the document could not be imported."
|
||||||
msgstr ""
|
msgstr "Извините, документ не может быть импортирован."
|
||||||
|
|
||||||
#. module: edi
|
#. module: edi
|
||||||
#: model:ir.model,name:edi.model_res_company
|
#: model:ir.model,name:edi.model_res_company
|
||||||
|
@ -53,13 +53,13 @@ msgstr "Валюта"
|
||||||
#: code:addons/edi/static/src/js/edi.js:71
|
#: code:addons/edi/static/src/js/edi.js:71
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Document Import Notification"
|
msgid "Document Import Notification"
|
||||||
msgstr ""
|
msgstr "Уведомление об импорте документа"
|
||||||
|
|
||||||
#. module: edi
|
#. module: edi
|
||||||
#: code:addons/edi/models/edi.py:130
|
#: code:addons/edi/models/edi.py:130
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Missing application."
|
msgid "Missing application."
|
||||||
msgstr ""
|
msgstr "Отсутствующее приложение."
|
||||||
|
|
||||||
#. module: edi
|
#. module: edi
|
||||||
#: code:addons/edi/models/edi.py:131
|
#: code:addons/edi/models/edi.py:131
|
||||||
|
@ -69,12 +69,15 @@ msgid ""
|
||||||
"You can install it by connecting as the administrator and opening the "
|
"You can install it by connecting as the administrator and opening the "
|
||||||
"configuration assistant."
|
"configuration assistant."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Документу, который вы пытаетесь импортировать, необходимо OpenERP приложение "
|
||||||
|
"'%s'. Вы можете установить его, выполнив вход под администратором и открыв "
|
||||||
|
"настройки."
|
||||||
|
|
||||||
#. module: edi
|
#. module: edi
|
||||||
#: code:addons/edi/models/edi.py:47
|
#: code:addons/edi/models/edi.py:47
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "'%s' is an invalid external ID"
|
msgid "'%s' is an invalid external ID"
|
||||||
msgstr ""
|
msgstr "'%s' это неверный внешний идентификатор"
|
||||||
|
|
||||||
#. module: edi
|
#. module: edi
|
||||||
#: model:ir.model,name:edi.model_res_partner
|
#: model:ir.model,name:edi.model_res_partner
|
||||||
|
@ -84,7 +87,7 @@ msgstr "Контрагент"
|
||||||
#. module: edi
|
#. module: edi
|
||||||
#: model:ir.model,name:edi.model_edi_edi
|
#: model:ir.model,name:edi.model_edi_edi
|
||||||
msgid "EDI Subsystem"
|
msgid "EDI Subsystem"
|
||||||
msgstr ""
|
msgstr "Подсистема электронного документооборота"
|
||||||
|
|
||||||
#~ msgid "The currency code must be unique per company!"
|
#~ msgid "The currency code must be unique per company!"
|
||||||
#~ msgstr "Код валюты должен быть уникальным в компании!"
|
#~ msgstr "Код валюты должен быть уникальным в компании!"
|
||||||
|
|
|
@ -126,7 +126,7 @@ class edi(osv.AbstractModel):
|
||||||
module = edi_document.get('__import_module') or edi_document.get('__module')
|
module = edi_document.get('__import_module') or edi_document.get('__module')
|
||||||
assert module, 'a `__module` or `__import_module` attribute is required in each EDI document.'
|
assert module, 'a `__module` or `__import_module` attribute is required in each EDI document.'
|
||||||
if module != 'base' and not ir_module.search(cr, uid, [('name','=',module),('state','=','installed')]):
|
if module != 'base' and not ir_module.search(cr, uid, [('name','=',module),('state','=','installed')]):
|
||||||
raise osv.except_osv(_('Missing application.'),
|
raise osv.except_osv(_('Missing Application.'),
|
||||||
_("The document you are trying to import requires the OpenERP `%s` application. "
|
_("The document you are trying to import requires the OpenERP `%s` application. "
|
||||||
"You can install it by connecting as the administrator and opening the configuration assistant.")%(module,))
|
"You can install it by connecting as the administrator and opening the configuration assistant.")%(module,))
|
||||||
model = edi_document.get('__import_model') or edi_document.get('__model')
|
model = edi_document.get('__import_model') or edi_document.get('__model')
|
||||||
|
|
|
@ -358,7 +358,7 @@ class email_template(osv.osv):
|
||||||
values['attachment_ids'] = attachment_ids
|
values['attachment_ids'] = attachment_ids
|
||||||
return values
|
return values
|
||||||
|
|
||||||
def send_mail(self, cr, uid, template_id, res_id, force_send=False, context=None):
|
def send_mail(self, cr, uid, template_id, res_id, force_send=False, raise_exception=False, context=None):
|
||||||
"""Generates a new mail message for the given template and record,
|
"""Generates a new mail message for the given template and record,
|
||||||
and schedules it for delivery through the ``mail`` module's scheduler.
|
and schedules it for delivery through the ``mail`` module's scheduler.
|
||||||
|
|
||||||
|
@ -400,7 +400,7 @@ class email_template(osv.osv):
|
||||||
mail_mail.write(cr, uid, msg_id, {'attachment_ids': [(6, 0, attachment_ids)]}, context=context)
|
mail_mail.write(cr, uid, msg_id, {'attachment_ids': [(6, 0, attachment_ids)]}, context=context)
|
||||||
|
|
||||||
if force_send:
|
if force_send:
|
||||||
mail_mail.send(cr, uid, [msg_id], context=context)
|
mail_mail.send(cr, uid, [msg_id], raise_exception=raise_exception, context=context)
|
||||||
return msg_id
|
return msg_id
|
||||||
|
|
||||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue