diff --git a/allow_negative_leave_and_allocation/models/hr_leave_type.py b/allow_negative_leave_and_allocation/models/hr_leave_type.py index dc0e2a9..f4cd8f7 100644 --- a/allow_negative_leave_and_allocation/models/hr_leave_type.py +++ b/allow_negative_leave_and_allocation/models/hr_leave_type.py @@ -26,10 +26,10 @@ class HolidaysType(models.Model): for holiday_type in self: if holiday_type.allows_negative: # if left != usable : remaining_leaves_allowing_negative = left + usable - if (holiday_type.max_leaves - holiday_type.virtual_leaves_taken) != holiday_type.virtual_remaining_leaves: + if holiday_type.virtual_remaining_leaves < 0 (holiday_type.max_leaves - holiday_type.virtual_leaves_taken) != holiday_type.virtual_remaining_leaves: holiday_type.remaining_leaves_allowing_negative = holiday_type.max_leaves - holiday_type.virtual_leaves_taken + holiday_type.virtual_remaining_leaves else: - # else : remaining_leaves_allowing_negative = left + # else : remaining_leaves_allowing_negative = left as usual holiday_type.remaining_leaves_allowing_negative = holiday_type.max_leaves - holiday_type.virtual_leaves_taken else: holiday_type.remaining_leaves_allowing_negative = None @@ -47,10 +47,9 @@ class HolidaysType(models.Model): res[1]['allows_negative'] = self.allows_negative res[1]['remaining_leaves_negative'] = ('%.2f' % (self.remaining_leaves_allowing_negative)).rstrip('0').rstrip('.'), # if left != usable : recalculate leaves_approved, virtual_remaining_leaves and usable_remaining_leaves - if self.allows_negative and ((self.max_leaves - self.virtual_leaves_taken) != self.virtual_remaining_leaves): - res[1]['virtual_remaining_leaves'] = ('%.2f' % (self.remaining_leaves_allowing_negative)).rstrip('0').rstrip('.'), - res[1]['usable_remaining_leaves'] = ('%.2f' % (self.remaining_leaves_allowing_negative)).rstrip('0').rstrip('.'), - res[1]['leaves_approved'] = ('%.2f' % (abs(self.virtual_remaining_leaves) - abs(self.leaves_taken))).rstrip('0').rstrip('.'), + if self.allows_negative and self.virtual_remaining_leaves < 0 and ((self.max_leaves - self.virtual_leaves_taken) != self.virtual_remaining_leaves): + res[1]['usable_remaining_leaves'] = ('%.2f' % (self.remaining_leaves_allowing_negative)).rstrip('0').rstrip('.'), + res[1]['leaves_approved'] = ('%.2f' % (abs(self.virtual_remaining_leaves) - abs(self.leaves_taken))).rstrip('0').rstrip('.'), return res def name_get(self):