コード例 #1
0
        // 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));
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }