brcobranca 6.1.2 → 6.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|