brcobranca 5.0.0 → 5.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Gemfile +3 -2
  4. data/Gemfile.lock +13 -9
  5. data/README.md +5 -1
  6. data/brcobranca.gemspec +2 -0
  7. data/lib/brcobranca/arquivos/logos/sicoob.eps +209 -0
  8. data/lib/brcobranca/boleto/bradesco.rb +20 -0
  9. data/lib/brcobranca/boleto/sicoob.rb +80 -0
  10. data/lib/brcobranca/remessa/base.rb +1 -1
  11. data/lib/brcobranca/remessa/cnab240/banco_brasil.rb +7 -2
  12. data/lib/brcobranca/remessa/cnab240/base.rb +133 -134
  13. data/lib/brcobranca/remessa/cnab240/caixa.rb +6 -1
  14. data/lib/brcobranca/remessa/cnab240/sicoob.rb +128 -0
  15. data/lib/brcobranca/remessa/cnab400/base.rb +5 -5
  16. data/lib/brcobranca/remessa/cnab400/bradesco.rb +5 -3
  17. data/lib/brcobranca/remessa/cnab400/citibank.rb +140 -0
  18. data/lib/brcobranca/remessa/cnab400/itau.rb +4 -11
  19. data/lib/brcobranca/remessa/pagamento.rb +39 -5
  20. data/lib/brcobranca/retorno/base.rb +1 -0
  21. data/lib/brcobranca/retorno/cnab400/base.rb +40 -0
  22. data/lib/brcobranca/retorno/cnab400/bradesco.rb +117 -0
  23. data/lib/brcobranca/retorno/cnab400/itau.rb +136 -0
  24. data/lib/brcobranca/retorno/retorno_cnab400.rb +6 -1
  25. data/lib/brcobranca/util/empresa.rb +29 -0
  26. data/lib/brcobranca/version.rb +1 -1
  27. data/lib/brcobranca.rb +19 -5
  28. data/spec/arquivos/CNAB400BRADESCO.RET +8 -0
  29. data/spec/arquivos/CNAB400ITAU.RET +54 -0
  30. data/spec/brcobranca/base_spec.rb +175 -179
  31. data/spec/brcobranca/{banco_bradesco_spec.rb → boleto/banco_bradesco_spec.rb} +80 -53
  32. data/spec/brcobranca/{banco_brasil_spec.rb → boleto/banco_brasil_spec.rb} +2 -2
  33. data/spec/brcobranca/{banco_caixa_spec.rb → boleto/banco_caixa_spec.rb} +1 -1
  34. data/spec/brcobranca/{banco_hsbc_spec.rb → boleto/banco_hsbc_spec.rb} +2 -2
  35. data/spec/brcobranca/{banco_itau_spec.rb → boleto/banco_itau_spec.rb} +2 -2
  36. data/spec/brcobranca/{banco_santander_spec.rb → boleto/banco_santander_spec.rb} +2 -2
  37. data/spec/brcobranca/boleto/banco_sicoob_spec.rb +132 -0
  38. data/spec/brcobranca/{banco_sicredi_spec.rb → boleto/banco_sicredi_spec.rb} +2 -2
  39. data/spec/brcobranca/boletos_em_lote_spec.rb +2 -2
  40. data/spec/brcobranca/core_ext_spec.rb +198 -199
  41. data/spec/brcobranca/currency_spec.rb +67 -71
  42. data/spec/brcobranca/remessa/base_spec.rb +1 -17
  43. data/spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb +22 -13
  44. data/spec/brcobranca/remessa/cnab240/base_spec.rb +28 -27
  45. data/spec/brcobranca/remessa/cnab240/caixa_spec.rb +13 -4
  46. data/spec/brcobranca/remessa/cnab240/sicoob_spec.rb +155 -0
  47. data/spec/brcobranca/remessa/cnab400/base_spec.rb +1 -17
  48. data/spec/brcobranca/remessa/cnab400/bradesco_spec.rb +15 -2
  49. data/spec/brcobranca/remessa/cnab400/citibank_spec.rb +117 -0
  50. data/spec/brcobranca/remessa/cnab400/itau_spec.rb +15 -10
  51. data/spec/brcobranca/remessa/pagamento_spec.rb +6 -8
  52. data/spec/brcobranca/retorno/cnab400/base_spec.rb +35 -0
  53. data/spec/brcobranca/retorno/cnab400/bradesco_spec.rb +55 -0
  54. data/spec/brcobranca/retorno/cnab400/itau_spec.rb +55 -0
  55. data/spec/brcobranca/{retorno_cbr643_spec.rb → retorno/retorno_cbr643_spec.rb} +3 -3
  56. data/spec/brcobranca/{retorno_cnab400_spec.rb → retorno/retorno_cnab400_spec.rb} +3 -3
  57. data/spec/brcobranca/{retorno_cnab_240_spec.rb → retorno/retorno_cnab_240_spec.rb} +3 -3
  58. data/spec/brcobranca/rghost_spec.rb +2 -2
  59. data/spec/brcobranca/util/empresa_spec.rb +35 -0
  60. data/spec/brcobranca_spec.rb +25 -10
  61. data/spec/fixtures/remessa/.keep +0 -0
  62. data/spec/fixtures/remessa/remessa-bancoob.rem +6 -0
  63. data/spec/spec_helper.rb +23 -0
  64. data/spec/support/remessa_helpers.rb +12 -0
  65. data/spec/{shared_examples → support/shared_examples}/cnab240.rb +17 -15
  66. data/spec/{shared_examples → support/shared_examples}/cnab400.rb +11 -3
  67. metadata +72 -26
@@ -0,0 +1,55 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ RSpec.describe Brcobranca::Retorno::Cnab400::Bradesco do
5
+ before do
6
+ @arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB400BRADESCO.RET')
7
+ end
8
+
9
+ it 'Ignora primeira linha que é header' do
10
+ pagamentos = described_class.load_lines(@arquivo)
11
+ pagamento = pagamentos.first
12
+ expect(pagamento.sequencial).to eql('000002')
13
+ end
14
+
15
+ it 'Transforma arquivo de retorno em objetos de retorno retornando somente as linhas de pagamentos de títulos sem registro' do
16
+ pagamentos = described_class.load_lines(@arquivo)
17
+ expect(pagamentos.size).to eq(7) # deve ignorar a primeira linha que é header
18
+ pagamento = pagamentos.first
19
+ expect(pagamento.agencia_com_dv).to eql('01467-2')
20
+ expect(pagamento.cedente_com_dv).to eql('0019669P')
21
+ expect(pagamento.nosso_numero).to eql('000000000303')
22
+ expect(pagamento.carteira).to eql('009')
23
+ expect(pagamento.data_vencimento).to eql('250515')
24
+ expect(pagamento.valor_titulo).to eql('0000000145000')
25
+ expect(pagamento.banco_recebedor).to eql('237')
26
+ expect(pagamento.agencia_recebedora_com_dv).to eql('04157')
27
+ expect(pagamento.especie_documento).to eql('')
28
+ expect(pagamento.valor_tarifa).to eql('0000000000160')
29
+ expect(pagamento.iof).to eql('0000000000000')
30
+ expect(pagamento.valor_abatimento).to eql('0000000000000')
31
+ expect(pagamento.desconto).to eql('0000000000000')
32
+ expect(pagamento.valor_recebido).to eql('0000000145000')
33
+ expect(pagamento.juros_mora).to eql('0000000000000')
34
+ expect(pagamento.outros_recebimento).to eql('0000000000000')
35
+ expect(pagamento.data_credito).to eql('150515')
36
+ expect(pagamento.sequencial).to eql('000002')
37
+
38
+ # Campos da classe base que não encontrei a relação com CNAB400
39
+ # parse.field :tipo_cobranca,80..80
40
+ # parse.field :tipo_cobranca_anterior,81..81
41
+ # parse.field :natureza_recebimento,86..87
42
+ # parse.field :convenio,31..37
43
+ # parse.field :comando,108..109
44
+ # parse.field :juros_desconto,201..213
45
+ # parse.field :iof_desconto,214..226
46
+ # parse.field :desconto_concedito,240..252
47
+ # parse.field :outras_despesas,279..291
48
+ # parse.field :abatimento_nao_aproveitado,292..304
49
+ # parse.field :data_liquidacao,295..300
50
+ # parse.field :valor_lancamento,305..317
51
+ # parse.field :indicativo_lancamento,318..318
52
+ # parse.field :indicador_valor,319..319
53
+ # parse.field :valor_ajuste,320..331
54
+ end
55
+ end
@@ -0,0 +1,55 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ RSpec.describe Brcobranca::Retorno::Cnab400::Itau do
5
+ before do
6
+ @arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB400ITAU.RET')
7
+ end
8
+
9
+ it 'Ignora primeira linha que é header' do pagamentos = described_class.load_lines(@arquivo)
10
+ pagamento = pagamentos.first
11
+ expect(pagamento.sequencial).to eql('000002')
12
+ end
13
+
14
+ it 'Transforma arquivo de retorno em objetos de retorno retornando somente as linhas de pagamentos de títulos sem registro' do
15
+ pagamentos = described_class.load_lines(@arquivo)
16
+ expect(pagamentos.size).to eq(53) # deve ignorar a primeira linha que é header
17
+ pagamento = pagamentos.first
18
+ expect(pagamento.agencia_com_dv).to eql('0730')
19
+ expect(pagamento.cedente_com_dv).to eql('035110')
20
+ expect(pagamento.nosso_numero).to eql('00000011')
21
+ expect(pagamento.carteira_variacao).to eql('109')
22
+ expect(pagamento.carteira).to eql('I')
23
+ expect(pagamento.data_vencimento).to eql('000000')
24
+ expect(pagamento.valor_titulo).to eql('0000000004000')
25
+ expect(pagamento.banco_recebedor).to eql('104')
26
+ expect(pagamento.agencia_recebedora_com_dv).to eql('18739')
27
+ expect(pagamento.especie_documento).to eql('')
28
+ expect(pagamento.valor_tarifa).to eql('0000000000210')
29
+ expect(pagamento.iof).to eql('0000000000000')
30
+ expect(pagamento.valor_abatimento).to eql('0000000000000')
31
+ expect(pagamento.desconto).to eql('0000000000000')
32
+ expect(pagamento.valor_recebido).to eql('0000000003790')
33
+ expect(pagamento.juros_mora).to eql('0000000000000')
34
+ expect(pagamento.outros_recebimento).to eql('0000000000000')
35
+ expect(pagamento.data_credito).to eql('210513')
36
+ expect(pagamento.sequencial).to eql('000002')
37
+
38
+ # Campos da classe base que não encontrei a relação com CNAB400
39
+ # parse.field :tipo_cobranca,80..80
40
+ # parse.field :tipo_cobranca_anterior,81..81
41
+ # parse.field :natureza_recebimento,86..87
42
+ # parse.field :convenio,31..37
43
+ # parse.field :comando,108..109
44
+ # parse.field :juros_desconto,201..213
45
+ # parse.field :iof_desconto,214..226
46
+ # parse.field :desconto_concedito,240..252
47
+ # parse.field :outras_despesas,279..291
48
+ # parse.field :abatimento_nao_aproveitado,292..304
49
+ # parse.field :data_liquidacao,295..300
50
+ # parse.field :valor_lancamento,305..317
51
+ # parse.field :indicativo_lancamento,318..318
52
+ # parse.field :indicador_valor,319..319
53
+ # parse.field :valor_ajuste,320..331
54
+ end
55
+ end
@@ -1,9 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  require 'spec_helper'
3
3
 
4
- describe Brcobranca::Retorno::RetornoCbr643 do
5
- before(:each) do
6
- @arquivo = File.join(File.dirname(__FILE__), '..', 'arquivos', 'CBR64310.RET')
4
+ RSpec.describe Brcobranca::Retorno::RetornoCbr643 do
5
+ before do
6
+ @arquivo = File.join(File.dirname(__FILE__), '..', '..', 'arquivos', 'CBR64310.RET')
7
7
  end
8
8
 
9
9
  it 'Transforma arquivo de retorno em objetos de retorno' do
@@ -1,9 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  require 'spec_helper'
3
3
 
4
- describe Brcobranca::Retorno::RetornoCnab400 do
5
- before(:each) do
6
- @arquivo = File.join(File.dirname(__FILE__), '..', 'arquivos', 'CNAB400.RET')
4
+ RSpec.describe Brcobranca::Retorno::RetornoCnab400 do
5
+ before do
6
+ @arquivo = File.join(File.dirname(__FILE__), '..', '..', 'arquivos', 'CNAB400.RET')
7
7
  end
8
8
 
9
9
  it 'Ignora primeira linha que é header' do
@@ -1,9 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  require 'spec_helper'
3
3
 
4
- describe Brcobranca::Retorno::RetornoCnab240 do
5
- before(:each) do
6
- @arquivo = File.join(File.dirname(__FILE__), '..', 'arquivos', 'CNAB240.RET')
4
+ RSpec.describe Brcobranca::Retorno::RetornoCnab240 do
5
+ before do
6
+ @arquivo = File.join(File.dirname(__FILE__), '..', '..', 'arquivos', 'CNAB240.RET')
7
7
  end
8
8
 
9
9
  it 'Transforma arquivo de retorno em objetos de retorno retornando somente as linhas de pagamentos de títulos sem registro' do
@@ -1,8 +1,8 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  require 'spec_helper'
3
3
 
4
- describe 'RGhost' do
5
- before(:each) do
4
+ RSpec.describe 'RGhost' do
5
+ before do
6
6
  @valid_attributes = {
7
7
  especie_documento: 'DM',
8
8
  moeda: '9',
@@ -0,0 +1,35 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ RSpec.describe Brcobranca::Util::Empresa do
5
+
6
+ context 'com zero' do
7
+ it 'CPF returns 01' do
8
+ ['179.461.278-55', '17946127855', 17946127855].each do |documento|
9
+ expect(Brcobranca::Util::Empresa.new(documento, true).tipo).to eq('01')
10
+ expect(Brcobranca::Util::Empresa.new(documento).tipo).to eq('01')
11
+ end
12
+ end
13
+
14
+ it 'CNPJ returns 02' do
15
+ ['25.716.376/0001-28', '25716376000128', 25716376000128].each do |documento|
16
+ expect(Brcobranca::Util::Empresa.new(documento, true).tipo).to eq('02')
17
+ expect(Brcobranca::Util::Empresa.new(documento).tipo).to eq('02')
18
+ end
19
+ end
20
+ end
21
+
22
+ context 'sem zero' do
23
+ it 'CPF returns 1' do
24
+ ['179.461.278-55', '17946127855', 17946127855].each do |documento|
25
+ expect(Brcobranca::Util::Empresa.new(documento, false).tipo).to eq('1')
26
+ end
27
+ end
28
+
29
+ it 'CNPJ returns 2' do
30
+ ['25.716.376/0001-28', '25716376000128', 25716376000128].each do |documento|
31
+ expect(Brcobranca::Util::Empresa.new(documento, false).tipo).to eq('2')
32
+ end
33
+ end
34
+ end
35
+ end
@@ -1,18 +1,33 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  require 'spec_helper'
3
3
 
4
- describe 'Brcobranca' do
5
- it 'Validar opções padrão' do
6
- expect(Brcobranca.configuration.gerador).to eql(:rghost)
7
- expect(Brcobranca.configuration.formato).to eql(:pdf)
4
+ RSpec.describe 'Brcobranca' do
5
+
6
+ describe 'gerador' do
7
+ context 'rghost' do
8
+ before { Brcobranca.configuration.gerador = :rghost }
9
+
10
+ it { expect(Brcobranca.configuration.gerador).to eql(:rghost) }
11
+ end
12
+
13
+ context 'prawn' do
14
+ before { Brcobranca.configuration.gerador = :prawn }
15
+
16
+ it { expect(Brcobranca.configuration.gerador).to eql(:prawn) }
17
+ end
8
18
  end
9
19
 
10
- it 'Mudar configurações' do
11
- Brcobranca.setup do |config|
12
- config.gerador = :prawn
13
- config.formato = :gif
20
+ describe 'formato' do
21
+ context 'pdf' do
22
+ before { Brcobranca.configuration.formato = :pdf }
23
+
24
+ it { expect(Brcobranca.configuration.formato).to eql(:pdf) }
25
+ end
26
+
27
+ context 'gif' do
28
+ before { Brcobranca.configuration.formato = :gif }
29
+
30
+ it { expect(Brcobranca.configuration.formato).to eql(:gif) }
14
31
  end
15
- expect(Brcobranca.configuration.gerador).to eql(:prawn)
16
- expect(Brcobranca.configuration.formato).to eql(:gif)
17
32
  end
18
33
  end
File without changes
@@ -0,0 +1,6 @@
1
+ 75600000 274576177000177 0432730000000036668 SEBASTIAN ELIAS PUBLICIDADE SICOOB 114072015161515000000081000000000000000000000000000000000000000000000
2
+ 75600011R01 040 2074576177000177 0432730000000036668 SEBASTIAN ELIAS PUBLICIDADE 000000001407201500000000
3
+ 7560001300001P 010432730000000036668 000042971501014 10 220000000000000001407201500000000000500000000002N14072015000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000090000000000
4
+ 7560001300002Q 011000082136760505JOSE DA SILVA AV. BURKHARD HEHN SIMOES SAO FRANCISCO 24360440RIO DE JANEIRO RJ0000000000000000 000
5
+ 75600015 000004
6
+ 75699999 000001000006
data/spec/spec_helper.rb CHANGED
@@ -8,9 +8,32 @@ CodeClimate::TestReporter.start
8
8
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
9
9
  $LOAD_PATH.unshift(File.dirname(__FILE__))
10
10
  require 'rspec'
11
+ require 'timecop'
11
12
  require 'pry'
12
13
  require 'tempfile'
13
14
  require 'brcobranca'
14
15
  require 'rghost'
15
16
 
17
+ # Requires supporting files with custom matchers and macros, etc,
18
+ # in ./support/ and its subdirectories.
19
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
20
+
21
+ RSpec.configure do |config|
22
+ config.disable_monkey_patching!
23
+ config.order = :random
24
+ Kernel.srand config.seed
25
+ config.filter_run focus: true
26
+ config.run_all_when_everything_filtered = true
27
+ config.expect_with :rspec do |expectations|
28
+ expectations.syntax = :expect
29
+ end
30
+ config.mock_with :rspec do |mocks|
31
+ mocks.syntax = :expect
32
+ mocks.verify_partial_doubles = true
33
+ end
34
+ if config.files_to_run.one?
35
+ config.default_formatter = 'doc'
36
+ end
37
+ end
38
+
16
39
  RGhost::Config.config_platform
@@ -0,0 +1,12 @@
1
+ module RemessaHelpers
2
+ def read_remessa(name, body=nil)
3
+ filename = File.join(File.dirname(__FILE__), '..', 'fixtures', 'remessa', name)
4
+ @body = body
5
+ File.open(filename, 'w') { |f| f.write(@body) } unless File.exist?(filename)
6
+ File.read(filename)
7
+ end
8
+ end
9
+
10
+ RSpec.configure do |config|
11
+ config.include RemessaHelpers
12
+ end
@@ -14,7 +14,8 @@ shared_examples_for 'cnab240' do
14
14
  valor_iof: 9.9,
15
15
  valor_abatimento: 24.35,
16
16
  documento_avalista: '12345678901',
17
- nome_avalista: 'avalista')
17
+ nome_avalista: 'avalista',
18
+ numero_documento: '00000000123')
18
19
  end
19
20
  let(:params) do
20
21
  p = { empresa_mae: 'teste',
@@ -29,10 +30,11 @@ shared_examples_for 'cnab240' do
29
30
  if subject.class == Brcobranca::Remessa::Cnab240::Caixa
30
31
  p.merge!(versao_aplicativo: '1234',
31
32
  digito_agencia: '1')
32
- else
33
+ elsif subject.class == Brcobranca::Remessa::Cnab240::BancoBrasil
33
34
  p.merge!(carteira: '12',
34
35
  variacao: '123')
35
36
  end
37
+ p
36
38
  end
37
39
  let(:objeto) { subject.class.new(params) }
38
40
 
@@ -43,14 +45,14 @@ shared_examples_for 'cnab240' do
43
45
 
44
46
  it 'header arquivo deve ter as informacoes nas posicoes corretas' do
45
47
  header = objeto.monta_header_arquivo
46
- expect(header[0..2]).to eq objeto.cod_banco # cod. do banco
47
- expect(header[17]).to eq '1' # tipo inscricao do cedente
48
- expect(header[18..31]).to eq '00012345678901' # documento do cedente
49
- expect(header[32..51]).to eq objeto.codigo_convenio # informacoes do convenio
50
- expect(header[52..71]).to eq objeto.info_conta # informacoes da conta
51
- expect(header[72..101]).to eq 'TESTE'.ljust(30, ' ') # razao social do cedente
52
- expect(header[157..162]).to eq '000001' # sequencial de remessa
53
- expect(header[163..165]).to eq objeto.versao_layout # versao do layout
48
+ expect(header[0..2]).to eq objeto.cod_banco # cod. do banco
49
+ expect(header[17]).to eq '1' # tipo inscricao do cedente
50
+ expect(header[18..31]).to eq '00012345678901' # documento do cedente
51
+ expect(header[32..51]).to eq objeto.codigo_convenio # informacoes do convenio
52
+ expect(header[52..71]).to eq objeto.info_conta # informacoes da conta
53
+ expect(header[72..101]).to eq 'TESTE'.ljust(30, ' ') # razao social do cedente
54
+ expect(header[157..162]).to eq '000001' # sequencial de remessa
55
+ expect(header[163..165]).to eq objeto.versao_layout_arquivo # versao do layout
54
56
  end
55
57
  end
56
58
 
@@ -63,7 +65,7 @@ shared_examples_for 'cnab240' do
63
65
  header = objeto.monta_header_lote 1
64
66
  expect(header[0..2]).to eq objeto.cod_banco # cod. do banco
65
67
  expect(header[3..6]).to eq '0001' # numero do lote
66
- expect(header[13..15]).to eq objeto.versao_layout # versao do layout
68
+ expect(header[13..15]).to eq objeto.versao_layout_lote # versao do layout
67
69
  expect(header[17]).to eq '1' # tipo inscricao do cedente
68
70
  expect(header[18..32]).to eq '000012345678901' # documento do cedente
69
71
  expect(header[33..52]).to eq objeto.convenio_lote # informacoes do convenio
@@ -88,7 +90,7 @@ shared_examples_for 'cnab240' do
88
90
  expect(segmento_p[17..21]).to eq '01234' # agencia
89
91
  expect(segmento_p[22]).to eq objeto.digito_agencia.to_s # digito da agencia
90
92
  expect(segmento_p[23..56]).to eq objeto.complemento_p(pagamento) # complemento do segmento P
91
- expect(segmento_p[62..72]).to eq '00000000123' # nosso numero
93
+ expect(segmento_p[62..76]).to eq '000000000000123' # numero do documento
92
94
  expect(segmento_p[77..84]).to eq Date.today.strftime('%d%m%Y') # data de vencimento
93
95
  expect(segmento_p[85..99]).to eq '000000000019990' # valor
94
96
  expect(segmento_p[109..116]).to eq Date.today.strftime('%d%m%Y') # data de emissao
@@ -168,8 +170,8 @@ shared_examples_for 'cnab240' do
168
170
  it 'contador de registros deve acrescer 1 a cada registro' do
169
171
  lote = objeto.monta_lote pagamento, 1
170
172
 
171
- expect(lote[1][8..12]).to eq '00002' # segmento P
172
- expect(lote[2][8..12]).to eq '00003' # segmento Q
173
+ expect(lote[1][8..12]).to eq '00001' # segmento P
174
+ expect(lote[2][8..12]).to eq '00002' # segmento Q
173
175
  expect(lote[3][17..22]).to eq '000004' # trailer do lote
174
176
  end
175
177
  end
@@ -191,6 +193,7 @@ shared_examples_for 'cnab240' do
191
193
  expect(remessa[1204]).to eq "\n"
192
194
  end
193
195
 
196
+ # TODO no momento só existe um lote e todos os pagamentos são adicionados a ele
194
197
  it 'pode ser adicionado varios lotes' do
195
198
  objeto.pagamentos << pagamento
196
199
  remessa = objeto.gera_arquivo
@@ -200,7 +203,6 @@ shared_examples_for 'cnab240' do
200
203
  # 10 registros (2400) + 9 quebras de linha (18)
201
204
  expect(remessa.size).to eq 2409
202
205
  expect(lote1).to eq objeto.monta_lote(pagamento, 1).join("\n")
203
- expect(lote2).to eq objeto.monta_lote(pagamento, 2).join("\n")
204
206
  end
205
207
  end
206
208
  end
@@ -18,16 +18,24 @@ shared_examples_for 'cnab400' do
18
18
  agencia: '12345',
19
19
  conta_corrente: '1234567',
20
20
  digito_conta: '1',
21
- empresa_mae: 'asd',
21
+ empresa_mae: 'ASD',
22
22
  sequencial_remessa: '1',
23
23
  codigo_empresa: '123',
24
24
  pagamentos: [pagamento] }
25
+ elsif subject.class == Brcobranca::Remessa::Cnab400::Citibank
26
+ {
27
+ portfolio: '17777751042700080112',
28
+ carteira: '1',
29
+ empresa_mae: 'ASD',
30
+ documento_cedente: '12345678910',
31
+ pagamentos: [pagamento]
32
+ }
25
33
  else
26
34
  { carteira: '123',
27
35
  agencia: '1234',
28
36
  conta_corrente: '12345',
29
37
  digito_conta: '1',
30
- empresa_mae: 'asd',
38
+ empresa_mae: 'ASD',
31
39
  documento_cedente: '12345678910',
32
40
  pagamentos: [pagamento] }
33
41
  end
@@ -76,7 +84,7 @@ shared_examples_for 'cnab400' do
76
84
  expect(remessa[801]).to eq "\n"
77
85
  end
78
86
 
79
- it 'deve ser mais possivel adicionar mais de um pagamento' do
87
+ it 'deve ser possivel adicionar mais de um pagamento' do
80
88
  objeto.pagamentos << pagamento
81
89
  remessa = objeto.gera_arquivo
82
90
 
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: 5.0.0
4
+ version: 5.0.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: 2015-07-02 00:00:00.000000000 Z
11
+ date: 2015-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rghost
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: unidecoder
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 1.1.2
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.1.2
69
83
  description: Gem para emissao de bloquetos de cobranca de bancos brasileiros.
70
84
  email: kivanio@gmail.com
71
85
  executables: []
@@ -93,6 +107,7 @@ files:
93
107
  - lib/brcobranca/arquivos/logos/hsbc.eps
94
108
  - lib/brcobranca/arquivos/logos/itau.eps
95
109
  - lib/brcobranca/arquivos/logos/santander.eps
110
+ - lib/brcobranca/arquivos/logos/sicoob.eps
96
111
  - lib/brcobranca/arquivos/logos/sicredi.eps
97
112
  - lib/brcobranca/arquivos/templates/modelo_carne.eps
98
113
  - lib/brcobranca/arquivos/templates/modelo_generico.eps
@@ -103,6 +118,7 @@ files:
103
118
  - lib/brcobranca/boleto/hsbc.rb
104
119
  - lib/brcobranca/boleto/itau.rb
105
120
  - lib/brcobranca/boleto/santander.rb
121
+ - lib/brcobranca/boleto/sicoob.rb
106
122
  - lib/brcobranca/boleto/sicredi.rb
107
123
  - lib/brcobranca/boleto/template/base.rb
108
124
  - lib/brcobranca/boleto/template/rghost.rb
@@ -117,26 +133,35 @@ files:
117
133
  - lib/brcobranca/remessa/cnab240/banco_brasil.rb
118
134
  - lib/brcobranca/remessa/cnab240/base.rb
119
135
  - lib/brcobranca/remessa/cnab240/caixa.rb
136
+ - lib/brcobranca/remessa/cnab240/sicoob.rb
120
137
  - lib/brcobranca/remessa/cnab400/base.rb
121
138
  - lib/brcobranca/remessa/cnab400/bradesco.rb
139
+ - lib/brcobranca/remessa/cnab400/citibank.rb
122
140
  - lib/brcobranca/remessa/cnab400/itau.rb
123
141
  - lib/brcobranca/remessa/pagamento.rb
124
142
  - lib/brcobranca/retorno/base.rb
143
+ - lib/brcobranca/retorno/cnab400/base.rb
144
+ - lib/brcobranca/retorno/cnab400/bradesco.rb
145
+ - lib/brcobranca/retorno/cnab400/itau.rb
125
146
  - lib/brcobranca/retorno/retorno_cbr643.rb
126
147
  - lib/brcobranca/retorno/retorno_cnab240.rb
127
148
  - lib/brcobranca/retorno/retorno_cnab400.rb
149
+ - lib/brcobranca/util/empresa.rb
128
150
  - lib/brcobranca/version.rb
129
151
  - spec/arquivos/CBR64310.RET
130
152
  - spec/arquivos/CNAB240.RET
131
153
  - spec/arquivos/CNAB400.RET
132
- - spec/brcobranca/banco_bradesco_spec.rb
133
- - spec/brcobranca/banco_brasil_spec.rb
134
- - spec/brcobranca/banco_caixa_spec.rb
135
- - spec/brcobranca/banco_hsbc_spec.rb
136
- - spec/brcobranca/banco_itau_spec.rb
137
- - spec/brcobranca/banco_santander_spec.rb
138
- - spec/brcobranca/banco_sicredi_spec.rb
154
+ - spec/arquivos/CNAB400BRADESCO.RET
155
+ - spec/arquivos/CNAB400ITAU.RET
139
156
  - spec/brcobranca/base_spec.rb
157
+ - spec/brcobranca/boleto/banco_bradesco_spec.rb
158
+ - spec/brcobranca/boleto/banco_brasil_spec.rb
159
+ - spec/brcobranca/boleto/banco_caixa_spec.rb
160
+ - spec/brcobranca/boleto/banco_hsbc_spec.rb
161
+ - spec/brcobranca/boleto/banco_itau_spec.rb
162
+ - spec/brcobranca/boleto/banco_santander_spec.rb
163
+ - spec/brcobranca/boleto/banco_sicoob_spec.rb
164
+ - spec/brcobranca/boleto/banco_sicredi_spec.rb
140
165
  - spec/brcobranca/boletos_em_lote_spec.rb
141
166
  - spec/brcobranca/core_ext_spec.rb
142
167
  - spec/brcobranca/currency_spec.rb
@@ -144,19 +169,28 @@ files:
144
169
  - spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb
145
170
  - spec/brcobranca/remessa/cnab240/base_spec.rb
146
171
  - spec/brcobranca/remessa/cnab240/caixa_spec.rb
172
+ - spec/brcobranca/remessa/cnab240/sicoob_spec.rb
147
173
  - spec/brcobranca/remessa/cnab400/base_spec.rb
148
174
  - spec/brcobranca/remessa/cnab400/bradesco_spec.rb
175
+ - spec/brcobranca/remessa/cnab400/citibank_spec.rb
149
176
  - spec/brcobranca/remessa/cnab400/itau_spec.rb
150
177
  - spec/brcobranca/remessa/pagamento_spec.rb
151
- - spec/brcobranca/retorno_cbr643_spec.rb
152
- - spec/brcobranca/retorno_cnab400_spec.rb
153
- - spec/brcobranca/retorno_cnab_240_spec.rb
178
+ - spec/brcobranca/retorno/cnab400/base_spec.rb
179
+ - spec/brcobranca/retorno/cnab400/bradesco_spec.rb
180
+ - spec/brcobranca/retorno/cnab400/itau_spec.rb
181
+ - spec/brcobranca/retorno/retorno_cbr643_spec.rb
182
+ - spec/brcobranca/retorno/retorno_cnab400_spec.rb
183
+ - spec/brcobranca/retorno/retorno_cnab_240_spec.rb
154
184
  - spec/brcobranca/rghost_spec.rb
185
+ - spec/brcobranca/util/empresa_spec.rb
155
186
  - spec/brcobranca_spec.rb
156
- - spec/shared_examples/cnab240.rb
157
- - spec/shared_examples/cnab400.rb
187
+ - spec/fixtures/remessa/.keep
188
+ - spec/fixtures/remessa/remessa-bancoob.rem
158
189
  - spec/spec.opts
159
190
  - spec/spec_helper.rb
191
+ - spec/support/remessa_helpers.rb
192
+ - spec/support/shared_examples/cnab240.rb
193
+ - spec/support/shared_examples/cnab400.rb
160
194
  homepage: http://rubygems.org/gems/brcobranca
161
195
  licenses: []
162
196
  metadata: {}
@@ -185,14 +219,17 @@ test_files:
185
219
  - spec/arquivos/CBR64310.RET
186
220
  - spec/arquivos/CNAB240.RET
187
221
  - spec/arquivos/CNAB400.RET
188
- - spec/brcobranca/banco_bradesco_spec.rb
189
- - spec/brcobranca/banco_brasil_spec.rb
190
- - spec/brcobranca/banco_caixa_spec.rb
191
- - spec/brcobranca/banco_hsbc_spec.rb
192
- - spec/brcobranca/banco_itau_spec.rb
193
- - spec/brcobranca/banco_santander_spec.rb
194
- - spec/brcobranca/banco_sicredi_spec.rb
222
+ - spec/arquivos/CNAB400BRADESCO.RET
223
+ - spec/arquivos/CNAB400ITAU.RET
195
224
  - spec/brcobranca/base_spec.rb
225
+ - spec/brcobranca/boleto/banco_bradesco_spec.rb
226
+ - spec/brcobranca/boleto/banco_brasil_spec.rb
227
+ - spec/brcobranca/boleto/banco_caixa_spec.rb
228
+ - spec/brcobranca/boleto/banco_hsbc_spec.rb
229
+ - spec/brcobranca/boleto/banco_itau_spec.rb
230
+ - spec/brcobranca/boleto/banco_santander_spec.rb
231
+ - spec/brcobranca/boleto/banco_sicoob_spec.rb
232
+ - spec/brcobranca/boleto/banco_sicredi_spec.rb
196
233
  - spec/brcobranca/boletos_em_lote_spec.rb
197
234
  - spec/brcobranca/core_ext_spec.rb
198
235
  - spec/brcobranca/currency_spec.rb
@@ -200,16 +237,25 @@ test_files:
200
237
  - spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb
201
238
  - spec/brcobranca/remessa/cnab240/base_spec.rb
202
239
  - spec/brcobranca/remessa/cnab240/caixa_spec.rb
240
+ - spec/brcobranca/remessa/cnab240/sicoob_spec.rb
203
241
  - spec/brcobranca/remessa/cnab400/base_spec.rb
204
242
  - spec/brcobranca/remessa/cnab400/bradesco_spec.rb
243
+ - spec/brcobranca/remessa/cnab400/citibank_spec.rb
205
244
  - spec/brcobranca/remessa/cnab400/itau_spec.rb
206
245
  - spec/brcobranca/remessa/pagamento_spec.rb
207
- - spec/brcobranca/retorno_cbr643_spec.rb
208
- - spec/brcobranca/retorno_cnab400_spec.rb
209
- - spec/brcobranca/retorno_cnab_240_spec.rb
246
+ - spec/brcobranca/retorno/cnab400/base_spec.rb
247
+ - spec/brcobranca/retorno/cnab400/bradesco_spec.rb
248
+ - spec/brcobranca/retorno/cnab400/itau_spec.rb
249
+ - spec/brcobranca/retorno/retorno_cbr643_spec.rb
250
+ - spec/brcobranca/retorno/retorno_cnab400_spec.rb
251
+ - spec/brcobranca/retorno/retorno_cnab_240_spec.rb
210
252
  - spec/brcobranca/rghost_spec.rb
253
+ - spec/brcobranca/util/empresa_spec.rb
211
254
  - spec/brcobranca_spec.rb
212
- - spec/shared_examples/cnab240.rb
213
- - spec/shared_examples/cnab400.rb
255
+ - spec/fixtures/remessa/.keep
256
+ - spec/fixtures/remessa/remessa-bancoob.rem
214
257
  - spec/spec.opts
215
258
  - spec/spec_helper.rb
259
+ - spec/support/remessa_helpers.rb
260
+ - spec/support/shared_examples/cnab240.rb
261
+ - spec/support/shared_examples/cnab400.rb