Fork me on GitHub Fork me on GitHub

Blog do Kiva

As aventuras de um tal Kivanio na TI

Rails for Kids 2009

 A versão 2.0.6 do Brcobranca está disponível!

 

Desta vez com a colaboração do Diego Lucena,

o banco Santander Banespa passa a fazer parte das opções.

Com isso temos 7 bancos cobertos pela gem!

 

Como sempre, não deixem de testar em:  http://www.boletorails.com.br

 

A nova versão conta ainda com algumas mudanças:

Os testes agora estão em rspec, o test/unit foi removido por completo.

O Rcov está acusando 99.6% de cobertura.

 

É isso galera, até a próxima!
 

  Gostou?

  Recomende-nos no workingwithrails.com

 

 

Continuar lendo...
0 comentários. Comente este artigo.

Rails for Kids 2009

10/08/2009

O site do Rails for Kids 2009 foi lançado este fim semana,

não deixem de conferir as super palestras do evento.

 

Em seu terceiro ano, o evento conta com 12 palestras de alto nível!

 

NÃO deixe de fazer sua contribuição!

NOS ajude a divulgar

Pegue já o seu banner!

 

Aguardo vocês lá! 

 

Rails for Kids 2009 - Transformando o virtual em real!

Continuar lendo...
0 comentários. Comente este artigo.

 Essa versão é somente para atualizar algumas dependências além de alguns testes disponibilizados pelo Shairon.

Precisamos fazer isso, devido a um problema no host onde está aplicação de exemplo.

Pois deu na telha do Host, colocar duas versões diferentes do GhostScript na mesma máquina, é mole?

 

Continuar lendo...
0 comentários. Comente este artigo.

BrCobranca 2.0.3 agora conta com boletos para Bradesco e Unibanco.

 

Não deixe novamente de ver os fontes: http://github.com/kivanio/brcobranca/tree/master

Nossa aplicação de exemplo: http://www.boletorails.com.br/ e seus fontes http://github.com/kivanio/brcobranca_exemplo/tree/master

Querendo mais Bancos? Ajude-nos! Saiba como neste post: Adicionando novos bancos ao BrCobranca.

Continuar lendo...
2 comentários. Comente este artigo.

Incluir novos bancos no BrCobranca é mais fácil do que você possa imaginar.

A estrutura criada permite que para a 90% dos bancos, você necessite apenas criar um arquivo, sobreescrever um método e alterar outro, este último, apenas para que o logotipo do banco fique disponível.

Não abordarei o uso do GIT, GITHUB ou qualquer outra ferramenta neste tutorial, materiais a respeito destes temas você encontra aos montes em uma rápida busca no google. Boas referências no post do Akita.

Irei assumir a partir de agora que você baixou os fontes do BrCobranca, independente se foi por GIT, se clonou o repositório no GITHUB ou fez download, o que nos interessa agora é que você tenha os fontes em algum lugar no seu computador e um editor preferido para brincar com os códigos.

Estamos querendo adicionar o banco Bradesco ao BrCobranca a partir de agora, OK?

Estrutura do BrCobranca:  

   

Disponibilizando a logo do Banco.  

Dentro da pasta "lib/brcobranca" encontraremos a pasta "arquivos", que é onde fica os arquivos de logotipos e templates.

Necessitaremos encontrar a logo do Brasdesco e colocá-la nesta pasta "logos" para podermos usar dentro do template.

Um bom local que sempre serve de referência para logotipos e documentações é o site http://phpboleto.com.br/ outro projeto bastante conhecido no mundo PHP, e no qual nos espelhamos no começo.  

Vejam na imagem que eu já havia copiado a logotipo para a pasta "logos".

Após isso, precisamos informar ao template que temos uma nova logo disponível, faremos isso alterando o método "monta_logo" dentro do arquivo "lib/brcobranca/boleto/template/util.rb", este arquivo contém métodos auxiliares do template, usados na montagem do boleto em tempo real.

 

def monta_logo
          case self.class.to_s
          when "BancoBrasil"
            imagem = 'bb.jpg'
          when "BancoItau"
            imagem = 'itau.jpg'
          when "BancoHsbc"
            imagem = 'hsbc.jpg'
          when "BancoReal"
            imagem = 'real.jpg'
          when "BancoBradesco"
            imagem = 'bradesco.jpg'
          else
            return false
          end
          File.join(File.dirname(__FILE__),'..','..','arquivos','logos',imagem)
end

 

Apenas adicionamos mais uma opção ao case, contendo:

 

          when "BancoBradesco" #Nome da classe do banco
            imagem = 'bradesco.jpg'  #Nome do arquivo da logo

 

O próximo passo será criar a classe do nosso novo banco.  

Criando a classe do Banco  

Criaremos essa classe dentro da pasta "/lib/brcobranca/boleto", mantenha o padrão de nomenclatura(banco_ + nome do banco) e adicione, ficando "banco_bradesco.rb".  

Dentro deste arquivo criaremos uma classe BancoBradesco(Este nome é o que vai lá no "monta_logo", lembra?) herdando da classe "Base" da nossa gem:

 

class BancoBradesco < Brcobranca::Boleto::Base
 
end

 

Um pouco de "sabedoria"


A classe "Base" contém todos os métodos especificados pelo BACEN, e portanto você não precisa alterá-los ou se preocupar com isso.

Todos os bancos devem e respeitam os padrões impostos pelo BACEN, com exceção de alguns poucos que inventam cálculos estranhos, você não terá muitos problemas.   O BACEN estipulou métodos padrões para cálculos de dígitos verificadores, o formato do código de barras, o formato da linha digitável e o formato do bloqueto impresso.  

Todos estes métodos você pode conferir no arquivo "/lib/brcobranca/core_ext.rb".  

Como já foi mencionado alguns bancos engraçadinhos, criam ou extendem alguns destes métodos para usarem em momentos específicos, mais precisamente na hora de mostrar as informações no bloqueto impresso, estas alterações, não podem e não devem fazer efeito nos padrões do BACEN, portanto, não se preocupe muito com isso,  a não ser que algum destes métodos seja usado na montagem do código de barras, na parte em que cada banco pode fazer o quer. Puts complicou?  

Vamos lá, o código de barra para cobrança contém 44 posições dispostas da seguinte forma segundo o BACEN:  

 

Todos os bancos devem usar este layout, isso porque esse layout é usado na montagem da linha digitável, que também é padrão para todos os bancos.  

As posições do campo livre(20 a 44) ficam a critério de cada banco arrecadador. Lembra ali em cima quando eu disse "na parte em que cada banco pode fazer o quer"? Era dessa parte que eu estava falando, é aqui onde a mágica acontece, e cada banco define como quer o que vai nestas posições, geralmente é aqui que o banco pôe seu portifólio de carteiras, agência e conta corrente, eles usam esse campo para identificar internamente no banco, que tipo de cobrança está sendo feito, e principalmente, de quem é o dinheiro.  

No caso do Bradesco, eles facilitaram muito para nós, e criaram um padrão também para este campo, veja:  

   

O que implica em dizer que a única coisa que mudará nessa parte é o tipo de cobrança a ser feito, ou seja, que carteira utilizar. Muito prático para todos.  

Você pode ...

Continuar lendo...
0 comentários. Comente este artigo.