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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ab05bbce1ed4d0f20123ef59b7a0f4d21698f1e0
4
- data.tar.gz: e9c7f23ca787779cd40f0ecb05c406a35de01c17
3
+ metadata.gz: 5a43c935455c7b61ec04dc199fabf5909cba8e44
4
+ data.tar.gz: d6da66172c2c81c0891491c7361f1a8384ac259a
5
5
  SHA512:
6
- metadata.gz: 0357ea8aa34d8d820a6153340648337da9c2000fef984d496cfa6a4b88c542786280384a68b7985a025ba36739c48c1897db633976ea3f2a44aa49f123c20bc5
7
- data.tar.gz: 82543fb1061eb73d67dd82376ea67f1a6295ca9c8e34f002c9418e9db151a9f7734fc721ba8ee2ebc6f027cfcae97d967ae6aa9a397f873d5f471157c13212b2
6
+ metadata.gz: 2eeb4fead4948e171e9efff4841e2e846305faeec867a32deb59fa202d6b49dcd7c480acefe6add636371ac646554b8e920f8e995facd24da44a06f62f8dc40e
7
+ data.tar.gz: 165181b485a31718d71ce94e957b4c7bd89daea332255d98d2496d79c1ddc5d3b725decce6df94a85c5dad5a476571f81b41aaf485c499b90e7a89a70d035a13
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- brcobranca (6.4.0)
4
+ brcobranca (6.4.1)
5
5
  activemodel (>= 3)
6
6
  parseline (~> 1.0.3)
7
7
  rghost (~> 0.9)
@@ -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(217, ' ')
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
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  module Brcobranca
4
- VERSION = '6.4.0'
4
+ VERSION = '6.4.1'
5
5
  end
@@ -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 001' do
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(217, ' ')
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 000004
6
- 75699999 000001000006
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.0
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-21 00:00:00.000000000 Z
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.5.1
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.