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             # 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_017Object

Código de Movimento Remessa 2 posições



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

def segmento_q_posicao_016_a_017
	'01'
end

#segmento_q_posicao_018_a_018(pagamento) ⇒ Object

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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

#segmento_q_posicao_233_a_240Object

Uso Exclusivo FEBRABAN/CNAB 8 posições



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

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