// GET: /<controller>/ public IActionResult Index(string date, string filters = "") { var formats = this._employeeFormatModelFactory.GetAllApprovedFormats(DateTime.Now); DashboardFilters filter = new DashboardFilters(); if (!string.IsNullOrEmpty(filters)) { var lst = filters.Split('-'); filter.StartJobDelay = lst[0] == "0" ? false : true; filter.EndJobAnticipate = lst[1] == "0" ? false : true; filter.NoEntryCheckShow = lst[2] == "0" ? false : true; filter.FoodStartDelayShow = lst[3] == "0" ? false : true; filter.FoodEndDelayShow = lst[4] == "0" ? false : true; filter.NoFoodEntryCheckShow = lst[5] == "0" ? false : true; } var model = this._dashboardModelFactory.GetDay(date, filter); model.FilterDate = !string.IsNullOrEmpty(date) ? date : DateTime.Now.ToShortDateString(); model.DashboardFiltersApply = filter; model.TotalFormatVacations = formats.Where(t => t.FormatName.ToLower().Contains("vacacion")).Count(); model.TotalFormatPermissions = formats.Where(t => t.FormatName.ToLower().Contains("permiso")).Count(); return(View(model)); }
public PartialViewResult GetFilters() { DashboardFilters model = new DashboardFilters(); var client = new RestClient(CommonFunctions.GetAPIPath() + "Dashboard/GetFilterDropdowns"); var request = new RestRequest(Method.POST); IRestResponse response = client.Execute(request); model = JsonConvert.DeserializeObject <DashboardFilters>(response.Content); return(PartialView("_Filters", model)); }
public DashboardModel GetDay(string date, DashboardFilters filters) { if (string.IsNullOrEmpty(date)) { date = DateTime.Now.ToShortDateString(); } List <KeyValuePair <string, string> > param = new List <KeyValuePair <string, string> >(); param.Add(new KeyValuePair <string, string>("@CurrentDate", string.IsNullOrEmpty(date) ? DateTime.Now.ToShortDateString() : date)); string spName = dashboard; if (DateTime.Parse(date).DayOfWeek == DayOfWeek.Saturday) { spName = dashboardweekend; } var t = this._dashboardRepository.GetStoredProcData(spName, param); List <DashboardEmployeeDetailModel> empsDetail = new List <DashboardEmployeeDetailModel>(); if (DateTime.Parse(date).DayOfWeek == DayOfWeek.Saturday) { var wkworkers = this.WeekEndWorkers(); DashboardData[] ops = new DashboardData[t.Count()]; t.ToList().CopyTo(ops, 0); var wkemployees = (from wk in wkworkers join dd in ops on wk equals dd.EmployeeId select dd); t = null; t = new List <DashboardData>(wkemployees); } if (filters.StartJobDelay) { var a = t.Where(d => d.RetardoEntrada.Equals(1)).Select(r => new DashboardEmployeeDetailModel() { Area = r.Area, Name = r.EmployeeName, ID = r.EmployeeId, JobCenter = r.Centro, JobTitle = r.Puesto, DetailType = createEmployeeIncidencia(r) }).ToList(); empsDetail.AddRange(a); } if (filters.EndJobAnticipate) { var a = t.Where(d => d.SalidaAnticipada.Equals(1)).Select(r => new DashboardEmployeeDetailModel() { Area = r.Area, Name = r.EmployeeName, ID = r.EmployeeId, JobCenter = r.Centro, JobTitle = r.Puesto, DetailType = createEmployeeIncidencia(r) }).ToList(); empsDetail.AddRange(a); } if (filters.NoEntryCheckShow) { var a = t.Where(d => d.RetardoEntrada.Equals(2)).Select(r => new DashboardEmployeeDetailModel() { Area = r.Area, Name = r.EmployeeName, ID = r.EmployeeId, JobCenter = r.Centro, JobTitle = r.Puesto, DetailType = createEmployeeIncidencia(r) }).ToList(); empsDetail.AddRange(a); } if (filters.FoodStartDelayShow) { var a = t.Where(d => d.SalidaAnticipadaComida.Equals(1)).Select(r => new DashboardEmployeeDetailModel() { Area = r.Area, Name = r.EmployeeName, ID = r.EmployeeId, JobCenter = r.Centro, JobTitle = r.Puesto, DetailType = createEmployeeIncidencia(r) }).ToList(); empsDetail.AddRange(a); } if (filters.FoodEndDelayShow) { var a = t.Where(d => d.RetardoEntradaComida.Equals(1)).Select(r => new DashboardEmployeeDetailModel() { Area = r.Area, Name = r.EmployeeName, ID = r.EmployeeId, JobCenter = r.Centro, JobTitle = r.Puesto, DetailType = createEmployeeIncidencia(r) }).ToList(); empsDetail.AddRange(a); } if (filters.NoFoodEntryCheckShow) { var a = t.Where(d => d.RetardoEntradaComida.Equals(2) && !d.RetardoEntrada.Equals(2)).Select(r => new DashboardEmployeeDetailModel() { Area = r.Area, Name = r.EmployeeName, ID = r.EmployeeId, JobCenter = r.Centro, JobTitle = r.Puesto, DetailType = createEmployeeIncidencia(r) }).ToList(); empsDetail.AddRange(a); } DashboardModel model = new DashboardModel() { EntryDelay = t.Where(d => d.RetardoEntrada.Equals(1)).Count(), EndDayDelay = t.Where(d => d.SalidaAnticipada.Equals(1)).Count(), FoodStartDelay = t.Where(d => d.SalidaAnticipadaComida.Equals(1)).Count(), FoodEndDelay = t.Where(d => d.RetardoEntradaComida.Equals(1)).Count(), NoFoodEntryCheck = t.Where(d => d.RetardoEntradaComida.Equals(2)).Count(), NoEntryCheck = t.Where(d => d.RetardoEntrada.Equals(2)).Count(), EmployeeDetail = empsDetail.GroupBy(o => o.ID).Select(o => o.FirstOrDefault()).ToList() }; if (IsHoliday(date)) { var exeptions = HaveHolidayExepcions(date); if (exeptions.Any()) { exeptions.ToList().ForEach(v => { var emp = model.EmployeeDetail.Where(f => f.ID.Equals(v)).FirstOrDefault(); if (emp != null) { model.EmployeeDetail.Remove(emp); } }); } else { model.EmployeeDetail.Clear(); } } return(model); }
public List <DashboardDataDetail> GetDashboardDetail(string employee, string date, DashboardFilters filters) { string cdate = string.IsNullOrEmpty(date) ? DateTime.Now.ToShortDateString() : date; List <KeyValuePair <string, string> > param = new List <KeyValuePair <string, string> >(); param.Add(new KeyValuePair <string, string>("@CurrentDate", cdate)); string spName = dashboard; if (DateTime.Parse(cdate).DayOfWeek == DayOfWeek.Saturday) { spName = dashboardweekend; } var t = this._dashboardRepository.GetStoredProcData(spName, param).Where(y => y.EmployeeId.Equals(employee)); List <DashboardDataDetail> detail = new List <DashboardDataDetail>() { new DashboardDataDetail() { horario = "Entrada", hora = t.First().StartWorkDate, registro = t.First().StartJobDay }, new DashboardDataDetail() { horario = "Salida comida", hora = t.First().StartMealDate, registro = t.First().StartMealDay }, new DashboardDataDetail() { horario = "Entrada Comida", hora = t.First().EndMealDate, registro = t.First().EndMealDay }, new DashboardDataDetail() { horario = "Salida", hora = t.First().EndWorkDate, registro = t.First().EndJobDay } }; return(detail); }