diff --git a/erpnext/hr/doctype/leave_policy_assignment/leave_policy_assignment.py b/erpnext/hr/doctype/leave_policy_assignment/leave_policy_assignment.py index 9ea0b346c09..8269d98a5a7 100644 --- a/erpnext/hr/doctype/leave_policy_assignment/leave_policy_assignment.py +++ b/erpnext/hr/doctype/leave_policy_assignment/leave_policy_assignment.py @@ -150,11 +150,14 @@ class LeavePolicyAssignment(Document): ) # Calculate leaves at pro-rata basis for employees joining after the beginning of the given leave period - elif getdate(date_of_joining) > getdate(self.effective_from): - remaining_period = (date_diff(self.effective_to, date_of_joining) + 1) / ( - date_diff(self.effective_to, self.effective_from) + 1 - ) - new_leaves_allocated = ceil(new_leaves_allocated * remaining_period) + else: + if getdate(date_of_joining) > getdate(self.effective_from): + remaining_period = (date_diff(self.effective_to, date_of_joining) + 1) / ( + date_diff(self.effective_to, self.effective_from) + 1 + ) + new_leaves_allocated = ceil(annual_allocation * remaining_period) + else: + new_leaves_allocated = annual_allocation # leave allocation should not exceed annual allocation as per policy assignment if new_leaves_allocated > annual_allocation: