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
+
+
+
+
+