lib/brcobranca/boleto/banco_real.rb in brcobranca-2.0.5 vs lib/brcobranca/boleto/banco_real.rb in brcobranca-2.0.6
- old
+ new
@@ -4,11 +4,23 @@
def initialize(campos={})
padrao={:carteira => "57", :banco => "356"}
campos = padrao.merge!(campos)
super(campos)
end
+
+ # Campo usado apenas na exibição no boleto
+ # Deverá ser sobreescrito para cada banco
+ def nosso_numero_boleto
+ "#{self.numero_documento}-#{self.nosso_numero_dv}"
+ end
+ # Campo usado apenas na exibição no boleto
+ # Deverá ser sobreescrito para cada banco
+ def agencia_conta_boleto
+ "#{self.agencia}-#{self.agencia_dv} / #{self.conta_corrente}-#{self.conta_corrente_dv}"
+ end
+
# CALCULO DO DIGITO:
# APLICA-SE OS PESOS 2,1,2,1,.... AOS ALGARISMOS DO NUMERO COMPOSTO POR:
# NUMERO DO BANCO : COM 7 DIGITOS P/ COBRANCA REGISTRADA
# ATE 15 DIGITOS P/ COBRANCA SEM REGISTRO
# CODIGO DA AGENCIA: 4 DIGITOS
@@ -44,13 +56,15 @@
# Montagem é baseada no tipo de carteira, com registro e sem registro
case self.carteira.to_i
# Carteira sem registro
when 57
numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 13)
- "#{banco}#{self.moeda}#{fator}#{valor_documento}#{agencia}#{conta}#{self.agencia_conta_corrente_nosso_numero_dv}#{numero_documento}"
+ codigo = "#{banco}#{self.moeda}#{fator}#{valor_documento}#{agencia}#{conta}#{self.agencia_conta_corrente_nosso_numero_dv}#{numero_documento}"
+ codigo.size == 43 ? codigo : nil
else
# TODO verificar com o banco, pois não consta na documentação
numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 7)
- "#{banco}#{self.moeda}#{fator}#{valor_documento}000000#{agencia}#{conta}#{self.agencia_conta_corrente_nosso_numero_dv}#{numero_documento}"
+ codigo = "#{banco}#{self.moeda}#{fator}#{valor_documento}000000#{agencia}#{conta}#{self.agencia_conta_corrente_nosso_numero_dv}#{numero_documento}"
+ codigo.size == 43 ? codigo : nil
end
end
end
\ No newline at end of file