public static MemoryStream GerarCheckListRoteiroPdf(int id)
        {
            ChecagemRoteiroDa        _da = new ChecagemRoteiroDa();
            ChecagemRoteiroRelatorio checkListRoteiro = _da.Obter(id);

            return(GerarCheckListRoteiroPdf(checkListRoteiro));
        }
        public static MemoryStream GerarCheckListRoteiroPdf(ChecagemRoteiroRelatorio checkListRoteiro)
        {
            Document     doc = new Document(PageSize.A4, 45, 45, 85, 50);
            MemoryStream str = new MemoryStream();

            PdfWriter wrt = PdfWriter.GetInstance(doc, str);

            wrt.SetEncryption(PdfWriter.STRENGTH128BITS, null, null, PdfWriter.AllowPrinting);

            wrt.PageEvent = CabecalhoRodapeFactory.Criar();

            doc.Open();


            PdfPTable tabelaDocumento = PdfMetodosAuxiliares.CriarTabela(2, new float[] { 20, 80 });

            PdfMetodosAuxiliares.AddTituloData(doc, "Relatório de Pendências de Itens de Roteiro");

            #region CheckList Roteiro

            tabelaDocumento.DefaultCell.Colspan = 2;

            if (checkListRoteiro.Id != 0)
            {
                tabelaDocumento.DefaultCell.BorderWidth = 0;
                tabelaDocumento.AddCell(PdfMetodosAuxiliares.AddCampoValor("Nº da checagem", checkListRoteiro.Id.ToString()));
            }

            tabelaDocumento.DefaultCell.BorderWidth     = 0.5f;
            tabelaDocumento.DefaultCell.BackgroundColor = PdfMetodosAuxiliares.celulaCorPrata;
            tabelaDocumento.AddCell(new Phrase("Interessado", PdfMetodosAuxiliares.arial10Negrito));

            tabelaDocumento.DefaultCell.BackgroundColor = BaseColor.WHITE;
            tabelaDocumento.AddCell(new Phrase(checkListRoteiro.Interessado, PdfMetodosAuxiliares.arial10));

            tabelaDocumento.DefaultCell.BackgroundColor = PdfMetodosAuxiliares.celulaCorPrata;
            tabelaDocumento.AddCell(new Phrase("Roteiro Orientativo", PdfMetodosAuxiliares.arial10Negrito));

            tabelaDocumento.DefaultCell.BackgroundColor = BaseColor.WHITE;
            tabelaDocumento.DefaultCell.Padding         = 0;

            PdfPTable tabelaInterior = PdfMetodosAuxiliares.CriarTabela(2, new float[] { 10, 80 });
            tabelaInterior.DefaultCell.BorderWidth = 0.5f;

            for (int i = 0; i < checkListRoteiro.Roteiros.Count; i++)
            {
                tabelaInterior.AddCell(PdfMetodosAuxiliares.AddCampoValor(" Versão", checkListRoteiro.Roteiros[i].Versao.ToString(), PdfMetodosAuxiliares.arial10, PdfMetodosAuxiliares.arial10));
                tabelaInterior.AddCell(new Phrase(checkListRoteiro.Roteiros[i].Nome, PdfMetodosAuxiliares.arial10));
            }
            tabelaDocumento.AddCell(tabelaInterior);

            //#region Itens

            PdfMetodosAuxiliares.PularLinha(tabelaDocumento);

            tabelaDocumento.AddCell(CarregarItens(checkListRoteiro.Itens.Where(x => x.SituacaoId == 1).ToList(), "Itens Pendentes"));

            PdfMetodosAuxiliares.PularLinha(tabelaDocumento);

            tabelaDocumento.AddCell(CarregarItens(checkListRoteiro.Itens.Where(x => x.SituacaoId == 2).ToList(), "Itens Conferidos"));

            PdfMetodosAuxiliares.PularLinha(tabelaDocumento);

            tabelaDocumento.AddCell(CarregarItens(checkListRoteiro.Itens.Where(x => x.SituacaoId == 3).ToList(), "Itens Dispensados"));

            #endregion

            doc.Add(tabelaDocumento);

            doc.Close();
            doc.Dispose();

            return(str);
        }
예제 #3
0
        internal ChecagemRoteiroRelatorio Obter(int id)
        {
            ChecagemRoteiroRelatorio checagem = new ChecagemRoteiroRelatorio();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                #region Checagem de item de roteiro

                Comando comando = bancoDeDados.CriarComando(@"select c.interessado, ls.id situacao_id, ls.texto situacao_texto, c.tid from tab_checagem c, 
				lov_checagem_situacao ls where c.situacao = ls.id and c.id = :id"                );

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        checagem.Id          = id;
                        checagem.Tid         = reader["tid"].ToString();
                        checagem.Interessado = reader["interessado"].ToString();
                        if (reader["situacao_id"] != null && !Convert.IsDBNull(reader["situacao_id"]))
                        {
                            checagem.Situacao      = Convert.ToInt32(reader["situacao_id"]);
                            checagem.SituacaoTexto = reader["situacao_texto"].ToString();
                        }
                    }
                    reader.Close();
                }

                #endregion

                #region Checagem - Roteiros

                comando = bancoDeDados.CriarComando(@"select r.nome, r.versao from tab_checagem_roteiro c, tab_roteiro r where c.roteiro = r.id and c.checagem = :checagem");

                comando.AdicionarParametroEntrada("checagem", checagem.Id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        RoteiroRelatorio roteiro = new RoteiroRelatorio();

                        roteiro.Nome   = reader["nome"].ToString();
                        roteiro.Versao = Convert.ToInt32(reader["versao"]);

                        checagem.Roteiros.Add(roteiro);
                    }
                    reader.Close();
                }

                #endregion

                #region Checagem - Itens
                comando = bancoDeDados.CriarComando(@"
					select ri.nome, c.situacao, c.motivo, ri.condicionante from tab_checagem_itens c, tab_roteiro_item ri where c.item_id = ri.id and c.checagem = :checagem"                    );

                comando.AdicionarParametroEntrada("checagem", checagem.Id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    ItemRelatorio item;
                    while (reader.Read())
                    {
                        item               = new ItemRelatorio();
                        item.SituacaoId    = Convert.ToInt32(reader["situacao"]);
                        item.Nome          = reader["nome"].ToString();
                        item.Condicionante = reader["condicionante"].ToString();
                        item.Motivo        = reader["motivo"].ToString();
                        checagem.Itens.Add(item);
                    }
                    reader.Close();
                }
                #endregion
            }
            return(checagem);
        }