[MERGE] lp:768994

bzr revid: qdp-launchpad@openerp.com-20110427071945-x9rq3f8ljiuaxhfg
This commit is contained in:
Quentin (OpenERP) 2011-04-27 09:19:45 +02:00
commit 32c4f333a1
1 changed files with 18 additions and 8 deletions

View File

@ -150,7 +150,7 @@ class account_analytic_account(osv.osv):
_columns = {
'name': fields.char('Account Name', size=128, required=True),
'complete_name': fields.function(_complete_name_calc, method=True, type='char', string='Full Account Name'),
'code': fields.char('Account Code', size=24),
'code': fields.char('Account Code', size=24, select=True),
'type': fields.selection([('view','View'), ('normal','Normal')], 'Account Type', help='If you select the View Type, it means you won\'t allow to create journal entries using that account.'),
'description': fields.text('Description'),
'parent_id': fields.many2one('account.analytic.account', 'Parent Analytic Account', select=2),
@ -245,13 +245,23 @@ class account_analytic_account(osv.osv):
cr.execute("select analytic_account_id from project_project")
project_ids = [x[0] for x in cr.fetchall()]
return self.name_get(cr, uid, project_ids, context=context)
account = self.search(cr, uid, [('code', '=', name)] + args, limit=limit, context=context)
if not account:
account = self.search(cr, uid, [('name', 'ilike', '%%%s%%' % name)] + args, limit=limit, context=context)
newacc = account
while newacc:
newacc = self.search(cr, uid, [('parent_id', 'in', newacc)]+args, limit=limit, context=context)
account += newacc
if name:
account = self.search(cr, uid, [('code', '=', name)] + args, limit=limit, context=context)
if not account:
names=map(lambda i : i.strip(),name.split('/'))
for i in range(len(names)):
dom=[('name', operator, names[i])]
if i>0:
dom+=[('id','child_of',account)]
account = self.search(cr, uid, dom, limit=limit, context=context)
newacc = account
while newacc:
newacc = self.search(cr, uid, [('parent_id', 'in', newacc)], limit=limit, context=context)
account += newacc
if args:
account = self.search(cr, uid, [('id', 'in', account)] + args, limit=limit, context=context)
else:
account = self.search(cr, uid, args, limit=limit, context=context)
return self.name_get(cr, uid, account, context=context)
account_analytic_account()