// GET: HorarioTecnicos/PedidoTrocaTurno public async Task <IActionResult> PedidoTrocaTurno(int?idHorario1, HorarioTecnicosViewModel model = null, int page = 1) { ViewBag.HorarioATrocar = idHorario1; if (idHorario1 == null) { return(NotFound()); } var idTecnico = from h in _context.HorarioTecnicos where h.HorarioTecnicoId == idHorario1 select h.FuncionarioId; var dataInicio = from h in _context.HorarioTecnicos where h.HorarioTecnicoId == idHorario1 select h.DataInicioManha; string nome = null; DateTime?data = null; if (model != null && model.DataInicio != null || model.CurrentNome != null) { nome = model.CurrentNome; data = model.DataInicio; page = 1; } IQueryable <HorarioTecnicos> horario; int numHorario; IEnumerable <HorarioTecnicos> listaHorario; if (data.HasValue && string.IsNullOrEmpty(nome)) { int ano = data.Value.Year; int mes = data.Value.Month; int dia = data.Value.Day; horario = _context.HorarioTecnicos .Where(h => h.DataInicioManha.Year.Equals(ano) && h.DataInicioManha.Month.Equals(mes) && h.DataInicioManha.Day.Equals(dia) && h.HorarioTecnicoId != idHorario1 && h.FuncionarioId != idTecnico.Single() && h.DataInicioManha >= dataInicio.Single()); numHorario = await horario.CountAsync(); listaHorario = await horario .Include(h => h.Funcionario) .Include(h => h.Turno) .OrderBy(h => h.DataInicioManha) .Skip(PAGE_SIZE * (page - 1)) .Take(PAGE_SIZE) .ToListAsync(); } else if (!string.IsNullOrEmpty(nome) && !data.HasValue) { horario = _context.HorarioTecnicos .Where(h => h.Funcionario.Nome.Contains(nome.Trim()) && h.HorarioTecnicoId != idHorario1 && h.FuncionarioId != idTecnico.Single() && h.DataInicioManha >= dataInicio.Single()); numHorario = await horario.CountAsync(); listaHorario = await horario .Include(h => h.Funcionario) .Include(h => h.Turno) .OrderBy(h => h.DataInicioManha) .Skip(PAGE_SIZE * (page - 1)) .Take(PAGE_SIZE) .ToListAsync(); } else if (!string.IsNullOrEmpty(nome) && data.HasValue) { int ano = data.Value.Year; int mes = data.Value.Month; int dia = data.Value.Day; horario = _context.HorarioTecnicos .Where(h => h.Funcionario.Nome.Contains(nome.Trim()) && h.DataInicioManha.Year.Equals(ano) && h.DataInicioManha.Month.Equals(mes) && h.DataInicioManha.Day.Equals(dia) && h.HorarioTecnicoId != idHorario1 && h.FuncionarioId != idTecnico.Single() && h.DataInicioManha >= dataInicio.Single()); numHorario = await horario.CountAsync(); listaHorario = await horario .Include(h => h.Funcionario) .Include(h => h.Turno) .OrderBy(h => h.DataInicioManha) .Skip(PAGE_SIZE * (page - 1)) .Take(PAGE_SIZE) .ToListAsync(); } else { horario = _context.HorarioTecnicos .Where(h => h.HorarioTecnicoId != idHorario1 && h.FuncionarioId != idTecnico.Single() && h.DataInicioManha >= dataInicio.Single()); numHorario = await horario.CountAsync(); listaHorario = await horario .Include(h => h.Funcionario) .Include(h => h.Turno) .OrderBy(h => h.DataInicioManha) .Skip(PAGE_SIZE * (page - 1)) .Take(PAGE_SIZE) .ToListAsync(); } if (page > (numHorario / PAGE_SIZE) + 1) { page = 1; } return(View( new HorarioTecnicosViewModel { HorarioTecnicos = listaHorario, PagingInfo = new PaginationViewModel { CurrentPage = page, ItensPerPage = PAGE_SIZE, TotalItems = numHorario }, CurrentNome = nome, DataInicio = data })); }
// GET: HorarioTecnicos public async Task <IActionResult> Horario(HorarioTecnicosViewModel 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 <HorarioTecnicos> horario; int numHorario; IEnumerable <HorarioTecnicos> listaHorario; if (data.HasValue && string.IsNullOrEmpty(nome)) { int ano = data.Value.Year; int mes = data.Value.Month; int dia = data.Value.Day; horario = _context.HorarioTecnicos .Where(h => h.DataInicioManha.Year.Equals(ano) && h.DataInicioManha.Month.Equals(mes) && h.DataInicioManha.Day.Equals(dia)); numHorario = await horario.CountAsync(); listaHorario = await horario .Include(h => h.Funcionario) .Include(h => h.Turno) .OrderBy(h => h.DataInicioManha) .Skip(PAGE_SIZE * (page - 1)) .Take(PAGE_SIZE) .ToListAsync(); } else if (!string.IsNullOrEmpty(nome) && !data.HasValue) { horario = _context.HorarioTecnicos .Where(h => h.Funcionario.Nome.Contains(nome.Trim())); numHorario = await horario.CountAsync(); listaHorario = await horario .Include(h => h.Funcionario) .Include(h => h.Turno) .OrderBy(h => h.DataInicioManha) .Skip(PAGE_SIZE * (page - 1)) .Take(PAGE_SIZE) .ToListAsync(); } else { horario = _context.HorarioTecnicos; numHorario = await horario.CountAsync(); listaHorario = await horario .Include(h => h.Funcionario) .Include(h => h.Turno) .OrderBy(h => h.DataInicioManha) .Skip(PAGE_SIZE * (page - 1)) .Take(PAGE_SIZE) .ToListAsync(); } if (page > (numHorario / PAGE_SIZE) + 1) { page = 1; } if (listaHorario.Count() == 0) { TempData["Insuccess"] = "Não existe dados"; } return(View( new HorarioTecnicosViewModel { HorarioTecnicos = listaHorario, PagingInfo = new PaginationViewModel { CurrentPage = page, ItensPerPage = PAGE_SIZE, TotalItems = numHorario }, CurrentNome = nome, DataInicio = data } )); }