Class: BrBoleto::Conta::Caixa
- Inherits:
-
Base
- Object
- ActiveModelBase
- Base
- BrBoleto::Conta::Caixa
- Defined in:
- lib/br_boleto/conta/caixa.rb
Instance Attribute Summary collapse
-
#valid_versao_aplicativo_required ⇒ Object
Versão do aplicativo.
-
#versao_aplicativo ⇒ Object
versão do aplicativo da caixa.
Attributes inherited from Base
#agencia, #carteira, #codigo_carteira, #conta_corrente, #convenio, #cpf_cnpj, #endereco, #modalidade, #razao_social, #valid_agencia_length, #valid_carteira_inclusion, #valid_carteira_length, #valid_carteira_maximum, #valid_carteira_minimum, #valid_carteira_required, #valid_codigo_carteira_length, #valid_codigo_carteira_required, #valid_conta_corrente_length, #valid_conta_corrente_maximum, #valid_conta_corrente_minimum, #valid_conta_corrente_required, #valid_convenio_inclusion, #valid_convenio_length, #valid_convenio_maximum, #valid_convenio_minimum, #valid_convenio_required, #valid_endereco_required, #valid_modalidade_inclusion, #valid_modalidade_length, #valid_modalidade_maximum, #valid_modalidade_minimum, #valid_modalidade_required
Instance Method Summary collapse
-
#agencia_codigo_cedente ⇒ String
Campo Agência / Código do Cedente.
- #agencia_dv ⇒ Object
-
#carteira_formatada ⇒ String
Formata a carteira da carteira dependendo se ela é registrada ou não.
-
#carteiras_com_registro ⇒ Array
Retorna as carteiras com registro da Caixa Econômica Federal.
- #codigo_banco ⇒ Object
-
#codigo_banco_dv ⇒ Object
Dígito do código do banco descrito na documentação.
- #codigos_movimento_retorno_para_ocorrencia_C_240 ⇒ Object
- #codigos_movimento_retorno_para_ocorrencia_C_400 ⇒ Object
- #conta_corrente_dv ⇒ Object
- #convenio_dv ⇒ Object
- #default_values ⇒ Object
-
#equivalent_codigo_moeda_400 ⇒ Object
Código da Moeda.
-
#equivalent_codigo_motivo_ocorrencia_A_240(codigo_movimento_gem) ⇒ Object
Código do Motivo da Ocorrência Retorno.
- #equivalent_codigo_motivo_ocorrencia_A_400(codigo_movimento_gem) ⇒ Object
- #equivalent_codigo_motivo_ocorrencia_B_240(codigo_movimento_gem) ⇒ Object
- #equivalent_codigo_motivo_ocorrencia_C_240(codigo_movimento_gem) ⇒ Object
- #equivalent_codigo_motivo_ocorrencia_C_400(codigo_movimento_gem) ⇒ Object
-
#equivalent_codigo_movimento_retorno_240 ⇒ Object
Código de Movimento Retorno.
-
#equivalent_codigo_movimento_retorno_400 ⇒ Object
Identificações de Ocorrência / Código de ocorrência:.
-
#equivalent_codigo_protesto_400 ⇒ Object
Código para Protesto.
-
#equivalent_distribuicao_boleto ⇒ Object
Identificação da Distribuição exclusiva da CAIXA.
- #nome_banco ⇒ Object
- #versao_layout_arquivo_cnab_240 ⇒ Object
- #versao_layout_lote_cnab_240 ⇒ Object
Methods inherited from Base
#codigo_banco_formatado, #cpf_cnpj_formatado, #cpf_cnpj_formatado_com_label, #tipo_cobranca, #tipo_cpf_cnpj
Methods included from Helper::DefaultCodes
#codigos_movimento_retorno_para_ocorrencia_A_240, #codigos_movimento_retorno_para_ocorrencia_A_400, #codigos_movimento_retorno_para_ocorrencia_B_240, #codigos_movimento_retorno_para_ocorrencia_B_400, #codigos_movimento_retorno_para_ocorrencia_D_240, #codigos_movimento_retorno_para_ocorrencia_D_400, #default_codigo_juros, #default_codigo_multa, #equivalent_codigo_desconto, #equivalent_codigo_juros, #equivalent_codigo_moeda_240, #equivalent_codigo_motivo_ocorrencia_B_400, #equivalent_codigo_motivo_ocorrencia_D_240, #equivalent_codigo_motivo_ocorrencia_D_400, #equivalent_codigo_movimento_remessa_240, #equivalent_codigo_movimento_remessa_400, #equivalent_codigo_multa, #equivalent_codigo_ocorrencia_pagador_240, #equivalent_codigo_ocorrencia_pagador_400, #equivalent_codigo_protesto_240, #equivalent_especie_titulo_240, #equivalent_especie_titulo_400, #equivalent_identificacao_emissao_240, #equivalent_identificacao_emissao_400, #equivalent_tipo_cobranca_240, #equivalent_tipo_cobranca_400, #equivalent_tipo_impressao_240, #equivalent_tipo_impressao_400, #get_codigo_desconto, #get_codigo_juros, #get_codigo_moeda, #get_codigo_motivo_ocorrencia, #get_codigo_movimento_remessa, #get_codigo_movimento_retorno, #get_codigo_multa, #get_codigo_ocorrencia_pagador, #get_codigo_protesto, #get_distribuicao_boleto, #get_especie_titulo, #get_identificacao_emissao, #get_tipo_cobranca, #get_tipo_impressao
Methods inherited from ActiveModelBase
#assign_attributes, #initialize
Constructor Details
This class inherits a constructor from BrBoleto::ActiveModelBase
Instance Attribute Details
#valid_versao_aplicativo_required ⇒ Object
Versão do aplicativo
20 21 22 |
# File 'lib/br_boleto/conta/caixa.rb', line 20 def valid_versao_aplicativo_required @valid_versao_aplicativo_required end |
#versao_aplicativo ⇒ Object
versão do aplicativo da caixa
16 17 18 |
# File 'lib/br_boleto/conta/caixa.rb', line 16 def versao_aplicativo @versao_aplicativo end |
Instance Method Details
#agencia_codigo_cedente ⇒ String
Campo Agência / Código do Cedente
108 109 110 |
# File 'lib/br_boleto/conta/caixa.rb', line 108 def agencia_codigo_cedente "#{agencia} / #{codigo_cedente}-#{codigo_cedente_dv}" end |
#agencia_dv ⇒ Object
61 62 63 64 65 |
# File 'lib/br_boleto/conta/caixa.rb', line 61 def agencia_dv # utilizando a agencia com 4 digitos # para calcular o digito @agencia_dv ||= BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new(agencia).to_s end |
#carteira_formatada ⇒ String
Formata a carteira da carteira dependendo se ela é registrada ou não.
Para cobrança COM registro usar: RG Para Cobrança SEM registro usar: SR
86 87 88 89 90 91 92 |
# File 'lib/br_boleto/conta/caixa.rb', line 86 def carteira_formatada if carteira.in?(carteiras_com_registro) 'RG' else 'SR' end end |
#carteiras_com_registro ⇒ Array
Retorna as carteiras com registro da Caixa Econômica Federal. Você pode sobrescrever esse método na subclasse caso exista mais carteiras com registro na Caixa Econômica Federal.
100 101 102 |
# File 'lib/br_boleto/conta/caixa.rb', line 100 def carteiras_com_registro %w(14) end |
#codigo_banco ⇒ Object
40 41 42 |
# File 'lib/br_boleto/conta/caixa.rb', line 40 def codigo_banco '104' end |
#codigo_banco_dv ⇒ Object
Dígito do código do banco descrito na documentação
45 46 47 |
# File 'lib/br_boleto/conta/caixa.rb', line 45 def codigo_banco_dv '0' end |
#codigos_movimento_retorno_para_ocorrencia_C_240 ⇒ Object
197 198 199 |
# File 'lib/br_boleto/conta/caixa.rb', line 197 def codigos_movimento_retorno_para_ocorrencia_C_240 %w[06 08 09 17] end |
#codigos_movimento_retorno_para_ocorrencia_C_400 ⇒ Object
251 252 253 |
# File 'lib/br_boleto/conta/caixa.rb', line 251 def codigos_movimento_retorno_para_ocorrencia_C_400 %w[06 09 101 151 152] end |
#conta_corrente_dv ⇒ Object
67 68 69 |
# File 'lib/br_boleto/conta/caixa.rb', line 67 def conta_corrente_dv @conta_corrente_dv ||= BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new(conta_corrente).to_s end |
#convenio_dv ⇒ Object
71 72 73 |
# File 'lib/br_boleto/conta/caixa.rb', line 71 def convenio_dv @convenio_dv ||= BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new(convenio).to_s end |
#default_values ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/br_boleto/conta/caixa.rb', line 26 def default_values super.merge({ carteira: '14', # Com registro valid_carteira_required: true, # <- Validação dinâmica que a carteira é obrigatória valid_carteira_length: 2, # <- Validação dinâmica que a carteira deve ter 2 digitos valid_carteira_inclusion: %w[14 24], # <- Validação dinâmica de valores aceitos para a modalidade codigo_carteira: '1', # Cobrança Simples valid_codigo_carteira_length: 1, # <- Validação dinâmica que a carteira deve ter 1 digito valid_convenio_required: true, # <- Validação que a convenio deve ter obrigatório valid_convenio_maximum: 6, # <- Validação que a convenio deve ter no máximo 6 digitos versao_aplicativo: '0', }) end |
#equivalent_codigo_moeda_400 ⇒ Object
Código da Moeda
313 314 315 316 317 318 319 |
# File 'lib/br_boleto/conta/caixa.rb', line 313 def equivalent_codigo_moeda_400 super.merge( # Padrão Código para {# da GEM o Banco '09' => '1', # Real }) end |
#equivalent_codigo_motivo_ocorrencia_A_240(codigo_movimento_gem) ⇒ Object
Código do Motivo da Ocorrência Retorno
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
# File 'lib/br_boleto/conta/caixa.rb', line 138 def equivalent_codigo_motivo_ocorrencia_A_240 codigo_movimento_gem super.merge( # Padrão Código para {# do Banco a GEM '11' => 'A115', # Data de Geração Inválida '64' => 'A116', # Entrada Inválida para Cobrança Caucionada '65' => 'A117', # CEP do Pagador não encontrado '66' => 'A118', # Agencia Cobradora não encontrada '67' => 'A119', # Agencia Beneficiário não encontrada '68' => 'A120', # Movimentação inválida para título '69' => 'A121', # Alteração de dados inválida '70' => 'A122', # Apelido do cliente não cadastrado '71' => 'A123', # Erro na composição do arquivo '73' => 'A105', # Código do Beneficiário inválido '72' => 'A124', # Lote de serviço inválido '74' => 'A125', # Beneficiário não pertencente a Cobrança Eletrônica '75' => 'A126', # Nome da Empresa inválido '76' => 'A127', # Nome do Banco inválido '77' => 'A128', # Código da Remessa inválido '78' => 'A129', # Data/Hora Geração do arquivo inválida '79' => 'A130', # Número Sequencial do arquivo inválido '80' => 'A131', # Versão do Lay out do arquivo inválido '81' => 'A132', # Literal REMESSA-TESTE - Válido só p/ fase testes '82' => 'A133', # Literal REMESSA-TESTE - Obrigatório p/ fase testes '83' => 'A134', # Tp Número Inscrição Empresa inválido '84' => 'A135', # Tipo de Operação inválido '85' => 'A136', # Tipo de serviço inválido '86' => 'A137', # Forma de lançamento inválido '87' => 'A138', # Número da remessa inválido '88' => 'A139', # Número da remessa menor/igual remessa anterior '89' => 'A140', # Lote de serviço divergente '90' => 'A141', # Número sequencial do registro inválido '91' => 'A142', # Erro seq de segmento do registro detalhe '92' => 'A143', # Cod movto divergente entre grupo de segm '93' => 'A144', # Qtde registros no lote inválido '94' => 'A145', # Qtde registros no lote divergente '95' => 'A146', # Qtde lotes no arquivo inválido '96' => 'A147', # Qtde lotes no arquivo divergente '97' => 'A148', # Qtde registros no arquivo inválido '98' => 'A149', # Qtde registros no arquivo divergente '99' => 'A150', # Código de DDD inválido }) end |
#equivalent_codigo_motivo_ocorrencia_A_400(codigo_movimento_gem) ⇒ Object
219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 |
# File 'lib/br_boleto/conta/caixa.rb', line 219 def equivalent_codigo_motivo_ocorrencia_A_400 codigo_movimento_gem super.merge( # Padrão Código para {# do Banco a GEM '01' => 'A220', # Movimento sem Beneficiário Correspondente '02' => 'A221', # Movimento sem Título Correspondente '08' => 'A222', # Movimento para título já com movimentação no dia '09' => 'A223', # Nosso Número não pertence ao Beneficiário '10' => 'A224', # Inclusão de título já existente na base '12' => 'A225', # Movimento duplicado '13' => 'A116', # Entrada Inválida para Cobrança Caucionada (Beneficiário não possui conta Caução) '20' => 'A117', # CEP do Pagador não encontrado (não foi possível a determinação da Agência Cobradora para o título) '21' => 'A118', # Agência cobradora não encontrada (agência designada para cobradora não cadastrada no sistema) '22' => 'A119', # Agência Beneficiário não encontrada (Agência do Beneficiário não cadastrada no sistema) '45' => 'A226', # Data de Vencimento com prazo superior ao limite '49' => 'A227', # Movimento inválido para título Baixado/Liquidado '50' => 'A228', # Movimento inválido para título enviado a Cartório '54' => 'A229', # Faixa de CEP da Agência Cobradora não abrange CEP do Pagador '55' => 'A230', # Título já com opção de Devolução '56' => 'A231', # Processo de Protesto em andamento '57' => 'A232', # Título já com opção de Protesto '58' => 'A233', # Processo de devolução em andamento '59' => 'A234', # Novo prazo p/ Protesto/Devolução inválido '76' => 'A235', # Alteração do prazo de protesto inválida '77' => 'A236', # Alteração do prazo de devolução inválida '81' => 'A237', # CEP do Pagador inválido '82' => 'A238', # CNPJ/CPF do Pagador inválido (dígito não confere) '83' => 'A86' , # Número do Documento (seu número) inválido '84' => 'A239', # Protesto inválido para título sem Número do documento (seu número) }) end |
#equivalent_codigo_motivo_ocorrencia_B_240(codigo_movimento_gem) ⇒ Object
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 |
# File 'lib/br_boleto/conta/caixa.rb', line 181 def equivalent_codigo_motivo_ocorrencia_B_240 codigo_movimento_gem super.merge( # Padrão Código para {# do Banco a GEM '12' => 'B21', # Redisponibilização de Arquivo Retorno Eletrônico '15' => 'B22', # Banco de Pagadores '17' => 'B23', # Entrega Aviso Disp Boleto via e-amail ao pagador (s/ emissão Boleto) '18' => 'B24', # Emissão de Boleto Pré-impresso CAIXA matricial '19' => 'B25', # Emissão de Boleto Pré-impresso CAIXA A4 '20' => 'B26', # Emissão de Boleto Padrão CAIXA '21' => 'B27', # Emissão de Boleto/Carnê '31' => 'B28', # Emissão de Aviso de Vencido '42' => 'B29', # Alteração cadastral de dados do título - sem emissão de aviso '45' => 'B30', # Emissão de 2a via de Boleto Cobrança Registrada }) end |
#equivalent_codigo_motivo_ocorrencia_C_240(codigo_movimento_gem) ⇒ Object
200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 |
# File 'lib/br_boleto/conta/caixa.rb', line 200 def equivalent_codigo_motivo_ocorrencia_C_240 codigo_movimento_gem if codigo_movimento_gem == '08' super.merge( # Padrão Código para {# do Banco a GEM '01' => 'C35', # Liquidação em Dinheiro '02' => 'C36', # Liquidação em Cheque }) else super.merge( # Padrão Código para {# do Banco a GEM '02' => 'C100', # Casa Lotérica '03' => 'C101', # Agências CAIXA '07' => 'C102', # Correspondente Bancário }) end end |
#equivalent_codigo_motivo_ocorrencia_C_400(codigo_movimento_gem) ⇒ Object
254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 |
# File 'lib/br_boleto/conta/caixa.rb', line 254 def equivalent_codigo_motivo_ocorrencia_C_400 codigo_movimento_gem super.merge( # Padrão Código para {# do Banco a GEM '002' => 'C100', # Unidade Lotérica '003' => 'C101', # Agências CAIXA '004' => 'C04', # Compensação Eletrônica '006' => 'C06', # Internet Banking '007' => 'C102', # Correspondente CAIXA aqui '008' => 'C08', # Em Cartório '009' => 'C09', # Comandada Banco '010' => 'C10', # Comandada Cliente via Arquivo '011' => 'C11', # Comandada Cliente On-line }) end |
#equivalent_codigo_movimento_retorno_240 ⇒ Object
Código de Movimento Retorno
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
# File 'lib/br_boleto/conta/caixa.rb', line 121 def equivalent_codigo_movimento_retorno_240 super.merge( # Padrão Código para {# do Banco a GEM '35' => '135', # Confirmação de Inclusão Banco de Sacado '36' => '136', # Confirmação de Alteração Banco de Sacado '37' => '137', # Confirmação de Exclusão Banco de Sacado '38' => '138', # Emissão de Bloquetos de Banco de Sacado '39' => '139', # Manutenção de Sacado Rejeitada '40' => '140', # Entrada de Título via Banco de Sacado Rejeitada '41' => '141', # Manutenção de Banco de Sacado Rejeitada '44' => '144', # Estorno de Baixa / Liquidação '45' => '145', # Alteração de Dados }) end |
#equivalent_codigo_movimento_retorno_400 ⇒ Object
Identificações de Ocorrência / Código de ocorrência:
271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 |
# File 'lib/br_boleto/conta/caixa.rb', line 271 def equivalent_codigo_movimento_retorno_400 super.merge( # Padrão Código para {# do Banco a GEM '01' => '02', # Entrada Confirmada '02' => '09', # Baixa Manual Confirmada '03' => '12', # Abatimento Concedido '04' => '13', # Abatimento Cancelado '05' => '14', # Vencimento Alterado '06' => '146', # Uso da Empresa Alterado '08' => '147', # Prazo de Devolução Alterado '09' => '27', # Alteração Confirmada '10' => '148', # Alteração com reemissão de Boleto Confirmada '11' => '149', # Alteração da opção de Protesto para Devolução Confirmada '12' => '150', # Alteração da opção de Devolução para Protesto Confirmada '20' => '11', # Em Ser '21' => '06', # Liquidação '22' => '101', # Liquidação em Cartório '23' => '151', # Baixa por Devolução '25' => '152', # Baixa por Protesto '26' => '23', # Título enviado para Cartório '27' => '20', # Sustação de Protesto '28' => '153', # Estorno de Protesto '29' => '154', # Estorno de Sustação de Protesto '30' => '61', # Alteração de Título '31' => '108', # Tarifa sobre Título Vencido '32' => '155', # Outras Tarifas de Alteração '33' => '144', # Estorno de Baixa / Liquidação '34' => '156', # Tarifas Diversas }) end |
#equivalent_codigo_protesto_400 ⇒ Object
Código para Protesto
304 305 306 307 308 309 310 |
# File 'lib/br_boleto/conta/caixa.rb', line 304 def equivalent_codigo_protesto_400 super.merge( # Padrão Código para {# da GEM o Banco '3' => '2', # Devolver (Não Protestar) }) end |
#equivalent_distribuicao_boleto ⇒ Object
Identificação da Distribuição exclusiva da CAIXA
116 117 118 |
# File 'lib/br_boleto/conta/caixa.rb', line 116 def equivalent_distribuicao_boleto super.merge({'0' => '0' }) # 0 = Postagem pelo Beneficiário end |
#nome_banco ⇒ Object
49 50 51 |
# File 'lib/br_boleto/conta/caixa.rb', line 49 def nome_banco @nome_banco ||= 'CAIXA ECONOMICA FEDERAL' end |
#versao_layout_arquivo_cnab_240 ⇒ Object
53 54 55 |
# File 'lib/br_boleto/conta/caixa.rb', line 53 def versao_layout_arquivo_cnab_240 '050' end |
#versao_layout_lote_cnab_240 ⇒ Object
57 58 59 |
# File 'lib/br_boleto/conta/caixa.rb', line 57 def versao_layout_lote_cnab_240 '030' end |