Aluno: Misael Barreto de Queiroz Orientadora: Cláudia Ribeiro BOPEPO

Slides:



Advertisements
Apresentações semelhantes
Rational Unified Process
Advertisements

Material didático para EaD
Cobrança Registrada / Cobrança Não Registrada
CNAB.
Código do Boleto Bancário
Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de.
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
Portal de Periódicos CAPES
Cobrança Registrada e Cobrança Não Registrada
Questionário de Avaliação Institucional
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Classes e objetos Modelagem
Classes e objetos P. O. O. Prof. Grace.
Group Shopping On-line
Timken Store Brasil Denis Guimarães.
Instalação e Configuração
CARTÃO CORPORATIVO CREDICARD.
x Indique a opção incorreta, quanto ao cheque:
COMO REALIZAR UMA REEMISSÃO GOL:
Aluno: Mário Monteiro Orientador: Sérgio Soares 1.
Conteúdos do tutorial O que é um Slide Mestre?
Programa de Enriquecimento da Merenda Escolar
SACADO Cobrança Caixa Instalação Cadastramento inicial Parâmetros Inicio Fim Acesso ao sistema Responsáveis Grupos de sacados Sacados Títulos Relatórios.
Ministério Público do Mato Grosso do Sul
Sistemas Operacionais
CNAB.
Extranet GRD – Guia de Remessa de Documentos
Financeiro – Boleto: Remessa e Retorno
APRESENTAÇÃO DO SOFTWARE
Tarefa 02 Visual Studio 2005 Visual C# Programa Hello World.
Entrada de Produtos Posto de Combustível.
1- Acessar o site: 2- Realizar o cadastro.
APRESENTAÇÃO DO SOFTWARE
Projeto de Banco de Dados
ACESSE: Acesse o site do SENAI e clique no link “Trabalhe Conosco”, em seguida clicar em CANDIDATE-SE.
Seja bem-vindo!. SUMÁRIO Cadastro do projeto pedagógico Cadastro.
Moodle Manual de Utilização Plataforma de Ensino a Distância
Computação Gráfica Aula 3 Transformações Geométricas
Professor: Márcio Amador
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
Luiz Antonio Torres, Maio/2014
EBSCOhost Pesquisa avançada.
SACADO CobCaixa Instalação Cadastramento inicial Parâmetros Inicio Fim Acesso ao sistema Usuários Sacados Grupos de Sacados Títulos Relatórios Relatório.
Professor: Michel Fabiano
FORMATANDO O TRABALHO NO WORD 2007
2015.
Alunos: Ana Carolina Carla Hanelore Juliana Ronaldo Tatiane
SIT – T9 Tecnologias e Ferramentas para Garantir a Segurança
SIT – T9 Tecnologias e Ferramentas para Garantir a Segurança Marcio Luiz Angeli.
CAMPANHA DE RECUPERAÇÃO DE CRÉDITO EXTRAJUDICIAL
TSO-Technical System Operation1 Gerenciamento Eletrônico de Documentos Boleto Bancário.
Cadastro de Contas a Pagar
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
Planilha Eletrônica - Excel
Financeiro – Contas a Receber
Financeiro - Tenha maior controle e gestão de sua clínica
Fator de vencimiento da Cobrança.
Inteligência Artificial Web Semântica
Cobrança Registrada / Cobrança Não Registrada
Financeiro – Boleto: Remessa e Retorno
EQUIPE AGLAIA P. SANTANA LILIAN L. MORAES LUCIANE M. MARQUES.
CNAB – CNR Andréia M. Sanson Corat Jorge Orlando Schenfeld
© 2007 by Pearson Education ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 1 Reuso de Software.
SACADO Instalação Cadastramento inicial Parâmetros Início Fim Acesso ao sistema Responsáveis Grupos de sacados Sacados Títulos Relatórios Relatório de.
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Microsoft Excel.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
Desenvolvimento WEB II Ajax – Utilização de Frameworks Javascript Professora: Kelly de Paula Cunha.
Financeiro - Boleto : Remessa e Retorno
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Transcrição da apresentação:

Desenvolvimento de componente para geração de boletos bancários personalizável e extensível Aluno: Misael Barreto de Queiroz Orientadora: Cláudia Ribeiro BOPEPO CEFET-RN Departamento Acadêmico de Informática Tecnologia em Desenvolvimento de Software

Sumário Motivação Boleto bancário O componente BOPEPO Trabalhos futuros Bibliografia Agradecimentos

Motivação Poucas soluções disponíveis Gratuita em JAVA apenas uma - JBoleto. JBoleto - Expectativas não atendidas, devido a(o): Documentação escassa; Design de classes não flexível, impedindo reusabilidade; Não possibilidade de personalizar o layout do boleto; Não possibilidade de estender a funcionalidade do componente.

Motivação O que é personalizar layout? É adaptar o conteúdo do boleto às necessidades do seu emissor; Com Bopepo, o usuário a “mão-livre” pode: Definir imagens; Definir texto; Alterar a disposição das informações; Adicionar novas informações, sejam elas estáticas ou dinâmicas.

Motivação O que é estender a funcionalidade? É o recurso que permite ao usuário utilizar o componente mesmo nos casos em que o banco e/ou campo livre de determinado banco não sejam suportados; Bastante útil considerando que o universo de bancos e suas regras para confecção de boletos é bastante vasto e crescente.

Boleto bancário Trata-se de um documento que representa um título de cobrança. Título de cobrança pode ser do tipo: duplicata, nota promissória, recibo, bilhete, nota de seguro ente outros. Sua confecção deve seguir as instruções impostas pela FEBRABAN.

Boleto bancário Basicamente, para que possam ser realizadas cobranças através de boletos três elementos são necessários: Banco: responsável pela cobrança; Cedente: emissor da cobrança(boleto), ou seja, aquele que irá receber a quantia cobrada; Sacado: aquele que paga o boleto;

Boleto bancário O boleto é dividido em duas partes: Recibo do sacado Ficha de compensação

Boleto bancário (Recibo do sacado) É o comprovante de pagamento; O layout é de responsabilidade do cedente, contudo alguns campos são obrigatórios: Nome do cedente; Agência / Código do cedente; Valor do título; Vencimento; Nosso número; Nome do sacado. Os campos obrigatórios também devem constar na ficha de compensação.

Boleto bancário (Ficha de compensação) Parte do boleto que fica em poder do banco quando o boleto é pago, para que seja encaminhada para a compensação bancária. Dimensões pré-definidas pela FEBRABAN; Subdividida em 3 partes: Parte superior; Quadro de Impressão; Parte inferior;

Boleto bancário (Ficha de compensação) Parte superior Nome do banco ou logotipo; Código de compensação do banco e o seu dígito verificador; Linha digitável. Quadro de Impressão: Deve conter diversos campos, tendo como campos de preenchimento obrigatório: Local de pagamento; Data de vencimento; Cedente (nome); Agência / Código do cedente; Data do processamento; Nosso número; Valor do documento; Sacado (nome e endereço completo). Parte inferior Código de barras; Campo destinado à autenticação mecânica.

Boleto bancário (Código de barras) Tipo: O código de barras deve ser do tipo "2 de 5" intercalado, que significa que 5 barras definem 1 caractere, sendo que duas delas são barras largas. O termo "intercalado" significa que os espaços entre as barras também têm significado, de maneira análoga às barras. A distância mínima entre a margem inferior e o centro do código de barras deve ser de 12mm. Dimensões: O código de barras deve ter altura de 13mm. De acordo com o padrão “2 de 5” o código de barras deve apresentar a largura de 103mm, pois essa é a dimensão que os equipamentos dos bancos estão calibrados para efetuar a leitura. Zona de silêncio: É o espaço entre a margem esquerda do boleto e o início da impressão do código de barras, que deve ser de 5mm. O código de barras é composto, no seu lado esquerdo, por “barras de start”, que indicam para o sistema que ali se inicia a leitura e, no seu final, por “barras de stop”, indicando o final da leitura.

Boleto bancário (Código de barras) Composição Posição Tamanho Conteúdo 01-03 3 Identificação do banco 04-04 1 Código da moeda (9-Real) 05-05 Dígito verificador do código de barras(DV) 06-09 4 Fator de vencimento 10-19 10 Valor nominal do título 20-44 25 Campo livre Utilizado de acordo com a especificação interna do banco emissor.

Boleto bancário (Código de barras) Composição Campo livre Contém informações sobre o cedente, para que a instituição financeira possa transferir para ele, de forma correta o valor pago pelo sacado. Sua composição varia de banco para banco, logo se faz necessário entrar em contato com cada banco para obter os manuais de instrução.

Boleto bancário (Código de barras) Composição Campo livre (exemplo) Posição Tamanho Conteúdo 20-23 4 Código da agência (sem dígito) 24-25 2 Código da carteira 26-36 11 Nosso número (sem dígito) 37-43 7 Conta do cedente (sem dígito) 44-44 1 Zero fixo

Boleto bancário (Linha digitável) Representa o mesmo conteúdo do código de barras, dispostos em outra ordem e acrescidos de dígitos verificadores; Deve ser utilizada quando da impossibilidade da captura do código de barras.

Boleto bancário (Linha digitável) Composição Campo Posição Tamanho Conteúdo 1º 01-03 3 Identificação do banco (posições 1 a 3 do código de barras) 04-04 1 Código de moeda (9 - Real) (posição 4 do código de barras) 05-09 5 1ª a 5ª posições do campo livre (posições 20 a 24 do código de barras) 10-10 Dígito verificador do primeiro campo 2º 11-20 10 6ª a 15ª posições do campo livre (posições 25 a 34 do código de barras) 21-21 Dígito verificador do segundo campo 3º 22-31 16ª a 25ª posições do campo livre (posições 35 a 44 do código de barras) 32-32 Dígito verificador do terceiro campo 4º 33-33 Dígito verificador geral (posição 5 do código de barras) 5º 34-37 4 Fator de vencimento (posições 6 a 9 do código de barras) 38-47 Valor nominal do título(posições 10 a 19 do código de barras)

O componente BOPEPO (O que é?) Biblioteca Java, livre e de código-aberto; Gera boletos bancários, tornando transparente para o usuário toda a complexidade exigida para isso, como por exemplo a geração do código de barras, linha digitável, entre outros aspectos, de acordo com as especificações definidas pela FEBRABAN (Federação Brasileira de Bancos).

O componente BOPEPO (O que é?) Permite ao usuário personalizar o layout do boleto bancário, a mão livre. Definir imagens; Definir texto; Alterar a disposição das informações; Adicionar novas informações, sejam elas estáticas ou dinâmicas.

O componente BOPEPO (O que é?) Permite ao usuário estender a funcionalidade do componente. Fornecer informações sobre bancos ainda não suportados; Fornecer informações sobre a composição de campos livre ainda não suportados.

O componente BOPEPO (Requisitos) Gerar boletos;

O componente BOPEPO (Requisitos) Gerar boletos personalizados.

O componente BOPEPO (Requisitos) Gerar boletos para banco e/ou campo livre não suportado.

O componente BOPEPO (Como gerar boletos?) Para gerar um boleto se faz necessário informar: O cedente, não esquecendo de informar a sua conta bancária. O sacado. O sacador avalista (opcional). Dados gerais do título como data de vencimento, valor, nosso número. Dados gerais do boleto, como local de pagamento e instruções. Vamos gerar um boleto?

O componente BOPEPO (Como gerar boletos personalizados?) Entendendo o mecanismo; Personalizando um template de boleto; Gerando um boleto personalizado.

O componente BOPEPO (Como gerar boletos personalizados?) Entendendo o mecanismo.

O componente BOPEPO (Como gerar boletos personalizados?) Personalizando um boleto.

O componente BOPEPO (Como estender a funcionalidade?) Vamos gerar um boleto personalizado?

O componente BOPEPO (Como estender a funcionalidade?) Suportar novo banco; Suportar novo campo livre.

O componente BOPEPO (Como estender a funcionalidade?) Suportar novo banco - O usuário terá que fornecer ao componente uma implementação que siga a interface IBanco. Opções: Instanciar um objeto Banco e configurá-lo; Criar uma classe que herda da classe Banco; Criar uma classe que implementa a interface IBanco. Obs: Se o banco não é suportado, então obrigatoriamente uma implementação de campo livre deverá ser realizada.

O componente BOPEPO (Como estender a funcionalidade?) Suportar novo banco

O componente BOPEPO (Como estender a funcionalidade?) Suportar novo campo livre - O usuário terá de fornecer ao componente uma implementalçao da interface ICampoLivre, e implementar obrigatoriamente o método write(). Esse método write() tem como objetivo retornar uma texto de vinte e cinco caracteres, que nada mais é do que o campo livre, parte integrante do código de barras e a linha digitável do boleto.

O componente BOPEPO (Como estender a funcionalidade?) Suportar novo campo livre – Banco “X’ Posição Tamanho Conteúdo 20-26 7 Código da conta do cedente (sem dígito) 27-39 13 Nosso numero (sem dígito) 40-43 4 Código da agencia do cedente (sem dígito) 44-44 Zero Fixo

O componente BOPEPO (Como estender a funcionalidade?) Suportar novo campo livre – Banco “X’

O componente BOPEPO (Como estender a funcionalidade?) Vamos a prática?

O componente BOPEPO (Integrando a uma aplicação) Independente de arquitetura, seja ela N-Camadas (como JEE), Monolítica, Plugins etc; GUI pode ser tanto Web ou Desktop; Tecnologia PDF – Única dependência até o momento.

O componente BOPEPO (Sobre o componente) Gratuito e de código-aberto. Disponível no site do Projeto JRimum Estão disponíveis tutoriais, vídeos-tutoriais e toda uma gama de informações com o objetivo de ensinar o usuário a: Utilizar o componente; Contribuir com o projeto de várias formas, dentre elas tornando-se um desenvolvedor.

O componente BOPEPO (Sobre o Projeto JRimum) O Projeto JRimum é fruto da iniciativa conjunta entre o Grupo JRimum e a empresa Nordeste Fomento Mercantil; Tem por objetivo a criação de componentes reutilizáveis Java com foco no domínio de negócios do Brasil; Bopepo é um sub-projeto e o primeiro componente disponibilizado; O grupo JRimum é composto atualmente pelo seus fundadores, Gilmar P. S. Leitão, Misael Barreto e Rômulo Augusto, e também por novos adeptos, como por exemplo Samuel Valério e Michel Medeiros, ambos analistas de sistema do TJ-RN

O componente BOPEPO (Sobre o Projeto JRimum) A Nordeste Fomento Mercantil é uma empresa que presta serviços relacionados a cessão de crédito para pequenas e médias empresas da economia potiguar. A empresa apóia o projeto e emite seus boletos bancários utilizando o componente Bopepo.

Trabalhos futuros Refatoração e inserção de padrões de projeto; Implementar novas formas de visualização do boleto bancário, como por exemplo, nos formatos XML, HTML, JPG e PNG; Entrada de dados via XML, CVS entre outros, para gerar o boleto; Ferramenta para montar o layout; Implementar Java Internacionalização, para as mensagens de erro; Desenvolver um mecanismo XML através do qual aplicações escritas em diferentes linguagens possam utilizar o componente Bopepo para gerar boletos bancários, visando desta forma interoperabilidade;

Bibliografia FEDERAÇÃO BRASILEIRA DE BANCOS. Manual técnico operacional: bloquetos de cobrança. [S.l. : s.n.], [199?]. GUERREIRO, Marcelo. BrOffice substitui bem o Office, da Microsoft. São Paulo: O Estado de São Paulo, 2008. Disponível em: <http://www.link.estadao.com.br/index.cfm?id_conteudo=13996> Acesso em: 25 jun. 2008. LOWAGIE, B.; SOARES, P. iText homepage: project description. Disponível em: <http://www.lowagie.com/iText/> Acesso em: 25 jun. 2008. LOZANO, F. Frameworks de logging: primeiros passos com Commons Logging e Log4j. Java Mazagine, Rio de Janeiro, ano 4, n. 35, p.24-35, 2006. OLIVEIRA, E. C. M. Log4J: framework open source java de logging. [S.l. : s.n.], 2005. Disponível em: <http://www.linhadecodigo.com.br/Artigo.aspx?id=824> Acesso em: 25 jun. 2008. SZYPERSKI, Clemens. Component software: beyond object-oriented programming. [S.l]: Addison-Wesley, 1998.

Agradecimentos Ao Senhor Jesus, por tudo o que ele tem oferecido em minha vida. À minha família, por todo o apoio dado durante a minha vida. As empresas nas quais trabalhei (UNP, TCU, Infothec e Activesoft). E empresa Nordeste Fomento Mercantil, por todo o suporte dado ao desenvolvimento deste projeto. Aos meus companheiros do Projeto JRimum. Aos meus colegas do IF-RN, por todos os momentos que passamos juntos, pela troca de conhecimentos e experiências. A instituição IF-RN e aos seus professores, pelo ensino, aprendizado e pelo amadurecimento que obtive durante a minha estadia no curso. À minha orientadora Cláudia e aos professores Minora e Valentim.

Agradecimentos FIM 