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