示例#1
0
        public ActionResult <List <ExamesAgrupados> > GetHistoricoSolicitacoesExameByPaciente([FromHeader] string ibge, [FromRoute] int id_paciente)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));

                List <AgrupamentoExames> agrupamentos = _repository.GetListAgrupamentosExames(ibge);

                List <ExamesAgrupados> itens = new List <ExamesAgrupados>();

                foreach (var agrupamento in agrupamentos)
                {
                    itens.Add(new ExamesAgrupados()
                    {
                        nome_agrupamento = agrupamento.nome_agrupamento,
                        exames           = _repository.GetHistoricoSolicitacoesExameByPaciente(ibge, id_paciente, agrupamento.codigo_agrupamento),
                    });
                }

                return(Ok(itens));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#2
0
        public ActionResult Editar([FromHeader] string ibge, [FromBody] AtendOdontoIndividual model, [FromRoute] int?id)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                if (id == null)
                {
                    model.id = _repository.GetNewId(ibge);
                }
                else
                {
                    model.id = id;
                }

                foreach (var item in model.itens)
                {
                    if (item.id == null)
                    {
                        item.id = _repository.GetNewIdItem(ibge);
                    }
                }
                _repository.UpdateOrInsert(ibge, model);

                return(Ok());
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#3
0
        public ActionResult Atendimentos([FromHeader] string ibge, [FromRoute] int id_individuo, [FromQuery] DateTime?dum, DateTime?gi_data_nascimento)
        {
            try
            {
                if (dum == null)
                {
                    return(BadRequest(
                               new { message = "Para buscar os atendimentos do indivíduo, é necessário informar a data da DUM" }
                               ));
                }

                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));

                string data_nascimento = (gi_data_nascimento != null)
                    ? $"CAST('{gi_data_nascimento?.ToString("yyyy-MM-dd")}' AS TIMESTAMP)"
                    : "NULL";

                string data_dum = dum?.ToString("yyyy-MM-dd");

                var itens = _repository.Atendimentos(ibge, id_individuo, data_dum, data_nascimento);

                return(Ok(itens));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#4
0
        public ActionResult Excluir([FromHeader] string ibge, [FromRoute] int?id)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));

                //verifica tabela de lote
                var itenslote = _loterepository.GetLoteByProdutor(ibge, (int)id);
                if (itenslote.Count > 0)
                {
                    return(BadRequest(TrataErro.GetResponse("Esse fabricante não pode ser excluído pois já possui um lote vinculado a ele.", true)));
                }

                //verifica tabela de cartão de vacina
                var itenscv = _loterepository.GetLoteByProdutor(ibge, (int)id);
                if (itenscv.Count > 0)
                {
                    return(BadRequest(TrataErro.GetResponse("Esse fabricante não pode ser excluído pois já possui um cartão de vacina vinculado a ele.", true)));
                }

                _repository.Delete(ibge, (int)id);
                return(Ok());
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#5
0
        public ActionResult <List <ProcedimentosConsolidadosViewModel> > GetProcedimentosConsolidados([FromHeader] string ibge, string cod_cbo, int?idade, string sexo, int?codpac)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                string filtro = string.Empty;

                if (codpac != null)
                {
                    filtro = $@" AND {idade} BETWEEN P.IDADE_MIN AND P.IDADE_MAX
                                 AND P.SEXO IN ('{sexo}','I','N')";
                }
                else
                {
                    filtro = $@" AND PR.COD_PADRAO_REGISTRO_BPA = '01'";
                }

                List <ProcedimentosConsolidadosViewModel> itens = _repository.GetProcedimentosConsolidados(ibge, cod_cbo, filtro);
                return(Ok(itens));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#6
0
        public ActionResult Editar([FromHeader] string ibge, [FromBody] DiasMed model, [FromRoute] int id)
        {
            try
            {
                ibge     = _config.GetConnectionString(Helpers.Connection.GetConnection(ibge));
                model.id = id;
                //edita primeiro o registro de TSI_DIAS_MED
                _repository.GravarAgendaDiasMed(ibge, model);//insere em TSI_DIASMED

                //exclui registros de TSI_CONSULTAS_ITEM
                _repository.ExcluirConsultasItemByDiasMed(ibge, id);

                //insere novamente registros em TSI_CONSULTAS_ITEM
                TimeSpan horarioini = new TimeSpan(Convert.ToInt32(model.csi_horario.Split(":")[0]), Convert.ToInt32(model.csi_horario.Split(":")[1]), Convert.ToInt32(model.csi_horario.Split(":")[2]));
                TimeSpan horariofim = new TimeSpan(Convert.ToInt32(model.csi_horariofinal.Split(":")[0]), Convert.ToInt32(model.csi_horariofinal.Split(":")[1]), Convert.ToInt32(model.csi_horariofinal.Split(":")[2]));
                _repository.InserirConsultasItens(ibge, horarioini, horariofim, (int)model.csi_qtdecon, (int)model.id, (int)model.csi_intervalo_agendamento);

                return(Ok(model));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#7
0
        public ActionResult <List <AgendaDiasViewModel> > GetAgendaTipos([FromHeader] string ibge, int profissional, int mes, int ano)
        {
            try
            {
                ibge = _config.GetConnectionString(Helpers.Connection.GetConnection(ibge));
                DateTime dataAtual   = new DateTime(ano, mes, 1);
                DateTime?datainicial = dataAtual.AddMonths(-1);
                DateTime?datafinal   = dataAtual.AddMonths(1);

                List <AgendaDiasViewModel> itens    = _repository.GetAgendaDias(ibge, profissional, datainicial, datafinal);
                List <Feriado>             feriados = _feriadosrepository.GetAll(ibge).Where(x => x.csi_data >= DateTime.Now).ToList();

                foreach (var item in feriados)
                {
                    if (!itens.Any(x => x.Data == item.csi_data))
                    {
                        AgendaDiasViewModel itensAgenda = new AgendaDiasViewModel();
                        itensAgenda.Data = item.csi_data;
                        itensAgenda.tipo = 2;

                        itens.Add(itensAgenda);
                    }
                }

                return(Ok(itens));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#8
0
        public ActionResult Excluir([FromHeader] string ibge, [FromRoute] int?id)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                string unidade = HttpContext.Request.Headers["unidade"];
                //valida lote
                var lote = _loteRepository.GetLoteByImunobiologico(ibge, (int)id, Convert.ToInt32(unidade));

                if (lote.Count > 0)
                {
                    return(BadRequest(TrataErro.GetResponse("Este Produto não pode ser excluído pois está vinculado a um lote.", true)));
                }
                //valida calendario basico
                var cb = _cbRepository.GetCalendarioByProduto(ibge, (int)id);
                if (cb.Count > 0)
                {
                    return(BadRequest(TrataErro.GetResponse("Este Produto não pode ser excluído ppois está vinculado a um calendário básico.", true)));
                }
                //valida cartao de vacina
                var cv = _cvRepository.GetCartaoVacinaByProduto(ibge, (int)id);
                if (cv.Count > 0)
                {
                    return(BadRequest(TrataErro.GetResponse("Este Produto não pode ser excluído ppois está vinculado a um cartão de vacina.", true)));
                }

                _produtoRepository.Delete(ibge, (int)id);
                return(Ok());
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#9
0
        public ActionResult <bool> CheckVinculoMicroarea([FromHeader] string ibge, [FromRoute] int id)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                string sql_estrutura = string.Empty;
                if (_cidadaoRepository.VerificaExisteEsusFamilia(ibge))
                {
                    sql_estrutura = $@"JOIN ESUS_FAMILIA FAM ON (CP.ID_FAMILIA = FAM.ID)
                                       JOIN VS_ESTABELECIMENTOS EST ON (FAM.ID_DOMICILIO = EST.ID)";
                }
                else
                {
                    sql_estrutura = $@"JOIN ESUS_CADDOMICILIAR EST ON CP.ID_ESUS_CADDOMICILIAR = EST.ID";
                }

                bool possui_vinculo_microarea = _individuoRepository.CheckVinculoMicroarea(ibge, id, sql_estrutura);

                return(Ok(possui_vinculo_microarea));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#10
0
        public ActionResult Inserir([FromHeader] string ibge, [FromBody] ParametersCartaoVacinaViewModel model)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                model.CartaoVacina.id   = _repository.GetNewId(ibge);
                model.CartaoVacina.uuid = (Guid.NewGuid()).ToString().ToUpper();
                _repository.Insert(ibge, model.CartaoVacina);

                if (model.IdAprazamento != null) //update pni_aprazamentos
                {
                    _aprazamentorepository.UpdateVacinados(ibge, model.CartaoVacina.id, (int)model.IdAprazamento);
                }
                else //cria novo pni_aprazamentos
                {
                    var id_aprazamento = _aprazamentorepository.GetNewId(ibge);
                    var modelapraz     = new Aprazamento
                    {
                        id_aprazamento = id_aprazamento,
                        id_individuo   = model.CartaoVacina.id_paciente,
                        data_limite    = DateTime.Now,
                        id_vacinados   = model.CartaoVacina.id,
                        id_produto     = model.CartaoVacina.id_produto,
                        id_dose        = model.CartaoVacina.id_dose
                    };
                    _aprazamentorepository.Insert(ibge, modelapraz);
                }
                return(Ok(model.CartaoVacina));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#11
0
        public ActionResult <List <AuditoriaEstoque> > GetAuditoria([FromHeader] string ibge, int page, int pagesize, int id_produto,
                                                                    string datainicial, string datafinal, string lote, int?unidade, int?id_produtor)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                int count = _repository.GetCountAuditoria(ibge, id_produto, Convert.ToDateTime(datainicial), Convert.ToDateTime(datafinal), lote, unidade, id_produtor);
                if (count == 1)
                {
                    page = 0;
                }
                else
                {
                    page = page * pagesize;
                }

                Response.Headers.Add("X-Total-Count", count.ToString());
                List <AuditoriaEstoque> lista = _repository.GetAuditoria(ibge, id_produto, Convert.ToDateTime(datainicial), Convert.ToDateTime(datafinal), lote, unidade, page, pagesize, id_produtor);

                return(Ok(lista));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#12
0
        public ActionResult <FotoIndividuo> GetByIdIndividuo([FromHeader] string ibge, [FromRoute] int id_Individuo)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnectionFoto(ibge));
                FotoIndividuo fotoIndividuo = _repository.GetByIdIndividuo(ibge, id_Individuo);

                if (fotoIndividuo == null)
                {
                    return(Ok(null));
                }

                var fotoBase64 = (fotoIndividuo.csi_foto != null)
                    ? Convert.ToBase64String(fotoIndividuo.csi_foto)
                    : string.Empty;

                return(Ok(new
                {
                    csi_id = fotoIndividuo.csi_id,
                    csi_matricula = fotoIndividuo.csi_matricula,
                    csi_tipo = fotoIndividuo.csi_tipo,
                    data_alteracao = fotoIndividuo.data_alteracao,
                    csi_foto = fotoBase64,
                }
                          ));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#13
0
        public ActionResult UpdateOrInsert([FromHeader] string ibge, [FromForm] FotoIndividuo model, IFormFile file)
        {
            if (file == null)
            {
                return(BadRequest(new { message = "Ocorreu um problema ao carregar a foto." }));
            }

            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnectionFoto(ibge));

                model.csi_foto       = FileHelper.GetByteArrayFromFile(file);
                model.csi_tipo       = "C";
                model.data_alteracao = DateTime.Now;

                _repository.UpdateOrInsertByIdIndividuo(ibge, model);

                var fotoIndividuo = _repository.GetByIdIndividuo(ibge, model.csi_matricula);

                return(Ok(new
                {
                    csi_id = fotoIndividuo.csi_id,
                    csi_matricula = fotoIndividuo.csi_matricula,
                    csi_tipo = fotoIndividuo.csi_tipo,
                    data_alteracao = fotoIndividuo.data_alteracao,
                }
                          ));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#14
0
        public ActionResult <List <Unidade> > GetUnidadesByUser([FromRoute] int user, [FromHeader] string ibge)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                List <Unidade> lista = new List <Unidade>();

                var usuario = _userRepository.GetSegUsuarioById(user, ibge);
                if (usuario.tipo_usuario == 1 || usuario.tipo_usuario == 2)
                {
                    lista = _unidadeRepository.GetAll(ibge, " WHERE UN.EXCLUIDO = 'F' OR UN.EXCLUIDO IS NULL ");
                }
                else
                {
                    lista = _unidadeRepository.GetUnidadesByUser(ibge, user);
                }

                return(Ok(lista));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#15
0
        public ActionResult <List <VisitaBairroViewModel> > GetQuarteiraoEstabelecimentoByBairro([FromHeader] string ibge, int?id_bairro, int?id_ciclo, string quarteirao,
                                                                                                 int?sequencia_quarteirao)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));

                var filtro = string.Empty;


                if (!string.IsNullOrWhiteSpace(quarteirao))
                {
                    filtro += $@" AND EST.QUARTEIRAO_LOGRADOURO = '{quarteirao}'";
                }

                if (sequencia_quarteirao != null)
                {
                    filtro += $@" AND EST.SEQUENCIA_QUARTEIRAO = {sequencia_quarteirao}";
                }

                List <VisitaBairroViewModel> lista = _repository.GetQuarteiraoEstabelecimentoByBairro(ibge, (int)id_bairro, (int)id_ciclo, filtro);

                return(Ok(lista));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#16
0
        public ActionResult Update([FromHeader] string ibge, [FromBody] Individuo model, [FromRoute] int id)
        {
            try
            {
                string response = CheckIndividuoExiste(ibge, model);

                if (!string.IsNullOrWhiteSpace(response))
                {
                    var message = TrataErro.GetResponse(response, true);
                    return(BadRequest(message));
                }

                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));

                model.csi_codpac = id;
                _individuoRepository.Update(ibge, model);

                return(Ok(model));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#17
0
        public ActionResult PublicoAlvo([FromHeader] string ibge, [FromRoute] ParamsRouteIndicador2 model, [FromQuery] ParamsQueryIndicador2 modelquery)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));

                if (modelquery.pagesize == null)
                {
                    modelquery.pagesize = 20;
                }

                string sqlSelect  = string.Empty;
                string sqlFiltros = string.Empty;

                // Filtros
                sqlFiltros = buildSQLFiltros(modelquery);

                // Qtde. de registros
                var countRegistros = _repository.CountPublicoAlvo(ibge, sqlFiltros);
                Response.Headers.Add("X-Total-Count", countRegistros.ToString());

                // Select + paginação
                modelquery.page = modelquery.page * modelquery.pagesize;
                sqlSelect       = $@" SELECT FIRST {modelquery.pagesize} SKIP {modelquery.page} ";

                var itens = _repository.PublicoAlvo(ibge, sqlSelect, sqlFiltros);

                return(Ok(itens));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#18
0
        public ActionResult <List <LoteImunobiologico> > GetLoteEstoqueByProduto([FromHeader] string ibge, int produto,
                                                                                 int unidade, string lote)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                string filtro = string.Empty;
                if (!string.IsNullOrWhiteSpace(lote))
                {
                    filtro = $@" (LP.ID_PRODUTO = {produto} AND
                                  EP.ID_UNIDADE = {unidade} AND
                                  EP.QTDE > 0) OR                                 
                                  LP.LOTE = '{lote}' ";
                }
                else
                {
                    filtro = $@"LP.ID_PRODUTO = {produto} AND
                                EP.ID_UNIDADE = {unidade} AND 
                                EP.QTDE > 0";
                }

                List <LoteImunobiologico> lista = _repository.GetLoteEstoqueByImunobiologico(ibge, filtro, unidade);
                return(Ok(lista));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#19
0
        public ActionResult Excluir([FromHeader] string ibge, [FromRoute] int id) //id_dias_med
        {
            try
            {
                ibge = _config.GetConnectionString(Helpers.Connection.GetConnection(ibge));
                //verifica se ja existem agendamentos
                var itens = _repository.GetConsultasItensByDiasMed(ibge, id);
                if (itens.Where(x => x.id_consultas != null).ToList().Count() != 0)
                {
                    return(BadRequest(TrataErro.GetResponse("Não é possível excluir essa agenda pois já existem pessoas Agendadas! ", true)));
                }

                //exclui TSI_CONSULTAS_ITEM
                _repository.ExcluirConsultasItemByDiasMed(ibge, id);

                //exclui TSI_DIAS_MED
                _repository.ExcluiDiasMed(ibge, id);

                return(Ok());
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#20
0
        public ActionResult <Cidadao> GetCidadaoById([FromHeader] string ibge, [FromRoute] int id)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));

                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";
                }

                Cidadao model = _cidadaoRepository.GetCidadaoById(ibge, id, sql_estrutura);
                return(Ok(model));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#21
0
        public ActionResult <List <Equipe> > GetEquipeByPerfil([FromHeader] string ibge)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));

                var id_usuario = Convert.ToInt32(HttpContext.User.Identities?.FirstOrDefault().Claims.FirstOrDefault()?.Value);
                int?user       = _seguserRepository.GetTipoUsuarioById(ibge, id_usuario);

                string filtro = string.Empty;
                if (user == 3)
                {
                    filtro += $@" WHERE UN.CSI_CODUNI IN (
                                    SELECT PU.ID_UNIDADE
                                    FROM SEG_PERFIL_USUARIO PU
                                    WHERE PU.ID_USUARIO = {id_usuario})";
                }


                List <Equipe> itens = _equipeRepository.GetEquipeByPerfil(ibge, filtro);
                return(Ok(itens));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#22
0
        public ActionResult Editar([FromHeader] string ibge, [FromBody] EntradaVacina model, [FromRoute] int id)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                if (model.EntradaProdutoItem.Count <= 0)
                {
                    throw new Exception("É obrigatória a inclusão de itens!");
                }

                model.id = id;
                _entradaRepository.InsertOrUpdate(ibge, model);

                foreach (var item in model.EntradaProdutoItem)
                {
                    if (item.id == 0 || item.id == null)
                    {
                        item.id = _entradaitemRepository.GetNewId(ibge); //cria novo id para item caso não possua
                    }
                    item.id_entrada_produto = id;
                    _entradaitemRepository.InsertOrUpdate(ibge, item); //grava item
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#23
0
        public ActionResult Editar([FromHeader] string ibge, [FromBody] ProcEnfermagem model, [FromRoute] int csi_controle)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                model.csi_controle = csi_controle;
                _repository.Update(ibge, model);

                foreach (var item in model.itens)
                {
                    item.csi_controle = model.csi_controle;
                    if (item.id_sequencial == null)
                    {
                        item.id_sequencial = _repository.GetNewIdItem(ibge);
                    }
                    _repository.InsertItem(ibge, item);
                }

                return(Ok(model));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#24
0
        public ActionResult Excluir([FromHeader] string ibge, [FromRoute] int id)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));

                var lista = _entradaitemRepository.GetItensEntradaProdutoByIdEntradaProduto(ibge, id);

                foreach (EntradaProdutoItem Item in lista)
                {
                    DateTime DataEntrada = _movRepository.GetDataMovimentoProduto(ibge, $@"PNI_ENTRADA_PRODUTO_ITEM", Item.id);
                    if (_movRepository.GetExisteMovimentoProdutoAposEntrada(ibge, Item.id_produtor, Item.id_produto, Item.lote, DataEntrada))
                    {
                        var response = TrataErro.GetResponse("Esta entrada não pode ser excluída, pois houve movimentação do lote após a entrada.", true);
                        return(BadRequest(response));
                    }
                }

                foreach (EntradaProdutoItem Item in lista)
                {
                    _movRepository.ExcluirMovimentoProdutoById(ibge, Item.id, $@"PNI_ENTRADA_PRODUTO_ITEM");
                    _entradaitemRepository.Delete(ibge, Item.id);
                }

                _entradaRepository.Delete(ibge, id);
                return(Ok());
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#25
0
        [ParameterTypeFilter("visualizar")] //(vAno*12) + Trunc(vMes)
        public ActionResult <List <ProcedimentosConsolidadosViewModel> > GetProcedimentosIndividualizado([FromHeader] string ibge, string cod_cbo, int?ano, int?mes, string sexo, string codpac)

        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                string filtroSIGTAP = string.Empty;
                string filtroESUS   = string.Empty;

                if (!string.IsNullOrWhiteSpace(codpac))
                {
                    filtroSIGTAP = $@" AND (({(ano * 12) + mes} BETWEEN P.IDADE_MIN AND P.IDADE_MAX) OR ((P.IDADE_MIN = 9999) AND (P.IDADE_MAX = 9999)))
                                       AND P.SEXO IN ('{sexo}','I','N')";
                    filtroESUS   = $@" AND (({(ano * 12) + mes} BETWEEN P.IDADE_MIN AND P.IDADE_MAX) OR ((P.IDADE_MIN = 9999) AND (P.IDADE_MAX = 9999)))
                                     AND P.SEXO IN ('{sexo}','I','N')";
                }
                else
                {
                    filtroSIGTAP = $@" AND PR.COD_PADRAO_REGISTRO_BPA = '01'";
                    filtroESUS   = $@" AND PR.COD_PADRAO_REGISTRO_BPA = '01'";
                }

                List <ProcedimentosConsolidadosViewModel> itens = _repository.GetProcedimentosIndividualizado(ibge, cod_cbo, filtroSIGTAP, filtroESUS);
                return(Ok(itens));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#26
0
        public ActionResult Atendimentos([FromHeader] string ibge, [FromRoute] int id_individuo, string quadrimestre, int?ano)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));

                // Filtros
                string quadrimestreFormatted = quadrimestre != null
                   ? quadrimestre.ToString()
                   : "NULL";

                if (ano == null)
                {
                    ano = DateTime.Now.Year;
                }

                var itens = _repository.Atendimentos(ibge, id_individuo, quadrimestreFormatted, (int)ano);

                return(Ok(itens));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#27
0
        public ActionResult <List <Cidade> > GetAllPagination([FromHeader] string ibge, int page,
                                                              int pagesize, string search, string fields)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                string filtro = string.Empty;

                if (!string.IsNullOrWhiteSpace(search))
                {
                    var stringcod = string.Empty;
                    if (Helper.soContemNumeros(search))
                    {
                        stringcod = $" CSI_CODCID = '{search}' OR ";
                    }

                    search  = Helper.RemoveAcentos(search);
                    filtro += $@" WHERE {stringcod}
                                        CSI_NOMCID CONTAINING '{search}'";
                }

                List <Cidade> lista = _cidadeRepository.GetAllPagination(ibge, page, pagesize, filtro);

                return(Ok(lista));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#28
0
        public ActionResult Editar([FromHeader] string ibge, [FromBody] Visita model, [FromRoute] int?id)
        {
            try
            {
                ibge     = _config.GetConnectionString(Connection.GetConnection(ibge));
                model.id = id;
                _repository.UpdateVisita(ibge, model);

                foreach (var item in model.itens)
                {
                    if (item.id != null)
                    {
                        _repository.UpdateColeta(ibge, item);
                    }
                    else
                    {
                        item.id_visita = model.id;
                        item.id        = _repository.GetNewIdColeta(ibge);
                        _repository.InsertColeta(ibge, item);
                    }
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
示例#29
0
 public ActionResult ConfirmaEnvioTranferencia([FromHeader] string ibge, [FromRoute] int id)
 {
     try
     {
         ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
         string unidade  = HttpContext.Request.Headers["unidade"];
         var    EnvioPai = _repository.GetEnvioById(ibge, id);
         var    possuiitemindisponivel = _repository.ValidaEstoqueItensEnvio(ibge, id, Convert.ToInt32(unidade));
         if (possuiitemindisponivel > 0)
         {
             var response = TrataErro.GetResponse("Existem itens com estoque indisponível ou com lote bloqueado.", true);
             return(BadRequest(response));
         }
         else if (EnvioPai.status == 0)
         {
             _repository.UpdateStatusEnviado(ibge, id);
         }
         else
         {
             var response = TrataErro.GetResponse("Esta transferência já foi enviada.", true);
             return(BadRequest(response));
         }
         return(Ok());
     }
     catch (Exception ex)
     {
         var response = TrataErro.GetResponse(ex.Message, true);
         return(StatusCode((int)HttpStatusCode.InternalServerError, response));
     }
 }
示例#30
0
        public ActionResult <Aprazamento> Excluir([FromHeader] string ibge, [FromRoute] int id)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                var permite = _repository.PermiteExcluirAprazamento(ibge, id);

                if (permite)
                {
                    _repository.Delete(ibge, id);
                    return(Ok());
                }
                else
                {
                    var response = new ResponseViewModel();
                    response.message = "O aprazamento não pode ser excluído!";
                    response.erro    = true;
                    return(BadRequest(response));
                }
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }