[fix] Time Log overlap validation and test cases
diff --git a/erpnext/projects/doctype/time_log/test_time_log.py b/erpnext/projects/doctype/time_log/test_time_log.py
index 8d5694f..81a352f 100644
--- a/erpnext/projects/doctype/time_log/test_time_log.py
+++ b/erpnext/projects/doctype/time_log/test_time_log.py
@@ -20,6 +20,22 @@
from_time= tl1.from_time, to_time= tl1.to_time, do_not_save= 1)
self.assertRaises(OverlapError, tl2.insert)
+
+ tl3 = make_time_log_test_record(user= "test@example.com", employee= "_T-Employee-0002",
+ from_time= tl1.from_time - datetime.timedelta(hours=1),
+ to_time= tl1.to_time + datetime.timedelta(hours=1), do_not_save= 1)
+
+ self.assertRaises(OverlapError, tl3.insert)
+
+ tl4 = make_time_log_test_record(user= "test@example.com", employee= "_T-Employee-0002",
+ from_time= tl1.from_time + datetime.timedelta(minutes=20),
+ to_time= tl1.to_time + datetime.timedelta(minutes=30), do_not_save= 1)
+
+ self.assertRaises(OverlapError, tl4.insert)
+
+ make_time_log_test_record(user= "test@example.com", employee= "_T-Employee-0002",
+ from_time= tl1.to_time,
+ to_time= tl1.to_time + datetime.timedelta(hours=1))
def test_production_order_status(self):
prod_order = make_prod_order_test_record(item= "_Test FG Item 2", qty= 1, do_not_submit= True)
diff --git a/erpnext/projects/doctype/time_log/time_log.py b/erpnext/projects/doctype/time_log/time_log.py
index 5242b2c..b2a855d 100644
--- a/erpnext/projects/doctype/time_log/time_log.py
+++ b/erpnext/projects/doctype/time_log/time_log.py
@@ -88,8 +88,8 @@
existing = frappe.db.sql("""select name, from_time, to_time from `tabTime Log`
where `{0}`=%(val)s and
(
- (%(from_time)s between from_time and to_time) or
- (%(to_time)s between from_time and to_time) or
+ (%(from_time)s > from_time and %(from_time)s < to_time) or
+ (%(to_time)s > from_time and %(to_time)s < to_time) or
(%(from_time)s <= from_time and %(to_time)s >= to_time))
and name!=%(name)s
and docstatus < 2""".format(fieldname),