620 likes | 775 Views
Desenvolvimento de componente para geração de boletos bancários personalizável e extensível. Aluno: Misael Barreto de Queiroz Orientadora: Cláudia Ribeiro. CEFET-RN Departamento Acadêmico de Informática Tecnologia em Desenvolvimento de Software. BOPEPO. Sumário. Motivação
E N D
Desenvolvimento de componente para geração de boletos bancários personalizável e extensível Aluno: Misael Barreto de Queiroz Orientadora: Cláudia Ribeiro CEFET-RN Departamento Acadêmico de Informática Tecnologia em Desenvolvimento de Software BOPEPO
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
Boleto bancário(Código de barras) • 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. Composição
Boleto bancário(Código de barras) • Campo livre (exemplo) Composição
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
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’
O componente BOPEPO(Como estender a funcionalidade?) • Suportar novo campo livre – Banco “X’