Merge pull request #14028 from rohitwaghchaure/get_approved_leaves_for_period_issue

[Fix] get_approved_leaves_for_period module import failed
diff --git a/erpnext/hr/doctype/leave_application/leave_application.py b/erpnext/hr/doctype/leave_application/leave_application.py
index 3f7fd4c..a8ced43 100755
--- a/erpnext/hr/doctype/leave_application/leave_application.py
+++ b/erpnext/hr/doctype/leave_application/leave_application.py
@@ -538,4 +538,39 @@
 				'expense_approver_mandatory_in_expense_claim')
 
 	return mandatory
+
+def get_approved_leaves_for_period(employee, leave_type, from_date, to_date):
+	query = """
+		select employee, leave_type, from_date, to_date, total_leave_days
+		from `tabLeave Application`
+		where employee=%(employee)s
+			and docstatus=1
+			and (from_date between %(from_date)s and %(to_date)s
+				or to_date between %(from_date)s and %(to_date)s
+				or (from_date < %(from_date)s and to_date > %(to_date)s))
+	"""
+	if leave_type:
+		query += "and leave_type=%(leave_type)s"
+
+	leave_applications = frappe.db.sql(query,{
+		"from_date": from_date,
+		"to_date": to_date,
+		"employee": employee,
+		"leave_type": leave_type
+	}, as_dict=1)
+
+	leave_days = 0
+	for leave_app in leave_applications:
+		if leave_app.from_date >= getdate(from_date) and leave_app.to_date <= getdate(to_date):
+			leave_days += leave_app.total_leave_days
+		else:
+			if leave_app.from_date < getdate(from_date):
+				leave_app.from_date = from_date
+			if leave_app.to_date > getdate(to_date):
+				leave_app.to_date = to_date
+
+			leave_days += get_number_of_leave_days(employee, leave_type,
+				leave_app.from_date, leave_app.to_date)
+
+	return leave_days
 	
\ No newline at end of file