Пример #1
0
        //[ParameterTypeFilter("visualizar")]
        public async Task <byte[]> ReportMovimento([FromHeader] string ibge, [FromBody] ReportImunobiologicoViewModel report)
        {
            try
            {
                var relatorio = new ReportImunizacaoViewModel();
                relatorio.ibge    = ibge;
                relatorio.unidade = (int)report.unidadelogadaParam;

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

                filtrotexto = $@"Período: {Convert.ToDateTime(report.datainicio).ToString("dd/MM/yyyy")} a {Convert.ToDateTime(report.datafim).ToString("dd/MM/yyyy")} ;";

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

                var info      = _repository.GetBoletimMovimentacao(ibge, report.unidade, report.produto, Convert.ToDateTime(report.datafim), Convert.ToDateTime(report.datainicio));
                var cabecalho = _segrepository.GetCabecalhoPaisagem(ibge, (int)report.unidadelogadaParam);

                relatorio.itensBoletim.AddRange(info);
                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 = GeraReportMovimento(relatorio);

                return(await model);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #2
0
        public async Task <byte[]> GeraReportMovimento(ReportImunizacaoViewModel model)
        {
            var httpContext = new DefaultHttpContext {
                RequestServices = _service
            };
            var actionContext = new ActionContext(httpContext, new RouteData(), new ActionDescriptor());

            var bytePDF = new Rotativa.AspNetCore.ViewAsPdf("Report/Imunobiologico/ReportMovimento", model)
            {
                PageOrientation = Orientation.Landscape,
                PageMargins     = { Top = 8, Right = 8, Bottom = 8, Left = 8 },
                FileName        = string.Concat("ReportMovimento", ".pdf"),
                CustomSwitches  = "--footer-center \"| RG System - Tecnologia em Software! (27) 3150-9770 - www.rgsystem.com.br | Página [page] de [toPage] |\"" + " --footer-font-size \"9\" --footer-font-name \"calibri light\""
            }.BuildFile(actionContext);

            return(await bytePDF);
        }
Пример #3
0
        //[ParameterTypeFilter("visualizar")]
        public async Task <byte[]> ReportImunobiologico([FromHeader] string ibge, [FromBody] ReportImunobiologicoViewModel report)
        {
            try
            {
                var relatorio = new ReportImunizacaoViewModel();
                relatorio.ibge    = ibge;
                relatorio.unidade = (int)report.unidadelogadaParam;

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

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

                filtrotexto = $@"Período: {Convert.ToDateTime(report.datainicio).ToString("dd/MM/yyyy")} a {Convert.ToDateTime(report.datafim).ToString("dd/MM/yyyy")} ;";

                if (report.id_paciente != null && report.id_paciente != 0)
                {
                    filtro      += $" AND V.ID_PACIENTE = {report.id_paciente}";
                    filtrotexto += $" Paciente: {report.nome_paciente} ;";
                }

                if (report.count_unidades == 1)
                {
                    filtrotexto += $" Unidade: {report.nom_unidade}; ";
                }
                else if (report.count_unidades > 1)
                {
                    filtrotexto += $" Várias Unidades Selecionadas; ";
                }

                if (report.count_profissional == 1)
                {
                    filtrotexto += $"Profissional: {report.nom_profissional};";
                }
                else if (report.count_profissional > 1)
                {
                    filtrotexto += $" Vários Profissionais Selecionados; ";
                }

                if (report.count_produto == 1)
                {
                    filtrotexto += $" Produto: {report.nom_produto}; ";
                }
                else if (report.count_produto > 1)
                {
                    filtrotexto += $" Vários Produtos Selecionados; ";
                }

                if (report.count_estrategias == 1)
                {
                    filtrotexto += $" Estratégia: {report.nom_estrategia}; ";
                }
                else if (report.count_estrategias > 1)
                {
                    filtrotexto += $" Várias Estratégias Selecionados; ";
                }

                if (!string.IsNullOrWhiteSpace(report.unidade))
                {
                    filtro += $" AND V.ID_UNIDADE IN ({report.unidade})";
                }

                if (!string.IsNullOrWhiteSpace(report.profissional))
                {
                    filtro += $" AND V.ID_PROFISIONAL IN ({report.profissional})";
                }

                if (!string.IsNullOrWhiteSpace(report.produto))
                {
                    filtro += $" AND V.ID_PRODUTO IN ({report.produto})";
                }

                if (report.gp_atendimento != null && report.gp_atendimento != 0)
                {
                    filtro += $@" AND V.ID_GRUPO_ATENDIMENTO = {report.gp_atendimento}";
                }

                if (!string.IsNullOrWhiteSpace(report.estrategia))
                {
                    filtro += $" AND V.ID_ESTRATEGIA IN ({report.estrategia})";
                }

                if (report.agrupamento == 3)
                {
                    filtro += $@"  ) T1
                                  GROUP BY T1.ID_UNIDADE, T1.UNIDADE, T1.ID_PRODUTO, T1.PRODUTO, T1.ID_DOSE, T1.DOSE
                                  ORDER BY T1.UNIDADE, T1.PRODUTO, T1.DOSE";
                }
                else if (report.agrupamento == 0)
                {
                    filtro += $@" ORDER BY PRODUTO, DOSE, DATA DESC, PACIENTE";
                }
                else if (report.agrupamento == 1)
                {
                    filtro += $@" ORDER BY PACIENTE, DATA DESC ";
                }
                else if (report.agrupamento == 2)
                {
                    filtro += $@" ORDER BY UNIDADE, PRODUTO, DOSE, DATA DESC, PACIENTE ";
                }

                var info = _repository.GetReportImunizacao(ibge, Convert.ToDateTime(report.datainicio), Convert.ToDateTime(report.datafim), filtro, string.Empty);

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

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