Shravy
Shravy

Reputation: 666

How to assign a field value based on a condition in Odoo?

Suppose there is no value in a category_obj.parent.name, I want to assign the category_id's asset name to that field.

def onchange_category_id(self, cr, uid, ids, category_id, context=None):


 res = {'value':{}}
    asset_categ_obj = self.pool.get('account.asset.category')
    if category_id:
    category_obj = asset_categ_obj.browse(cr, uid, category_id, context=context)
    res['value'] = {
    'method': category_obj.method,
    'method_number': category_obj.method_number,
    'method_time': category_obj.method_time,
    'method_period': category_obj.method_period,
    'method_progress_factor': category_obj.method_progress_factor,
    'method_end': category_obj.method_end,
    'prorata': category_obj.prorata,
    'company_id':category_obj.company_id,
    'category_parent':category_obj.parent.name,
    }
    if not category_obj.parent.name:
    res['category_parent'] = category_id.name
    return res 

Anyone has any idea on this ?

Upvotes: 0

Views: 572

Answers (1)

Prashant
Prashant

Reputation: 704

Try this code.

res = {'value':{}}
asset_categ_obj = self.pool.get('account.asset.category')
if category_id:
    category_obj = asset_categ_obj.browse(cr, uid, category_id, context=context)
    res['value'] = {
    'method': category_obj.method,
    'method_number': category_obj.method_number,
    'method_time': category_obj.method_time,
    'method_period': category_obj.method_period,
    'method_progress_factor': category_obj.method_progress_factor,
    'method_end': category_obj.method_end,
    'prorata': category_obj.prorata,
    'company_id':category_obj.company_id,
    'category_parent':category_obj.parent.name or category_obj.name
    }
return res

Upvotes: 1

Related Questions