Exemple #1
0
        private PDFInformeRendimentos GerarPDF(HeaderInfoRendEntidade informe, string CD_SISTEMA = null)
        {
            dynamic relatorio;

            if (informe.ANO_CALENDARIO >= InformeRendimentosExtensoes.ANO_CALENDARIO_MODELO_NOVO)
            {
                relatorio = new Relatorio.InformeRendimentos2();
                relatorio.GerarRelatorio(informe, CD_SISTEMA);
            }
            else
            {
                relatorio = new Relatorio.InformeRendimentos();
                relatorio.GerarRelatorio(informe, CD_SISTEMA);
            }

            using (MemoryStream ms = new MemoryStream())
            {
                relatorio.ExportToPdf(ms);

                // Clona stream pois o método ExportToPdf fecha a atual
                var pdfStream = new MemoryStream();
                pdfStream.Write(ms.ToArray(), 0, ms.ToArray().Length);
                pdfStream.Position = 0;

                var filename = $"Informe de Rendimentos - {informe.ANO_CALENDARIO}.pdf";

                return(new PDFInformeRendimentos()
                {
                    FileName = filename,
                    PdfStream = pdfStream
                });
            }
        }
Exemple #2
0
        public static void MontarGrupos(this HeaderInfoRendEntidade informe)
        {
            informe.Grupos = new List <InfoRendGrupoEntidade>();

            var anoCalendario = informe.ANO_CALENDARIO;

            var infoRend = anoCalendario >= ANO_CALENDARIO_MODELO_NOVO ?
                           new InfoRendProxy().BuscarPorOidHeaderAno2022(informe.OID_HEADER_INFO_REND) :
                           new InfoRendProxy().BuscarPorOidHeader(informe.OID_HEADER_INFO_REND);

            infoRend
            .GroupBy(x => new { x.COD_GRUPO, x.DES_GRUPO })
            .ToList()
            .ForEach(item =>
            {
                var grupo = new InfoRendGrupoEntidade
                {
                    COD_GRUPO = item.Key.COD_GRUPO,
                    DES_GRUPO = item.Key.DES_GRUPO,
                    Itens     = item.ToList()
                };

                grupo.Itens.ForEach(grupoItem =>
                {
                    if (!string.IsNullOrEmpty(grupoItem.TXT_QUADRO))
                    {
                        grupoItem.DES_INFO_REND = grupoItem.TXT_QUADRO;
                    }
                    else if (anoCalendario >= ANO_CALENDARIO_MODELO_NOVO)
                    {
                        grupoItem.DES_INFO_REND = DicionariosInfoRendAno2022.Linhas.SingleOrDefault(x => x.Key == grupoItem.COD_LINHA).Value;
                    }
                    else
                    {
                        grupoItem.DES_INFO_REND = DicionariosInfoRend.Linhas.SingleOrDefault(x => x.Key == grupoItem.COD_LINHA).Value;
                    }
                });

                grupo.Itens = grupo.Itens.OrderBy(x => x.COD_LINHA).ToList();

                informe.Grupos.Add(grupo);
            });

            informe.Grupos = informe.Grupos.OrderBy(x => x.COD_GRUPO).ToList();
        }