Class: BrBoleto::Boleto::Caixa
- Inherits:
-
Base
- Object
- ActiveModelBase
- Base
- BrBoleto::Boleto::Caixa
- Defined in:
- lib/br_boleto/boleto/caixa.rb
Overview
Implementação de emissão de boleto bancário pela Caixa Econômica Federal.
Documentação Implementada
A documentação na qual essa implementação foi baseada está localizada na pasta ‘documentacoes_dos_boletos/caixa’ dentro dessa biblioteca.
Carteiras suportadas
Segue abaixo as carteiras suportadas da Caixa Econômica Federal seguindo a documentação:
___________________________________________
| Carteira | Descri
Instance Attribute Summary
Attributes inherited from Base
#aceite, #agencia, #carteira, #cedente, #codigo_cedente, #codigo_moeda, #conta_corrente, #data_documento, #data_vencimento, #documento_cedente, #documento_sacado, #endereco_cedente, #endereco_sacado, #especie, #especie_documento, #instrucoes1, #instrucoes2, #instrucoes3, #instrucoes4, #instrucoes5, #instrucoes6, #local_pagamento, #logo, #numero_documento, #sacado, #valor_documento
Class Method Summary collapse
-
.carteiras_suportadas ⇒ Array
Carteiras suportadas..
-
.modalidade_cobranca_validas ⇒ Object
Modalidades de cobranças válidas conforme a documentação.
-
.tamanho_maximo_agencia ⇒ Fixnum
Tamanho máximo de uma agência na Caixa Econômica Federal.
-
.tamanho_maximo_codigo_cedente ⇒ Fixnum
Tamanho máximo do código do cedente emitido no Boleto.
-
.tamanho_maximo_numero_documento ⇒ Fixnum
Tamanho máximo do numero do documento no Boleto.
Instance Method Summary collapse
-
#agencia_codigo_cedente ⇒ String
Campo Agência / Código do Cedente.
-
#carteira_formatada ⇒ String
Formata a carteira dependendo se ela é registrada ou não.
-
#carteiras_com_registro ⇒ Array
Você pode sobrescrever esse método na subclasse caso exista mais carteiras com registro na Caixa Econômica Federal..
-
#codigo_banco ⇒ String
Código do Banco descrito na documentação.
-
#codigo_de_barras_do_banco ⇒ String
Código de barras do banco.
- #composicao_codigo_barras ⇒ Object
-
#default_values ⇒ Object
Conforme descrito na documentação, o valor que deve constar em local do pagamento é “PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE”.
- #deve_validar_modalidade_cobranca? ⇒ Boolean
-
#digito_codigo_banco ⇒ String
Dígito do código do banco descrito na documentação.
- #digito_verificador_codigo_beneficiario ⇒ Object
- #digito_verificador_codigo_cedente ⇒ Object
- #digito_verificador_nosso_numero ⇒ Object
-
#identificador_de_emissao ⇒ String
O Identificado de Emissão é o 2° e ultimo caracter da carteira Normalmente é 4 onde significa que o Beneficiário emitiu o boleto.
-
#modalidade_cobranca ⇒ String
Modalidade de cobrança As vezes é chamado de modalidade de cobrança e as vezes é chamado de tipo de cobrança Por isso foi criado o metodo modalidade_cobrança que é a mesma coisa que o tipo_cobranca.
-
#nosso_numero ⇒ String
Mostra o campo nosso número calculando o dígito verificador do nosso número.
- #nosso_numero_de_3_a_5 ⇒ Object
- #nosso_numero_de_6_a_8 ⇒ Object
- #nosso_numero_de_9_a_17 ⇒ Object
-
#tipo_cobranca ⇒ String
O Tipo de cobrança é o 1° caracter da carteira.
Methods inherited from Base
#aceite_formatado, #codigo_banco_formatado, #codigo_de_barras, #codigo_de_barras_padrao, #data_vencimento_deve_ser_uma_data, #deve_validar_agencia?, #deve_validar_carteira?, #deve_validar_codigo_cedente?, #deve_validar_conta_corrente?, #deve_validar_numero_documento?, #digito_codigo_de_barras, #documento_cedente_formatado, #documento_cedente_formatado_com_label, #documento_sacado_formatado, #documento_sacado_formatado_com_label, #fator_de_vencimento, #initialize, #linha_digitavel, #persisted?, #tipo_cobranca_formatada, #to_partial_path, valor_documento_tamanho_maximo, #valor_formatado_para_codigo_de_barras
Methods inherited from ActiveModelBase
#assign_attributes, #initialize
Constructor Details
This class inherits a constructor from BrBoleto::Boleto::Base
Class Method Details
.carteiras_suportadas ⇒ Array
Carteiras suportadas.
Método criado para validar se a carteira informada é suportada.
68 69 70 |
# File 'lib/br_boleto/boleto/caixa.rb', line 68 def self.carteiras_suportadas %w(14 24) end |
.modalidade_cobranca_validas ⇒ Object
Modalidades de cobranças válidas conforme a documentação
27 28 29 |
# File 'lib/br_boleto/boleto/caixa.rb', line 27 def self.modalidade_cobranca_validas %w(1 2) end |
.tamanho_maximo_agencia ⇒ Fixnum
Tamanho máximo de uma agência na Caixa Econômica Federal. Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.
40 41 42 |
# File 'lib/br_boleto/boleto/caixa.rb', line 40 def self.tamanho_maximo_agencia 4 end |
.tamanho_maximo_codigo_cedente ⇒ Fixnum
Tamanho máximo do código do cedente emitido no Boleto. Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.
49 50 51 |
# File 'lib/br_boleto/boleto/caixa.rb', line 49 def self.tamanho_maximo_codigo_cedente 6 end |
.tamanho_maximo_numero_documento ⇒ Fixnum
Tamanho máximo do numero do documento no Boleto. Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.
58 59 60 |
# File 'lib/br_boleto/boleto/caixa.rb', line 58 def self.tamanho_maximo_numero_documento 15 end |
Instance Method Details
#agencia_codigo_cedente ⇒ String
Campo Agência / Código do Cedente
132 133 134 |
# File 'lib/br_boleto/boleto/caixa.rb', line 132 def agencia_codigo_cedente "#{agencia} / #{codigo_cedente}-#{digito_verificador_codigo_cedente}" end |
#carteira_formatada ⇒ String
Formata a carteira dependendo se ela é registrada ou não.
Para cobrança COM registro usar: RG Para Cobrança SEM registro usar: SR
202 203 204 205 206 207 208 |
# File 'lib/br_boleto/boleto/caixa.rb', line 202 def carteira_formatada if carteira.in?(carteiras_com_registro) 'RG' else 'SR' end end |
#carteiras_com_registro ⇒ Array
Você pode sobrescrever esse método na subclasse caso exista mais carteiras com registro na Caixa Econômica Federal.
216 217 218 |
# File 'lib/br_boleto/boleto/caixa.rb', line 216 def carteiras_com_registro %w(14) end |
#codigo_banco ⇒ String
Returns Código do Banco descrito na documentação.
118 119 120 |
# File 'lib/br_boleto/boleto/caixa.rb', line 118 def codigo_banco '104' end |
#codigo_de_barras_do_banco ⇒ String
Código de barras do banco
________________________________________________________________________________________
| Posi
238 239 240 241 242 |
# File 'lib/br_boleto/boleto/caixa.rb', line 238 def = nil codigo_dv = Modulo11FatorDe2a9RestoZero.new() "#{composicao_codigo_barras}#{codigo_dv}" end |
#composicao_codigo_barras ⇒ Object
244 245 246 247 248 249 250 251 252 253 254 |
# File 'lib/br_boleto/boleto/caixa.rb', line 244 def return if = "#{codigo_beneficiario}" << "#{digito_verificador_codigo_beneficiario}" << "#{nosso_numero_de_3_a_5}" << "#{tipo_cobranca}" << "#{nosso_numero_de_6_a_8}" << "#{identificador_de_emissao}" << "#{nosso_numero_de_9_a_17}" end |
#default_values ⇒ Object
Conforme descrito na documentação, o valor que deve constar em local do pagamento é “PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE”
75 76 77 78 79 |
# File 'lib/br_boleto/boleto/caixa.rb', line 75 def default_values super.merge({ :local_pagamento => 'PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE' }) end |
#deve_validar_modalidade_cobranca? ⇒ Boolean
31 32 33 |
# File 'lib/br_boleto/boleto/caixa.rb', line 31 def deve_validar_modalidade_cobranca? true end |
#digito_codigo_banco ⇒ String
Returns Dígito do código do banco descrito na documentação.
124 125 126 |
# File 'lib/br_boleto/boleto/caixa.rb', line 124 def digito_codigo_banco '0' end |
#digito_verificador_codigo_beneficiario ⇒ Object
139 140 141 |
# File 'lib/br_boleto/boleto/caixa.rb', line 139 def digito_verificador_codigo_beneficiario digito_verificador_codigo_cedente end |
#digito_verificador_codigo_cedente ⇒ Object
136 137 138 |
# File 'lib/br_boleto/boleto/caixa.rb', line 136 def digito_verificador_codigo_cedente BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new(codigo_cedente) end |
#digito_verificador_nosso_numero ⇒ Object
143 144 145 |
# File 'lib/br_boleto/boleto/caixa.rb', line 143 def digito_verificador_nosso_numero BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new("#{carteira}#{numero_documento}") end |
#identificador_de_emissao ⇒ String
O Identificado de Emissão é o 2° e ultimo caracter da carteira Normalmente é 4 onde significa que o Beneficiário emitiu o boleto.
191 192 193 |
# File 'lib/br_boleto/boleto/caixa.rb', line 191 def identificador_de_emissao carteira.last if carteira.present? end |
#modalidade_cobranca ⇒ String
Modalidade de cobrança As vezes é chamado de modalidade de cobrança e as vezes é chamado de tipo de cobrança Por isso foi criado o metodo modalidade_cobrança que é a mesma coisa que o tipo_cobranca
182 183 184 |
# File 'lib/br_boleto/boleto/caixa.rb', line 182 def modalidade_cobranca tipo_cobranca end |
#nosso_numero ⇒ String
Mostra o campo nosso número calculando o dígito verificador do nosso número.
151 152 153 |
# File 'lib/br_boleto/boleto/caixa.rb', line 151 def nosso_numero "#{carteira}#{numero_documento}-#{digito_verificador_nosso_numero}" end |
#nosso_numero_de_3_a_5 ⇒ Object
156 157 158 |
# File 'lib/br_boleto/boleto/caixa.rb', line 156 def nosso_numero_de_3_a_5 nosso_numero[2..4] end |
#nosso_numero_de_6_a_8 ⇒ Object
160 161 162 |
# File 'lib/br_boleto/boleto/caixa.rb', line 160 def nosso_numero_de_6_a_8 nosso_numero[5..7] end |
#nosso_numero_de_9_a_17 ⇒ Object
164 165 166 |
# File 'lib/br_boleto/boleto/caixa.rb', line 164 def nosso_numero_de_9_a_17 nosso_numero[8..16] end |
#tipo_cobranca ⇒ String
O Tipo de cobrança é o 1° caracter da carteira
172 173 174 |
# File 'lib/br_boleto/boleto/caixa.rb', line 172 def tipo_cobranca carteira[0] if carteira.present? end |