brcobranca 6.4.0 → 6.4.1
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/Gemfile.lock +1 -1
- data/lib/brcobranca/remessa/base.rb +8 -0
- data/lib/brcobranca/remessa/cnab240/sicoob.rb +71 -1
- data/lib/brcobranca/remessa/cnab400/base.rb +0 -8
- data/lib/brcobranca/version.rb +1 -1
- data/spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb +7 -0
- data/spec/brcobranca/remessa/cnab240/caixa_spec.rb +7 -0
- data/spec/brcobranca/remessa/cnab240/sicoob_spec.rb +32 -2
- data/spec/fixtures/remessa/remessa-bancoob-cnab240.rem +2 -2
- data/spec/support/shared_examples/cnab240.rb +0 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5a43c935455c7b61ec04dc199fabf5909cba8e44
|
|
4
|
+
data.tar.gz: d6da66172c2c81c0891491c7361f1a8384ac259a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2eeb4fead4948e171e9efff4841e2e846305faeec867a32deb59fa202d6b49dcd7c480acefe6add636371ac646554b8e920f8e995facd24da44a06f62f8dc40e
|
|
7
|
+
data.tar.gz: 165181b485a31718d71ce94e957b4c7bd89daea332255d98d2496d79c1ddc5d3b725decce6df94a85c5dad5a476571f81b41aaf485c499b90e7a89a70d035a13
|
data/Gemfile.lock
CHANGED
|
@@ -57,6 +57,14 @@ module Brcobranca
|
|
|
57
57
|
|
|
58
58
|
yield self if block_given?
|
|
59
59
|
end
|
|
60
|
+
|
|
61
|
+
# Soma de todos os boletos
|
|
62
|
+
#
|
|
63
|
+
# @return [String]
|
|
64
|
+
def valor_total_titulos(tamanho=13)
|
|
65
|
+
value = pagamentos.inject(0.0) { |sum, pagamento| sum += pagamento.valor }
|
|
66
|
+
sprintf('%.2f', value).delete('.').rjust(tamanho, '0')
|
|
67
|
+
end
|
|
60
68
|
end
|
|
61
69
|
end
|
|
62
70
|
end
|
|
@@ -89,7 +89,7 @@ module Brcobranca
|
|
|
89
89
|
end
|
|
90
90
|
|
|
91
91
|
def complemento_trailer
|
|
92
|
-
''.rjust(
|
|
92
|
+
''.rjust(117, ' ')
|
|
93
93
|
end
|
|
94
94
|
|
|
95
95
|
def monta_segmento_p(pagamento, nro_lote, sequencial)
|
|
@@ -146,6 +146,76 @@ module Brcobranca
|
|
|
146
146
|
"#{conta_corrente.rjust(12, '0')}#{digito_conta} #{formata_nosso_numero(pagamento)}"
|
|
147
147
|
end
|
|
148
148
|
|
|
149
|
+
# Monta o registro trailer do lote
|
|
150
|
+
#
|
|
151
|
+
# @param nro_lote [Integer]
|
|
152
|
+
# numero do lote no arquivo (iterar a cada novo lote)
|
|
153
|
+
#
|
|
154
|
+
# @param nro_registros [Integer]
|
|
155
|
+
# numero de registros(linhas) no lote (contando header e trailer)
|
|
156
|
+
#
|
|
157
|
+
# @return [String]
|
|
158
|
+
#
|
|
159
|
+
def monta_trailer_lote(nro_lote, nro_registros)
|
|
160
|
+
# CAMPO # TAMANHO
|
|
161
|
+
trailer_lote = ''
|
|
162
|
+
# codigo banco 3
|
|
163
|
+
trailer_lote << cod_banco
|
|
164
|
+
# lote de servico 4
|
|
165
|
+
trailer_lote << nro_lote.to_s.rjust(4, '0')
|
|
166
|
+
# tipo de servico 1
|
|
167
|
+
trailer_lote << '5'
|
|
168
|
+
# uso exclusivo 9
|
|
169
|
+
trailer_lote << ''.rjust(9, ' ')
|
|
170
|
+
# qtde de registros lote 6
|
|
171
|
+
trailer_lote << nro_registros.to_s.rjust(6, '0')
|
|
172
|
+
|
|
173
|
+
# qtde de Títulos em Cobrança Simples 6
|
|
174
|
+
trailer_lote << pagamentos.count.to_s.rjust(6, '0')
|
|
175
|
+
# Valor Total dos Títulos em Carteiras Simples 15 2
|
|
176
|
+
trailer_lote << valor_total_titulos(17)
|
|
177
|
+
# qtde de Títulos em Cobrança Vinculada 6
|
|
178
|
+
trailer_lote << ''.rjust(6, '0')
|
|
179
|
+
# Valor Total dos Títulos em Carteiras Vinculada 15 2
|
|
180
|
+
trailer_lote << ''.rjust(17, '0')
|
|
181
|
+
# qtde de Títulos em Cobrança Caucionada 6
|
|
182
|
+
trailer_lote << ''.rjust(6, '0')
|
|
183
|
+
# Valor Total dos Títulos em Carteiras Caucionada 15 2
|
|
184
|
+
trailer_lote << ''.rjust(17, '0')
|
|
185
|
+
# qtde de Títulos em Cobrança Descontada 6
|
|
186
|
+
trailer_lote << ''.rjust(6, '0')
|
|
187
|
+
# Valor Total dos Títulos em Carteiras Descontada 15 2
|
|
188
|
+
trailer_lote << ''.rjust(17, '0')
|
|
189
|
+
# Número do Aviso de Lançamento 8
|
|
190
|
+
trailer_lote << ''.rjust(8, ' ')
|
|
191
|
+
|
|
192
|
+
# uso exclusivo 117
|
|
193
|
+
trailer_lote << complemento_trailer
|
|
194
|
+
trailer_lote
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
# Monta o registro trailer do arquivo
|
|
198
|
+
#
|
|
199
|
+
# @param nro_lotes [Integer]
|
|
200
|
+
# numero de lotes no arquivo
|
|
201
|
+
# @param sequencial [Integer]
|
|
202
|
+
# numero de registros(linhas) no arquivo
|
|
203
|
+
#
|
|
204
|
+
# @return [String]
|
|
205
|
+
#
|
|
206
|
+
def monta_trailer_arquivo(nro_lotes, sequencial)
|
|
207
|
+
# CAMPO TAMANHO
|
|
208
|
+
# codigo banco 3
|
|
209
|
+
# lote de servico 4
|
|
210
|
+
# tipo de registro 1
|
|
211
|
+
# uso FEBRABAN 9
|
|
212
|
+
# nro de lotes 6
|
|
213
|
+
# nro de registros(linhas) 6
|
|
214
|
+
# qtde de Contas p/ Conc. (Lotes) 6
|
|
215
|
+
# Uso FEBRABAN/CNAB 205
|
|
216
|
+
"#{cod_banco}99999#{''.rjust(9, ' ')}#{nro_lotes.to_s.rjust(6, '0')}#{sequencial.to_s.rjust(6, '0')}#{''.rjust(6, '0')}#{''.rjust(205, ' ')}"
|
|
217
|
+
end
|
|
218
|
+
|
|
149
219
|
# Retorna o nosso numero
|
|
150
220
|
#
|
|
151
221
|
# @return [String]
|
|
@@ -112,14 +112,6 @@ module Brcobranca
|
|
|
112
112
|
def complemento
|
|
113
113
|
fail Brcobranca::NaoImplementado.new('Sobreescreva este método na classe referente ao banco que você esta criando')
|
|
114
114
|
end
|
|
115
|
-
|
|
116
|
-
# Soma de todos os boletos
|
|
117
|
-
#
|
|
118
|
-
# @return [String]
|
|
119
|
-
def valor_total_titulos(tamanho=13)
|
|
120
|
-
value = pagamentos.inject(0.0) { |sum, pagamento| sum += pagamento.valor }
|
|
121
|
-
sprintf('%.2f', value).delete('.').rjust(tamanho, '0')
|
|
122
|
-
end
|
|
123
115
|
end
|
|
124
116
|
end
|
|
125
117
|
end
|
data/lib/brcobranca/version.rb
CHANGED
|
@@ -206,6 +206,13 @@ RSpec.describe Brcobranca::Remessa::Cnab240::BancoBrasil do
|
|
|
206
206
|
context 'geracao remessa' do
|
|
207
207
|
it_behaves_like 'cnab240'
|
|
208
208
|
|
|
209
|
+
context 'trailer lote' do
|
|
210
|
+
it 'trailer lote deve ter o complemento_trailer na posicao correta' do
|
|
211
|
+
trailer = banco_brasil.monta_trailer_lote 1, 4
|
|
212
|
+
expect(trailer[23..239]).to eq banco_brasil.complemento_trailer # complemento do registro trailer
|
|
213
|
+
end
|
|
214
|
+
end
|
|
215
|
+
|
|
209
216
|
context 'arquivo' do
|
|
210
217
|
before { Timecop.freeze(Time.local(2015, 7, 14, 16, 15, 15)) }
|
|
211
218
|
after { Timecop.return }
|
|
@@ -142,6 +142,13 @@ RSpec.describe Brcobranca::Remessa::Cnab240::Caixa do
|
|
|
142
142
|
|
|
143
143
|
context 'geracao remessa' do
|
|
144
144
|
it_behaves_like 'cnab240'
|
|
145
|
+
|
|
146
|
+
context 'trailer lote' do
|
|
147
|
+
it 'trailer lote deve ter o complemento_trailer na posicao correta' do
|
|
148
|
+
trailer = caixa.monta_trailer_lote 1, 4
|
|
149
|
+
expect(trailer[23..239]).to eq caixa.complemento_trailer # complemento do registro trailer
|
|
150
|
+
end
|
|
151
|
+
end
|
|
145
152
|
|
|
146
153
|
context 'arquivo' do
|
|
147
154
|
before { Timecop.freeze(Time.local(2015, 7, 14, 16, 15, 15)) }
|
|
@@ -65,7 +65,7 @@ RSpec.describe Brcobranca::Remessa::Cnab240::Sicoob do
|
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
context 'formatacoes' do
|
|
68
|
-
it 'codigo do banco deve ser
|
|
68
|
+
it 'codigo do banco deve ser 756' do
|
|
69
69
|
expect(sicoob.cod_banco).to eq '756'
|
|
70
70
|
end
|
|
71
71
|
|
|
@@ -125,7 +125,7 @@ RSpec.describe Brcobranca::Remessa::Cnab240::Sicoob do
|
|
|
125
125
|
end
|
|
126
126
|
|
|
127
127
|
it 'complemento trailer deve retornar espacos em branco' do
|
|
128
|
-
expect(sicoob.complemento_trailer).to eq ''.rjust(
|
|
128
|
+
expect(sicoob.complemento_trailer).to eq ''.rjust(117, ' ')
|
|
129
129
|
end
|
|
130
130
|
|
|
131
131
|
it 'formata o nosso numero' do
|
|
@@ -137,6 +137,36 @@ RSpec.describe Brcobranca::Remessa::Cnab240::Sicoob do
|
|
|
137
137
|
context 'geracao remessa' do
|
|
138
138
|
it_behaves_like 'cnab240'
|
|
139
139
|
|
|
140
|
+
context 'trailer lote' do
|
|
141
|
+
it 'trailer lote deve ter as informacoes nas posicoes corretas' do
|
|
142
|
+
trailer = sicoob.monta_trailer_lote 1, 4
|
|
143
|
+
expect(trailer[0..2]).to eq sicoob.cod_banco # cod. do banco
|
|
144
|
+
expect(trailer[3..6]).to eq "0001" # numero do lote
|
|
145
|
+
expect(trailer[17..22]).to eq "000004" # qtde de registros no lote
|
|
146
|
+
# qtde de titulos em cobranca simples 6
|
|
147
|
+
# Valor Total dos titulos em carteiras simples 15 2
|
|
148
|
+
expect(trailer[23..28]).to eq "000001"
|
|
149
|
+
expect(trailer[29..45]).to eq "00000000000005000"
|
|
150
|
+
|
|
151
|
+
# qtde de titulos em cobranca vinculada 6
|
|
152
|
+
# Valor Total dos titulos em carteiras vinculada 15 2
|
|
153
|
+
expect(trailer[46..51]).to eq "000000"
|
|
154
|
+
expect(trailer[52..68]).to eq "00000000000000000"
|
|
155
|
+
# qtde de titulos em cobranca caucionada 6
|
|
156
|
+
# Valor Total dos titulos em carteiras caucionada 15 2
|
|
157
|
+
expect(trailer[69..74]).to eq "000000"
|
|
158
|
+
expect(trailer[75..91]).to eq "00000000000000000"
|
|
159
|
+
# qtde de titulos em cobranca descontada 6
|
|
160
|
+
# Valor Total dos titulos em carteiras descontada 15 2
|
|
161
|
+
expect(trailer[92..97]).to eq "000000"
|
|
162
|
+
expect(trailer[98..114]).to eq "00000000000000000"
|
|
163
|
+
# numero do aviso de lancamento 8
|
|
164
|
+
expect(trailer[115..122]).to eq ''.rjust(8, ' ')
|
|
165
|
+
# CNAB Uso Exclusivo FEBRABAN/CNAB 117
|
|
166
|
+
expect(trailer[123..239]).to eq sicoob.complemento_trailer
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
|
|
140
170
|
context 'arquivo' do
|
|
141
171
|
before { Timecop.freeze(Time.local(2015, 7, 14, 16, 15, 15)) }
|
|
142
172
|
after { Timecop.return }
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
75600011R01 040 2074576177000177 0432730000000036668 SOCIEDADE BRASILEIRA DE ZOOLOG 000000001407201500000000
|
|
3
3
|
7560001300001P 010432730000000036668 000000001201014 10 220000000000000001407201500000000000500000000001N14072015000000000000000000000000000000000000000000000000000000000000000000000000000000 1000000090000000000
|
|
4
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
|
|
6
|
-
75699999
|
|
5
|
+
75600015 00000400000100000000000005000000000000000000000000000000000000000000000000000000000000000000000000
|
|
6
|
+
75699999 000001000006000000
|
|
@@ -140,7 +140,6 @@ shared_examples_for 'cnab240' do
|
|
|
140
140
|
expect(trailer[0..2]).to eq objeto.cod_banco # cod. do banco
|
|
141
141
|
expect(trailer[3..6]).to eq '0001' # numero do lote
|
|
142
142
|
expect(trailer[17..22]).to eq '000004' # qtde de registros no lote
|
|
143
|
-
expect(trailer[23..239]).to eq objeto.complemento_trailer # complemento do registro trailer
|
|
144
143
|
end
|
|
145
144
|
end
|
|
146
145
|
|
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.4.
|
|
4
|
+
version: 6.4.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kivanio Barbosa
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-05-
|
|
11
|
+
date: 2016-05-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rghost
|
|
@@ -247,7 +247,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
247
247
|
requirements:
|
|
248
248
|
- GhostScript > 9.0, para gear PDF e código de Barras
|
|
249
249
|
rubyforge_project:
|
|
250
|
-
rubygems_version: 2.
|
|
250
|
+
rubygems_version: 2.6.4
|
|
251
251
|
signing_key:
|
|
252
252
|
specification_version: 4
|
|
253
253
|
summary: Gem que permite trabalhar com bloquetos de cobranca para bancos brasileiros.
|