brcobranca 6.1.2 → 6.1.3
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/lib/brcobranca.rb +3 -0
- data/lib/brcobranca/remessa/base.rb +2 -0
- data/lib/brcobranca/remessa/cnab240/banco_brasil.rb +1 -1
- data/lib/brcobranca/remessa/cnab240/base.rb +116 -115
- data/lib/brcobranca/remessa/cnab400/base.rb +3 -3
- data/lib/brcobranca/remessa/cnab400/bradesco.rb +1 -1
- data/lib/brcobranca/remessa/cnab400/citibank.rb +1 -1
- data/lib/brcobranca/remessa/cnab400/itau.rb +1 -1
- data/lib/brcobranca/remessa/cnab400/santander.rb +1 -1
- data/lib/brcobranca/remessa/pagamento.rb +14 -6
- data/lib/brcobranca/version.rb +1 -1
- data/spec/brcobranca/remessa/cnab240/sicoob_spec.rb +1 -1
- data/spec/brcobranca/remessa/cnab400/bradesco_spec.rb +1 -1
- data/spec/fixtures/remessa/remessa-banco_brasil-cnab240.rem +6 -6
- data/spec/fixtures/remessa/remessa-bancoob-cnab240.rem +6 -6
- data/spec/fixtures/remessa/remessa-bradesco-cnab400.rem +3 -3
- data/spec/fixtures/remessa/remessa-caixa-cnab240.rem +6 -6
- data/spec/fixtures/remessa/remessa-citibank-cnab400.rem +3 -3
- data/spec/fixtures/remessa/remessa-itau-cnab400.rem +3 -3
- data/spec/fixtures/remessa/remessa-santander-cnab400.rem +3 -3
- data/spec/support/shared_examples/cnab240.rb +12 -11
- data/spec/support/shared_examples/cnab400.rb +7 -6
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4e5cb0e55afd61a76bc5b563eaa9e134b24272bf
|
|
4
|
+
data.tar.gz: da4a9cf41f842b383e5a4417f5383c1b9f8bbee0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cf74ea6cfda2ff4f78f53796ff643173be25c4aab9df690e3d6ccdcfdbc3f6555c71f0813ac30f4c5c0a416a22984c940c51c9cd1fe39b761543dd9a75c9f42d
|
|
7
|
+
data.tar.gz: 9e84d77d762183f45962564a25daf89ef0f8edb9be982163f2d5eb9025903fefbef0de36325aa3811300a0917883f224a35b1997f625525e8d3acd8ebf4ff6f2
|
data/lib/brcobranca.rb
CHANGED
|
@@ -67,28 +67,28 @@ module Brcobranca
|
|
|
67
67
|
# @return [String]
|
|
68
68
|
#
|
|
69
69
|
def monta_header_arquivo
|
|
70
|
-
header_arquivo = ''
|
|
71
|
-
header_arquivo << cod_banco
|
|
72
|
-
header_arquivo << '0000'
|
|
73
|
-
header_arquivo << '0'
|
|
74
|
-
header_arquivo << ''.rjust(9, ' ')
|
|
70
|
+
header_arquivo = '' # CAMPO TAMANHO
|
|
71
|
+
header_arquivo << cod_banco # codigo do banco 3
|
|
72
|
+
header_arquivo << '0000' # lote do servico 4
|
|
73
|
+
header_arquivo << '0' # tipo de registro 1
|
|
74
|
+
header_arquivo << ''.rjust(9, ' ') # uso exclusivo FEBRABAN 9
|
|
75
75
|
header_arquivo << Brcobranca::Util::Empresa.new(documento_cedente, false).tipo # tipo inscricao 1
|
|
76
|
-
header_arquivo << documento_cedente.to_s.rjust(14, '0')
|
|
77
|
-
header_arquivo << codigo_convenio
|
|
78
|
-
header_arquivo << info_conta
|
|
79
|
-
header_arquivo << empresa_mae.format_size(30)
|
|
80
|
-
header_arquivo << nome_banco.format_size(30)
|
|
81
|
-
header_arquivo << ''.rjust(10, ' ')
|
|
82
|
-
header_arquivo << '1'
|
|
83
|
-
header_arquivo << data_geracao
|
|
84
|
-
header_arquivo << hora_geracao
|
|
85
|
-
header_arquivo << sequencial_remessa.to_s.rjust(6, '0')
|
|
86
|
-
header_arquivo << versao_layout_arquivo
|
|
87
|
-
header_arquivo << ''.rjust(5, '0')
|
|
88
|
-
header_arquivo << ''.rjust(20, '0')
|
|
89
|
-
header_arquivo << ''.rjust(20, '0')
|
|
90
|
-
header_arquivo << complemento_header
|
|
91
|
-
header_arquivo
|
|
76
|
+
header_arquivo << documento_cedente.to_s.rjust(14, '0') # numero de inscricao 14
|
|
77
|
+
header_arquivo << codigo_convenio # codigo do convenio no banco 20
|
|
78
|
+
header_arquivo << info_conta # informacoes da conta 20
|
|
79
|
+
header_arquivo << empresa_mae.format_size(30) # nome da empresa 30
|
|
80
|
+
header_arquivo << nome_banco.format_size(30) # nome do banco 30
|
|
81
|
+
header_arquivo << ''.rjust(10, ' ') # uso exclusivo FEBRABAN 10
|
|
82
|
+
header_arquivo << '1' # codigo remessa 1
|
|
83
|
+
header_arquivo << data_geracao # data geracao 8
|
|
84
|
+
header_arquivo << hora_geracao # hora geracao 6
|
|
85
|
+
header_arquivo << sequencial_remessa.to_s.rjust(6, '0') # numero seq. arquivo 6
|
|
86
|
+
header_arquivo << versao_layout_arquivo # num. versao arquivo 3
|
|
87
|
+
header_arquivo << ''.rjust(5, '0') # densidade gravacao 5
|
|
88
|
+
header_arquivo << ''.rjust(20, '0') # uso exclusivo 20
|
|
89
|
+
header_arquivo << ''.rjust(20, '0') # uso exclusivo 20
|
|
90
|
+
header_arquivo << complemento_header # complemento do arquivo 29
|
|
91
|
+
header_arquivo
|
|
92
92
|
end
|
|
93
93
|
|
|
94
94
|
# Monta o registro header do lote
|
|
@@ -99,27 +99,27 @@ module Brcobranca
|
|
|
99
99
|
# @return [String]
|
|
100
100
|
#
|
|
101
101
|
def monta_header_lote(nro_lote)
|
|
102
|
-
header_lote = ''
|
|
103
|
-
header_lote << cod_banco
|
|
104
|
-
header_lote << nro_lote.to_s.rjust(4, '0')
|
|
105
|
-
header_lote << '1'
|
|
106
|
-
header_lote << 'R'
|
|
107
|
-
header_lote << '01'
|
|
108
|
-
header_lote << ' '
|
|
109
|
-
header_lote << versao_layout_lote
|
|
110
|
-
header_lote << ' '
|
|
111
|
-
header_lote << Brcobranca::Util::Empresa.new(documento_cedente, false).tipo
|
|
112
|
-
header_lote << documento_cedente.to_s.rjust(15, '0')
|
|
113
|
-
header_lote << convenio_lote
|
|
114
|
-
header_lote << info_conta
|
|
115
|
-
header_lote << empresa_mae.format_size(30)
|
|
116
|
-
header_lote << mensagem_1.to_s.format_size(40)
|
|
117
|
-
header_lote << mensagem_2.to_s.format_size(40)
|
|
118
|
-
header_lote << sequencial_remessa.to_s.rjust(8, '0')
|
|
119
|
-
header_lote << data_geracao
|
|
120
|
-
header_lote << ''.rjust(8, '0')
|
|
121
|
-
header_lote << ''.rjust(33, ' ')
|
|
122
|
-
header_lote
|
|
102
|
+
header_lote = '' # CAMPO TAMANHO
|
|
103
|
+
header_lote << cod_banco # codigo banco 3
|
|
104
|
+
header_lote << nro_lote.to_s.rjust(4, '0') # lote servico 4
|
|
105
|
+
header_lote << '1' # tipo de registro 1
|
|
106
|
+
header_lote << 'R' # tipo de operacao 1
|
|
107
|
+
header_lote << '01' # tipo de servico 2
|
|
108
|
+
header_lote << ' ' # uso exclusivo 2
|
|
109
|
+
header_lote << versao_layout_lote # num.versao layout lote 3
|
|
110
|
+
header_lote << ' ' # uso exclusivo 1
|
|
111
|
+
header_lote << Brcobranca::Util::Empresa.new(documento_cedente, false).tipo # tipo de inscricao 1
|
|
112
|
+
header_lote << documento_cedente.to_s.rjust(15, '0') # inscricao cedente 15
|
|
113
|
+
header_lote << convenio_lote # codigo do convenio 20
|
|
114
|
+
header_lote << info_conta # informacoes conta 20
|
|
115
|
+
header_lote << empresa_mae.format_size(30) # nome empresa 30
|
|
116
|
+
header_lote << mensagem_1.to_s.format_size(40) # 1a mensagem 40
|
|
117
|
+
header_lote << mensagem_2.to_s.format_size(40) # 2a mensagem 40
|
|
118
|
+
header_lote << sequencial_remessa.to_s.rjust(8, '0') # numero remessa 8
|
|
119
|
+
header_lote << data_geracao # data gravacao 8
|
|
120
|
+
header_lote << ''.rjust(8, '0') # data do credito 8
|
|
121
|
+
header_lote << ''.rjust(33, ' ') # complemento 33
|
|
122
|
+
header_lote
|
|
123
123
|
end
|
|
124
124
|
|
|
125
125
|
# Monta o registro segmento P do arquivo
|
|
@@ -136,46 +136,46 @@ module Brcobranca
|
|
|
136
136
|
def monta_segmento_p(pagamento, nro_lote, sequencial)
|
|
137
137
|
# campos com * na frente nao foram implementados
|
|
138
138
|
# # DESCRICAO TAMANHO
|
|
139
|
-
segmento_p = cod_banco
|
|
140
|
-
segmento_p << nro_lote.to_s.rjust(4, '0')
|
|
141
|
-
segmento_p << '3'
|
|
142
|
-
segmento_p << sequencial.to_s.rjust(5, '0')
|
|
143
|
-
segmento_p << 'P'
|
|
144
|
-
segmento_p << ' '
|
|
145
|
-
segmento_p << '01'
|
|
146
|
-
segmento_p << agencia.to_s.rjust(5, '0')
|
|
147
|
-
segmento_p << digito_agencia.to_s
|
|
148
|
-
segmento_p << complemento_p(pagamento)
|
|
149
|
-
segmento_p << codigo_carteira
|
|
150
|
-
segmento_p << forma_cadastramento
|
|
151
|
-
segmento_p << tipo_documento
|
|
152
|
-
segmento_p << emissao_boleto
|
|
153
|
-
segmento_p << distribuicao_boleto
|
|
154
|
-
segmento_p << pagamento.numero_documento.to_s.rjust(15, '0')
|
|
155
|
-
segmento_p << pagamento.data_vencimento.strftime('%d%m%Y')
|
|
156
|
-
segmento_p << pagamento.formata_valor(15)
|
|
157
|
-
segmento_p << ''.rjust(5, '0')
|
|
158
|
-
segmento_p << '0'
|
|
159
|
-
segmento_p << especie_titulo
|
|
160
|
-
segmento_p << aceite
|
|
161
|
-
segmento_p << pagamento.data_emissao.strftime('%d%m%Y')
|
|
162
|
-
segmento_p << '0'
|
|
163
|
-
segmento_p << ''.rjust(8, '0')
|
|
164
|
-
segmento_p << ''.rjust(15, '0')
|
|
165
|
-
segmento_p << pagamento.cod_desconto
|
|
166
|
-
segmento_p << pagamento.formata_data_desconto('%d%m%Y')
|
|
167
|
-
segmento_p << pagamento.formata_valor_desconto(15)
|
|
168
|
-
segmento_p << pagamento.formata_valor_iof(15)
|
|
169
|
-
segmento_p << pagamento.formata_valor_abatimento(15)
|
|
170
|
-
segmento_p << ''.rjust(25, ' ')
|
|
171
|
-
segmento_p << '0'
|
|
172
|
-
segmento_p << '00'
|
|
173
|
-
segmento_p << '0'
|
|
174
|
-
segmento_p << '000'
|
|
175
|
-
segmento_p << '09'
|
|
176
|
-
segmento_p << ''.rjust(10, '0')
|
|
177
|
-
segmento_p << ' '
|
|
178
|
-
segmento_p
|
|
139
|
+
segmento_p = cod_banco # codigo banco 3
|
|
140
|
+
segmento_p << nro_lote.to_s.rjust(4, '0') # lote de servico 4
|
|
141
|
+
segmento_p << '3' # tipo de registro 1
|
|
142
|
+
segmento_p << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5
|
|
143
|
+
segmento_p << 'P' # cod. segmento 1
|
|
144
|
+
segmento_p << ' ' # uso exclusivo 1
|
|
145
|
+
segmento_p << '01' # cod. movimento remessa 2
|
|
146
|
+
segmento_p << agencia.to_s.rjust(5, '0') # agencia 5
|
|
147
|
+
segmento_p << digito_agencia.to_s # dv agencia 1
|
|
148
|
+
segmento_p << complemento_p(pagamento) # informacoes da conta 34
|
|
149
|
+
segmento_p << codigo_carteira # codigo da carteira 1
|
|
150
|
+
segmento_p << forma_cadastramento # forma de cadastro do titulo 1
|
|
151
|
+
segmento_p << tipo_documento # tipo de documento 1
|
|
152
|
+
segmento_p << emissao_boleto # identificaco emissao 1
|
|
153
|
+
segmento_p << distribuicao_boleto # indentificacao entrega 1
|
|
154
|
+
segmento_p << pagamento.numero_documento.to_s.rjust(15, '0') # uso exclusivo 4
|
|
155
|
+
segmento_p << pagamento.data_vencimento.strftime('%d%m%Y') # data de venc. 8
|
|
156
|
+
segmento_p << pagamento.formata_valor(15) # valor documento 15
|
|
157
|
+
segmento_p << ''.rjust(5, '0') # agencia cobradora 5
|
|
158
|
+
segmento_p << '0' # dv agencia cobradora 1
|
|
159
|
+
segmento_p << especie_titulo # especie do titulo 2
|
|
160
|
+
segmento_p << aceite # aceite 1
|
|
161
|
+
segmento_p << pagamento.data_emissao.strftime('%d%m%Y') # data de emissao titulo 8
|
|
162
|
+
segmento_p << '0' # cod. do juros 1 *
|
|
163
|
+
segmento_p << ''.rjust(8, '0') # data juros 8 *
|
|
164
|
+
segmento_p << ''.rjust(15, '0') # valor juros 15 *
|
|
165
|
+
segmento_p << pagamento.cod_desconto # cod. do desconto 1
|
|
166
|
+
segmento_p << pagamento.formata_data_desconto('%d%m%Y') # data desconto 8
|
|
167
|
+
segmento_p << pagamento.formata_valor_desconto(15) # valor desconto 15
|
|
168
|
+
segmento_p << pagamento.formata_valor_iof(15) # valor IOF 15
|
|
169
|
+
segmento_p << pagamento.formata_valor_abatimento(15) # valor abatimento 15
|
|
170
|
+
segmento_p << ''.rjust(25, ' ') # identificacao titulo empresa 25 *
|
|
171
|
+
segmento_p << '0' # cod. para protesto 1 *
|
|
172
|
+
segmento_p << '00' # dias para protesto 2 *
|
|
173
|
+
segmento_p << '0' # cod. para baixa 1 *
|
|
174
|
+
segmento_p << '000' # dias para baixa 2 *
|
|
175
|
+
segmento_p << '09' # cod. da moeda 2
|
|
176
|
+
segmento_p << ''.rjust(10, '0') # uso exclusivo 10
|
|
177
|
+
segmento_p << ' ' # uso exclusivo 1
|
|
178
|
+
segmento_p
|
|
179
179
|
end
|
|
180
180
|
|
|
181
181
|
# Monta o registro segmento Q do arquivo
|
|
@@ -190,30 +190,30 @@ module Brcobranca
|
|
|
190
190
|
# @return [String]
|
|
191
191
|
#
|
|
192
192
|
def monta_segmento_q(pagamento, nro_lote, sequencial)
|
|
193
|
-
segmento_q = ''
|
|
194
|
-
segmento_q << cod_banco
|
|
195
|
-
segmento_q << nro_lote.to_s.rjust(4, '0')
|
|
196
|
-
segmento_q << '3'
|
|
197
|
-
segmento_q << sequencial.to_s.rjust(5, '0')
|
|
198
|
-
segmento_q << 'Q'
|
|
199
|
-
segmento_q << ' '
|
|
200
|
-
segmento_q << '01'
|
|
201
|
-
segmento_q << pagamento.identificacao_sacado(false)
|
|
202
|
-
segmento_q << pagamento.documento_sacado.to_s.rjust(15, '0')
|
|
203
|
-
segmento_q << pagamento.nome_sacado.format_size(40)
|
|
204
|
-
segmento_q << pagamento.endereco_sacado.format_size(40)
|
|
205
|
-
segmento_q << pagamento.bairro_sacado.format_size(15)
|
|
206
|
-
segmento_q << pagamento.cep_sacado[0..4]
|
|
207
|
-
segmento_q << pagamento.cep_sacado[5..7]
|
|
208
|
-
segmento_q << pagamento.cidade_sacado.format_size(15)
|
|
209
|
-
segmento_q << pagamento.uf_sacado
|
|
210
|
-
segmento_q << pagamento.identificacao_avalista(false)
|
|
193
|
+
segmento_q = '' # CAMPO TAMANHO
|
|
194
|
+
segmento_q << cod_banco # codigo banco 3
|
|
195
|
+
segmento_q << nro_lote.to_s.rjust(4, '0') # lote de servico 4
|
|
196
|
+
segmento_q << '3' # tipo de registro 1
|
|
197
|
+
segmento_q << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5
|
|
198
|
+
segmento_q << 'Q' # cod. segmento 1
|
|
199
|
+
segmento_q << ' ' # uso exclusivo 1
|
|
200
|
+
segmento_q << '01' # cod. movimento remessa 2
|
|
201
|
+
segmento_q << pagamento.identificacao_sacado(false) # tipo insc. sacado 1
|
|
202
|
+
segmento_q << pagamento.documento_sacado.to_s.rjust(15, '0') # documento sacado 14
|
|
203
|
+
segmento_q << pagamento.nome_sacado.format_size(40) # nome cliente 40
|
|
204
|
+
segmento_q << pagamento.endereco_sacado.format_size(40) # endereco cliente 40
|
|
205
|
+
segmento_q << pagamento.bairro_sacado.format_size(15) # bairro 15
|
|
206
|
+
segmento_q << pagamento.cep_sacado[0..4] # cep 5
|
|
207
|
+
segmento_q << pagamento.cep_sacado[5..7] # sufixo cep 3
|
|
208
|
+
segmento_q << pagamento.cidade_sacado.format_size(15) # cidade 15
|
|
209
|
+
segmento_q << pagamento.uf_sacado # uf 2
|
|
210
|
+
segmento_q << pagamento.identificacao_avalista(false) # identificacao do sacador 1
|
|
211
211
|
segmento_q << pagamento.documento_avalista.to_s.rjust(15, '0') # documento sacador 15
|
|
212
|
-
segmento_q << pagamento.nome_avalista.format_size(40)
|
|
213
|
-
segmento_q << ''.rjust(3, '0')
|
|
214
|
-
segmento_q << ''.rjust(20, ' ')
|
|
215
|
-
segmento_q << ''.rjust(8, ' ')
|
|
216
|
-
segmento_q
|
|
212
|
+
segmento_q << pagamento.nome_avalista.format_size(40) # nome avalista 40
|
|
213
|
+
segmento_q << ''.rjust(3, '0') # cod. banco correspondente 3
|
|
214
|
+
segmento_q << ''.rjust(20, ' ') # nosso numero banco correspondente 20
|
|
215
|
+
segmento_q << ''.rjust(8, ' ') # uso exclusivo 8
|
|
216
|
+
segmento_q
|
|
217
217
|
end
|
|
218
218
|
|
|
219
219
|
# Monta o registro trailer do lote
|
|
@@ -227,13 +227,14 @@ module Brcobranca
|
|
|
227
227
|
# @return [String]
|
|
228
228
|
#
|
|
229
229
|
def monta_trailer_lote(nro_lote, nro_registros)
|
|
230
|
-
trailer_lote = ''
|
|
231
|
-
trailer_lote << cod_banco
|
|
232
|
-
trailer_lote << nro_lote.to_s.rjust(4, '0')
|
|
233
|
-
trailer_lote << '5'
|
|
234
|
-
trailer_lote << ''.rjust(9, ' ')
|
|
230
|
+
trailer_lote = '' # CAMPO # TAMANHO
|
|
231
|
+
trailer_lote << cod_banco # codigo banco 3
|
|
232
|
+
trailer_lote << nro_lote.to_s.rjust(4, '0') # lote de servico 4
|
|
233
|
+
trailer_lote << '5' # tipo de servico 1
|
|
234
|
+
trailer_lote << ''.rjust(9, ' ') # uso exclusivo 9
|
|
235
235
|
trailer_lote << nro_registros.to_s.rjust(6, '0') # qtde de registros lote 6
|
|
236
|
-
trailer_lote << complemento_trailer
|
|
236
|
+
trailer_lote << complemento_trailer # uso exclusivo 217
|
|
237
|
+
trailer_lote
|
|
237
238
|
end
|
|
238
239
|
|
|
239
240
|
# Monta o registro trailer do arquivo
|
|
@@ -299,13 +300,13 @@ module Brcobranca
|
|
|
299
300
|
|
|
300
301
|
# contador de do lotes
|
|
301
302
|
contador = 1
|
|
302
|
-
|
|
303
|
-
arquivo.push novo_lote
|
|
303
|
+
arquivo.push monta_lote(contador)
|
|
304
304
|
|
|
305
305
|
arquivo << monta_trailer_arquivo(contador, ((pagamentos.size * 2) + (contador * 2) + 2))
|
|
306
306
|
|
|
307
|
-
|
|
308
|
-
|
|
307
|
+
arquivo = arquivo.join("\r\n").to_ascii.upcase
|
|
308
|
+
arquivo << "\r\n"
|
|
309
|
+
arquivo
|
|
309
310
|
end
|
|
310
311
|
|
|
311
312
|
# Complemento do registro
|
|
@@ -3,7 +3,6 @@ module Brcobranca
|
|
|
3
3
|
module Remessa
|
|
4
4
|
module Cnab400
|
|
5
5
|
class Base < Brcobranca::Remessa::Base
|
|
6
|
-
require "unidecoder"
|
|
7
6
|
validates_presence_of :carteira, message: 'não pode estar em branco.'
|
|
8
7
|
|
|
9
8
|
# Data da geracao do arquivo seguindo o padrao DDMMAA
|
|
@@ -72,8 +71,9 @@ module Brcobranca
|
|
|
72
71
|
ret << monta_detalhe(pagamento, contador)
|
|
73
72
|
end
|
|
74
73
|
ret << monta_trailer(contador + 1)
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
ret = ret.join("\r\n").to_ascii.upcase
|
|
75
|
+
ret << "\r\n"
|
|
76
|
+
ret
|
|
77
77
|
end
|
|
78
78
|
|
|
79
79
|
# Informacoes referentes a conta do cedente
|
|
@@ -122,7 +122,7 @@ module Brcobranca
|
|
|
122
122
|
detalhe << pagamento.cep_sacado[5..7] # sufixo do cep do pagador 9[03] 332 a 334
|
|
123
123
|
detalhe << ''.rjust(60, ' ') # sacador/2a mensagem - verificar X[60] 335 a 394
|
|
124
124
|
detalhe << sequencial.to_s.rjust(6, '0') # numero do registro do arquivo 9[06] 395 a 400
|
|
125
|
-
detalhe
|
|
125
|
+
detalhe
|
|
126
126
|
end
|
|
127
127
|
end
|
|
128
128
|
end
|
|
@@ -132,7 +132,7 @@ module Brcobranca
|
|
|
132
132
|
detalhe << ''.rjust(2, ' ') # Brancos X[06]
|
|
133
133
|
detalhe << '9' # moeda 9[01] - Código 9 = REAIS Código 5 = Dólar
|
|
134
134
|
detalhe << sequencial.to_s.rjust(6, '0') # numero do registro no arquivo 9[06]
|
|
135
|
-
detalhe
|
|
135
|
+
detalhe
|
|
136
136
|
end
|
|
137
137
|
end
|
|
138
138
|
end
|
|
@@ -134,7 +134,7 @@ module Brcobranca
|
|
|
134
134
|
detalhe << '03' # quantidade de dias do prazo 9[02] *
|
|
135
135
|
detalhe << ''.rjust(1, ' ') # complemento do registro (brancos) X[01]
|
|
136
136
|
detalhe << sequencial.to_s.rjust(6, '0') # numero do registro no arquivo 9[06]
|
|
137
|
-
detalhe
|
|
137
|
+
detalhe
|
|
138
138
|
end
|
|
139
139
|
end
|
|
140
140
|
end
|
|
@@ -144,7 +144,7 @@ module Brcobranca
|
|
|
144
144
|
detalhe << '00'.rjust(2, ' ') # Número de dias para protesto 9[02]
|
|
145
145
|
detalhe << ''.rjust(1, ' ') # Brancos X[1]
|
|
146
146
|
detalhe << sequencial.to_s.rjust(6, '0') # numero do registro no arquivo 9[06]
|
|
147
|
-
detalhe
|
|
147
|
+
detalhe
|
|
148
148
|
end
|
|
149
149
|
end
|
|
150
150
|
end
|
|
@@ -154,7 +154,7 @@ module Brcobranca
|
|
|
154
154
|
# quantidade de caracteres a ser retornado
|
|
155
155
|
#
|
|
156
156
|
def formata_valor(tamanho = 13)
|
|
157
|
-
|
|
157
|
+
format_value(valor, tamanho)
|
|
158
158
|
end
|
|
159
159
|
|
|
160
160
|
# Formata o campo valor da mora
|
|
@@ -163,7 +163,7 @@ module Brcobranca
|
|
|
163
163
|
# quantidade de caracteres a ser retornado
|
|
164
164
|
#
|
|
165
165
|
def formata_valor_mora(tamanho = 13)
|
|
166
|
-
|
|
166
|
+
format_value(valor_mora, tamanho)
|
|
167
167
|
end
|
|
168
168
|
|
|
169
169
|
# Formata o campo valor do desconto
|
|
@@ -172,7 +172,7 @@ module Brcobranca
|
|
|
172
172
|
# quantidade de caracteres a ser retornado
|
|
173
173
|
#
|
|
174
174
|
def formata_valor_desconto(tamanho = 13)
|
|
175
|
-
|
|
175
|
+
format_value(valor_desconto, tamanho)
|
|
176
176
|
end
|
|
177
177
|
|
|
178
178
|
# Formata o campo valor do segundo desconto
|
|
@@ -181,7 +181,7 @@ module Brcobranca
|
|
|
181
181
|
# quantidade de caracteres a ser retornado
|
|
182
182
|
#
|
|
183
183
|
def formata_valor_segundo_desconto(tamanho = 13)
|
|
184
|
-
|
|
184
|
+
format_value(valor_segundo_desconto, tamanho)
|
|
185
185
|
end
|
|
186
186
|
|
|
187
187
|
# Formata o campo valor do IOF
|
|
@@ -190,7 +190,7 @@ module Brcobranca
|
|
|
190
190
|
# quantidade de caracteres a ser retornado
|
|
191
191
|
#
|
|
192
192
|
def formata_valor_iof(tamanho = 13)
|
|
193
|
-
|
|
193
|
+
format_value(valor_iof, tamanho)
|
|
194
194
|
end
|
|
195
195
|
|
|
196
196
|
# Formata o campo valor do IOF
|
|
@@ -199,7 +199,7 @@ module Brcobranca
|
|
|
199
199
|
# quantidade de caracteres a ser retornado
|
|
200
200
|
#
|
|
201
201
|
def formata_valor_abatimento(tamanho = 13)
|
|
202
|
-
|
|
202
|
+
format_value(valor_abatimento, tamanho)
|
|
203
203
|
end
|
|
204
204
|
|
|
205
205
|
# Retorna a identificacao do pagador
|
|
@@ -218,6 +218,14 @@ module Brcobranca
|
|
|
218
218
|
return '0' if documento_avalista.nil?
|
|
219
219
|
Brcobranca::Util::Empresa.new(documento_avalista, zero).tipo
|
|
220
220
|
end
|
|
221
|
+
|
|
222
|
+
private
|
|
223
|
+
|
|
224
|
+
def format_value(value, tamanho)
|
|
225
|
+
raise ValorInvalido.new('Deve ser um Float') if !(value.to_s =~ /\./)
|
|
226
|
+
|
|
227
|
+
sprintf('%.2f', value).delete('.').rjust(tamanho, '0')
|
|
228
|
+
end
|
|
221
229
|
end
|
|
222
230
|
end
|
|
223
231
|
end
|
data/lib/brcobranca/version.rb
CHANGED
|
@@ -180,7 +180,7 @@ RSpec.describe Brcobranca::Remessa::Cnab400::Bradesco do
|
|
|
180
180
|
expect(detalhe[126..138]).to eq '0000000019990' # valor do documento
|
|
181
181
|
expect(detalhe[220..233]).to eq '00012345678901' # documento do pagador
|
|
182
182
|
expect(detalhe[234..273]).to eq 'PABLO DIEGO JOSE FRANCISCO DE PAULA JUAN' # nome do pagador
|
|
183
|
-
expect(detalhe[274..313]).to eq bradesco.formata_endereco_sacado(pagamento)
|
|
183
|
+
expect(detalhe[274..313]).to eq bradesco.formata_endereco_sacado(pagamento) # endereco do pagador
|
|
184
184
|
end
|
|
185
185
|
end
|
|
186
186
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
00100000 100012345678901001234567001412123 0123430000000123455 SOCIEDADE BRASILEIRA DE ZOOLOGBANCO DO BRASIL S.A. 114072015161515000000083000000000000000000000000000000000000000000000
|
|
2
|
-
00100011R01 042 1000012345678901001234567001412123 0123430000000123455 SOCIEDADE BRASILEIRA DE ZOOLOG 000000001407201500000000
|
|
3
|
-
0010001300001P 010123430000000123455 12345670000000123 71 000000000000000001407201500000000001999000000 02N14072015000000000000000000000000000000000000000000000000000000000000000000000000000000 3000000090000000000
|
|
4
|
-
0010001300002Q 011000012345678901PABLO DIEGO JOSE FRANCISCO DE PAULA JUANRUA RIO GRANDE DO SUL SAO PAULO MINAS CASAO JOSE DOS QU12345678SANTA RITA DE CSP0000000000000000 000
|
|
5
|
-
00100015 0000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
6
|
-
00199999 000001000006
|
|
1
|
+
00100000 100012345678901001234567001412123 0123430000000123455 SOCIEDADE BRASILEIRA DE ZOOLOGBANCO DO BRASIL S.A. 114072015161515000000083000000000000000000000000000000000000000000000
|
|
2
|
+
00100011R01 042 1000012345678901001234567001412123 0123430000000123455 SOCIEDADE BRASILEIRA DE ZOOLOG 000000001407201500000000
|
|
3
|
+
0010001300001P 010123430000000123455 12345670000000123 71 000000000000000001407201500000000001999000000 02N14072015000000000000000000000000000000000000000000000000000000000000000000000000000000 3000000090000000000
|
|
4
|
+
0010001300002Q 011000012345678901PABLO DIEGO JOSE FRANCISCO DE PAULA JUANRUA RIO GRANDE DO SUL SAO PAULO MINAS CASAO JOSE DOS QU12345678SANTA RITA DE CSP0000000000000000 000
|
|
5
|
+
00100015 0000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
6
|
+
00199999 000001000006
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
75600000 274576177000177 0432730000000036668 SOCIEDADE BRASILEIRA DE ZOOLOGSICOOB 114072015161515000000081000000000000000000000000000000000000000000000
|
|
2
|
-
75600011R01 040 2074576177000177 0432730000000036668 SOCIEDADE BRASILEIRA DE ZOOLOG 000000001407201500000000
|
|
3
|
-
7560001300001P 010432730000000036668 000042971501014 10 220000000000000001407201500000000000500000000002N14072015000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000090000000000
|
|
4
|
-
7560001300002Q 011000082136760505PABLO DIEGO JOSE FRANCISCO DE PAULA JUANRUA RIO GRANDE DO SUL SAO PAULO MINAS CASAO JOSE DOS QU12345678SANTA RITA DE CRJ0000000000000000 000
|
|
5
|
-
75600015 000004
|
|
6
|
-
75699999 000001000006
|
|
1
|
+
75600000 274576177000177 0432730000000036668 SOCIEDADE BRASILEIRA DE ZOOLOGSICOOB 114072015161515000000081000000000000000000000000000000000000000000000
|
|
2
|
+
75600011R01 040 2074576177000177 0432730000000036668 SOCIEDADE BRASILEIRA DE ZOOLOG 000000001407201500000000
|
|
3
|
+
7560001300001P 010432730000000036668 000042971501014 10 220000000000000001407201500000000000500000000002N14072015000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000090000000000
|
|
4
|
+
7560001300002Q 011000082136760505PABLO DIEGO JOSE FRANCISCO DE PAULA JUANRUA RIO GRANDE DO SUL SAO PAULO MINAS CASAO JOSE DOS QU12345678SANTA RITA DE CRJ0000000000000000 000
|
|
5
|
+
75600015 000004
|
|
6
|
+
75699999 000001000006
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
01REMESSA01COBRANCA 00000000000000000123SOCIEDADE BRASILEIRA DE ZOOLOG237BRADESCO 140715 MX0000001 000001
|
|
2
|
-
1000000000000000000000011234512345671 0000000000000000123P00000000002N 2 01 14071500000000199900000000099N140715000000000000000000000000000000000000000000000000000000000000000100012345678901PABLO DIEGO JOSE FRANCISCO DE PAULA JUANRUA RIO GRANDE DO SU SANTA RITA DE C/SP 12345678 000002
|
|
3
|
-
9 000003
|
|
1
|
+
01REMESSA01COBRANCA 00000000000000000123SOCIEDADE BRASILEIRA DE ZOOLOG237BRADESCO 140715 MX0000001 000001
|
|
2
|
+
1000000000000000000000011234512345671 0000000000000000123P00000000002N 2 01 14071500000000199900000000099N140715000000000000000000000000000000000000000000000000000000000000000100012345678901PABLO DIEGO JOSE FRANCISCO DE PAULA JUANRUA RIO GRANDE DO SU SANTA RITA DE C/SP 12345678 000002
|
|
3
|
+
9 000003
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
10400000 1000123456789010000000000000000000012345112345600000000SOCIEDADE BRASILEIRA DE ZOOLOGCAIXA ECONOMICA FEDERAL 1140720151615150000000500000000000000000000000000000000000000000000001234
|
|
2
|
-
10400011R01 030 1000012345678901123456 12345112345600000000SOCIEDADE BRASILEIRA DE ZOOLOG 000000001407201500000000
|
|
3
|
-
1040001300001P 01123451123456000000000001400000000000012311 200000000000000001407201500000000001999000000099N14072015000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000090000000000
|
|
4
|
-
1040001300002Q 011000012345678901PABLO DIEGO JOSE FRANCISCO DE PAULA JUANRUA RIO GRANDE DO SUL SAO PAULO MINAS CASAO JOSE DOS QU12345678SANTA RITA DE CSP0000000000000000 000
|
|
5
|
-
10400015 000004000000000000000000000000000000000000000000000000000000000000000000000
|
|
6
|
-
10499999 000001000006
|
|
1
|
+
10400000 1000123456789010000000000000000000012345112345600000000SOCIEDADE BRASILEIRA DE ZOOLOGCAIXA ECONOMICA FEDERAL 1140720151615150000000500000000000000000000000000000000000000000000001234
|
|
2
|
+
10400011R01 030 1000012345678901123456 12345112345600000000SOCIEDADE BRASILEIRA DE ZOOLOG 000000001407201500000000
|
|
3
|
+
1040001300001P 01123451123456000000000001400000000000012311 200000000000000001407201500000000001999000000099N14072015000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000090000000000
|
|
4
|
+
1040001300002Q 011000012345678901PABLO DIEGO JOSE FRANCISCO DE PAULA JUANRUA RIO GRANDE DO SUL SAO PAULO MINAS CASAO JOSE DOS QU12345678SANTA RITA DE CSP0000000000000000 000
|
|
5
|
+
10400015 000004000000000000000000000000000000000000000000000000000000000000000000000
|
|
6
|
+
10499999 000001000006
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
01REMESSA01COBRANCA 17777751042700080112SOCIEDADE BRASILEIRA DE ZOOLOG745CITIBANK 140715 01600BPI000001
|
|
2
|
-
1010001234567891017777751042700080112 01000000000123 0000000000000000000000000101000000000014071500000000199907450000007N140715000000000000000000000000000000000000000000000000000000000000000100012345678901PABLO DIEGO JOSE FRANCISCO DE PAULA JUANRUA RIO GRANDE DO SUL SAO PAULO MINAS CASAO JOSE DOS12345678SANTA RITA DE CSP 9000002
|
|
3
|
-
9 000003
|
|
1
|
+
01REMESSA01COBRANCA 17777751042700080112SOCIEDADE BRASILEIRA DE ZOOLOG745CITIBANK 140715 01600BPI000001
|
|
2
|
+
1010001234567891017777751042700080112 01000000000123 0000000000000000000000000101000000000014071500000000199907450000007N140715000000000000000000000000000000000000000000000000000000000000000100012345678901PABLO DIEGO JOSE FRANCISCO DE PAULA JUANRUA RIO GRANDE DO SUL SAO PAULO MINAS CASAO JOSE DOS12345678SANTA RITA DE CSP 9000002
|
|
3
|
+
9 000003
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
01REMESSA01COBRANCA 123400123451 SOCIEDADE BRASILEIRA DE ZOOLOG341BANCO ITAU SA 140715 000001
|
|
2
|
-
10100012345678910123400123451 0000 000001230000000000000123 I01000000000014071500000000199903410000099N140715000000000000000000000000000000000000000000000000000000000000000100012345678901PABLO DIEGO JOSE FRANCISCO DE RUA RIO GRANDE DO SUL SAO PAULO MINAS CASAO JOSE DOS12345678SANTA RITA DE CSP 00000003 000002
|
|
3
|
-
9 000003
|
|
1
|
+
01REMESSA01COBRANCA 123400123451 SOCIEDADE BRASILEIRA DE ZOOLOG341BANCO ITAU SA 140715 000001
|
|
2
|
+
10100012345678910123400123451 0000 000001230000000000000123 I01000000000014071500000000199903410000099N140715000000000000000000000000000000000000000000000000000000000000000100012345678901PABLO DIEGO JOSE FRANCISCO DE RUA RIO GRANDE DO SUL SAO PAULO MINAS CASAO JOSE DOS12345678SANTA RITA DE CSP 00000003 000002
|
|
3
|
+
9 000003
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
01REMESSA01COBRANCA 17777751042700080112SOCIEDADE BRASILEIRA DE ZOOLOG033SANTANDER 140715 58000001
|
|
2
|
-
1010001234567891017777751042700080112 00000123000000 00000000000000000000 000000101000000000014071500000000199900330000001N140715000000000000000000000000000000000000000000000000000000000000000100012345678901PABLO DIEGO JOSE FRANCISCO DE PAULA JUANRUA RIO GRANDE DO SUL SAO PAULO MINAS CASAO JOSE DOS12345678SANTA RITA DE CSP 00 000002
|
|
3
|
-
9 000003
|
|
1
|
+
01REMESSA01COBRANCA 17777751042700080112SOCIEDADE BRASILEIRA DE ZOOLOG033SANTANDER 140715 58000001
|
|
2
|
+
1010001234567891017777751042700080112 00000123000000 00000000000000000000 000000101000000000014071500000000199900330000001N140715000000000000000000000000000000000000000000000000000000000000000100012345678901PABLO DIEGO JOSE FRANCISCO DE PAULA JUANRUA RIO GRANDE DO SUL SAO PAULO MINAS CASAO JOSE DOS12345678SANTA RITA DE CSP 00 000002
|
|
3
|
+
9 000003
|
|
@@ -73,8 +73,8 @@ shared_examples_for 'cnab240' do
|
|
|
73
73
|
expect(header[33..52]).to eq objeto.convenio_lote # informacoes do convenio
|
|
74
74
|
expect(header[53..72]).to eq objeto.info_conta # informacoes da conta
|
|
75
75
|
expect(header[73..102]).to eq 'SOCIEDADE BRASILEIRA DE ZOOLOG' # razao social do cedente
|
|
76
|
-
expect(header[103..142]).to eq '
|
|
77
|
-
expect(header[143..182]).to eq '
|
|
76
|
+
expect(header[103..142]).to eq 'Campo destinado ao preenchimento no mome' # 1a mensagem
|
|
77
|
+
expect(header[143..182]).to eq 'Campo destinado ao preenchimento no mome' # 2a mensagem
|
|
78
78
|
expect(header[183..190]).to eq '00000001' # sequencial de remessa
|
|
79
79
|
end
|
|
80
80
|
end
|
|
@@ -118,11 +118,11 @@ shared_examples_for 'cnab240' do
|
|
|
118
118
|
expect(segmento_q[17]).to eq '1' # tipo inscricao sacado
|
|
119
119
|
expect(segmento_q[18..32]).to eq '000012345678901' # documento do sacado
|
|
120
120
|
expect(segmento_q[33..72]).to eq 'PABLO DIEGO JOSE FRANCISCO DE PAULA JUAN' # nome do sacado
|
|
121
|
-
expect(segmento_q[73..112]).to eq 'RUA RIO GRANDE DO SUL
|
|
122
|
-
expect(segmento_q[113..127]).to eq '
|
|
121
|
+
expect(segmento_q[73..112]).to eq 'RUA RIO GRANDE DO SUL Sao paulo Minas ca' # endereco do sacado
|
|
122
|
+
expect(segmento_q[113..127]).to eq 'Sao jose dos qu' # bairro do sacado
|
|
123
123
|
expect(segmento_q[128..132]).to eq '12345' # CEP do sacado
|
|
124
124
|
expect(segmento_q[133..135]).to eq '678' # sufixo CEP do sacado
|
|
125
|
-
expect(segmento_q[136..150]).to eq '
|
|
125
|
+
expect(segmento_q[136..150]).to eq 'Santa rita de c' # cidade do sacado
|
|
126
126
|
expect(segmento_q[151..152]).to eq 'SP' # UF do sacado
|
|
127
127
|
expect(segmento_q[153]).to eq '1' # tipo inscricao avalista
|
|
128
128
|
expect(segmento_q[154..168]).to eq '000012345678901' # documento avalista
|
|
@@ -182,13 +182,14 @@ shared_examples_for 'cnab240' do
|
|
|
182
182
|
it 'remessa deve conter os registros mais as quebras de linha' do
|
|
183
183
|
remessa = objeto.gera_arquivo
|
|
184
184
|
|
|
185
|
-
expect(remessa.size).to eq
|
|
185
|
+
expect(remessa.size).to eq 1452
|
|
186
186
|
# quebras de linha
|
|
187
|
-
expect(remessa[240]).to eq "\n"
|
|
188
|
-
expect(remessa[
|
|
189
|
-
expect(remessa[
|
|
190
|
-
expect(remessa[
|
|
191
|
-
expect(remessa[
|
|
187
|
+
expect(remessa[240..241]).to eq "\r\n"
|
|
188
|
+
expect(remessa[482..483]).to eq "\r\n"
|
|
189
|
+
expect(remessa[724..725]).to eq "\r\n"
|
|
190
|
+
expect(remessa[966..967]).to eq "\r\n"
|
|
191
|
+
expect(remessa[1208..1209]).to eq "\r\n"
|
|
192
|
+
expect(remessa[1450..1451]).to eq "\r\n"
|
|
192
193
|
end
|
|
193
194
|
end
|
|
194
195
|
end
|
|
@@ -81,21 +81,22 @@ shared_examples_for 'cnab400' do
|
|
|
81
81
|
|
|
82
82
|
it 'remessa deve conter os registros mais as quebras de linha' do
|
|
83
83
|
remessa = objeto.gera_arquivo
|
|
84
|
-
expect(remessa.size).to eq
|
|
84
|
+
expect(remessa.size).to eq 1206
|
|
85
85
|
|
|
86
86
|
# registros
|
|
87
87
|
expect(remessa[0..399]).to eq objeto.monta_header
|
|
88
|
-
expect(remessa[
|
|
89
|
-
expect(remessa[
|
|
88
|
+
expect(remessa[402..801]).to eq objeto.monta_detalhe(pagamento, 2).upcase
|
|
89
|
+
expect(remessa[804..1203]).to eq objeto.monta_trailer(3)
|
|
90
90
|
# quebras de linha
|
|
91
|
-
expect(remessa[400]).to eq "\n"
|
|
92
|
-
expect(remessa[
|
|
91
|
+
expect(remessa[400..401]).to eq "\r\n"
|
|
92
|
+
expect(remessa[802..803]).to eq "\r\n"
|
|
93
|
+
expect(remessa[1204..1205]).to eq "\r\n"
|
|
93
94
|
end
|
|
94
95
|
|
|
95
96
|
it 'deve ser possivel adicionar mais de um pagamento' do
|
|
96
97
|
objeto.pagamentos << pagamento
|
|
97
98
|
remessa = objeto.gera_arquivo
|
|
98
99
|
|
|
99
|
-
expect(remessa.size).to eq
|
|
100
|
+
expect(remessa.size).to eq 1608
|
|
100
101
|
end
|
|
101
102
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: brcobranca
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 6.1.
|
|
4
|
+
version: 6.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kivanio Barbosa
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-10-
|
|
11
|
+
date: 2015-10-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rghost
|