When I click on this check_eligibility button --- it shows error IndexError: list index out of range, Then how to change my code........for error free
from osv import osv,fields
import time
from datetime import datetime
from datetime import timedelta
class mech_info(osv.osv):
_inherit='hr.employee'
_columns={
'date_of_join' :fields.date('Date of Join',required=True),
'current_date':fields.date('Applied date',require=True),
'eligible_details':fields.text('Eligibility Details')
}
def check_eligibility(self,cr,uid,ids,context=None):
day_obj=self.read(cr,uid,ids,['date_of_join','current_date'],context=context)
calc_vacation=self.pool.get('scheme.type.info').read(cr,uid,ids,['interval','criteria','scheme_id'],context=context)
dateformat="%Y-%m-%d"
d1=datetime.strptime(day_obj[0]['date_of_join'],dateformat)
d2=datetime.strptime(day_obj[0]['current_date'],dateformat)
v1=d2-d1
total_days=v1.days
if total_days<=calc_vacation[0]['interval']:
msg=calc_vacation[0]['criteria']
elif total_days<=calc_vacation[0]['interval']:
msg=calc_vacation[0]['criteria']
else:
msg=calc_vacation[0]['criteria']
vals={
'eligible_details':msg
}
self.write(cr,uid,ids,vals)
return True
mech_info()
class scheme_type_info(osv.osv):
_name='scheme.type.info'
_columns={
'scheme_id':fields.integer('Scheme Type',required=True,size=50),
'interval':fields.integer('interval type ',required=True,size=64),
'criteria':fields.text('vacation criteria',required=True,size=50),
'active':fields.boolean('Active')
}
scheme_type_info()