Gerando boletos com Rails


Leia em 1 minuto

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 o 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.

Downloads