/// <summary> /// 更新加班表 /// </summary> /// <param name="ot">需要修改的加班表</param> /// <returns>修该成功返回true 否则返回false</returns> public bool Update(Overtime ot) { OvertimeDal od = new OvertimeDal(); var otList = od.QueryByEmpId(ot.EmployeeId); if (otList.Count == 0) { return(od.Add(ot)); } foreach (var item in otList) { var start = item.DateTimeStart; var end = item.DateTimeEnd; //是否要添加的加班表的开始时间早于该item的开始时间 && 要添加的加班表结束时间早于该 item的开始时间 bool early = ot.DateTimeStart.CompareTo(start) < 0 && ot.DateTimeEnd.CompareTo(start) < 0 ? true : false; //是否要添加的加班表的开始时间迟于该item的开始时间 && 要添加的加班表结束时间迟于该 item的开始时间 bool late = ot.DateTimeStart.CompareTo(end) > 0 && ot.DateTimeEnd.CompareTo(end) > 0 ? true : false; if (item.Id != ot.Id)//修改,,不与自己本身做比较 { if (!early && !late) { return(false);//如果这段时间有加班.就不能更新此例 } } } return(od.Update(ot)); }
/// <summary> /// 添加加班记录 /// </summary> /// <param name="ot">加班记录类</param> /// <returns>添加成功返回 true 否则返回false</returns> public bool Add(Overtime ot) { OvertimeDal od = new OvertimeDal(); var otList = od.QueryByEmpId(ot.EmployeeId); if (otList.Count == 0) { return(od.Add(ot)); } foreach (var item in otList) { var start = item.DateTimeStart; //某个加班详情的开始时间 var end = item.DateTimeEnd; //结束时间 //是否要添加的加班表的开始时间早于该item的开始时间 && 要添加的加班表结束时间早于该 item的开始时间 bool early = ot.DateTimeStart.CompareTo(start) < 0 && ot.DateTimeEnd.CompareTo(start) < 0 ? true : false; //是否要添加的加班表的开始时间迟于该item的开始时间 && 要添加的加班表结束时间迟于该 item的开始时间 bool late = ot.DateTimeStart.CompareTo(end) > 0 && ot.DateTimeEnd.CompareTo(end) > 0 ? true : false; if (!early && !late) { return(false);//如果不早于也不迟于 表示这段时间有加班.就不能添加此例 } } return(od.Add(ot)); //select * from overtime where starttime<xxx and overtime>XXX and empid=XXX and id<>XXX }