public ActionResult <TotalPorEquipeViewModel> GetTotaisIdososByEquipe([FromHeader] string ibge, [FromQuery] QueryParamsGrupoIndividuos modelQuery) { try { if (modelQuery.competencia == null) { var response = TrataErro.GetResponse("É necessário informar a competência para realizar a consulta", true); return(BadRequest(response)); } ibge = _config.GetConnectionString(Helpers.Connection.GetConnection(ibge)); string sqlFiltros = string.Empty; if (string.IsNullOrEmpty(modelQuery.ids_equipes)) { string filtrosEquipe = string.Empty; var id_usuario = Convert.ToInt32(HttpContext.User.Identities?.FirstOrDefault().Claims.FirstOrDefault()?.Value); int?tipoUsuario = _seguserRepository.GetTipoUsuarioById(ibge, id_usuario); if (tipoUsuario == 3) { modelQuery.ids_equipes = GetIdsEquipesUsuarioPossuiAcesso(ibge, id_usuario); sqlFiltros += $@" MI.ID_EQUIPE IN ({modelQuery.ids_equipes}) AND "; } } else { sqlFiltros += $@" MI.ID_EQUIPE IN ({modelQuery.ids_equipes}) AND "; } var item = _repository.GetTotaisIdososByEquipe(ibge, sqlFiltros, (int)modelQuery.competencia); return(Ok(item)); } catch (Exception ex) { var response = TrataErro.GetResponse(ex.Message, true); return(StatusCode((int)HttpStatusCode.InternalServerError, response)); } }
public ActionResult <List <GrupoIndividuosEquipeViewModel> > GetIdososByEquipe([FromHeader] string ibge, [FromQuery] QueryParamsGrupoIndividuos modelQuery) { try { if (modelQuery.competencia == null) { var response = TrataErro.GetResponse("É necessário informar a competência para realizar a consulta", true); return(BadRequest(response)); } ibge = _config.GetConnectionString(Helpers.Connection.GetConnection(ibge)); string sqlFiltros1 = string.Empty; string sqlFiltros2 = string.Empty; int countRegistros = 0; if (string.IsNullOrEmpty(modelQuery.ids_equipes)) { string filtrosEquipe = string.Empty; var id_usuario = Convert.ToInt32(HttpContext.User.Identities?.FirstOrDefault().Claims.FirstOrDefault()?.Value); int?tipoUsuario = _seguserRepository.GetTipoUsuarioById(ibge, id_usuario); if (tipoUsuario == 3) { modelQuery.ids_equipes = GetIdsEquipesUsuarioPossuiAcesso(ibge, id_usuario); sqlFiltros1 += $@" MI.ID_EQUIPE IN ({modelQuery.ids_equipes}) AND"; } } else { sqlFiltros1 += $@" MI.ID_EQUIPE IN ({modelQuery.ids_equipes}) AND"; } var contagemgeral = _repository.GetTotaisIdososByEquipe(ibge, sqlFiltros2, (int)modelQuery.competencia); if (modelQuery.status == (int)SituacaoGestaoFamilia.visitados) // visitados { countRegistros = (int)contagemgeral.visitados; sqlFiltros1 = $@" AND (VIS.DESFECHO = 0)"; sqlFiltros2 += $@" TAB.VISITADO = 0"; } else if (modelQuery.status == (int)SituacaoGestaoFamilia.nao_visitados) // não visitados { countRegistros = (int)contagemgeral.nao_visitados; sqlFiltros1 = $@" "; sqlFiltros2 += $@" TAB.VISITADO IS NULL"; } else if (modelQuery.status == (int)SituacaoGestaoFamilia.ausentes_recusados) //ausentes/recusados { countRegistros = (int)contagemgeral.ausentes_recusados; sqlFiltros1 = $@" AND (VIS.DESFECHO = 1 OR VIS.DESFECHO = 2)"; sqlFiltros2 += $@" TAB.VISITADO = 1 OR TAB.VISITADO = 2"; } else { countRegistros = (int)contagemgeral.total; //(int)(contagemgeral.ausentes_recusados + contagemgeral.nao_visitados + contagemgeral.visitados); } if (!string.IsNullOrWhiteSpace(sqlFiltros2)) { sqlFiltros2 = $" WHERE " + sqlFiltros2; } Response.Headers.Add("X-Total-Count", countRegistros.ToString()); string sqlSelect = $@" SELECT FIRST({modelQuery.page_size}) SKIP({modelQuery.page * modelQuery.page_size}) "; List <GrupoIndividuosEquipeViewModel> lista = _repository.GetIdososByEquipe(ibge, sqlSelect, sqlFiltros1, (int)modelQuery.competencia, sqlFiltros2); lista = lista.OrderBy(x => x.nome_individuo).ToList(); return(Ok(lista)); } catch (Exception ex) { var response = TrataErro.GetResponse(ex.Message, true); return(StatusCode((int)HttpStatusCode.InternalServerError, response)); } }