public void LogTimeAttendanceFuntion(List <IdentifiedPerson> listIdentifiedPerson, DateTime date, string imageLink) { List <TimeAttendanceLog> listTimeAttendanceLog = new List <TimeAttendanceLog>(); var logDateTo = DateTimeUtils.ConvertDateFrom(date); var listLogNow = db.TimeAttendanceLog.Where(r => r.Date == logDateTo).ToList(); TimeSpan timeSpan; TimeSpan timeSpan2; int sophut; //Lấy nhân viên có độ chính xác >= mức độ chính xác quy định foreach (var item in listIdentifiedPerson) { if (item.InfoEmployee == null) { continue; } modelTimeAttendanceLog = listLogNow.Where(r => r.EmployeeId.Equals(item.InfoEmployee.EmployeeId)).FirstOrDefault(); if (modelTimeAttendanceLog != null) { timeSpan = (date - modelTimeAttendanceLog.TimeIn.Value); modelTimeAttendanceLog.TimeOut = date; modelTimeAttendanceLog.ImageOut = imageLink; modelTimeAttendanceLog.Total = (int)(timeSpan.TotalHours * 60); timeSpan2 = (date - TimeAttendanceStatic.EndTime.Value); modelTimeAttendanceLog.EarlyMinutes = date < TimeAttendanceStatic.EndTime.Value ? (Math.Abs((timeSpan2.Hours * 60)) + Math.Abs(timeSpan2.Minutes)) : 0; modelTimeAttendanceLog.ImageFaceOut = item.ImageFace; } else { timeSpan = (date - TimeAttendanceStatic.StartTime.Value); sophut = (Math.Abs((timeSpan.Hours * 60)) + Math.Abs(timeSpan.Minutes)); modelTimeAttendanceLog = new TimeAttendanceLog() { TimeAttendanceLogId = Guid.NewGuid().ToString(), EmployeeId = item.InfoEmployee.EmployeeId, Date = logDateTo, TimeIn = date, ImageIn = imageLink, LateMinutes = date < TimeAttendanceStatic.StartTime.Value ? 0 : Math.Abs(sophut), ImageFaceIn = item.ImageFace }; listTimeAttendanceLog.Add(modelTimeAttendanceLog); } } if (listTimeAttendanceLog.Count > 0) { db.TimeAttendanceLog.AddRange(listTimeAttendanceLog); } db.SaveChanges(); }
private void AddTimeAttendanceLog(AttendanceLogSearchResult attendanceLogNeedUpdateModel, string employeeId, string TimeIn, string TimeOut) { TimeAttendanceLog add = new TimeAttendanceLog(); add.TimeAttendanceLogId = Guid.NewGuid().ToString(); add.Date = DateTime.Parse(attendanceLogNeedUpdateModel.Date.ToShortDateString()); add.EmployeeId = employeeId; add.ImageIn = attendanceLogNeedUpdateModel.ImageLink; add.TimeIn = attendanceLogNeedUpdateModel.Date; add.TimeOut = attendanceLogNeedUpdateModel.Date; add.Total = 0; add.ImageOut = attendanceLogNeedUpdateModel.ImageLink; var timeBegin = DateTime.Parse(attendanceLogNeedUpdateModel.Date.ToShortDateString() + " " + TimeIn); //giờ quy định vào(8:30) if (timeBegin > attendanceLogNeedUpdateModel.Date) { add.LateMinutes = 0; } else { add.LateMinutes = TimeSpanCalculate(timeBegin, attendanceLogNeedUpdateModel.Date); } var timeEnd = DateTime.Parse(attendanceLogNeedUpdateModel.Date.ToShortDateString() + " " + TimeOut); // Giờ quy định ra(18:00) if (timeEnd < attendanceLogNeedUpdateModel.Date) { add.EarlyMinutes = 0; } else { add.EarlyMinutes = TimeSpanCalculate(attendanceLogNeedUpdateModel.Date, timeEnd); } db.TimeAttendanceLog.Add(add); }
public void LogTimeAttendanceFuntion(IEnumerable <IdentifyResult> listIdentifiedPerson, DateTime date, string imageLink) { try { if (db == null) { db = new TimeAttendanceEntities(_connStr); } List <TimeAttendanceLog> listTimeAttendanceLog = new List <TimeAttendanceLog>(); var logDateTo = DateTimeUtils.ConvertDateFrom(date); var listLogNow = db.TimeAttendanceLog.Where(r => r.Date == logDateTo.Date); TimeSpan timeSpan; TimeSpan timeSpan2; int sophut; //Lấy nhân viên có độ chính xác >= mức độ chính xác quy định foreach (var item in listIdentifiedPerson) { if (item.Candidates.Length > 0) { itemPersonId = item.Candidates[0].PersonId.ToString(); emp = db.Employee.FirstOrDefault(u => u.FaceId.Equals(itemPersonId)); if (emp != null) { modelTimeAttendanceLog = listLogNow.FirstOrDefault(r => r.EmployeeId.Equals(emp.EmployeeId)); if (modelTimeAttendanceLog != null) { timeSpan = (date - modelTimeAttendanceLog.TimeIn.Value); modelTimeAttendanceLog.TimeOut = date; modelTimeAttendanceLog.ImageOut = imageLink; modelTimeAttendanceLog.Total = (int)(timeSpan.TotalHours * 60); timeSpan2 = (date - TimeAttendanceStatic.EndTime.Value); modelTimeAttendanceLog.EarlyMinutes = date < TimeAttendanceStatic.EndTime.Value ? (Math.Abs((timeSpan2.Hours * 60)) + Math.Abs(timeSpan2.Minutes)) : 0; modelTimeAttendanceLog.ImageFaceOut = imageLink; } else { timeSpan = (date - TimeAttendanceStatic.StartTime.Value); sophut = (Math.Abs((timeSpan.Hours * 60)) + Math.Abs(timeSpan.Minutes)); modelTimeAttendanceLog = new TimeAttendanceLog() { TimeAttendanceLogId = Guid.NewGuid().ToString(), EmployeeId = emp.EmployeeId, Date = logDateTo, TimeIn = date, ImageIn = imageLink, LateMinutes = date < TimeAttendanceStatic.StartTime.Value ? 0 : Math.Abs(sophut), ImageFaceIn = imageLink }; var isExisted = (from r in db.TimeAttendanceLog.AsNoTracking() where r.Date == logDateTo.Date && r.EmployeeId.Equals(emp.EmployeeId) select r.TimeAttendanceLogId).Count() > 0; if (!isExisted) { listTimeAttendanceLog.Add(modelTimeAttendanceLog); } } } } } if (listTimeAttendanceLog.Count > 0) { db.TimeAttendanceLog.AddRange(listTimeAttendanceLog); } db.SaveChanges(); } catch (Exception ex1) { } }