/// <summary> /// 获取考勤设置信息 /// </summary> /// <returns></returns> public Result <AttendanceView> GetAttendanceModel() { Result <AttendanceView> result = new Result <AttendanceView>(); try { AttendanceView model = new AttendanceView(); var list = DataOperateBusiness <Epm_ProjectAttendance> .Get().GetList(t => t.ProjectId == 0).ToList(); if (list.Any()) { model.AttendanceList = list.Select(t => t.AttendanceType).Distinct().ToList(); model.MarginError = list.FirstOrDefault().MarginError; var time = list.Select(t => t.AttendanceTime).ToList().Distinct(); model.AttendanceTimeList = new List <string>(); foreach (var item in time) { model.AttendanceTimeList.Add(item); } model.Num = time.Count(); } result.Data = model; result.Flag = EResultFlag.Success; } catch (Exception ex) { result.Data = null; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "GetAttendanceModel"); } return(result); }
public async Task <IActionResult> UpdateAttendance(AttendanceView attendanceView) { var attendanceUpdate = await _context.attendances.FindAsync(attendanceView.Id); if (attendanceUpdate == null) { return(NotFound()); } attendanceUpdate.ID = attendanceView.Id; attendanceUpdate.Name = attendanceView.Name; attendanceUpdate.Role = attendanceView.Role; attendanceUpdate.ClockOnTime = attendanceView.ClockOnTime; attendanceUpdate.ClockOutTime = attendanceView.ClockOutTime; attendanceUpdate.WorkingHours = attendanceView.WorkingHours; try { _context.attendances.Update(attendanceUpdate); _context.SaveChangesAsync(); } catch (Exception e) { throw e; } return(Ok()); }
private void InitializeAttendanceLog() { var attendanceModel = new AttendanceModel(); AttendancePresenter presenter = new AttendancePresenter(attendanceModel); var attendanceView = new AttendanceView(); compContainer.AttachView(attendanceView); attendanceView.AttachToPresenter(presenter, true); attendanceButton.Tag = attendanceView; }
public ActionResult Attendance() { AttendanceView attendanceView = new AttendanceView(); var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); attendanceView.Parent = _context.Parents.Where(c => c.IdentityUserId == userId).FirstOrDefault(); attendanceView.Student = _context.Students.Where(s => s.ParentId == attendanceView.Parent.Id).FirstOrDefault(); //attendanceView.Attendances = _context.Attendances.Where(a => a.StudentId == attendanceView.Student.Id).ToList(); var startDate = DateTime.Now.Date.AddMonths(-1); // 2020-08-19 00:00 var endDate = DateTime.Now.Date; // +1 = 2020-08-20 00:00 // -1 ms => 2020-08-19 23:59:59 99999 attendanceView.Attendances = _context.Attendances.Where(x => x.Date >= startDate && x.Date <= endDate).ToList(); return(View(attendanceView)); }
public ActionResult ViewAttendaces(SelectClassViewModel selectedClassVM) { var classInDb = _context.Classes.SingleOrDefault(c => c.ClassId == selectedClassVM.SelectedClass.ClassId); var studentsInDb = _context.Students.Where(st => st.ClassId == classInDb.ClassId).OrderBy(st => st.RollNo).ToList(); var subjectsForClass = _context.Subjects.Where(s => s.ClassId == classInDb.ClassId).OrderBy(s => s.SubjectId).ToList(); var attendanceInDb = _context.Attendances.ToList(); var attendanceViews = new List <AttendanceView>(); int[] totalAttendanceForSubject = new int[classInDb.MaxSubject]; for (int i = 0; i < subjectsForClass.Count; i++) { totalAttendanceForSubject[i] = attendanceInDb.Where(a => a.StudentId == studentsInDb[0].StudentId && a.SubjectId == subjectsForClass[i].SubjectId).ToList().Count; } foreach (Student stud in studentsInDb) { int[] attendanceCount = new int[classInDb.MaxSubject]; for (int i = 0; i < subjectsForClass.Count; i++) { attendanceCount[i] = attendanceInDb.Where(a => a.StudentId == stud.StudentId && a.SubjectId == subjectsForClass[i].SubjectId && a.Status == true).ToList().Count; } var attendanceViewCreate = new AttendanceView() { Student = stud, AttendanceCount = attendanceCount }; attendanceViews.Add(attendanceViewCreate); } var adAttendanceVM = new AdminAttendancesViewModel() { ClassInfo = classInDb, TotalAttendanceForSubject = totalAttendanceForSubject, Subjects = subjectsForClass, AttendanceViews = attendanceViews }; return(View("AttendanceReport", adAttendanceVM)); }
public List <AttendanceView> GetAttendanceInfo(int year, int month, string id) { Dictionary <DateTime, int> asetDic = getDaySet(year, month); Dictionary <DateTime, int> HoliDic = getHoliday(year, month, id); var card = from a in getCardInfo(year, month, id).AsEnumerable() select a; List <AttendanceView> list = new List <AttendanceView>(); for (int i = 1; i <= DateTime.DaysInMonth(year, month); i++) { AttendanceView view = new AttendanceView(); view.Date = Convert.ToDateTime(year + "-" + month + "-" + i); if ((asetDic.ContainsKey(view.Date) && (asetDic[view.Date] == 1 || (asetDic[view.Date] == 0 && view.Date.DayOfWeek != DayOfWeek.Saturday && view.Date.DayOfWeek != DayOfWeek.Sunday))) || (!asetDic.ContainsKey(view.Date) && view.Date.DayOfWeek != DayOfWeek.Saturday && view.Date.DayOfWeek != DayOfWeek.Sunday)) { //工作日 var qur = (from a in card where a.Field <string>("Date") == view.Date.ToString("yyyy/MM/dd") select a).FirstOrDefault(); if (qur != null) { view.First = qur.Field <DateTime>("Frist"); view.Last = qur.Field <DateTime>("Last"); if (HoliDic.ContainsKey(view.Date)) { int st = HoliDic[view.Date]; if (st == 3) { view.Status = "<font style='color:#1695A3;'>请假</font>"; } //301 310 else if (st == 301) { if (view.First.Hour >= 8 && view.First.Minute > 30) { view.Status = "<font style='color:#3498DB'>早退</font> <font style='color:#1695A3'>请假</font>"; } else { view.Status = "<font style='color:#2980B9'>正常</font> <font style='color:#1695A3'>请假</font>"; } } else if (st == 310) { if (view.Last.Hour <= 15 && view.Last.Minute <= 50) { view.Status = "<font style='color:#1695A3'>请假</font> <font style='color:#2C3E50'>迟到</font>"; } else { view.Status = "<font style='color:#1695A3'>请假</font> <font style='color:#2980B9'>正常</font>"; } } } else if (view.First == view.Last) { view.Status = "<font style='color:pink'>未打卡</font>"; } else if (view.First.Hour >= 8 && view.First.Minute > 30 && view.Last.Hour <= 15 && view.Last.Minute <= 50) { view.Status = "<font style='color:yellow;'>迟到且早退</font>"; } else if (view.First.Hour >= 8 && view.First.Minute > 30) { view.Status = "<font style='color:#2C3E50;'>迟到</font>"; } else if (view.Last.Hour <= 15 && view.Last.Minute <= 50) { view.Status = "<font style='color:#3498DB;'>早退</font>"; } else { view.Status = "<font style='color:#2980B9;'>正常</font>"; } } else if (HoliDic.ContainsKey(view.Date)) { int st = HoliDic[view.Date]; if (st == 3) { view.Status = "<font style='color:#1695A3'>请假</font>"; } //301 310 else if (st == 301) { view.Status = "<font style='color:#E74C3C'>缺勤</font> <font style='color:#1695A3'>请假</font>"; } else if (st == 310) { view.Status = "<font style='color:#1695A3'>请假</font> <font style='color:#E74C3C'>缺勤</font>"; } } else { view.Status = "<font style='color:#E74C3C'>缺勤</font>"; } } else { view.Status = "<font style='color:#000;'>休假</font>"; } list.Add(view); } return(list); }