Class: BrBoleto::Remessa::Cnab400::Santander
- Inherits:
-
Base
- Object
- ActiveModelBase
- Base
- Base
- BrBoleto::Remessa::Cnab400::Santander
- Defined in:
- lib/br_boleto/remessa/cnab400/santander.rb
Instance Attribute Summary
Attributes inherited from Base
#data_hora_arquivo, #sequencial_remessa
Instance Method Summary collapse
-
#complemento_registro ⇒ Object
Complemento do registro POSIÇÂO TAM.
-
#complemento_remessa ⇒ Object
Ultimo digito da conta corrente + digito da conta corrente.
- #conta_class ⇒ Object
-
#detalhe_multas_e_juros_do_pagamento(pagamento, sequencial) ⇒ Object
Informações referente aos juros e multas do pagamento Posição: 161 a 218 POSIÇÂO TAM.
-
#detalhe_posicao_063_076(pagamento, sequencial) ⇒ Object
Detalhe posição: 063 até 76 POSIÇÂO TAM.
-
#detalhe_posicao_077_108(pagamento, sequencial) ⇒ Object
Detalhe posição: 77 até 108 POSIÇÂO TAM.
-
#header_posicao_002_a_002 ⇒ Object
Código da remessa Tipo: Numérico Tamanho: 001.
-
#informacoes_da_conta(local) ⇒ Object
Informações da conta <- Específico para cada banco Posição: 018 até 037 (Detalhe) = Código de Transmissão Posição: 027 até 046 (Header) = Código de Transmissão Tamanho: 020.
-
#informacoes_do_pagamento(pagamento, sequencial) ⇒ Object
Informações referente ao pagamento Posição 121 até 160 POSIÇÂO TAM.
-
#informacoes_do_sacado(pagamento, sequencial) ⇒ Object
Tamanho: 176.
- #nosso_numero_formatado(pagamento) ⇒ Object
-
#trailer_arquivo_posicao_002_a_394(sequencial) ⇒ Object
Posição: 002 a 394 POSIÇÂO TAM.
-
#valid_codigo_transmissao_required ⇒ Object
VALIDAÇÕES ESPECÍFICAS DESTE OBJETO PARA A CONTA ############.
- #valor_documento(tamanho) ⇒ Object
Methods inherited from Base
#dados_do_arquivo, #dados_do_pagamento, #informacoes_do_banco
Methods included from Helper::Trailer
#monta_trailer, #trailer_arquivo_posicao_001_a_001, #trailer_arquivo_posicao_394_a_400
Methods included from Helper::Detalhe
#detalhe_posicao_001_001, #detalhe_posicao_002_003, #detalhe_posicao_004_017, #detalhe_posicao_018_037, #detalhe_posicao_038_062, #detalhe_posicao_109_110, #detalhe_posicao_111_120, #detalhe_posicao_121_160, #detalhe_posicao_161_218, #detalhe_posicao_219_394, #detalhe_posicao_395_400, #monta_detalhe
Methods included from Helper::Header
#header_posicao_001_a_001, #header_posicao_003_a_009, #header_posicao_010_a_011, #header_posicao_012_a_026, #header_posicao_027_a_046, #header_posicao_047_a_076, #header_posicao_077_a_094, #header_posicao_095_a_100, #header_posicao_101_a_394, #header_posicao_395_a_400, #monta_header
Methods inherited from Base
#data_geracao, #hora_geracao, #pagamento_valid_cod_desconto_length, #pagamento_valid_distribuicao_boleto_length, #pagamento_valid_emissao_boleto_length, #pagamento_valid_tipo_impressao_required, #persisted?
Methods included from HaveConta
Methods inherited from ActiveModelBase
#assign_attributes, #default_values, #initialize
Constructor Details
This class inherits a constructor from BrBoleto::ActiveModelBase
Instance Method Details
#complemento_registro ⇒ Object
Complemento do registro POSIÇÂO TAM. Descrição
101 a 116 016 Zeros 117 a 391 274 Brancos 392 a 394 003 Zeros
Tamanho: 294
31 32 33 34 35 36 37 |
# File 'lib/br_boleto/remessa/cnab400/santander.rb', line 31 def complemento_registro complemento = '' complemento << ''.adjust_size_to(16, '0', :right) complemento << ''.adjust_size_to(275) complemento << ''.adjust_size_to(3, '0', :right) complemento end |
#complemento_remessa ⇒ Object
Ultimo digito da conta corrente + digito da conta corrente
192 193 194 |
# File 'lib/br_boleto/remessa/cnab400/santander.rb', line 192 def complemento_remessa "#{conta.conta_corrente[-1]}#{conta.conta_corrente_dv}" end |
#conta_class ⇒ Object
6 7 8 |
# File 'lib/br_boleto/remessa/cnab400/santander.rb', line 6 def conta_class BrBoleto::Conta::Santander end |
#detalhe_multas_e_juros_do_pagamento(pagamento, sequencial) ⇒ Object
Informações referente aos juros e multas do pagamento Posição: 161 a 218 POSIÇÂO TAM. Descrição 161 a 173 013 Valor a ser cobrado por Dia de Atraso 174 a 179 006 Data Limite P/Concessão de Desconto 180 a 192 013 Valor do Desconto 193 a 205 013 Valor do IOF 206 a 218 013 Valor do Abatimento a ser concedido ou cancelado Tamanho: 58
136 137 138 139 140 141 142 143 144 |
# File 'lib/br_boleto/remessa/cnab400/santander.rb', line 136 def detalhe_multas_e_juros_do_pagamento(pagamento, sequencial) detalhe = '' detalhe << pagamento.valor_juros_monetario_formatado(13) detalhe << "#{pagamento.data_desconto_formatado('%d%m%y')}".adjust_size_to(6,'0', :right ) detalhe << "#{pagamento.valor_desconto_formatado}".adjust_size_to(13,'0', :right ) detalhe << "#{pagamento.valor_iof_formatado}".adjust_size_to(13,'0', :right ) detalhe << "#{pagamento.valor_abatimento_formatado}".adjust_size_to(13,'0', :right ) detalhe end |
#detalhe_posicao_063_076(pagamento, sequencial) ⇒ Object
Detalhe posição: 063 até 76 POSIÇÂO TAM. Descrição
063 a 070 008 Nosso Número 071 a 076 006 Data do segundo desconto (Zeros)
Tamanho: 14
56 57 58 59 60 61 |
# File 'lib/br_boleto/remessa/cnab400/santander.rb', line 56 def detalhe_posicao_063_076(pagamento, sequencial) detalhe = '' detalhe << "#{nosso_numero_formatado(pagamento)}".adjust_size_to(8, '0', :right) detalhe << ''.adjust_size_to(6, '0', :right) detalhe end |
#detalhe_posicao_077_108(pagamento, sequencial) ⇒ Object
Detalhe posição: 77 até 108 POSIÇÂO TAM. Descrição
077 a 077 001 Branco 078 a 078 001 Informação de multa 079 a 082 004 Percentual multa por atraso % 083 a 084 002 Unidade de valor moeda corrente (00) 085 a 097 013 Valor do título em outra unidade 098 a 101 004 Brancos 102 a 107 006 Data para cobrança de multa 108 a 108 001 Cod. Carteira
Tamanho: 32
82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/br_boleto/remessa/cnab400/santander.rb', line 82 def detalhe_posicao_077_108(pagamento, sequencial) detalhe = '' detalhe << ' ' detalhe << "#{conta.get_codigo_multa(pagamento.codigo_multa)}".adjust_size_to(1, '0', :right) detalhe << "#{pagamento.valor_multa_formatado(4)}".adjust_size_to(4, '0', :right) detalhe << '00' detalhe << ''.adjust_size_to(13, '0', :right) detalhe << ''.adjust_size_to(4) detalhe << "#{pagamento.data_multa_formatado}".adjust_size_to(6, '0', :right) detalhe << "#{conta.get_tipo_cobranca(conta.codigo_carteira, 400)}".adjust_size_to(1, '1') detalhe end |
#header_posicao_002_a_002 ⇒ Object
Código da remessa Tipo: Numérico Tamanho: 001
19 20 21 |
# File 'lib/br_boleto/remessa/cnab400/santander.rb', line 19 def header_posicao_002_a_002 '1' end |
#informacoes_da_conta(local) ⇒ Object
Informações da conta <- Específico para cada banco Posição: 018 até 037 (Detalhe) = Código de Transmissão Posição: 027 até 046 (Header) = Código de Transmissão Tamanho: 020
45 46 47 |
# File 'lib/br_boleto/remessa/cnab400/santander.rb', line 45 def informacoes_da_conta(local) "#{conta.codigo_transmissao}".adjust_size_to(20, '0', :right) end |
#informacoes_do_pagamento(pagamento, sequencial) ⇒ Object
Informações referente ao pagamento Posição 121 até 160 POSIÇÂO TAM. Descrição 121 a 126 006 Data do Vencimento do Título 127 a 139 013 Valor do Título 140 a 142 003 Banco Encarregado da Cobrança 143 a 147 005 Agência Depositária (preencher com zeros) 148 a 149 002 Espécie de Título 150 a 150 001 Identificação (Sempre ‘N’) 151 a 156 006 Data da emissão do Título 157 a 158 002 1a instrução 159 a 160 002 2a instrução Tamanho: 40
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/br_boleto/remessa/cnab400/santander.rb', line 110 def informacoes_do_pagamento(pagamento, sequencial) dados = '' dados << pagamento.data_vencimento_formatado('%d%m%y') dados << pagamento.valor_documento_formatado(13) dados << "#{conta.codigo_banco}".adjust_size_to(3,'0', :right) dados << ''.adjust_size_to(5,'0', :right) dados << "#{conta.get_especie_titulo(pagamento.especie_titulo, 400)}".adjust_size_to(2, '0', :right) dados << 'N' dados << pagamento.data_emissao_formatado('%d%m%y') # 1a / 2a Instrução, conforme documentação (pag. 20, Nota 11): dados << ''.adjust_size_to(2,'0', :right) # 1a Instrução dados << ''.adjust_size_to(2,'0', :right) # 2a Instrução dados end |
#informacoes_do_sacado(pagamento, sequencial) ⇒ Object
Tamanho: 176
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 |
# File 'lib/br_boleto/remessa/cnab400/santander.rb', line 169 def informacoes_do_sacado(pagamento, sequencial) info = '' # Tipo de Inscrição do Pagador: "01" = CPF , "02" = CNPJ , "03" = PIS/PASEP , "98" = Não tem , "99" = Outros info << "#{pagamento.pagador.tipo_cpf_cnpj}".adjust_size_to(2, '0', :right) info << "#{pagamento.pagador.cpf_cnpj}".adjust_size_to(14, '0', :right) info << "#{pagamento.pagador.nome}".adjust_size_to(40) info << "#{pagamento.pagador.endereco}".adjust_size_to(40) info << "#{pagamento.pagador.bairro}".adjust_size_to(12) info << "#{pagamento.pagador.cep}".adjust_size_to(8, '0', :right) # CEP + Sufixo do CEP info << "#{pagamento.pagador.cidade}".adjust_size_to(15) info << "#{pagamento.pagador.uf}".adjust_size_to(2) info << "#{pagamento.pagador.nome_avalista}".adjust_size_to(30) # Sacador/Avalista (Nome) info << ''.adjust_size_to(1) # Complemento Registro (Brancos) info << 'I' # Identificador do Complemento (I) info << complemento_remessa info << ''.adjust_size_to(6) # Brancos info << '00' # Quantidade de dias info << ''.adjust_size_to(1) # Complemento Registro (Brancos) info end |
#nosso_numero_formatado(pagamento) ⇒ Object
62 63 64 65 66 67 |
# File 'lib/br_boleto/remessa/cnab400/santander.rb', line 62 def nosso_numero_formatado(pagamento) # Por padrão o nosso número possui 13 dígitos, mas nesse caso para a remessa # serão utilizados apenas 8 dígitos. nosso_numero = "#{pagamento.nosso_numero}".adjust_size_to(13, '0', :right) nosso_numero[5..12] end |
#trailer_arquivo_posicao_002_a_394(sequencial) ⇒ Object
Posição: 002 a 394 POSIÇÂO TAM. Descrição 002 a 007 006 Quantidade total de linhas no arquivo 008 a 020 013 Valor total dos títulos 021 a 394 374 Zeros
Tamanho: 393
205 206 207 208 209 210 211 |
# File 'lib/br_boleto/remessa/cnab400/santander.rb', line 205 def trailer_arquivo_posicao_002_a_394(sequencial) trailer = '' trailer << "#{sequencial}".adjust_size_to(6, '0', :right) trailer << "#{valor_documento(13)}".adjust_size_to(13, '0', :right) trailer << ''.adjust_size_to(374, '0') trailer end |
#valid_codigo_transmissao_required ⇒ Object
VALIDAÇÕES ESPECÍFICAS DESTE OBJETO PARA A CONTA ############
11 |
# File 'lib/br_boleto/remessa/cnab400/santander.rb', line 11 def valid_codigo_transmissao_required; true end |
#valor_documento(tamanho) ⇒ Object
212 213 214 215 |
# File 'lib/br_boleto/remessa/cnab400/santander.rb', line 212 def valor_documento(tamanho) valor_doc = pagamentos.map(&:valor_documento).sum BrBoleto::Helper::Number.new(valor_doc).formata_valor_monetario(tamanho) end |