[FIX] project, analytic: Template project shouldn't pollute the analytic chart of account.

lp bug: https://launchpad.net/bugs/681463 fixed

bzr revid: uco@tinyerp.com-20110117102522-9xpds30ckjny7l9p
This commit is contained in:
Ujjvala Collins (OpenERP) 2011-01-17 15:55:22 +05:30
parent 87c6885950
commit 42c89ee0cb
2 changed files with 16 additions and 1 deletions

View File

@ -53,7 +53,7 @@
<field name="name">account.analytic.account.tree</field>
<field name="model">account.analytic.account</field>
<field name="type">tree</field>
<field name="field_parent">child_ids</field>
<field name="field_parent">child_complete_ids</field>
<field name="arch" type="xml">
<tree colors="red:(date&lt;current_date);black:(date&gt;=current_date);black:(date==False)" string="Analytic account" toolbar="1">
<field name="name"/>

View File

@ -109,6 +109,20 @@ class account_analytic_account(osv.osv):
def _complete_name_calc(self, cr, uid, ids, prop, unknow_none, unknow_dict):
res = self.name_get(cr, uid, ids)
return dict(res)
def _child_compute(self, cr, uid, ids, name, arg, context=None):
result = {}
if context is None:
context = {}
for account in self.browse(cr, uid, ids, context=context):
for child in account.child_ids:
if child.state == 'template':
account.child_ids.pop(account.child_ids.index(child))
result[account.id] = map(lambda x: x.id, account.child_ids)
return result
_columns = {
'name': fields.char('Account Name', size=128, required=True),
@ -118,6 +132,7 @@ class account_analytic_account(osv.osv):
'description': fields.text('Description'),
'parent_id': fields.many2one('account.analytic.account', 'Parent Analytic Account', select=2),
'child_ids': fields.one2many('account.analytic.account', 'parent_id', 'Child Accounts'),
'child_complete_ids': fields.function(_child_compute, relation='account.analytic.account', method=True, string="Account Hierarchy", type='many2many'),
'line_ids': fields.one2many('account.analytic.line', 'account_id', 'Analytic Entries'),
'balance': fields.function(_debit_credit_bal_qtty, method=True, type='float', string='Balance', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
'debit': fields.function(_debit_credit_bal_qtty, method=True, type='float', string='Debit', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),