Exemplo n.º 1
0
        // GET: HorarioEnfermeiro/PedidoTrocaTurnoEnfermeiro
        public async Task <IActionResult> PedidoTrocaTurnoEnfermeiro(int?idHorario1, HorariosEnfermeirosViewModel model = null, int page = 1)
        {
            ViewBag.HorarioATrocar = idHorario1;

            if (idHorario1 == null)
            {
                return(NotFound());
            }

            //Select EnfermeiroID Where HorarioEnfermeiroId = idHorario1
            var idEnf = from h in _context.HorariosEnfermeiro
                        where h.HorarioEnfermeiroId == idHorario1
                        select h.EnfermeiroId;

            var dataInicio = from h in _context.HorariosEnfermeiro
                             where h.HorarioEnfermeiroId == idHorario1
                             select h.DataInicioTurno;

            string   nome = null;
            DateTime?data = null;

            if (model != null && model.DataInicio != null || model.CurrentNome != null)
            {
                nome = model.CurrentNome;
                data = model.DataInicio;
                page = 1;
            }

            IQueryable <HorarioEnfermeiro> horario;
            int numHorario;
            IEnumerable <HorarioEnfermeiro> listaHorario;

            if (data.HasValue && string.IsNullOrEmpty(nome)) //Pesquisa por data
            {
                int ano = data.Value.Year;
                int mes = data.Value.Month;
                int dia = data.Value.Day;

                horario = _context.HorariosEnfermeiro
                          .Where(h => h.DataInicioTurno.Year.Equals(ano) && h.DataInicioTurno.Month.Equals(mes) && h.DataInicioTurno.Day.Equals(dia) && h.HorarioEnfermeiroId != idHorario1 && h.EnfermeiroId != idEnf.Single() && h.DataInicioTurno >= dataInicio.Single());

                numHorario = await horario.CountAsync();

                listaHorario = await horario
                               .Include(h => h.Enfermeiro)
                               .Include(h => h.Turno)
                               .OrderBy(h => h.DataInicioTurno)
                               .Skip(PAGE_SIZE * (page - 1))
                               .Take(PAGE_SIZE)
                               .ToListAsync();
            }
            else if (!string.IsNullOrEmpty(nome) && !data.HasValue) //Pesquisa por Nome
            {
                horario = _context.HorariosEnfermeiro
                          .Where(h => h.Enfermeiro.Nome.Contains(nome.Trim()) && h.HorarioEnfermeiroId != idHorario1 && h.EnfermeiroId != idEnf.Single() && h.DataInicioTurno >= dataInicio.Single());

                numHorario = await horario.CountAsync();

                listaHorario = await horario
                               .Include(h => h.Enfermeiro)
                               .Include(h => h.Turno)
                               .OrderBy(h => h.DataInicioTurno)
                               .Skip(PAGE_SIZE * (page - 1))
                               .Take(PAGE_SIZE)
                               .ToListAsync();
            }
            else if (!string.IsNullOrEmpty(nome) && data.HasValue) //Pesquisa por nome e data
            {
                int ano = data.Value.Year;
                int mes = data.Value.Month;
                int dia = data.Value.Day;

                horario = _context.HorariosEnfermeiro
                          .Where(h => h.Enfermeiro.Nome.Contains(nome.Trim()) && h.DataInicioTurno.Year.Equals(ano) && h.DataInicioTurno.Month.Equals(mes) && h.DataInicioTurno.Day.Equals(dia) && h.HorarioEnfermeiroId != idHorario1 && h.EnfermeiroId != idEnf.Single() && h.DataInicioTurno >= dataInicio.Single());

                numHorario = await horario.CountAsync();

                listaHorario = await horario
                               .Include(h => h.Enfermeiro)
                               .Include(h => h.Turno)
                               .OrderBy(h => h.DataInicioTurno)
                               .Skip(PAGE_SIZE * (page - 1))
                               .Take(PAGE_SIZE)
                               .ToListAsync();
            }
            else
            {
                horario = _context.HorariosEnfermeiro
                          .Where(h => h.HorarioEnfermeiroId != idHorario1 && h.EnfermeiroId != idEnf.Single() && h.DataInicioTurno >= dataInicio.Single());

                numHorario = await horario.CountAsync();

                listaHorario = await horario
                               .Include(h => h.Enfermeiro)
                               .Include(h => h.Turno)
                               .OrderBy(h => h.DataInicioTurno)
                               .Skip(PAGE_SIZE * (page - 1))
                               .Take(PAGE_SIZE)
                               .ToListAsync();
            }

            if (page > (numHorario / PAGE_SIZE) + 1)
            {
                page = 1;
            }

            return(View(
                       new HorariosEnfermeirosViewModel
            {
                HorariosEnfermeiros = listaHorario,
                Pagination = new PagingViewModel
                {
                    CurrentPage = page,
                    PageSize = PAGE_SIZE,
                    TotalItems = numHorario
                },
                CurrentNome = nome,
                DataInicio = data
            }));
        }
Exemplo n.º 2
0
        // GET: HorarioEnfermeiros
        public async Task <IActionResult> Index(HorariosEnfermeirosViewModel model = null, int page = 1)
        {
            string   nome = null;
            DateTime?data = null;

            if (model != null && model.DataInicio != null || model.CurrentNome != null)
            {
                nome = model.CurrentNome;
                data = model.DataInicio;
                page = 1;
            }

            IQueryable <HorarioEnfermeiro> horario;
            int numHorario;
            IEnumerable <HorarioEnfermeiro> listaHorario;

            if (data.HasValue && string.IsNullOrEmpty(nome)) //Pesquisa por data
            {
                int ano = data.Value.Year;
                int mes = data.Value.Month;
                int dia = data.Value.Day;

                horario = _context.HorariosEnfermeiro
                          .Where(h => h.DataInicioTurno.Year.Equals(ano) && h.DataInicioTurno.Month.Equals(mes) && h.DataInicioTurno.Day.Equals(dia));

                numHorario = await horario.CountAsync();

                listaHorario = await horario
                               .Include(h => h.Enfermeiro)
                               .Include(h => h.Turno)
                               .OrderBy(h => h.DataInicioTurno)
                               .Skip(PAGE_SIZE * (page - 1))
                               .Take(PAGE_SIZE)
                               .ToListAsync();
            }
            else if (!string.IsNullOrEmpty(nome) && !data.HasValue) //Pesquisa por Nome
            {
                horario = _context.HorariosEnfermeiro
                          .Where(h => h.Enfermeiro.Nome.Contains(nome.Trim()));

                numHorario = await horario.CountAsync();

                listaHorario = await horario
                               .Include(h => h.Enfermeiro)
                               .Include(h => h.Turno)
                               .OrderBy(h => h.DataInicioTurno)
                               .Skip(PAGE_SIZE * (page - 1))
                               .Take(PAGE_SIZE)
                               .ToListAsync();
            }
            else if (!string.IsNullOrEmpty(nome) && data.HasValue) //Pesquisa por nome e data
            {
                int ano = data.Value.Year;
                int mes = data.Value.Month;
                int dia = data.Value.Day;

                horario = _context.HorariosEnfermeiro
                          .Where(h => h.Enfermeiro.Nome.Contains(nome.Trim()) && h.DataInicioTurno.Year.Equals(ano) && h.DataInicioTurno.Month.Equals(mes) && h.DataInicioTurno.Day.Equals(dia));

                numHorario = await horario.CountAsync();

                listaHorario = await horario
                               .Include(h => h.Enfermeiro)
                               .Include(h => h.Turno)
                               .OrderBy(h => h.DataInicioTurno)
                               .Skip(PAGE_SIZE * (page - 1))
                               .Take(PAGE_SIZE)
                               .ToListAsync();
            }
            else
            {
                horario = _context.HorariosEnfermeiro;

                numHorario = await horario.CountAsync();

                listaHorario = await horario
                               .Include(h => h.Enfermeiro)
                               .Include(h => h.Turno)
                               .OrderBy(h => h.DataInicioTurno)
                               .Skip(PAGE_SIZE * (page - 1))
                               .Take(PAGE_SIZE)
                               .ToListAsync();
            }

            if (page > (numHorario / PAGE_SIZE) + 1)
            {
                page = 1;
            }

            if (listaHorario.Count() == 0)
            {
                TempData["NoItemsFound"] = "Não foram encontrados resultados para a sua pesquisa";
            }


            return(View(
                       new HorariosEnfermeirosViewModel
            {
                HorariosEnfermeiros = listaHorario,
                Pagination = new PagingViewModel
                {
                    CurrentPage = page,
                    PageSize = PAGE_SIZE,
                    TotalItems = numHorario
                },
                CurrentNome = nome,
                DataInicio = data
            }
                       ));
        }