feat: set leave allocation on carry forward check
diff --git a/erpnext/hr/doctype/leave_allocation/leave_allocation.py b/erpnext/hr/doctype/leave_allocation/leave_allocation.py
index dc270db..e755da5 100755
--- a/erpnext/hr/doctype/leave_allocation/leave_allocation.py
+++ b/erpnext/hr/doctype/leave_allocation/leave_allocation.py
@@ -62,11 +62,18 @@
 		if flt(self.new_leaves_allocated) % 0.5:
 			frappe.throw(_("Leaves must be allocated in multiples of 0.5"), ValueMultiplierError)
 
-	def validate_allocation_overlap(self):
+	def validate_allocation_overlap(self, carry_forward=0):
 		leave_allocation = frappe.db.sql("""
-			select name from `tabLeave Allocation`
-			where employee=%s and leave_type=%s and docstatus=1
-			and to_date >= %s and from_date <= %s""",
+			SELECT
+				name
+			FROM `tabLeave Allocation`
+			WHERE
+				employee=%s
+				AND leave_type=%s
+				AND docstatus=1
+				AND is_carry_forward={0}
+				AND to_date >= %s
+				AND from_date <= %s""".format(carry_forward),
 			(self.employee, self.leave_type, self.from_date, self.to_date))
 
 		if leave_allocation:
@@ -111,6 +118,11 @@
 			else:
 				frappe.throw(_("Total allocated leaves {0} cannot be less than already approved leaves {1} for the period").format(self.total_leaves_allocated, leaves_taken), LessAllocationError)
 
+	def set_carry_forward_leaves(self):
+		self.validate_allocation_overlap(carry_forward=1)
+		self.old_leaves_allocated = get_carry_forwarded_leaves(self.employee, self.leave_type,
+			self.from_date, self.is_carry_forward)
+
 def get_leave_allocation_for_period(employee, leave_type, from_date, to_date):
 	leave_allocated = 0
 	leave_allocations = frappe.db.sql("""
@@ -135,17 +147,25 @@
 	return leave_allocated
 
 @frappe.whitelist()
-def get_carry_forwarded_leaves(employee, leave_type, date, carry_forward=None):
+def get_carry_forwarded_leaves(employee, leave_type, date, is_carry_forward=None):
 	carry_forwarded_leaves = 0
 
-	if carry_forward:
+	if is_carry_forward:
 		validate_carry_forward(leave_type)
 
 		previous_allocation = frappe.db.sql("""
-			select name, from_date, to_date, total_leaves_allocated
-			from `tabLeave Allocation`
-			where employee=%s and leave_type=%s and docstatus=1 and to_date < %s
-			order by to_date desc limit 1
+			SELECT
+				name,
+				from_date,
+				to_date,
+				total_leaves_allocated
+			FROM `tabLeave Allocation`
+			WHERE
+				employee=%s
+				AND leave_type=%s
+				AND docstatus=1
+				AND to_date < %s
+			ORDER BY to_date desc limit 1
 		""", (employee, leave_type, date), as_dict=1)
 		if previous_allocation:
 			leaves_taken = get_approved_leaves_for_period(employee, leave_type,
@@ -157,4 +177,4 @@
 
 def validate_carry_forward(leave_type):
 	if not frappe.db.get_value("Leave Type", leave_type, "is_carry_forward"):
-		frappe.throw(_("Leave Type {0} cannot be carry-forwarded").format(leave_type))
+		frappe.throw(_("Leave Type {0} cannot be carry-forwarded").format(leave_type))
\ No newline at end of file