From 7f5c8bc14064e645f3b95d1473aa891b836475e4 Mon Sep 17 00:00:00 2001 From: "mra (Open ERP)" Date: Tue, 18 May 2010 16:10:30 +0530 Subject: [PATCH] [IMP] hr_holidays: now it will create entry in resouce.cal.leaves if request is for category wise => it will search all employee in category and create leaves for each bzr revid: mra@tinyerp.com-20100518104030-3widlfi7j4zviqhv --- addons/hr_holidays/hr_holidays.py | 33 ++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py index 090d4b86359..315b77bbb53 100644 --- a/addons/hr_holidays/hr_holidays.py +++ b/addons/hr_holidays/hr_holidays.py @@ -272,10 +272,12 @@ class hr_holidays(osv.osv): return True def holidays_validate(self, cr, uid, ids, *args): + obj_res_leave = self.pool.get('resource.calendar.leaves') + obj_emp = self.pool.get('hr.employee') data_holiday = self.browse(cr, uid, ids) self.check_holidays(cr, uid, ids) vals = {'state':'validate'} - ids2 = self.pool.get('hr.employee').search(cr, uid, [('user_id','=', uid)]) + ids2 = obj_emp.search(cr, uid, [('user_id','=', uid)]) if ids2: if data_holiday[0].state == 'validate1': vals['manager_id2'] = ids2[0] @@ -287,15 +289,28 @@ class hr_holidays(osv.osv): for record in data_holiday: if record.holiday_type=='employee' and record.type=='remove': vals = { - 'name':record.name, - 'date_from':record.date_from, - 'date_to':record.date_to, - 'calendar_id':record.employee_id.calendar_id.id, - 'company_id':record.employee_id.company_id.id, - 'resource_id':record.employee_id.resource_id.id, - 'holiday_id':record.id + 'name': record.name, + 'date_from': record.date_from, + 'date_to': record.date_to, + 'calendar_id': record.employee_id.calendar_id.id, + 'company_id': record.employee_id.company_id.id, + 'resource_id': record.employee_id.resource_id.id, + 'holiday_id': record.id } - self.pool.get('resource.calendar.leaves').create(cr, uid, vals) + obj_res_leave.create(cr, uid, vals) + elif record.holiday_type=='category' and record.type=='remove': + emp_ids = obj_emp.search(cr, uid, [('category_id', '=', record.category_id.id)]) + for emp in obj_emp.browse(cr, uid, emp_ids): + vals = { + 'name': record.name, + 'date_from': record.date_from, + 'date_to': record.date_to, + 'calendar_id': emp.calendar_id.id, + 'company_id': emp.company_id.id, + 'resource_id': emp.resource_id.id, + 'holiday_id':record.id + } + obj_res_leave.create(cr, uid, vals) return True def holidays_confirm(self, cr, uid, ids, *args):