Class: BrBoleto::Conta::Santander
- Inherits:
-
Base
- Object
- ActiveModelBase
- Base
- BrBoleto::Conta::Santander
- Defined in:
- lib/br_boleto/conta/santander.rb
Instance Attribute Summary collapse
-
#codigo_transmissao ⇒ Object
Código de Transmissão Consultar seu gerente para pegar esse código.
-
#valid_codigo_transmissao_required ⇒ Object
Código de Transmissão.
Attributes inherited from Base
#agencia, #carteira, #codigo_carteira, #conta_corrente, #convenio, #convenio_dv, #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 Exemplo: 9999 / 9999999.
- #agencia_dv ⇒ Object
-
#carteira_formatada ⇒ Object
Formata a carteira dependendo se ela é registrada ou não.
-
#carteiras_com_registro ⇒ Object
Retorna as carteiras com registro do banco Santander.
- #codigo_banco ⇒ Object
-
#codigo_banco_dv ⇒ Object
Dígito do código do banco descrito na documentação.
- #conta_corrente_dv ⇒ Object
- #default_codigo_multa ⇒ Object
- #default_values ⇒ Object
-
#equivalent_codigo_moeda_240 ⇒ Object
Código da Moeda CNAB240.
-
#equivalent_codigo_motivo_ocorrencia_A_400(codigo_movimento_gem) ⇒ Object
Código do Motivo da ocorrência :.
-
#equivalent_codigo_movimento_remessa_240 ⇒ Object
Código Movimento da Remessa CNAB240.
-
#equivalent_codigo_movimento_remessa_400 ⇒ Object
Código Movimento da Remessa CNAB400.
-
#equivalent_codigo_movimento_retorno_400 ⇒ Object
Identificações de Ocorrência / Código de ocorrência:.
-
#equivalent_codigo_multa ⇒ Object
Código de Multa.
-
#equivalent_codigo_protesto_240 ⇒ Object
Código para Protesto.
-
#equivalent_especie_titulo_240 ⇒ Object
Espécie do Título :.
- #equivalent_especie_titulo_400 ⇒ Object
-
#equivalent_tipo_cobranca_240 ⇒ Object
Código da Carteira.
- #equivalent_tipo_cobranca_400 ⇒ Object
- #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_C_240, #codigos_movimento_retorno_para_ocorrencia_C_400, #codigos_movimento_retorno_para_ocorrencia_D_240, #codigos_movimento_retorno_para_ocorrencia_D_400, #default_codigo_juros, #equivalent_codigo_desconto, #equivalent_codigo_juros, #equivalent_codigo_moeda_400, #equivalent_codigo_motivo_ocorrencia_A_240, #equivalent_codigo_motivo_ocorrencia_B_240, #equivalent_codigo_motivo_ocorrencia_B_400, #equivalent_codigo_motivo_ocorrencia_C_240, #equivalent_codigo_motivo_ocorrencia_C_400, #equivalent_codigo_motivo_ocorrencia_D_240, #equivalent_codigo_motivo_ocorrencia_D_400, #equivalent_codigo_movimento_retorno_240, #equivalent_codigo_ocorrencia_pagador_240, #equivalent_codigo_ocorrencia_pagador_400, #equivalent_codigo_protesto_400, #equivalent_distribuicao_boleto, #equivalent_identificacao_emissao_240, #equivalent_identificacao_emissao_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
#codigo_transmissao ⇒ Object
Código de Transmissão Consultar seu gerente para pegar esse código. Geralmente está no e-mail enviado pelo banco.
16 17 18 |
# File 'lib/br_boleto/conta/santander.rb', line 16 def codigo_transmissao @codigo_transmissao end |
#valid_codigo_transmissao_required ⇒ Object
Código de Transmissão
20 21 22 |
# File 'lib/br_boleto/conta/santander.rb', line 20 def valid_codigo_transmissao_required @valid_codigo_transmissao_required end |
Instance Method Details
#agencia_codigo_cedente ⇒ String
Campo Agência / Código do Cedente Exemplo: 9999 / 9999999
79 80 81 |
# File 'lib/br_boleto/conta/santander.rb', line 79 def agencia_codigo_cedente "#{agencia} / #{convenio}" end |
#agencia_dv ⇒ Object
62 63 64 65 66 |
# File 'lib/br_boleto/conta/santander.rb', line 62 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 ⇒ Object
Formata a carteira dependendo se ela é registrada ou não. Para cobrança COM registro usar: COBRANCA SIMPLES ECR Para Cobrança SEM registro usar: COBRANCA SIMPLES CSR
86 87 88 89 90 91 92 |
# File 'lib/br_boleto/conta/santander.rb', line 86 def carteira_formatada if @carteira.to_s.in?(carteiras_com_registro) "COBRANÇA SIMPLES ECR" else 'COBRANÇA SIMPLES CSR' end end |
#carteiras_com_registro ⇒ Object
Retorna as carteiras com registro do banco Santander. Você pode sobrescrever esse método na subclasse caso exista mais carteiras com registro no Santander.
97 98 99 |
# File 'lib/br_boleto/conta/santander.rb', line 97 def carteiras_com_registro %w(101 121) end |
#codigo_banco ⇒ Object
41 42 43 |
# File 'lib/br_boleto/conta/santander.rb', line 41 def codigo_banco '033' end |
#codigo_banco_dv ⇒ Object
Dígito do código do banco descrito na documentação
46 47 48 |
# File 'lib/br_boleto/conta/santander.rb', line 46 def codigo_banco_dv '7' end |
#conta_corrente_dv ⇒ Object
68 69 70 |
# File 'lib/br_boleto/conta/santander.rb', line 68 def conta_corrente_dv @conta_corrente_dv ||= BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new(conta_corrente).to_s end |
#default_codigo_multa ⇒ Object
176 177 178 |
# File 'lib/br_boleto/conta/santander.rb', line 176 def default_codigo_multa '0' end |
#default_values ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/br_boleto/conta/santander.rb', line 26 def default_values super.merge({ carteira: '101', valid_carteira_required: true, # <- Validação dinâmica que a modalidade é obrigatória valid_carteira_length: 3, # <- Validação dinâmica que a modalidade deve ter 3 digitos valid_carteira_inclusion: %w[101 102 121], # <- 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 modalidade deve ter 1 digito valid_conta_corrente_required: true, # <- Validação dinâmica que a conta_corrente é obrigatória valid_conta_corrente_maximum: 9, # <- Validação que a conta_corrente deve ter no máximo 9 digitos valid_convenio_required: true, # <- Validação que a convenio deve ter obrigatório valid_convenio_maximum: 7, # <- Validação que a convenio deve ter no máximo 7 digitos }) end |
#equivalent_codigo_moeda_240 ⇒ Object
Código da Moeda CNAB240
212 213 214 |
# File 'lib/br_boleto/conta/santander.rb', line 212 def equivalent_codigo_moeda_240 super.merge({'09' => '00' }) # 00 = Real end |
#equivalent_codigo_motivo_ocorrencia_A_400(codigo_movimento_gem) ⇒ Object
Código do Motivo da ocorrência :
236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 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 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 |
# File 'lib/br_boleto/conta/santander.rb', line 236 def equivalent_codigo_motivo_ocorrencia_A_400 codigo_movimento_gem super.merge( # Padrão Código para {# do Banco a GEM '001' => 'A08', # NOSSO NUMERO NAO NUMERICO '002' => 'A33', # VALOR DO ABATIMENTO NAO NUMERICO '003' => 'A16', # DATA VENCIMENTO NAO NUMERICA '005' => 'A10', # CODIGO DA CARTEIRA NAO NUMERICO '006' => 'A10', # CODIGO DA CARTEIRA INVALIDO '007' => 'A21', # ESPECIE DO DOCUMENTO INVALIDA '010' => 'A278', # CODIGO PRIMEIRA INSTRUCAO NAO NUMERICA '011' => 'A280', # CODIGO SEGUNDA INSTRUCAO NAO NUMERICA '013' => 'A20', # VALOR DO TITULO NAO NUMERICO '014' => 'A27', # VALOR DE MORA NAO NUMERICO '015' => 'A24', # DATA EMISSAO NAO NUMERICA '016' => 'A16', # DATA DE VENCIMENTO INVALIDA '017' => 'A61', # CODIGO DA AGENCIA COBRADORA NAO NUMERICA '019' => 'A48', # NUMERO DO CEP NAO NUMERICO '020' => 'A46', # TIPO INSCRICAO NAO NUMERICO '021' => 'A46', # NUMERO DO CGC OU CPF NAO NUMERICO '022' => 'A244', # CODIGO OCORRENCIA INVALIDO '023' => 'A08', # NOSSO NUMERO INV.P/MODALIDADE '025' => 'A28', # VALOR DESCONTO NAO NUMERICO '029' => 'A27', # VALOR DE MORA INVALIDO '030' => 'A256', # DT VENC MENOR DE 15 DIAS DA DT PROCES '039' => 'A254', # PERFIL NAO ACEITA TITULO EM BCO CORRESP '040' => 'A255', # COBR RAPIDA NAO ACEITA-SE BCO CORRESP '042' => 'A07', # CONTA COBRANCA INVALIDA '049' => 'A86', # SEU NUMERO NAO CONFERE COM O CARNE '052' => 'A227', # OCOR. NAO ACATADA,TITULO LIOUIDADO '053' => 'A227', # OCOR. NAO ACATADA, TITULO BAIXADO '057' => 'A322', # CEP DO SACADO INCORRETO '058' => 'A06', # CGC/CPF INCORRETO '063' => 'A49', # CEP NAO ENCONTRADO NA TABELA DE PRACAS '073' => 'A34', # ABATIMENTO MAIOR/IGUAL AO VALOR TITULO '074' => 'A29', # PRIM. DESCONTO MAIOR/IGUAL VALOR TITULO '075' => 'A29', # SEG. DESCONTO MAIOR/IGUAL VALOR TITULO '076' => 'A29', # TERC. DESCONTO MAIOR/IGUAL VALOR TITULO '086' => 'A80', # DATA SEGUNDO DESCONTO INVALIDA '087' => 'A80', # DATA TERCEIRO DESCONTO INVALIDA '091' => 'A31', # JA EXISTE CONCESSAO DE DESCONTO '092' => 'A09', # NOSSO NUMERO JA CADASTRADO '093' => 'A20', # VALOR DO TITULO NAO INFORMADO '098' => 'A24', # DATA EMISSAO INVALIDA '100' => 'A17', # DATA EMISSAO MAIOR OUE A DATA VENCIMENTO '104' => 'A52', # UNIDADE DA FEDERACAO NAO INFORMADA '106' => 'A06', # CGCICPF NAO INFORMADO '107' => 'A52', # UNIDADE DA FEDERACAO INCORRETA 00108 DIGITO CGC/CPF INCORRETO '110' => 'A80', # DATA PRIMEIRO DESCONTO INVALIDA '111' => 'A80', # DATA DESCONTO NAO NUMERICA '112' => 'A28', # VALOR DESCONTO NAO INFORMADO '113' => 'A28', # VALOR DESCONTO INVALIDO '114' => 'A33', # VALOR ABATIMENTO NAO INFORMADO '115' => 'A34', # VALOR ABATIMENTO MAIOR VALOR TITULO '116' => 'A58', # DATA MULTA NAO NUMERICA '117' => 'A29', # VALOR DESCONTO MAIOR VALOR TITULO '118' => 'A58', # DATA MULTA NAO INFORMADA '120' => 'A59', # PERCENTUAL MULTA NAO NUMERICO '121' => 'A59', # PERCENTUAL MULTA NAO INFORMADO '122' => 'A32', # VALOR IOF MAIOR OUE VALOR TITULO '123' => 'A322', # CEP DO SACADO NAO NUMERICO '124' => 'A48', # CEP SACADO NAO ENCONTRADO '129' => 'A21', # ESPEC DE DOCUMENTO NAO NUMERICA '130' => 'A11', # FORMA DE CADASTRAMENTO NAO NUMERICA '131' => 'A11', # FORMA DE CADASTRAMENTO INVALIDA '132' => 'A11', # FORMA CADAST. 2 INVALIDA PARA CARTEIRA 3 '133' => 'A11', # FORMA CADAST. 2 INVALIDA PARA CARTEIRA 4 '134' => 'A05', # CODIGO DO MOV. REMESSA NAO NUMERICO '135' => 'A05', # CODIGO DO MOV. REMESSA INVALIDO '139' => 'A02', # TIPO DE REGISTRO INVALIDO '140' => 'A03', # COD. SEOUEC.DO REG. DETALHE INVALIDO '142' => 'A07', # NUM.AG.CEDENTE/DIG.NAO NUMERICO '143' => 'A07', # NUM. CONTA CEDENTE/DIG. NAO NUMERICO '144' => 'A12', # TIPO DE DOCUMENTO NAO NUMERICO '145' => 'A12', # TIPO DE DOCUMENTO INVALIDO '149' => 'A26', # CODIGO DE MORA INVALIDO '150' => 'A26', # CODIGO DE MORA NAO NUMERICO '151' => 'A27', # VL.MORA IGUAL A ZEROS P. COD.MORA 1 '152' => 'A27', # VL. TAXA MORA IGUAL A ZEROS P.COD MORA 2 '153' => 'A27', # VL. MORA DIFERENTE DE ZEROS P.COD.MORA 3 '154' => 'A27', # VL. MORA NAO NUMERICO P. COD MORA 2 '155' => 'A27', # VL. MORA INVALIDO P. COD.MORA 4 '160' => 'A319', # BAIRRO DO SACADO NAO INFORMADO '161' => 'A53', # TIPO INSC.CPF/CGC SACADOR/AVAL.NAO NUM. '170' => 'A11', # FORMA DE CADASTRAMENTO 2 INV.P.CART.5 '199' => 'A53', # TIPO INSC.CGC/CPF SACADOR.AVAL.INVAL. '200' => 'A53', # NUM.INSC.(CGC)SACADOR/AVAL.NAO NUMERICO '212' => 'A79', # DATA DO JUROS DE MORA NAO NUMERICO (D3P) '242' => 'A57', # COD. DA MULTA NAO NUMERICO (D3R) '243' => 'A57', # COD. MULTA INVALIDO (D3R) '244' => 'A59', # VALOR DA MULTA NAO NUMERICO (D3R) '245' => 'A58', # DATA DA MULTA NAO NUMERICO (D3R) '258' => 'A27', # VL.MORA NAO NUMERICO P.COD=4(D3P) '263' => 'A278', # INSTRUCAO PARA TITULO NAO REGISTRADO '264' => 'A23', # CODIGO DE ACEITE (A/N) INVALIDO. }) end |
#equivalent_codigo_movimento_remessa_240 ⇒ Object
Código Movimento da Remessa CNAB240
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/br_boleto/conta/santander.rb', line 131 def equivalent_codigo_movimento_remessa_240 # Padrão Código para Descrição {# da GEM o Banco '01' => '01' , # Entrada de título '02' => '02' , # Pedido de baixa '04' => '04' , # Concessão de abatimento '05' => '05' , # Cancelamento de abatimento '06' => '06' , # Alteração de vencimento '07' => '10' , # Concessão de Desconto '08' => '11' , # Cancelamento de desconto '09' => '09' , # Pedido de Protesto '10' => '18' , # Pedido de Sustação de Protesto '21' => '07' , # Alteração da identificação do título na empresa '22' => '08' , # Alteração seu número '31' => '31' , # Alteração de outros dados '41' => '98' , # Não Protestar } end |
#equivalent_codigo_movimento_remessa_400 ⇒ Object
Código Movimento da Remessa CNAB400
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'lib/br_boleto/conta/santander.rb', line 151 def equivalent_codigo_movimento_remessa_400 # Padrão Código para Descrição {# da GEM o Banco '01' => '01' , # Entrada de título '02' => '02' , # Pedido de baixa '04' => '04' , # Concessão de abatimento '05' => '05' , # Cancelamento de abatimento '06' => '06' , # Alteração de vencimento '21' => '07' , # Alteração da identificação do título na empresa '22' => '08' , # Alteração seu número '09' => '09' , # Pedido de Protesto '10' => '18' , # Sustar Protesto e Baixar Título '11' => '18' , # Sustar Protesto e Manter em Carteira } end |
#equivalent_codigo_movimento_retorno_400 ⇒ Object
Identificações de Ocorrência / Código de ocorrência:
217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 |
# File 'lib/br_boleto/conta/santander.rb', line 217 def equivalent_codigo_movimento_retorno_400 super.merge( # Padrão Código para {# do Banco a GEM '01' => '104', # título não existe '07' => '102', # liquidação por conta '08' => '103', # liquidação por saldo '15' => '23', # Enviado para Cartório '16' => '25' , # tít. já baixado/liquidado '17' => '101', # liquidado em cartório '21' => '23' , # Entrada em Cartório '22' => '24' , # Retirado de cartório '24' => '235', # Custas de Cartório '25' => '19' , # Protestar Título '26' => '20' , # Sustar Protestonhado a Protesto: Identifica o recebimento da instrução de protesto }) end |
#equivalent_codigo_multa ⇒ Object
Código de Multa
168 169 170 171 172 173 174 175 |
# File 'lib/br_boleto/conta/santander.rb', line 168 def equivalent_codigo_multa # Padrão Código para Descrição {# da GEM o Banco '1' => '4', # Com Multa '2' => '4', # Com Multa '3' => '0', # Sem Multa (Isento) } end |
#equivalent_codigo_protesto_240 ⇒ Object
Código para Protesto
202 203 204 205 206 207 208 209 |
# File 'lib/br_boleto/conta/santander.rb', line 202 def equivalent_codigo_protesto_240 super.merge({ # Padrão Código para # da GEM o Banco '3' => '0', # Não Protestar '99' => '3', # Utilizar perfil cedente }) end |
#equivalent_especie_titulo_240 ⇒ Object
Espécie do Título :
104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/br_boleto/conta/santander.rb', line 104 def equivalent_especie_titulo_240 # Padrão Código para Descrição {# da GEM o Banco '02' => '02' , # DM - DUPLICATA MERCANTIL '04' => '04' , # DS - DUPLICATA DE SERVICO '07' => '07' , # LC - LETRA DE CÂMBIO '12' => '12' , # NP - NOTA PROMISSORIA '13' => '13' , # NR - NOTA PROMISSORIA RURAL '17' => '17' , # RC - RECIBO '20' => '20' , # AP - APOLICE DE SEGURO '01' => '97' , # CH - CHEQUE '98' => '98' , # NPD - NOTA PROMISSORIA DIRETA } end |
#equivalent_especie_titulo_400 ⇒ Object
118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/br_boleto/conta/santander.rb', line 118 def equivalent_especie_titulo_400 # Padrão Código para Descrição {# da GEM o Banco '02' => '01' , # DM - DUPLICATA MERCANTIL '04' => '06' , # DS - DUPLICATA DE SERVICO '07' => '07' , # LC - LETRA DE CÂMBIO '12' => '02' , # NP - NOTA PROMISSORIA '17' => '05' , # RC - RECIBO '20' => '03' , # AP - APOLICE DE SEGURO } end |
#equivalent_tipo_cobranca_240 ⇒ Object
Código da Carteira
181 182 183 184 185 186 187 188 189 190 191 |
# File 'lib/br_boleto/conta/santander.rb', line 181 def equivalent_tipo_cobranca_240 super.merge({ # Padrão Código para # da GEM o Banco '1' => '5', # Cobrança Simples (Rápida com Registro) '3' => '3', # Cobrança Caucionada (Eletrônica com Registro e Convencional com Registro) '4' => '4', # Cobrança Descontada (Eletrônica com Registro) '6' => '6', # Cobrança Caucionada (Rápida com Registro) '7' => '1', # Cobrança Simples (Sem Registro / Eletrônica com Registro) }) end |
#equivalent_tipo_cobranca_400 ⇒ Object
192 193 194 195 196 197 198 199 |
# File 'lib/br_boleto/conta/santander.rb', line 192 def equivalent_tipo_cobranca_400 super.merge({ # Padrão Código para # da GEM o Banco '7' => '4', # Cobrança Sem Registro '4' => '7', # Cobrança Descontada }) end |
#nome_banco ⇒ Object
50 51 52 |
# File 'lib/br_boleto/conta/santander.rb', line 50 def nome_banco @nome_banco ||= 'SANTANDER' end |
#versao_layout_arquivo_cnab_240 ⇒ Object
54 55 56 |
# File 'lib/br_boleto/conta/santander.rb', line 54 def versao_layout_arquivo_cnab_240 '040' end |
#versao_layout_lote_cnab_240 ⇒ Object
58 59 60 |
# File 'lib/br_boleto/conta/santander.rb', line 58 def versao_layout_lote_cnab_240 '030' end |