from osv import osv,fields
import time
from datetime import datetime
from datetime import timedelta
class hr_employee(osv.osv):
_inherit='hr.employee'
_columns={
'date_of_join' :fields.date('Date of Join',required=True),
'current_date':fields.date('Applied date',require=True),
}
def check_eligibility(self,cr,uid,ids,context=None):
if ids:
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) # calc_vacation## []
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
print "total_days",total_days
if calc_vacation:
print "Inside calc vacation"
if total_days <=calc_vacation[0]['interval']:
msg=calc_vacation[0]['criteria']
else:
raise osv.orm.except_orm('Error','Unable to continue, please provide Vacation Details')
vals={
'eligible_details':msg
}
self.write(cr,uid,ids,vals)
return True
hr_employee()
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()
**********************************************************************************
day_obj############################# [{'current_date': '2014-06-24', 'date_of_join': '2014-03-01', 'id': 1, 'resource_id': 1}]
- calc_vacation## []