Gerando boletos com Rails
03/12/06
Como não vi ninguém falando nada sobre o assunto, e provavelmente vou precisar no meu projeto. Por isso, estou desenvolvendo um sistema para gerar boletos através do Rails. A geração de boletos do Itaú já está pronta, mas pretendo implementar os principais bancos como Real, Brasil e Bradesco.
Muito provavelmente este código não está otimizado ao máximo. Se alguém vir pontos que podem ser otimizados, por favor, me avisem! Outra coisa: ele ainda não foi homologado junto ao banco, mas esta é a parte mais fácil. Se você tiver que utilizar este código, você precisará enviar algumas cópias impressas para o banco para validação.
Gerando os boletos
Primeiro, adicione a linha abaixo no arquivo "environment.rb".
require 'boleto'
Aí, para gerar seu boleto, você faz a instanciação diretamente no controller.
def boleto
@boleto = Itau.new
@boleto.cedente = "Nando Vieira"
@boleto.sacado = "José da Silva"
@boleto.documento_cedente = "123.456.789-00"
@boleto.pixel_branco = 'b.gif'
@boleto.pixel_preto = 'p.gif'
@boleto.valor = 30.00
@boleto.agencia = "0047"
@boleto.conta_corrente = "52881"
@boleto.nosso_numero = "00001050"
@boleto.numero_documento = "00513"
@boleto.data_vencimento = Date.today
@boleto.local_pagamento = "PAGÁVEL NA REDE BANCÁRIA ATÉ O VENCIMENTO"
@boleto.instrucao1 = "Pagável na rede bancária até a data de vencimento. Após vencimento pagável somente nas agências do Itaú"
@boleto.instrucao2 = "DESCONTO DE R$ 59,00 ATÉ 05/11/2006"
@boleto.instrucao3 = "DESCONTO DE R$ 29,50 APÓS 05/11/2006 ATÉ 15/11/2006"
@boleto.instrucao4 = "NÃO RECEBER APÓS 15/11/2006"
@boleto.instrucao5 = ""
@boleto.instrucao6 = "ACRESCER R$ 4,00 REFERENTE AO BOLETO BANCÁRIO"
@boleto.sacado_linha1 = "José da Silva"
@boleto.sacado_linha2 = "CPF: 123.456.789-00"
@boleto.criar()
render :layout => false
end
Lembre-se: você precisa definir o atributo como @boleto pois é assim que está na view.
O ideal é criar um plugin (acts_as_boleto talvez?) que já faz toda a parte de banco de dados também. No momento não tenho o tempo necessário para aprender a fazer plugins, por isso, se alguém se habilitar...
Licença
A licença é a mesma do Ruby on Rails, ou seja, MIT.
Doações
Se este código for útil para você, considere fazer uma doação através do Paypal.
Downloads
- boleto.tar.gz (11KB)
- Permalink
- Trackback
- Comentários (13)
- Ao som de: The Juliana Theory – Emotion Is Dead, Part Ii
Textos escritos por
Comentários #
Rapaz, vou implementar para a CEF então.
Já tenho ela funcionando no Trax (vulgo php on rails) para o site http://www.cobradcascavel.com.br.
Vou pegar as idéias de lá, e implementar esse primeiro boleto, sem usar nada do seu.
Dae eu te mando o meu pra gente ver no que ambos podem melhorar.
Abraço!
Muito boa a ideia, mas eu estou precisando gerar o cógido de barras no formato do banco do brasil. seria possivel isso com esse cógigo?
Desde já sou agradecido!
Geovane
rapaz.. parabens mais um vez.. tava atras de uma implementação de boletos!
:)
Olá Nando, blz?
Já tem um bom tempo que você postou essa notícia, sabe dizer se agora já está homologado no banco?
Tem alguma outra implementação para outro banco?
Grato,
Thiago
Olá Thiago. Eu não fiz a homologação ainda e nem escrevi boletos para outros bancos. Pretendo continuar isso em breve. Se quiser homologar e dizer se funcionou ou não, seria legal!
Bom, vou testar e pedir para um colega meu homologar ai lhe passo a resposta aqui.
vlw
[...] aos projetos GBBoleto (Delphi) e PHPBoleto, e também ao Nando Vieira que desenvolveu um ótimo trabalho. Todos estes estão nos orientando [...]
Olá Nando, sabe dizer se alguém fez alguma versão deste para banco do brasil ou cef?
Olá Thiago,
estamos desenvolvendo uma versão para o banco do brasil, porém não está ainda homologada. Para a CEF temos planos para iniciar o desenvolvimento no início do próximo ano.
Pretendemos liberar o projeto no github até o final do ano provavelmente quando estiver mais estável e com a parte de geração e leitura de arquivos para remessa e retorno bancário.
Dá uma conferida no meu blog para mais informações.
Abraço.
Olá Nando
Estou precisando implementar a geração de boletos para o Banco Real. Pensei em de repente unir forças, caso ainda não o tenha implementado. Me fala se a idéia for boa.
Vou baixar o que você disponibiliza e estuda-lo.
Tudo de bom!
Alguem conseguiu homologar o boleto p/ o itau?
Olá Nando, to tentando usar seu código e não consegui pq qd coloco o "require 'boleto'" no arquivo enviroment.rb o servidor não inicia e apresenta este erro:
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- boleto (MissingSourceFile)
Se tiver uma dica pode me mandar, por favor?
Obrigado
Felipe
Nando, sugestão: coloca no Github. Assim posso dar fork e auxiliar no desenvolvimento.
Se colocar, por favor mande um email avisando ;)
Deixe um comentário