Module: BrBoleto::Remessa::Cnab240::Helper::SegmentoQ

Included in:
Base
Defined in:
lib/br_boleto/remessa/cnab240/helper/segmento_q.rb

Instance Method Summary collapse

Instance Method Details

#monta_segmento_q(pagamento, nr_lote, sequencial) ⇒ String

Monta o registro segmento Q do arquivo

Parameters:

  • pagamento (BrBoleto::Remessa::Pagamento)

    objeto contendo os detalhes do boleto (valor, vencimento, sacado, etc)

  • nr_lote (Integer)

    numero do lote que o segmento esta inserido

  • sequencial (Integer)

    numero sequencial do registro no lote

Returns:

  • (String)


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 17

def monta_segmento_q(pagamento, nr_lote, sequencial)
  #                                                      # DESCRICAO                         TAMANHO
  segmento_q = ''                                        
  segmento_q << segmento_q_posicao_001_a_003             # codigo banco                         3
  segmento_q << segmento_q_posicao_004_a_007(nr_lote)    # lote de servico                      4
  segmento_q << segmento_q_posicao_008_a_008             # tipo de registro                     1
  segmento_q << segmento_q_posicao_009_a_013(sequencial) # num. sequencial do registro no lote  5
  segmento_q << segmento_q_posicao_014_a_014             # cod. segmento                        1
  segmento_q << segmento_q_posicao_015_a_015             # uso exclusivo                        1
  segmento_q << segmento_q_posicao_016_a_017(pagamento)  # cod. movimento remessa               2
  segmento_q << segmento_q_posicao_018_a_018(pagamento)  # tipo insc. sacado                    1
  segmento_q << segmento_q_posicao_019_a_033(pagamento)  # documento sacado                     14
  segmento_q << segmento_q_posicao_034_a_073(pagamento)  # nome cliente                         40
  segmento_q << segmento_q_posicao_074_a_113(pagamento)  # endereco cliente                     40
  segmento_q << segmento_q_posicao_114_a_128(pagamento)  # bairro                               15
  segmento_q << segmento_q_posicao_129_a_133(pagamento)  # cep                                  5
  segmento_q << segmento_q_posicao_134_a_136(pagamento)  # sufixo cep                           3
  segmento_q << segmento_q_posicao_137_a_151(pagamento)  # cidade                               15
  segmento_q << segmento_q_posicao_152_a_153(pagamento)  # uf                                   2
  segmento_q << segmento_q_posicao_154_a_154(pagamento)  # identificacao do sacador             1
  segmento_q << segmento_q_posicao_155_a_169(pagamento)  # documento sacador                    15
  segmento_q << segmento_q_posicao_170_a_209(pagamento)  # nome avalista                         40
  segmento_q << segmento_q_posicao_210_a_212             # cod. banco correspondente            3
  segmento_q << segmento_q_posicao_213_a_232             # nosso numero banco correspondente    20
  segmento_q << segmento_q_posicao_233_a_240             # uso exclusivo                        8
  segmento_q.upcase
end

#segmento_q_posicao_001_a_003Object

Código do banco 3 posições



48
49
50
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 48

def segmento_q_posicao_001_a_003 
  conta.codigo_banco
end

#segmento_q_posicao_004_a_007(numero_do_lote) ⇒ Object

Lote de Serviço: Número seqüencial para identificar univocamente um lote de serviço. Criado e controlado pelo responsável pela geração magnética dos dados contidos no arquivo. Preencher com ‘0001’ para o primeiro lote do arquivo. Para os demais: número do lote anterior acrescido de 1. O número não poderá ser repetido dentro do arquivo. 4 posições



58
59
60
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 58

def segmento_q_posicao_004_a_007(numero_do_lote)
  "#{numero_do_lote}".adjust_size_to(4, '0', :right)
end

#segmento_q_posicao_008_a_008Object

Tipo do registro -> Padrão 3 1 posição



65
66
67
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 65

def segmento_q_posicao_008_a_008
  '3'
end

#segmento_q_posicao_009_a_013(sequencial) ⇒ Object

Nº Sequencial do Registro no Lote 5 posições



72
73
74
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 72

def segmento_q_posicao_009_a_013(sequencial)
  "#{sequencial}".adjust_size_to(5, '0', :right)
end

#segmento_q_posicao_014_a_014Object

Cód. Segmento do Registro Detalhe 1 posição



79
80
81
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 79

def segmento_q_posicao_014_a_014
  'Q'
end

#segmento_q_posicao_015_a_015Object

Uso Exclusivo FEBRABAN/CNAB 1 posição



86
87
88
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 86

def segmento_q_posicao_015_a_015
  ' '
end

#segmento_q_posicao_016_a_017(pagamento) ⇒ Object

Código de Movimento Remessa 2 posições



93
94
95
96
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 93

def segmento_q_posicao_016_a_017(pagamento)
  code = "#{pagamento.identificacao_ocorrencia}".rjust(2, '0')
  "#{conta.get_codigo_movimento_remessa(code, 240)}".adjust_size_to(2, '0')
end

#segmento_q_posicao_018_a_018(pagamento) ⇒ Object

Tipo de Inscrição (1=CPF 2=CNPJ) 1 posição



101
102
103
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 101

def segmento_q_posicao_018_a_018(pagamento)
  pagamento.pagador.tipo_cpf_cnpj(1)
end

#segmento_q_posicao_019_a_033(pagamento) ⇒ Object

Número de Inscrição 15 posições



108
109
110
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 108

def segmento_q_posicao_019_a_033(pagamento)
  "#{pagamento.pagador.cpf_cnpj}".adjust_size_to(15, '0', :right)
end

#segmento_q_posicao_034_a_073(pagamento) ⇒ Object

Nome do sacado 40 posições



115
116
117
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 115

def segmento_q_posicao_034_a_073(pagamento)
  "#{pagamento.pagador.nome}".adjust_size_to(40)
end

#segmento_q_posicao_074_a_113(pagamento) ⇒ Object

Endereço sacado 40 posições



122
123
124
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 122

def segmento_q_posicao_074_a_113(pagamento)
  "#{pagamento.pagador.endereco}".adjust_size_to(40)
end

#segmento_q_posicao_114_a_128(pagamento) ⇒ Object

Bairro do sacado 15 posições



129
130
131
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 129

def segmento_q_posicao_114_a_128(pagamento)
  "#{pagamento.pagador.bairro}".adjust_size_to(15)
end

#segmento_q_posicao_129_a_133(pagamento) ⇒ Object

CEP (prefixo) 5 posições



136
137
138
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 136

def segmento_q_posicao_129_a_133(pagamento)
  "#{pagamento.pagador.cep}"[0..4]
end

#segmento_q_posicao_134_a_136(pagamento) ⇒ Object

CEP sufixo 3 posições



143
144
145
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 143

def segmento_q_posicao_134_a_136(pagamento)
  "#{pagamento.pagador.cep}"[5..7]
end

#segmento_q_posicao_137_a_151(pagamento) ⇒ Object

Cidade 15 posições



150
151
152
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 150

def segmento_q_posicao_137_a_151(pagamento)
  "#{pagamento.pagador.cidade}".adjust_size_to(15)
end

#segmento_q_posicao_152_a_153(pagamento) ⇒ Object

Unidade da Federação 2 posuções



157
158
159
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 157

def segmento_q_posicao_152_a_153(pagamento)
  "#{pagamento.pagador.uf}".adjust_size_to(2)
end

#segmento_q_posicao_154_a_154(pagamento) ⇒ Object

Tipo de Inscrição 1 posição



164
165
166
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 164

def segmento_q_posicao_154_a_154(pagamento)
  pagamento.pagador.tipo_documento_avalista(1)
end

#segmento_q_posicao_155_a_169(pagamento) ⇒ Object

CNPF/CNPJ Avalista 15 posições



171
172
173
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 171

def segmento_q_posicao_155_a_169(pagamento)
  "#{pagamento.pagador.documento_avalista}".adjust_size_to(15, '0', :right)
end

#segmento_q_posicao_170_a_209(pagamento) ⇒ Object

Nome do avalista 40 posições



178
179
180
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 178

def segmento_q_posicao_170_a_209(pagamento)
  "#{pagamento.pagador.nome_avalista}".adjust_size_to(40)
end

#segmento_q_posicao_210_a_212Object

Cód. Bco. Corresp. na Compensação 3 posições



185
186
187
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 185

def segmento_q_posicao_210_a_212
  ''.rjust(3, '0') 
end

#segmento_q_posicao_213_a_232Object

Nosso Nº no Banco Correspondente 20 posições



192
193
194
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 192

def segmento_q_posicao_213_a_232
  ''.rjust(20, ' ')
end

#segmento_q_posicao_233_a_240Object

Uso Exclusivo FEBRABAN/CNAB 8 posições



199
200
201
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_q.rb', line 199

def segmento_q_posicao_233_a_240
  ''.rjust(8, ' ') 
end