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);
     }));
 }
예제 #2
0
        // 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));
        }