示例#1
0
        public ActionResult AtualizaResponsavelFamilia([FromHeader] string ibge, int?id_responsavel, int id_familia)
        {
            try
            {
                ibge = _config.GetConnectionString(Helpers.Connection.GetConnection(ibge));
                var individuo = _repository.GetIndividuoFamilia(ibge, (int)id_responsavel);
                if (id_familia != individuo)
                {
                    return(BadRequest(TrataErro.GetResponse("O indivíduo não pertence a família informada.", true)));
                }

                string sql_estrutura = string.Empty;
                if (_cidadaorepository.VerificaExisteEsusFamilia(ibge))
                {
                    sql_estrutura = $@"LEFT JOIN ESUS_FAMILIA D ON(D.ID = D.ID_FAMILIA)";
                }
                else
                {
                    sql_estrutura = $@"LEFT JOIN ESUS_CADDOMICILIAR D ON PAC.ID_ESUS_CADDOMICILIAR = D.ID";
                }

                var paciente = _cidadaorepository.GetCidadaoById(ibge, (int)id_responsavel, sql_estrutura);
                if (string.IsNullOrWhiteSpace(paciente.csi_ncartao) && string.IsNullOrWhiteSpace(paciente.csi_cpfpac))
                {
                    return(BadRequest(TrataErro.GetResponse("Para ser responsável pela Família, o indivíduo precisa ter CPF e/ou CNS preenchidos.", true)));
                }

                _repository.AtualizaResponsavelFamilia(ibge, id_familia, (int)id_responsavel);
                return(Ok());
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }