br_boleto 0.1.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +3 -0
- data/Gemfile.lock +3 -3
- data/README.markdown +196 -11
- data/Rakefile +5 -0
- data/br_boleto.gemspec +1 -1
- data/lib/br_boleto.rb +30 -12
- data/lib/br_boleto/{core/boleto.rb → boleto/base.rb} +83 -5
- data/lib/br_boleto/boleto/sicoob.rb +211 -0
- data/lib/br_boleto/calculos/modulo11_fator3197.rb +5 -5
- data/lib/br_boleto/helper/cpf_cnpj.rb +60 -0
- data/lib/br_boleto/helper/number.rb +15 -0
- data/lib/br_boleto/remessa/base.rb +89 -0
- data/lib/br_boleto/remessa/cnab240/base.rb +328 -0
- data/lib/br_boleto/remessa/cnab240/helper/header_arquivo.rb +186 -0
- data/lib/br_boleto/remessa/cnab240/helper/header_lote.rb +180 -0
- data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +349 -0
- data/lib/br_boleto/remessa/cnab240/helper/segmento_q.rb +206 -0
- data/lib/br_boleto/remessa/cnab240/helper/segmento_r.rb +261 -0
- data/lib/br_boleto/remessa/cnab240/helper/segmento_s.rb +193 -0
- data/lib/br_boleto/remessa/cnab240/helper/trailer_arquivo.rb +88 -0
- data/lib/br_boleto/remessa/cnab240/helper/trailer_lote.rb +75 -0
- data/lib/br_boleto/remessa/cnab240/sicoob.rb +246 -0
- data/lib/br_boleto/remessa/lote.rb +52 -0
- data/lib/br_boleto/remessa/pagamento.rb +238 -0
- data/lib/br_boleto/string_methods.rb +21 -0
- data/lib/br_boleto/version.rb +2 -2
- data/test/br_boleto/{core/boleto_test.rb → boleto/base_test.rb} +107 -11
- data/test/br_boleto/{core → boleto}/sicoob_test.rb +60 -2
- data/test/br_boleto/remessa/base_test.rb +80 -0
- data/test/br_boleto/remessa/cnab240/base_test.rb +405 -0
- data/test/br_boleto/remessa/cnab240/helper/header_arquivo_test.rb +208 -0
- data/test/br_boleto/remessa/cnab240/helper/header_lote_test.rb +200 -0
- data/test/br_boleto/remessa/cnab240/helper/segmento_p_test.rb +390 -0
- data/test/br_boleto/remessa/cnab240/helper/segmento_q_test.rb +223 -0
- data/test/br_boleto/remessa/cnab240/helper/segmento_r_test.rb +260 -0
- data/test/br_boleto/remessa/cnab240/helper/segmento_s_test.rb +217 -0
- data/test/br_boleto/remessa/cnab240/helper/trailer_arquivo_test.rb +82 -0
- data/test/br_boleto/remessa/cnab240/helper/trailer_lote_test.rb +67 -0
- data/test/br_boleto/remessa/cnab240/sicoob_test.rb +347 -0
- data/test/br_boleto/remessa/lote_test.rb +49 -0
- data/test/br_boleto/remessa/pagamento_test.rb +339 -0
- data/test/factories/{boleto.rb → boleto/base.rb} +1 -1
- data/test/factories/{boleto_sicoob.rb → boleto/boleto_sicoob.rb} +1 -1
- data/test/factories/remessa/base.rb +13 -0
- data/test/factories/remessa/cnab240/base.rb +18 -0
- data/test/factories/remessa/cnab240/sicoob.rb +18 -0
- data/test/factories/remessa/lote.rb +7 -0
- data/test/factories/remessa/pagamento.rb +16 -0
- data/test/inheritance/boleto_test.rb +1 -1
- data/test/inheritance/sicoob_test.rb +1 -1
- metadata +65 -13
- data/lib/br_boleto/core/sicoob.rb +0 -169
@@ -0,0 +1,206 @@
|
|
1
|
+
module BrBoleto
|
2
|
+
module Remessa
|
3
|
+
module Cnab240
|
4
|
+
module Helper
|
5
|
+
module SegmentoQ
|
6
|
+
# Monta o registro segmento Q do arquivo
|
7
|
+
#
|
8
|
+
# @param pagamento [BrBoleto::Remessa::Pagamento]
|
9
|
+
# objeto contendo os detalhes do boleto (valor, vencimento, sacado, etc)
|
10
|
+
# @param nr_lote [Integer]
|
11
|
+
# numero do lote que o segmento esta inserido
|
12
|
+
# @param sequencial [Integer]
|
13
|
+
# numero sequencial do registro no lote
|
14
|
+
#
|
15
|
+
# @return [String]
|
16
|
+
#
|
17
|
+
def monta_segmento_q(pagamento, nr_lote, sequencial)
|
18
|
+
# # DESCRICAO TAMANHO
|
19
|
+
segmento_q = ''
|
20
|
+
segmento_q << segmento_q_posicao_001_a_003 # codigo banco 3
|
21
|
+
segmento_q << segmento_q_posicao_004_a_007(nr_lote) # lote de servico 4
|
22
|
+
segmento_q << segmento_q_posicao_008_a_008 # tipo de registro 1
|
23
|
+
segmento_q << segmento_q_posicao_009_a_013(sequencial) # num. sequencial do registro no lote 5
|
24
|
+
segmento_q << segmento_q_posicao_014_a_014 # cod. segmento 1
|
25
|
+
segmento_q << segmento_q_posicao_015_a_015 # uso exclusivo 1
|
26
|
+
segmento_q << segmento_q_posicao_016_a_017 # cod. movimento remessa 2
|
27
|
+
segmento_q << segmento_q_posicao_018_a_018(pagamento) # tipo insc. sacado 1
|
28
|
+
segmento_q << segmento_q_posicao_019_a_033(pagamento) # documento sacado 14
|
29
|
+
segmento_q << segmento_q_posicao_034_a_073(pagamento) # nome cliente 40
|
30
|
+
segmento_q << segmento_q_posicao_074_a_113(pagamento) # endereco cliente 40
|
31
|
+
segmento_q << segmento_q_posicao_114_a_128(pagamento) # bairro 15
|
32
|
+
segmento_q << segmento_q_posicao_129_a_133(pagamento) # cep 5
|
33
|
+
segmento_q << segmento_q_posicao_134_a_136(pagamento) # sufixo cep 3
|
34
|
+
segmento_q << segmento_q_posicao_137_a_151(pagamento) # cidade 15
|
35
|
+
segmento_q << segmento_q_posicao_152_a_153(pagamento) # uf 2
|
36
|
+
segmento_q << segmento_q_posicao_154_a_154(pagamento) # identificacao do sacador 1
|
37
|
+
segmento_q << segmento_q_posicao_155_a_169(pagamento) # documento sacador 15
|
38
|
+
segmento_q << segmento_q_posicao_170_a_209(pagamento) # nome avalista 40
|
39
|
+
segmento_q << segmento_q_posicao_210_a_212 # cod. banco correspondente 3
|
40
|
+
segmento_q << segmento_q_posicao_213_a_232 # nosso numero banco correspondente 20
|
41
|
+
segmento_q << segmento_q_posicao_233_a_240 # uso exclusivo 8
|
42
|
+
segmento_q.upcase
|
43
|
+
end
|
44
|
+
|
45
|
+
# Código do banco
|
46
|
+
# 3 posições
|
47
|
+
#
|
48
|
+
def segmento_q_posicao_001_a_003
|
49
|
+
codigo_banco
|
50
|
+
end
|
51
|
+
|
52
|
+
# Lote de Serviço: Número seqüencial para identificar univocamente um lote de serviço.
|
53
|
+
# Criado e controlado pelo responsável pela geração magnética dos dados contidos no arquivo.
|
54
|
+
# Preencher com '0001' para o primeiro lote do arquivo.
|
55
|
+
# Para os demais: número do lote anterior acrescido de 1. O número não poderá ser repetido dentro do arquivo.
|
56
|
+
# 4 posições
|
57
|
+
#
|
58
|
+
def segmento_q_posicao_004_a_007(numero_do_lote)
|
59
|
+
numero_do_lote.to_s.rjust(4, '0')
|
60
|
+
end
|
61
|
+
|
62
|
+
# Tipo do registro -> Padrão 3
|
63
|
+
# 1 posição
|
64
|
+
#
|
65
|
+
def segmento_q_posicao_008_a_008
|
66
|
+
'3'
|
67
|
+
end
|
68
|
+
|
69
|
+
# Nº Sequencial do Registro no Lote
|
70
|
+
# 5 posições
|
71
|
+
#
|
72
|
+
def segmento_q_posicao_009_a_013(sequencial)
|
73
|
+
sequencial.to_s.rjust(5, '0')
|
74
|
+
end
|
75
|
+
|
76
|
+
# Cód. Segmento do Registro Detalhe
|
77
|
+
# 1 posição
|
78
|
+
#
|
79
|
+
def segmento_q_posicao_014_a_014
|
80
|
+
'Q'
|
81
|
+
end
|
82
|
+
|
83
|
+
# Uso Exclusivo FEBRABAN/CNAB
|
84
|
+
# 1 posição
|
85
|
+
#
|
86
|
+
def segmento_q_posicao_015_a_015
|
87
|
+
' '
|
88
|
+
end
|
89
|
+
|
90
|
+
# Código de Movimento Remessa
|
91
|
+
# 2 posições
|
92
|
+
#
|
93
|
+
def segmento_q_posicao_016_a_017
|
94
|
+
'01'
|
95
|
+
end
|
96
|
+
|
97
|
+
# Tipo de Inscrição (1=CPF 2=CNPJ)
|
98
|
+
# 1 posição
|
99
|
+
#
|
100
|
+
def segmento_q_posicao_018_a_018(pagamento)
|
101
|
+
pagamento.tipo_documento_sacado(1)
|
102
|
+
end
|
103
|
+
|
104
|
+
# Número de Inscrição
|
105
|
+
# 15 posições
|
106
|
+
#
|
107
|
+
def segmento_q_posicao_019_a_033(pagamento)
|
108
|
+
pagamento.documento_sacado.to_s.rjust(15, '0')
|
109
|
+
end
|
110
|
+
|
111
|
+
# Nome do sacado
|
112
|
+
# 40 posições
|
113
|
+
#
|
114
|
+
def segmento_q_posicao_034_a_073(pagamento)
|
115
|
+
pagamento.nome_sacado.adjust_size_to(40)
|
116
|
+
end
|
117
|
+
|
118
|
+
# Endereço sacado
|
119
|
+
# 40 posições
|
120
|
+
#
|
121
|
+
def segmento_q_posicao_074_a_113(pagamento)
|
122
|
+
pagamento.endereco_sacado.adjust_size_to(40)
|
123
|
+
end
|
124
|
+
|
125
|
+
# Bairro do sacado
|
126
|
+
# 15 posições
|
127
|
+
#
|
128
|
+
def segmento_q_posicao_114_a_128(pagamento)
|
129
|
+
pagamento.bairro_sacado.adjust_size_to(15)
|
130
|
+
end
|
131
|
+
|
132
|
+
# CEP (prefixo)
|
133
|
+
# 5 posições
|
134
|
+
#
|
135
|
+
def segmento_q_posicao_129_a_133(pagamento)
|
136
|
+
pagamento.cep_sacado[0..4]
|
137
|
+
end
|
138
|
+
|
139
|
+
# CEP sufixo
|
140
|
+
# 3 posições
|
141
|
+
#
|
142
|
+
def segmento_q_posicao_134_a_136(pagamento)
|
143
|
+
pagamento.cep_sacado[5..7]
|
144
|
+
end
|
145
|
+
|
146
|
+
# Cidade
|
147
|
+
# 15 posições
|
148
|
+
#
|
149
|
+
def segmento_q_posicao_137_a_151(pagamento)
|
150
|
+
pagamento.cidade_sacado.adjust_size_to(15)
|
151
|
+
end
|
152
|
+
|
153
|
+
# Unidade da Federação
|
154
|
+
# 2 posuções
|
155
|
+
#
|
156
|
+
def segmento_q_posicao_152_a_153(pagamento)
|
157
|
+
pagamento.uf_sacado
|
158
|
+
end
|
159
|
+
|
160
|
+
# Tipo de Inscrição
|
161
|
+
# 1 posição
|
162
|
+
#
|
163
|
+
def segmento_q_posicao_154_a_154(pagamento)
|
164
|
+
pagamento.tipo_documento_avalista(1)
|
165
|
+
end
|
166
|
+
|
167
|
+
# Número de Inscrição
|
168
|
+
# 15 posições
|
169
|
+
#
|
170
|
+
def segmento_q_posicao_155_a_169(pagamento)
|
171
|
+
"#{pagamento.documento_avalista}".rjust(15, '0')
|
172
|
+
end
|
173
|
+
|
174
|
+
# Nome do avalista
|
175
|
+
# 40 posições
|
176
|
+
#
|
177
|
+
def segmento_q_posicao_170_a_209(pagamento)
|
178
|
+
"#{pagamento.nome_avalista}".adjust_size_to(40)
|
179
|
+
end
|
180
|
+
|
181
|
+
# Cód. Bco. Corresp. na Compensação
|
182
|
+
# 3 posições
|
183
|
+
#
|
184
|
+
def segmento_q_posicao_210_a_212
|
185
|
+
''.rjust(3, '0')
|
186
|
+
end
|
187
|
+
|
188
|
+
# Nosso Nº no Banco Correspondente
|
189
|
+
# 20 posições
|
190
|
+
#
|
191
|
+
def segmento_q_posicao_213_a_232
|
192
|
+
''.rjust(20, ' ')
|
193
|
+
end
|
194
|
+
|
195
|
+
# Uso Exclusivo FEBRABAN/CNAB
|
196
|
+
# 8 posições
|
197
|
+
#
|
198
|
+
def segmento_q_posicao_233_a_240
|
199
|
+
''.rjust(8, ' ')
|
200
|
+
end
|
201
|
+
|
202
|
+
end
|
203
|
+
end
|
204
|
+
end
|
205
|
+
end
|
206
|
+
end
|
@@ -0,0 +1,261 @@
|
|
1
|
+
module BrBoleto
|
2
|
+
module Remessa
|
3
|
+
module Cnab240
|
4
|
+
module Helper
|
5
|
+
module SegmentoR
|
6
|
+
# Monta o registro segmento Q do arquivo
|
7
|
+
#
|
8
|
+
# @param pagamento [BrBoleto::Remessa::Pagamento]
|
9
|
+
# objeto contendo os detalhes do boleto (valor, vencimento, sacado, etc)
|
10
|
+
# @param nr_lote [Integer]
|
11
|
+
# numero do lote que o segmento esta inserido
|
12
|
+
# @param sequencial [Integer]
|
13
|
+
# numero sequencial do registro no lote
|
14
|
+
#
|
15
|
+
# @return [String]
|
16
|
+
#
|
17
|
+
def monta_segmento_r(pagamento, nr_lote, sequencial)
|
18
|
+
segmento_r = ''
|
19
|
+
segmento_r << segmento_r_posicao_001_a_003
|
20
|
+
segmento_r << segmento_r_posicao_004_a_007(nr_lote)
|
21
|
+
segmento_r << segmento_r_posicao_008_a_008
|
22
|
+
segmento_r << segmento_r_posicao_009_a_013(sequencial)
|
23
|
+
segmento_r << segmento_r_posicao_014_a_014
|
24
|
+
segmento_r << segmento_r_posicao_015_a_015
|
25
|
+
segmento_r << segmento_r_posicao_016_a_017
|
26
|
+
segmento_r << segmento_r_posicao_018_a_018(pagamento)
|
27
|
+
segmento_r << segmento_r_posicao_019_a_026(pagamento)
|
28
|
+
segmento_r << segmento_r_posicao_027_a_041(pagamento)
|
29
|
+
segmento_r << segmento_r_posicao_042_a_042(pagamento)
|
30
|
+
segmento_r << segmento_r_posicao_043_a_050(pagamento)
|
31
|
+
segmento_r << segmento_r_posicao_051_a_065(pagamento)
|
32
|
+
segmento_r << segmento_r_posicao_066_a_066(pagamento)
|
33
|
+
segmento_r << segmento_r_posicao_067_a_074(pagamento)
|
34
|
+
segmento_r << segmento_r_posicao_075_a_089(pagamento)
|
35
|
+
segmento_r << segmento_r_posicao_090_a_099
|
36
|
+
segmento_r << segmento_r_posicao_100_a_139
|
37
|
+
segmento_r << segmento_r_posicao_140_a_179
|
38
|
+
segmento_r << segmento_r_posicao_180_a_199
|
39
|
+
segmento_r << segmento_r_posicao_200_a_207
|
40
|
+
segmento_r << segmento_r_posicao_208_a_210
|
41
|
+
segmento_r << segmento_r_posicao_211_a_215
|
42
|
+
segmento_r << segmento_r_posicao_216_a_216
|
43
|
+
segmento_r << segmento_r_posicao_217_a_228
|
44
|
+
segmento_r << segmento_r_posicao_229_a_229
|
45
|
+
segmento_r << segmento_r_posicao_230_a_230
|
46
|
+
segmento_r << segmento_r_posicao_231_a_231
|
47
|
+
segmento_r << segmento_r_posicao_232_a_240
|
48
|
+
segmento_r.upcase
|
49
|
+
end
|
50
|
+
|
51
|
+
# Código do banco
|
52
|
+
# 3 posições
|
53
|
+
#
|
54
|
+
def segmento_r_posicao_001_a_003
|
55
|
+
codigo_banco
|
56
|
+
end
|
57
|
+
|
58
|
+
# Lote de Serviço: Número seqüencial para identificar univocamente um lote de serviço.
|
59
|
+
# Criado e controlado pelo responsável pela geração magnética dos dados contidos no arquivo.
|
60
|
+
# Preencher com '0001' para o primeiro lote do arquivo.
|
61
|
+
# Para os demais: número do lote anterior acrescido de 1. O número não poderá ser repetido dentro do arquivo.
|
62
|
+
# 4 posições
|
63
|
+
#
|
64
|
+
def segmento_r_posicao_004_a_007(numero_do_lote)
|
65
|
+
numero_do_lote.to_s.rjust(4, '0')
|
66
|
+
end
|
67
|
+
|
68
|
+
# Tipo do registro -> Padrão 3
|
69
|
+
# 1 posição
|
70
|
+
#
|
71
|
+
def segmento_r_posicao_008_a_008
|
72
|
+
'3'
|
73
|
+
end
|
74
|
+
|
75
|
+
# Nº Sequencial do Registro no Lote
|
76
|
+
# 5 posições
|
77
|
+
#
|
78
|
+
def segmento_r_posicao_009_a_013(sequencial)
|
79
|
+
sequencial.to_s.rjust(5, '0')
|
80
|
+
end
|
81
|
+
|
82
|
+
# Cód. Segmento do Registro Detalhe
|
83
|
+
# 1 posição
|
84
|
+
#
|
85
|
+
def segmento_r_posicao_014_a_014
|
86
|
+
'R'
|
87
|
+
end
|
88
|
+
|
89
|
+
# Uso Exclusivo FEBRABAN/CNAB
|
90
|
+
# 1 posição
|
91
|
+
#
|
92
|
+
def segmento_r_posicao_015_a_015
|
93
|
+
' '
|
94
|
+
end
|
95
|
+
|
96
|
+
# Código de Movimento Remessa - 01 = Entrada de Titulos
|
97
|
+
# 2 posições
|
98
|
+
#
|
99
|
+
def segmento_r_posicao_016_a_017
|
100
|
+
'01'
|
101
|
+
end
|
102
|
+
|
103
|
+
# Código do desconto 2
|
104
|
+
# 1 posição
|
105
|
+
#
|
106
|
+
def segmento_r_posicao_018_a_018(pagamento)
|
107
|
+
"#{pagamento.desconto_2_codigo}".adjust_size_to(1)
|
108
|
+
end
|
109
|
+
|
110
|
+
# Data do desconto 2
|
111
|
+
# 8 posições
|
112
|
+
#
|
113
|
+
def segmento_r_posicao_019_a_026(pagamento)
|
114
|
+
"#{pagamento.desconto_2_data_formatado('%d%m%Y')}".adjust_size_to(8, '0')
|
115
|
+
end
|
116
|
+
|
117
|
+
# Valor do desconto 2
|
118
|
+
# 15 posições
|
119
|
+
#
|
120
|
+
def segmento_r_posicao_027_a_041(pagamento)
|
121
|
+
pagamento.desconto_2_valor_formatado(15)
|
122
|
+
end
|
123
|
+
|
124
|
+
# Código do desconto 3
|
125
|
+
# 1 posição
|
126
|
+
#
|
127
|
+
def segmento_r_posicao_042_a_042(pagamento)
|
128
|
+
"#{pagamento.desconto_3_codigo}".adjust_size_to(1)
|
129
|
+
end
|
130
|
+
|
131
|
+
# Data do desconto 3
|
132
|
+
# 8 posições
|
133
|
+
#
|
134
|
+
def segmento_r_posicao_043_a_050(pagamento)
|
135
|
+
"#{pagamento.desconto_3_data_formatado('%d%m%Y')}".adjust_size_to(8, '0')
|
136
|
+
end
|
137
|
+
|
138
|
+
# Valor do desconto 3
|
139
|
+
# 15 posições
|
140
|
+
#
|
141
|
+
def segmento_r_posicao_051_a_065(pagamento)
|
142
|
+
pagamento.desconto_3_valor_formatado(15)
|
143
|
+
end
|
144
|
+
|
145
|
+
# Codigo da multa - (0 = isento, 1 = Valor fixo e 2 = Percentual)
|
146
|
+
# 1 posição
|
147
|
+
#
|
148
|
+
def segmento_r_posicao_066_a_066(pagamento)
|
149
|
+
"#{pagamento.codigo_multa}".adjust_size_to(1, '0')
|
150
|
+
end
|
151
|
+
|
152
|
+
# Data da multa
|
153
|
+
# 8 posição
|
154
|
+
#
|
155
|
+
def segmento_r_posicao_067_a_074(pagamento)
|
156
|
+
"#{pagamento.data_multa_formatado('%d%m%Y')}".adjust_size_to(8, '0')
|
157
|
+
end
|
158
|
+
|
159
|
+
# valor da multa
|
160
|
+
# 15 posições
|
161
|
+
#
|
162
|
+
def segmento_r_posicao_075_a_089(pagamento)
|
163
|
+
pagamento.valor_multa_formatado(15)
|
164
|
+
end
|
165
|
+
|
166
|
+
# Informação ao pagador
|
167
|
+
# 10 posições
|
168
|
+
#
|
169
|
+
def segmento_r_posicao_090_a_099
|
170
|
+
''.rjust(10, " ")
|
171
|
+
end
|
172
|
+
|
173
|
+
# Informação 3
|
174
|
+
# 40 posições
|
175
|
+
#
|
176
|
+
def segmento_r_posicao_100_a_139
|
177
|
+
''.rjust(40, " ")
|
178
|
+
end
|
179
|
+
|
180
|
+
# Informação 4
|
181
|
+
# 40 posições
|
182
|
+
#
|
183
|
+
def segmento_r_posicao_140_a_179
|
184
|
+
''.rjust(40, " ")
|
185
|
+
end
|
186
|
+
|
187
|
+
# CNAB Uso exclusivo FEBRABAN
|
188
|
+
# 20 posições
|
189
|
+
#
|
190
|
+
def segmento_r_posicao_180_a_199
|
191
|
+
''.rjust(20, " ")
|
192
|
+
end
|
193
|
+
|
194
|
+
# Cod. Ocor. do pagador
|
195
|
+
# 8 posições
|
196
|
+
#
|
197
|
+
def segmento_r_posicao_200_a_207
|
198
|
+
''.rjust(8, "0")
|
199
|
+
end
|
200
|
+
|
201
|
+
# Cod. do banco para débido
|
202
|
+
# 3 posições
|
203
|
+
#
|
204
|
+
def segmento_r_posicao_208_a_210
|
205
|
+
''.rjust(3, "0")
|
206
|
+
end
|
207
|
+
|
208
|
+
# Agencia para débido
|
209
|
+
# 5 posições
|
210
|
+
#
|
211
|
+
def segmento_r_posicao_211_a_215
|
212
|
+
''.rjust(5, "0")
|
213
|
+
end
|
214
|
+
|
215
|
+
# DV agencia para débido
|
216
|
+
# 1 posições
|
217
|
+
#
|
218
|
+
def segmento_r_posicao_216_a_216
|
219
|
+
" "
|
220
|
+
end
|
221
|
+
|
222
|
+
# Conta corrente para débito
|
223
|
+
# 12 posições
|
224
|
+
#
|
225
|
+
def segmento_r_posicao_217_a_228
|
226
|
+
"".rjust(12, '0')
|
227
|
+
end
|
228
|
+
|
229
|
+
# DV Conta corrente para débito
|
230
|
+
# 1 posições
|
231
|
+
#
|
232
|
+
def segmento_r_posicao_229_a_229
|
233
|
+
" "
|
234
|
+
end
|
235
|
+
|
236
|
+
# DV Aencia/Conta
|
237
|
+
# 1 posições
|
238
|
+
#
|
239
|
+
def segmento_r_posicao_230_a_230
|
240
|
+
" "
|
241
|
+
end
|
242
|
+
|
243
|
+
# Ident. Da emissão do Aviso Debito Automatico
|
244
|
+
# 1 posição
|
245
|
+
#
|
246
|
+
def segmento_r_posicao_231_a_231
|
247
|
+
"0"
|
248
|
+
end
|
249
|
+
|
250
|
+
# Uso exclusivo
|
251
|
+
# 9 posições
|
252
|
+
#
|
253
|
+
def segmento_r_posicao_232_a_240
|
254
|
+
"".rjust(9, " ")
|
255
|
+
end
|
256
|
+
|
257
|
+
end
|
258
|
+
end
|
259
|
+
end
|
260
|
+
end
|
261
|
+
end
|