Exemplo n.º 1
0
        public ActionResult Inserir([FromHeader] string ibge, [FromBody] Ciclo model)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                //valida se existe ciclo com o mesmo período
                var itens = _repository.ValidaExistenciaCicloPeriodo(ibge, model.data_inicial, model.data_final);
                if (itens.Count > 0)
                {
                    return(BadRequest(TrataErro.GetResponse("Já existe um ciclo vigente no período informado.", true)));
                }

                model.id = _repository.GetNewId(ibge);
                _repository.Insert(ibge, model);

                var principal  = HttpContext.User;
                int?id_usuario = null;
                if (principal?.Identities?.FirstOrDefault().Claims != null)
                {
                    id_usuario = Convert.ToInt32(principal?.Identities?.FirstOrDefault().Claims.FirstOrDefault()?.Value);
                }

                var ciclolog = new CicloLog
                {
                    id_ciclo   = model.id,
                    situacao   = model.situacao,
                    id_usuario = model.id_usuario
                };

                _repository.InserirLogCiclo(ibge, ciclolog);

                return(Ok(model));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
Exemplo n.º 2
0
        public async Task <byte[]> ReportAntivetorialAnalitico([FromHeader] string ibge, [FromBody] ReportParamsLevPredialViewModel report)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                var relatorio = new ReportEndemiasViewModel();
                relatorio.ibge        = ibge;
                relatorio.unidade     = (int)report.unidadelogadaParam;
                relatorio.datainicial = report.dataInicial;
                relatorio.datafinal   = report.dataFinal;
                relatorio.ciclo       = _ciclorepository.ValidaExistenciaCicloPeriodo(ibge, report.dataInicial, report.dataFinal).Take(1).FirstOrDefault()?.num_ciclo;

                string filtrotexto = string.Empty;
                string filtro      = string.Empty;

                if (report.dataInicial == null)
                {
                    throw new Exception("A data inicial deve ser informada!");
                }

                if (report.dataFinal == null)
                {
                    throw new Exception("A data final deve ser informada!");
                }

                filtrotexto += $@"Período: {report.dataInicial?.ToString("dd/MM/yyyy")} a {report.dataFinal?.ToString("dd/MM/yy")}";
                filtro      += $@"WHERE CAST(VI.DATA_HORA_ENTRADA AS DATE) BETWEEN '{report.dataInicial?.ToString("dd.MM.yyyy")}' AND '{report.dataFinal?.ToString("dd.MM.yyyy")}'";

                //if (report.tipo == 0)
                filtrotexto += $@", Tipo de Relatório: Analítico;";
                //else
                //    filtrotexto += $@", Tipo de Relatório: Totalizador;";

                if (!string.IsNullOrWhiteSpace(report.profissionais))
                {
                    filtrotexto += $@", Profissionais: {report.nomeProfissional}";
                    filtro      += $@"  AND VI.ID_PROFISSIONAL IN ({report.profissionais})";
                }
                else
                {
                    filtrotexto += $@", Profissionais: TODOS";
                }

                if (!string.IsNullOrWhiteSpace(report.nomeBairro))
                {
                    filtrotexto += $@", Bairro: {report.nomeBairro}";
                    filtro      += $@" AND B.CSI_CODBAI = {report.bairro}";
                }

                var itens = _repository.GetAntivetorialAnatico(ibge, filtro);
                relatorio.AntivetorialAnalitico.AddRange(itens);
                relatorio.impresso_por = $"Relatório emitido por {report.usuarioParam} - {DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss")}";
                relatorio.filtro       = filtrotexto;
                relatorio.cabecalho    = _segrepository.GetCabecalhoPaisagem(ibge, (int)report.unidadelogadaParam);

                var model = GeraReportAntivetorialAnalitico(relatorio);
                return(await model);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }