예제 #1
0
        public async Task <byte[]> ReportAntivetorialTotalizador([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;

                string filtrotexto        = string.Empty;
                string filtrodata         = string.Empty;
                string filtrobairro       = string.Empty;
                string filtroprofissional = 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")}";
                filtrodata  += $@" CAST(VI.DATA_HORA_ENTRADA AS DATE) BETWEEN '{report.dataInicial?.ToString("dd.MM.yyyy")}' AND '{report.dataFinal?.ToString("dd.MM.yyyy")}' ";

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

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

                //preencher aqui a view model de relatorio com as informações consultadas

                var antivetorialTotalizador         = _repository.GetAntivetorialTotalizador(ibge, filtrodata + filtrobairro, filtrodata + filtrobairro + filtroprofissional);
                var antivetorialTrabalhoCampoTotais = _repository.GetAntivetorialTrabalhoCampoTotais(ibge, filtrodata + filtrobairro + filtroprofissional);
                var antivetorialResumoLab           = _repository.GetAntivetorialResumoLab(ibge, filtrodata + filtrobairro + filtroprofissional, filtrodata + filtrobairro + filtroprofissional);
                var antivetorialInfectados          = _repository.GetAntivetorialInfectados(ibge, filtrodata + filtrobairro + filtroprofissional);

                relatorio.AntivetorialTotalizador  = antivetorialTotalizador;
                relatorio.AntivetorialCamposTotais = antivetorialTrabalhoCampoTotais;
                relatorio.AntivetorialResumoLab.AddRange(antivetorialResumoLab);
                relatorio.AntivetorialInfectados.AddRange(antivetorialInfectados);

                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 = GeraReportAntivetorialTotalizador(relatorio);
                return(await model);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #2
0
        public async Task <byte[]> ReportLevantamentoPredial([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;

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

                if (report.dataInicial != null)
                {
                    filtro      += $@" AND VI.DATA_HORA_ENTRADA >= '{report.dataInicial?.ToString("dd.MM.yyyy")}'";
                    filtrotexto += $@"Entre {report.dataInicial?.ToString("dd/MM/yyyy")} ";
                }

                if (report.dataFinal != null)
                {
                    filtro      += $@" AND VI.DATA_HORA_SAIDA <= '{report.dataFinal?.ToString("dd.MM.yyyy")}'";
                    filtrotexto += $@"e {report.dataFinal?.ToString("dd/MM/yyyy")} .";
                }

                if (!string.IsNullOrWhiteSpace(report.bairro))
                {
                    filtro += $@" AND B.CSI_CODBAI IN({report.bairro})";
                }

                var itens = _repository.GetInfestacaoPredialReport(ibge, filtro);
                relatorio.itens.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);

                //if (itens.Count == 0)
                //    return BadRequest(TrataErro.GetResponse("Não foram encontrados registros!", true));
                //return BadRequest(TrataErro.GetResponse("Existem doses desse Lote que já foram retiradas do Estoque. Não é possível editar o Lote.", true));

                var model = GeraReportLevantamentoPredial(relatorio, (int)report.tipo);
                return(await model);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #3
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;
            }
        }