[IMP] hr_holidays: clean code and improve search view
bzr revid: mra@tinyerp.com-20100312100531-toqp7kifalkabev8
This commit is contained in:
@@ -191,7 +191,7 @@ class hr_holidays(osv.osv):
|
||||
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})
|
||||
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})
|
||||
if record.case_id:
|
||||
if record.case_id.state <> 'draft':
|
||||
raise osv.except_osv(_('Warning !'),
|
||||
@@ -335,18 +335,23 @@ class hr_holidays(osv.osv):
|
||||
})
|
||||
return True
|
||||
|
||||
def check_holidays(self,cr,uid,ids):
|
||||
for record in self.browse(cr, uid, ids):
|
||||
def check_holidays(self,cr,uid,ids, context={}):
|
||||
for record in self.browse(cr, uid, ids, context=context):
|
||||
if not record.number_of_days:
|
||||
raise osv.except_osv(_('Warning!'),_('Wrong leave definition.'))
|
||||
raise osv.except_osv(_('Warning!'),_('Wrong leave definition.'))
|
||||
if record.employee_id:
|
||||
leave_asked = record.number_of_days
|
||||
res = self.pool.get('hr.holidays.status').get_days(cr, uid, [record.holiday_status_id.id], record.employee_id.id, False)
|
||||
if leave_asked < 0.00:
|
||||
if not record.holiday_status_id.limit:
|
||||
leaves_rest = self.pool.get('hr.holidays.status').get_days( cr, uid, [record.holiday_status_id.id], record.employee_id.id, False)[record.holiday_status_id.id]['remaining_leaves']
|
||||
|
||||
leaves_rest = res[record.holiday_status_id.id]['remaining_leaves']
|
||||
max_leaves = res[record.holiday_status_id.id]['max_leaves']
|
||||
if leaves_rest < -(leave_asked):
|
||||
raise osv.except_osv(_('Warning!'),_('You Cannot Validate leaves while available leaves are less than asked leaves.'))
|
||||
else:
|
||||
leaves_taken = max_leaves -leaves_rest + record.number_of_days_temp
|
||||
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)])
|
||||
self.pool.get('hr.holidays.per.user').write(cr,uid,holiday_id[0],{'leaves_taken':leaves_taken})
|
||||
else:
|
||||
holiday_ids = []
|
||||
vals = {
|
||||
|
||||
@@ -32,8 +32,9 @@
|
||||
</field>
|
||||
</group>
|
||||
<newline/>
|
||||
<group col='8' colspan='15' expand='1' string='Group by...'>
|
||||
<group colspan="4" col="20" expand='1' string='Group by...'>
|
||||
<filter string='State' icon="terp-report" domain="[]" context="{'group_by' : 'state'}" />
|
||||
<filter string='Employee Name' icon="terp-partner" domain="[]" context="{'group_by' : 'employee_id'}" />
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
||||
Reference in New Issue
Block a user