[fix] overlapping dates
diff --git a/erpnext/hr/utils.py b/erpnext/hr/utils.py
index be8c948..686f791 100644
--- a/erpnext/hr/utils.py
+++ b/erpnext/hr/utils.py
@@ -50,8 +50,19 @@
setattr(employee, item.fieldname, new_data)
return employee
-
def get_leave_period(from_date, to_date, company):
- return frappe.db.sql("""select name from `tabLeave Period`
- where is_active=1 and company=%s
- and to_date >= %s and from_date <= %s""", (company, to_date, from_date))
+ leave_period = frappe.db.sql("""
+ select name, from_date, to_date
+ from `tabLeave Period`
+ where company=%(company)s and is_active=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))
+ """, {
+ "from_date": from_date,
+ "to_date": to_date,
+ "company": company
+ }, as_dict=1)
+
+ if leave_period:
+ return leave_period