Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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)
     {
     }
 }