[MOD] hr_holidays : changes to confirm and validate leaves. holiday per user object added in view

bzr revid: vir@tinyerp.com-20100219065217-nvsq5m7qr554ruek
This commit is contained in:
RCH(Open ERP)
2010-02-19 12:22:17 +05:30
committed by Vir (Open ERP)
parent 3450ae3f91
commit 3831c41ff2
2 changed files with 50 additions and 12 deletions
+12 -8
View File
@@ -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
+38 -4
View File
@@ -149,22 +149,43 @@
<field name="date_to"/>
<field name="holiday_status_id"/>
<field name="state"/>
<field name="type"/>
<!-- <field name="type"/>-->
</tree>
</field>
</record>
<!-- My leave dashboard -->
<record model="ir.ui.view" id="view_my_leave_board_tree">
<record model="ir.ui.view" id="view_my_leave_board_form">
<field name="name">hr.holidays.per.user.form</field>
<field name="model">hr.holidays.per.user</field>
<field name="type">tree</field>
<field name="type">form</field>
<field name="arch" type="xml">
<tree string="My Leaves" editable="top">
<form string="My Leaves" >
<field name="employee_id"/>
<field name="user_id"/>
<field name="holiday_status"/>
<field name="max_leaves"/>
<field name="leaves_taken" />
<field name="remaining_leaves"/>
<field name="notes" colspan="4"/>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_my_leave_board_tree">
<field name="name">hr.holidays.per.user.tree</field>
<field name="model">hr.holidays.per.user</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="My Leaves" editable="top">
<tree string="My Leaves" />
<field name="employee_id"/>
<field name="user_id"/>
<field name="holiday_status"/>
<field name="max_leaves"/>
<field name="leaves_taken" />
<field name="remaining_leaves"/>
<field name="notes"/>
</tree>
</field>
</record>
@@ -295,5 +316,18 @@
view_id ="eval('edit_holiday_new')"
id="act_hr_employee_holiday_request"/>
<record model="ir.actions.act_window" id="action_holiday_per_user">
<field name="name">Holiday Per User</field>
<field name="res_model">hr.holidays.per.user</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_my_leave_board_tree"/>
</record>
<menuitem name="Holiday Per User"
action="action_holiday_per_user"
id="menu_holiday_per_user"
parent="hr.menu_open_view_attendance_reason_config"/>
</data>
</openerp>