예제 #1
0
        public MemoryStream Gerar(Int32 id)
        {
            EntregaRelatorio entrega = _da.Obter(id);

            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(entrega.ProtocoloSetorCriacao);

            doc.Open();

            PdfMetodosAuxiliares.PularLinha(doc);
            PdfMetodosAuxiliares.PularLinha(doc);

            PdfPTable tabela = PdfMetodosAuxiliares.CriarTabela();

            tabela.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
            tabela.DefaultCell.Border = 0;
            tabela.AddCell(new Phrase(new Chunk("Registro de Entrega de Título", PdfMetodosAuxiliares.arial16Negrito)));
            doc.Add(tabela);


            PdfMetodosAuxiliares.PularLinha(doc);
            PdfMetodosAuxiliares.PularLinha(doc);

            tabela = PdfMetodosAuxiliares.CriarTabela();
            tabela.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT;
            tabela.DefaultCell.Border = 0;

            Phrase frase = PdfMetodosAuxiliares.AddTexto("Nesta data foram retirados os seguintes títulos referentes ao ", PdfMetodosAuxiliares.arial10);

            frase.Add(new Chunk(entrega.ProtocoloTipo + " " + entrega.ProtocoloNumero + ":", PdfMetodosAuxiliares.arial10Negrito));
            tabela.AddCell(frase);

            doc.Add(tabela);

            tabela = PdfMetodosAuxiliares.CriarTabela(2, new float[] { 20, 80 });
            tabela.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT;

            PdfMetodosAuxiliares.AddCabecarioTabela(tabela, "Número");
            PdfMetodosAuxiliares.AddCabecarioTabela(tabela, "Modelo");

            foreach (var titulo in entrega.Titulos)
            {
                tabela.AddCell(PdfMetodosAuxiliares.AddTexto(titulo.Numero, PdfMetodosAuxiliares.arial10));
                tabela.AddCell(PdfMetodosAuxiliares.AddTexto(titulo.Modelo, PdfMetodosAuxiliares.arial10));
            }

            doc.Add(tabela);

            PdfMetodosAuxiliares.PularLinha(doc);
            PdfMetodosAuxiliares.PularLinha(doc);
            PdfMetodosAuxiliares.PularLinha(doc);

            tabela = PdfMetodosAuxiliares.CriarTabela();
            tabela.DefaultCell.Border = 0;

            tabela.AddCell(PdfMetodosAuxiliares.AddTexto(PdfMetodosAuxiliares.AssinaturaCampo, PdfMetodosAuxiliares.arial10));
            tabela.AddCell(PdfMetodosAuxiliares.AddTexto("Nome: " + entrega.Nome, PdfMetodosAuxiliares.arial10));
            tabela.AddCell(PdfMetodosAuxiliares.AddTexto("CPF: " + entrega.CPF, PdfMetodosAuxiliares.arial10));

            doc.Add(tabela);

            PdfMetodosAuxiliares.PularLinha(doc);
            PdfMetodosAuxiliares.PularLinha(doc);
            PdfMetodosAuxiliares.PularLinha(doc);

            tabela = PdfMetodosAuxiliares.CriarTabela();
            tabela.DefaultCell.HorizontalAlignment = Element.ALIGN_RIGHT;
            tabela.DefaultCell.Border = 0;

            tabela.AddCell(PdfMetodosAuxiliares.AdicionarLocalDataEmissao(entrega.LocalEntrega, entrega.DataEntrega));

            doc.Add(tabela);

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

            return(str);
        }
        internal EntregaRelatorio Obter(int id, BancoDeDados banco = null)
        {
            EntregaRelatorio entrega = new EntregaRelatorio();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Entrega de Título

                Comando comando = bancoDeDados.CriarComando(@"select e.id, lp.texto protocolo_tipo, p.id protocolo_id, 
				p.setor_criacao, p.numero||'/'||p.ano protocolo_numero, nvl(pe.nome, e.nome) nome, nvl(pe.cpf,e.cpf) cpf, e.data_entrega, e.tid, (select lm.texto||' - '||le.sigla 
				from {0}tab_setor_endereco t, {0}lov_municipio lm, {0}lov_estado le where t.municipio = lm.id and lm.estado = le.id  and t.setor = p.setor_criacao) local_entrega 
				from {0}tab_titulo_entrega e, {0}tab_pessoa pe, {0}tab_protocolo p, {0}lov_protocolo lp where e.pessoa = pe.id(+) and e.protocolo = p.id and p.protocolo = lp.id 
				and e.id = :id"                , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        entrega.Nome                  = reader["nome"].ToString();
                        entrega.CPF                   = reader["cpf"].ToString();
                        entrega.DataEntrega           = Convert.ToDateTime(reader["data_entrega"]);
                        entrega.ProtocoloTipo         = reader["protocolo_tipo"].ToString();
                        entrega.ProtocoloNumero       = reader["protocolo_numero"].ToString();
                        entrega.ProtocoloSetorCriacao = Convert.ToInt32(reader["setor_criacao"]);
                        entrega.LocalEntrega          = reader["local_entrega"].ToString();
                    }

                    reader.Close();
                }

                #endregion

                #region Títulos

                comando = bancoDeDados.CriarComando(@"select tn.numero|| '/' ||tn.ano numero, m.nome modelo_nome from {0}tab_titulo_entrega_titulos te, {0}tab_titulo t, 
				{0}tab_titulo_numero tn, {0}tab_titulo_modelo m where t.modelo = m.id and te.titulo = t.id and t.id = tn.titulo and te.entrega = :entrega"                , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    TituloRelatorio titulo;

                    while (reader.Read())
                    {
                        titulo        = new TituloRelatorio();
                        titulo.Numero = reader["numero"].ToString();
                        titulo.Modelo = reader["modelo_nome"].ToString();
                        entrega.Titulos.Add(titulo);
                    }

                    reader.Close();
                }

                #endregion
            }

            return(entrega);
        }