# -*- encoding: utf-8 -*- module Brcobranca module Boleto class Bradesco < Base # Banco BRADESCO validates_length_of :agencia, :maximum => 4, :message => "deve ser menor ou igual a 4 dígitos." validates_length_of :numero_documento, :maximum => 11, :message => "deve ser menor ou igual a 11 dígitos." validates_length_of :conta_corrente, :maximum => 7, :message => "deve ser menor ou igual a 7 dígitos." validates_length_of :carteira, :maximum => 2, :message => "deve ser menor ou igual a 2 dígitos." # Nova instancia do Bradesco # @param (see Brcobranca::Boleto::Base#initialize) def initialize(campos={}) campos = {:carteira => "06"}.merge!(campos) super(campos) end # Codigo do banco emissor (3 dígitos sempre) # # @return [String] 3 caracteres numéricos. def banco "237" end # Carteira # # @return [String] 2 caracteres numéricos. def carteira=(valor) @carteira = valor.to_s.rjust(2,'0') unless valor.nil? end # Número seqüencial utilizado para identificar o boleto. # @return [String] 11 caracteres numéricos. def numero_documento=(valor) @numero_documento = valor.to_s.rjust(11,'0') unless valor.nil? end # Nosso número para exibir no boleto. # @return [String] # @example # boleto.nosso_numero_boleto #=> ""06/00000004042-8" def nosso_numero_boleto "#{self.carteira}/#{self.numero_documento}-#{self.nosso_numero_dv}" end # Agência + conta corrente do cliente para exibir no boleto. # @return [String] # @example # boleto.agencia_conta_boleto #=> "0548-7 / 00001448-6" def agencia_conta_boleto "#{self.agencia}-#{self.agencia_dv} / #{self.conta_corrente}-#{self.conta_corrente_dv}" end # Segunda parte do código de barras. # # Posição | Tamanho | Conteúdo
# 20 a 23 | 4 | Agência Cedente (Sem o digito verificador, completar com zeros a esquerda quando necessário)
# 24 a 25 | 2 | Carteira
# 26 a 36 | 11 | Número do Nosso Número(Sem o digito verificador)
# 37 a 43 | 7 | Conta do Cedente (Sem o digito verificador, completar com zeros a esquerda quando necessário)
# 44 a 44 | 1 | Zero
# # @return [String] 25 caracteres numéricos. def codigo_barras_segunda_parte "#{self.agencia}#{self.carteira}#{self.numero_documento}#{self.conta_corrente}0" end end end end