BrCobranca com BRADESCO e UNIBANCO
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.
Adicionando novos bancos ao BrCobranca
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.
Apenas adicionamos mais uma opção ao case, contendo:
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:
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 ...
brcobranca 2.0.2 agora com Banco Real
Aproveitei algumas poucas horas do feriadão para incluir boletos para o Banco Real.
Para quem estava me solicitando está ai.
Não deixe de atualizar a gem:
gem install brcobranca
ou
sudo gem install brcobanca
Não deixe de conferir o código fonte: http://github.com/kivanio/brcobranca/tree/master
Nem deixe de testar esse novo boleto em http://www.boletorails.com.br/
Está sentindo falta de algum banco? solicite: http://github.com/kivanio/brcobranca/issues
Mias tarde mais novidades...
Boletos com BrCobranca 2.0.0 Turbinado!
Depois de quase 9 meses do seu lançamento, acts_as_payment torna-se gem e ganha nome brcobranca.
A primeira versão do plugin para boletos, veio por completa falta de outros plugins nesta área, o intuito era movimentar a galera para que conversas a respeito acontecessem.
Vejo esta missão como completa, pois após este período, pessoas se interessaram, outros plugins surgiram(kill_bill), fazendo com que a discussão começa-se.
Hoje, quase 9 meses depois do seu lançamento e com sua missão cumprida, este plugin para o rails, torna-se obsoleto com a chegada de sua versão gem,
idependente de frameworks, podendo ser usado com qualquer coisa que fale Ruby.
O acts_as_payment vai ser descontinuado?
Provavelmente sim, pois só serão corrigidos possíveis bugs se alguém que estiver usando a versão antiga solicitar, mas recomendo que quem esteja usando, se atualize.
Por que a mudança do nome?
Simples, quando do lançamento, a idéia era que fosse usado em conjunto com o ActiveRecord do Rails, com alguns métodos para auxiliar a criação do boleto,
porém essa idéia se mostrou pequena perto das possibilidades e de solicitações de algumas pessoas; mesmo em suas versões posteriores o nome já não fazia mais sentido.
Quais as novidades?
A gem ficou independente de frameworks.
Não precisa rodar rake, copiar, imagem, nada, somente usar.
Foram adicionadas novas carteiras ao banco Itaú.
Foi adcionado boleto para o HSBC.
Novos outputs(PDF, JPG, PNG e TIF).
Se você precisar de processamento em lote ou usar RESTFUL, agora é possível.
Foi refatorado completamente.
E em breve mais novidades.
Posso ver sem instalar?
Claro, acesse a página de demonstração.
Legal, posso ver o código?
Certamente, o código da página de demonstração está aqui: http://github.com/kivanio/brcobranca_exemplo/tree/master
Como posso ajudar?
Sempre estamos precisando de ajuda, novos boletos, layout do exemplo, documentação, testes.
Em breve estarei publicando um tutorial que já está pronto sobre como adicionar mais bancos.
Onde acho o codigo da gem?
Também está no github: http://github.com/kivanio/brcobranca/tree/master
Instalação? Documentação?
Aqui tem também: http://brcobranca.rubyforge.org/
Puts, achei um bug e agora?
Informe aqui: http://github.com/kivanio/brcobranca/issues
Obrigado às pessoas que contribuiram com a versão anterior, às que fomentaram as discussões e ao grande mestre Shairon Toledo pelo explêndido rghost e contribuições de código.
Por enquanto é isso, aguardem mais novidades brevemente...
PATH=${PATH}:/usr/local/mysql/bin:/opt/local/bin:/usr/local/bin:/usr/local/sbin:/opt/local/sbin:/opt/local/lib/postgresql83/bin:$PATH
ficando assim:
sudo env ARCHFLAGS='-arch i386' gem install postgres -- --with-pgsql-lib-dir=/opt/local/lib/postgresql83 --with-pgsql-include-dir=/opt/local/include/postgresql83




