def onchange_name(self, cr, uid, ids, name, allowance_id): result = {'value': {'value': 1000.00}} try: res = self.pool.get('payroll.salary.allowance') names = list(name) percents = res.read(cr, uid, names, ['percent']) percent = 0.0 if len(percents)>0: if percents[0]['percent']: percent = percents[0]['percent'] res = self.pool.get('hr.employee') emp_ids = res.search(cr, uid, [('allowance','=',allowance_id)]) basic = res.read(cr, uid, emp_ids, ['basic'])[0]['basic'] val = float(basic*percent)/100 result['value']['value'] = val except:pass return result try: res = self.pool.get('hr.employee.position') dept = res.read(cr, uid, list(position),['department'])[0]['department'] result['value']['department'] = dept except:pass percent = 0.0 basic = 0.0 val = 10.0 if name: res = self.pool.get('payroll.salary.allowance').browse(cr, uid, name) percent = res.percent if allowance_id: res = self.pool.get('hr.employee').browse(cr, uid, allowance_id) basic = res.basic val = (basic*percent)/100 result['value']['value']=val on_change="onchange_allowance_type(allowance_type)"