[FIX] hr_holidays: fix virtual remaining leaves computation.
authorThibault Delavallée <tde@openerp.com>
Fri, 14 Nov 2014 09:46:57 +0000 (10:46 +0100)
committerThibault Delavallée <tde@openerp.com>
Fri, 14 Nov 2014 09:46:57 +0000 (10:46 +0100)
Now only validated allocation requests are taken into account
when computing the number of virtual remaining leaves (leaves
+ pending leaves). This avoid creating allocation request to
have virtual remaining leaves artificially added.

addons/hr_holidays/hr_holidays.py

index 507667a..4c190a6 100644 (file)
@@ -49,8 +49,11 @@ class hr_holidays_status(osv.osv):
         for holiday in self.pool['hr.holidays'].browse(cr, uid, holiday_ids, context=context):
             status_dict = result[holiday.holiday_status_id.id]
             if holiday.type == 'add':
-                status_dict['virtual_remaining_leaves'] += holiday.number_of_days
                 if holiday.state == 'validate':
+                    # note: add only validated allocation even for the virtual
+                    # count; otherwise pending then refused allocation allow
+                    # the employee to create more leaves than possible
+                    status_dict['virtual_remaining_leaves'] += holiday.number_of_days
                     status_dict['max_leaves'] += holiday.number_of_days
                     status_dict['remaining_leaves'] += holiday.number_of_days
             elif holiday.type == 'remove':  # number of days is negative