fix: boundary determination for separate ledger entries
diff --git a/erpnext/hr/doctype/leave_application/leave_application.py b/erpnext/hr/doctype/leave_application/leave_application.py
index d4062c7..144dcc6 100755
--- a/erpnext/hr/doctype/leave_application/leave_application.py
+++ b/erpnext/hr/doctype/leave_application/leave_application.py
@@ -502,10 +502,18 @@
get_link_to_form("Leave Allocation", alloc_on_from_date.name), get_link_to_form("Leave Allocation", alloc_on_to_date)))
raise_exception = False if frappe.flags.in_patch else True
+
+ if alloc_on_from_date:
+ first_alloc_end = alloc_on_from_date.to_date
+ second_alloc_start = add_days(alloc_on_from_date.to_date, 1)
+ else:
+ first_alloc_end = add_days(alloc_on_to_date.from_date, -1)
+ second_alloc_start = alloc_on_to_date.from_date
+
leaves_in_first_alloc = get_number_of_leave_days(self.employee, self.leave_type,
- self.from_date, alloc_on_from_date.to_date, self.half_day, self.half_day_date)
+ self.from_date, first_alloc_end, self.half_day, self.half_day_date)
leaves_in_second_alloc = get_number_of_leave_days(self.employee, self.leave_type,
- add_days(alloc_on_from_date.to_date, 1), self.to_date, self.half_day, self.half_day_date)
+ second_alloc_start, self.to_date, self.half_day, self.half_day_date)
args = dict(
is_lwp=lwp,
@@ -515,14 +523,14 @@
if leaves_in_first_alloc:
args.update(dict(
from_date=self.from_date,
- to_date=alloc_on_from_date.to_date,
+ to_date=first_alloc_end,
leaves=leaves_in_first_alloc * -1
))
create_leave_ledger_entry(self, args, submit)
if leaves_in_second_alloc:
args.update(dict(
- from_date=add_days(alloc_on_from_date.to_date, 1),
+ from_date=second_alloc_start,
to_date=self.to_date,
leaves=leaves_in_second_alloc * -1
))