From 3831c41ff246887347bd95dd938d12cd5e069d0f Mon Sep 17 00:00:00 2001 From: "RCH(Open ERP)" <> Date: Fri, 19 Feb 2010 12:22:17 +0530 Subject: [PATCH] [MOD] hr_holidays : changes to confirm and validate leaves. holiday per user object added in view bzr revid: vir@tinyerp.com-20100219065217-nvsq5m7qr554ruek --- addons/hr_holidays/hr.py | 20 +++++++++------- addons/hr_holidays/hr_view.xml | 42 ++++++++++++++++++++++++++++++---- 2 files changed, 50 insertions(+), 12 deletions(-) diff --git a/addons/hr_holidays/hr.py b/addons/hr_holidays/hr.py index 6cde1f1985b..70f60f5cd4f 100755 --- a/addons/hr_holidays/hr.py +++ b/addons/hr_holidays/hr.py @@ -37,13 +37,17 @@ class hr_holidays_status(osv.osv): for record in self.browse(cr, uid, ids, context): res[record.id] = {} max_leaves = leaves_taken = 0 + obj_ids = self.pool.get('hr.holidays.per.user').search(cr, uid, [('user_id','=',uid),('employee_id','=',employee_id),('holiday_status','=',record.id)]) + if obj_ids: + br_ob=self.pool.get('hr.holidays.per.user').browse(cr, uid, obj_ids)[0] + max_leaves=br_ob.max_leaves if not return_false: cr.execute("""SELECT type, sum(number_of_days) FROM hr_holidays WHERE employee_id = %s AND state='validate' AND holiday_status_id = %s GROUP BY type""", (str(employee_id), str(record.id))) for line in cr.fetchall(): if line[0] =='remove': - leaves_taken = -line[1] + leaves_taken = -line[1] if line[0] =='add': - max_leaves = line[1] + max_leaves = line[1] res[record.id]['max_leaves'] = max_leaves res[record.id]['leaves_taken'] = leaves_taken res[record.id]['remaining_leaves'] = max_leaves - leaves_taken @@ -92,11 +96,11 @@ class hr_holidays_per_user(osv.osv): result = {} for holiday_user in self.browse(cr, uid, ids): days = 0.0 - ids_request = obj_holiday.search(cr, uid, [('employee_id', '=', holiday_user.employee_id.id),('state', '=', 'validate'),('holiday_status', '=', holiday_user.holiday_status.id)]) + ids_request = obj_holiday.search(cr, uid, [('employee_id', '=', holiday_user.employee_id.id),('state', '=', 'validate'),('holiday_status_id', '=', holiday_user.holiday_status.id)]) if ids_request: holidays = obj_holiday.browse(cr, uid, ids_request) for holiday in holidays: - days += holiday.number_of_days + days -= holiday.number_of_days days = holiday_user.max_leaves - days result[holiday_user.id] = days return result @@ -184,7 +188,7 @@ class hr_holidays(osv.osv): def _update_user_holidays(self, cr, uid, ids): for record in self.browse(cr, uid, ids): if record.state=='validate': - holiday_id=self.pool.get('hr.holidays.per.user').search(cr, uid, [('employee_id','=', record.employee_id.id),('holiday_status','=',record.holiday_status.id)]) + holiday_id=self.pool.get('hr.holidays.per.user').search(cr, uid, [('employee_id','=', record.employee_id.id),('holiday_status','=',record.holiday_status_id.id)]) if holiday_id: obj_holidays_per_user=self.pool.get('hr.holidays.per.user').browse(cr, uid,holiday_id[0]) self.pool.get('hr.holidays.per.user').write(cr,uid,obj_holidays_per_user.id,{'leaves_taken':obj_holidays_per_user.leaves_taken - record.number_of_days}) @@ -197,7 +201,7 @@ class hr_holidays(osv.osv): def _check_date(self, cr, uid, ids): if ids: - cr.execute('select number_of_days from hr_holidays where id in ('+','.join(map(str, ids))+')') + cr.execute('select number_of_days_temp from hr_holidays where id in ('+','.join(map(str, ids))+')') res = cr.fetchall() if res and res[0][0] < 0: return False @@ -218,7 +222,7 @@ class hr_holidays(osv.osv): holidays_user_obj = self.pool.get('hr.holidays.per.user') holidays_data = self.browse(cr, uid, ids[0]) list_holiday = [] - ids_user_hdays = holidays_user_obj.search(cr, uid, [('employee_id', '=', holidays_data.employee_id.id),('holiday_status', '=', holidays_data.holiday_status.id)]) + ids_user_hdays = holidays_user_obj.search(cr, uid, [('employee_id', '=', holidays_data.employee_id.id),('holiday_status', '=', holidays_data.holiday_status_id.id)]) for hdays in holidays_user_obj.browse(cr, uid, ids_user_hdays): for req in hdays.holiday_ids: list_holiday.append(req.id) @@ -304,7 +308,7 @@ class hr_holidays(osv.osv): 'company_id':record.employee_id.company_id.id, 'resource_id':record.employee_id.resource_id.id } - self.pool.get('resource.calendar.leaves').create(cr,uid,vals) + #self.pool.get('resource.calendar.leaves').create(cr,uid,vals) return True diff --git a/addons/hr_holidays/hr_view.xml b/addons/hr_holidays/hr_view.xml index 72e4e6ba2e6..f4b1036f459 100644 --- a/addons/hr_holidays/hr_view.xml +++ b/addons/hr_holidays/hr_view.xml @@ -149,22 +149,43 @@ - + - + hr.holidays.per.user.form hr.holidays.per.user - tree + form - +
+ + + + + +
+ + + hr.holidays.per.user.tree + hr.holidays.per.user + tree + + + + + + + + + + @@ -295,5 +316,18 @@ view_id ="eval('edit_holiday_new')" id="act_hr_employee_holiday_request"/> + + Holiday Per User + hr.holidays.per.user + form + tree,form + + + + +