Exemplo n.º 1
0
        /// <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());
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 6
0
        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);
        }