Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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));
            }
        }