fix: fetch queries
diff --git a/erpnext/patches/v12_0/generate_leave_ledger_entries.py b/erpnext/patches/v12_0/generate_leave_ledger_entries.py
index b8e82ef..8b1ca8c 100644
--- a/erpnext/patches/v12_0/generate_leave_ledger_entries.py
+++ b/erpnext/patches/v12_0/generate_leave_ledger_entries.py
@@ -49,17 +49,26 @@
 
 def get_allocation_records():
     return frappe.db.sql("""
+        WITH allocation_values AS (
+            SELECT
+                DISTINCT name,
+                employee,
+                leave_type,
+                new_leaves_allocated,
+                carry_forwarded_leaves,
+                from_date,
+                to_date,
+                carry_forward,
+                RANK() OVER(
+                    PARTITION BY employee, leave_type
+                    ORDER BY to_date DESC
+                ) as allocation
+            FROM `tabLeave Allocation`
+        )
         SELECT
-            DISTINCT name,
-            employee,
-            leave_type,
-            new_leaves_allocated,
-            carry_forwarded_leaves,
-            from_date,
-            to_date,
-            carry_forward,
-            RANK() OVER(PARTITION BY employee, leave_type ORDER BY to_date DESC) as allocation
-        FROM `tabLeave Allocation`
+            *
+        FROM
+            `allocation_values`
         WHERE
             allocation=1
     """, as_dict=1)
@@ -67,7 +76,7 @@
 def get_leaves_application_records(allocation_list):
     leave_applications = []
     for allocation in allocation_list:
-        leave_applications.append(frappe.db.sql("""
+        leave_applications += frappe.db.sql("""
             SELECT
                 DISTINCT name,
                 employee,
@@ -78,15 +87,15 @@
             FROM `tabLeave Application`
             WHERE
                 from_date >= %s
-                leave_type = %s
-                employee = %s
-        """, (allocation.from_date, allocation.leave_type, allocation.employee)))
+                AND leave_type = %s
+                AND employee = %s
+        """, (allocation.from_date, allocation.leave_type, allocation.employee))
     return leave_applications
 
 def get_leave_encashment_records(allocation_list):
     leave_encashments = []
     for allocation in allocation_list:
-        leave_encashments.append(frappe.db.sql("""
+        leave_encashments += frappe.db.sql("""
             SELECT
                 DISTINCT name,
                 employee,
@@ -97,6 +106,7 @@
             FROM `tabLeave Encashment`
             WHERE
                 leave_type = %s
-                employee = %s
-        """, (allocation.leave_type, allocation.employee)))
+                AND employee = %s
+                AND encashment_date >= %s
+        """, (allocation.leave_type, allocation.employee, allocation.from_date))
     return leave_encashments
\ No newline at end of file