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

Comentários #

#1 Davis disse:
04 Dez 06, 02:41PM

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!

#2 Geovane disse:
03 Fev 07, 11:10AM

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

#3 Clovis disse:
22 Mar 07, 05:50PM

rapaz.. parabens mais um vez.. tava atras de uma implementação de boletos!
:)

#4 Thiago Antonius disse:
19 Jun 07, 05:15PM

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

#5 Nando Vieira disse:
19 Jun 07, 06:01PM

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!

#6 Thiago Antonius disse:
19 Jun 07, 06:09PM

Bom, vou testar e pedir para um colega meu homologar ai lhe passo a resposta aqui.

vlw

#7 Rails Bancos e Boletos - nosso primeiro boleto! =) « Carlos... disse:
29 Jul 08, 08:13PM

[...] aos projetos GBBoleto (Delphi) e PHPBoleto, e também ao Nando Vieira que desenvolveu um ótimo trabalho. Todos estes estão nos orientando [...]

#8 Thiago disse:
02 Out 08, 03:45PM

Olá Nando, sabe dizer se alguém fez alguma versão deste para banco do brasil ou cef?

#9 Carlos Antonio da Silva disse:
20 Out 08, 03:44PM

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.

#10 Fernando Kosh disse:
29 Out 08, 12:50PM

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!

#11 Newton disse:
26 Mar 09, 10:09AM

Alguem conseguiu homologar o boleto p/ o itau?

#12 Felipe disse:
26 Jan 10, 02:55PM

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

#13 Alexandre de Oliveira disse:
05 Ago 10, 02:30PM

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





Não é aceito código HTML: adicione-o no pastie.org ou paste.milk-it.net e poste apenas o link.

Se este é seu primeiro comentário, ele terá que ser aprovado antes de ser exibido.

JavaScript Avançado

O JavaScript é a única linguagem que muitos acreditam saber sem nunca terem parado para realmente aprendê-la. Neste workshop rápido você entenderá de verdade todos os conceitos avançados do JavaScript em 4 horas puramente práticas.

Saiba mais Fechar

Conheça também o HOWTO