public async Task <ActionResult> TimeOfficeDashboard() { return(await Task.Run <ActionResult>(() => { VMTimeOfficeDashboard vmTimeOfficeDashboard = new VMTimeOfficeDashboard(); VMAttendanceDashboard vmDashboard = Session["VMATDashboard"] as VMAttendanceDashboard; if (vmDashboard == null) { vmTimeOfficeDashboard.StartDate = DateTime.Today.AddDays(-6); vmTimeOfficeDashboard.EndDate = DateTime.Today; } else { vmTimeOfficeDashboard.StartDate = vmDashboard.StartDate; vmTimeOfficeDashboard.EndDate = vmDashboard.EndDate; } List <VMPVTMDashboard> vmList = new List <VMPVTMDashboard>(); DateTime dt = vmTimeOfficeDashboard.StartDate; while (dt <= vmTimeOfficeDashboard.EndDate) { if (dt <= DateTime.Today) { VMPVTMDashboard vm = new VMPVTMDashboard(); vm.Date = dt.ToString("dd-MMM-yyyy"); vm.DateValue = dt; VMLoggedUser LoggedInUser = Session["LoggedInUser"] as VMLoggedUser; List <VAT_DailyAttendance> dbVDailyAttendance = GetSpecificEmployeeService.GetSpecificAttendance(LoggedInUser, dt); int TotalEmps = dbVDailyAttendance.Count(); if (TotalEmps > 0) { bool IsNotZero = false; int Percentage = 0; // Get Absent Details int Absent = dbVDailyAttendance.Where(aa => aa.AbDays > 0).Count(); if (Absent > 0) { IsNotZero = true; } Percentage = (Absent * 100) / TotalEmps; vm.AbsentsPercentWidth = Percentage.ToString() + "%"; vm.AbsentsPercentLabel = Percentage.ToString() + "%"; vm.AbsentsPercentDesc = Percentage.ToString() + "% Absentism"; vm.AbsentsLink = ""; // Get Missing Details int Missing = dbVDailyAttendance.Where(aa => (aa.TimeIn != null && aa.TimeOut == null) || (aa.TimeIn == null && aa.TimeOut != null)).Count(); if (Missing > 0) { IsNotZero = true; } Percentage = (Missing * 100) / TotalEmps; vm.MissingPercentWidth = Percentage.ToString() + "%"; vm.MissingPercentLabel = Percentage.ToString() + "%"; vm.MissingPercentDesc = Percentage.ToString() + "% Missing"; // Get Late IN 240 Details int LateIn = dbVDailyAttendance.Where(aa => aa.LateIn > 240).Count(); if (LateIn > 0) { IsNotZero = true; } Percentage = (LateIn * 100) / TotalEmps; vm.ShiftLateInPercentWidth = Percentage.ToString() + "%"; vm.ShiftLateInPercentLabel = Percentage.ToString() + "%"; vm.ShiftLateInPercentDesc = Percentage.ToString() + "% Missing"; // Get EarlyOut 240 Details int EarlyOut = dbVDailyAttendance.Where(aa => aa.EarlyOut > 240).Count(); if (EarlyOut > 0) { IsNotZero = true; } Percentage = (EarlyOut * 100) / TotalEmps; vm.ShiftEarlyOutPercentWidth = Percentage.ToString() + "%"; vm.ShiftEarlyOutPercentLabel = Percentage.ToString() + "%"; vm.ShiftEarlyOutPercentDesc = Percentage.ToString() + "% Missing"; if (IsNotZero == true) { vmList.Add(vm); } } } dt = dt.AddDays(1); } vmTimeOfficeDashboard.VMPVTMDashboard = vmList.OrderByDescending(aa => aa.DateValue).ToList(); return View(vmTimeOfficeDashboard); })); }
// Dashboard #region Dashboard Links public ActionResult LoadTMDashboardAttendance(DateTime?date, string Criteria) { VMLoggedUser LoggedInUser = Session["LoggedInUser"] as VMLoggedUser; VMEditAttendanceDateWise vm = DailyAttendanceEditorService.GetTMDashboardAttendance((DateTime)date, Criteria, GetSpecificEmployeeService.GetSpecificAttendance(LoggedInUser, (DateTime)date)); return(View("EditDateWiseEntries", vm)); }