lib/brcobranca/boleto/itau.rb in brcobranca-7.3.0 vs lib/brcobranca/boleto/itau.rb in brcobranca-8.0.0
- old
+ new
@@ -1,19 +1,22 @@
# -*- encoding: utf-8 -*-
#
+require 'active_support/core_ext/object/with_options'
+
module Brcobranca
module Boleto
class Itau < Base # Banco Itaú
# Usado somente em carteiras especiais com registro para complementar o número do cocumento
attr_reader :seu_numero
validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
validates_length_of :convenio, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
validates_length_of :numero_documento, maximum: 8, message: 'deve ser menor ou igual a 8 dígitos.'
validates_length_of :conta_corrente, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
- validates_length_of :seu_numero, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
-
+ with_options if: :usa_seu_numero? do |v|
+ v.validates_length_of :seu_numero, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
+ end
# Nova instancia do Itau
# @param (see Brcobranca::Boleto::Base#initialize)
def initialize(campos = {})
campos = { carteira: '175' }.merge!(campos)
super(campos)
@@ -46,9 +49,13 @@
# Número seqüencial utilizado para identificar o boleto.
# @return [String] 7 caracteres numéricos.
def seu_numero=(valor)
@seu_numero = valor.to_s.rjust(7, '0') if valor
+ end
+
+ def usa_seu_numero?
+ %w(198 106 107 122 142 143 195 196).include?(carteira.to_s)
end
# Dígito verificador do nosso número.
#
# Para a grande maioria das carteiras, são considerados para a obtenção do DAC/DV, os dados