brcobranca 8.0.0 → 9.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (167) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-gemset +1 -1
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +5 -3
  5. data/CHANGELOG.md +9 -0
  6. data/Gemfile +2 -2
  7. data/README.md +24 -12
  8. data/brcobranca.gemspec +0 -2
  9. data/lib/brcobranca.rb +43 -26
  10. data/lib/brcobranca/arquivos/logos/bancobrasilia.eps +0 -0
  11. data/lib/brcobranca/arquivos/logos/bancobrasilia_carne.eps +0 -0
  12. data/lib/brcobranca/arquivos/logos/cecred.eps +427 -0
  13. data/lib/brcobranca/arquivos/logos/cecred_carne.eps +427 -0
  14. data/lib/brcobranca/arquivos/logos/credisis.eps +5402 -0
  15. data/lib/brcobranca/arquivos/logos/credisis_carne.eps +5410 -0
  16. data/lib/brcobranca/arquivos/templates/modelo_generico.eps +0 -0
  17. data/lib/brcobranca/boleto/banco_brasil.rb +21 -21
  18. data/lib/brcobranca/boleto/banco_brasilia.rb +96 -0
  19. data/lib/brcobranca/boleto/banco_nordeste.rb +4 -6
  20. data/lib/brcobranca/boleto/banestes.rb +7 -7
  21. data/lib/brcobranca/boleto/banrisul.rb +5 -5
  22. data/lib/brcobranca/boleto/base.rb +28 -22
  23. data/lib/brcobranca/boleto/bradesco.rb +6 -6
  24. data/lib/brcobranca/boleto/caixa.rb +11 -18
  25. data/lib/brcobranca/boleto/cecred.rb +86 -0
  26. data/lib/brcobranca/boleto/credisis.rb +124 -0
  27. data/lib/brcobranca/boleto/hsbc.rb +10 -27
  28. data/lib/brcobranca/boleto/itau.rb +9 -10
  29. data/lib/brcobranca/boleto/santander.rb +5 -6
  30. data/lib/brcobranca/boleto/sicoob.rb +5 -5
  31. data/lib/brcobranca/boleto/sicredi.rb +7 -7
  32. data/lib/brcobranca/boleto/template/rghost.rb +127 -80
  33. data/lib/brcobranca/boleto/template/rghost_carne.rb +9 -9
  34. data/lib/brcobranca/boleto/unicred.rb +126 -4
  35. data/lib/brcobranca/calculo_data.rb +3 -0
  36. data/lib/brcobranca/formatacao_string.rb +15 -5
  37. data/lib/brcobranca/remessa/base.rb +16 -9
  38. data/lib/brcobranca/remessa/cnab240/banco_brasil.rb +14 -13
  39. data/lib/brcobranca/remessa/cnab240/base.rb +252 -119
  40. data/lib/brcobranca/remessa/cnab240/base_correspondente.rb +299 -0
  41. data/lib/brcobranca/remessa/cnab240/caixa.rb +61 -7
  42. data/lib/brcobranca/remessa/cnab240/cecred.rb +151 -0
  43. data/lib/brcobranca/remessa/cnab240/sicoob.rb +109 -123
  44. data/lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb +94 -0
  45. data/lib/brcobranca/remessa/cnab240/sicredi.rb +177 -0
  46. data/lib/brcobranca/remessa/cnab240/unicred.rb +9 -0
  47. data/lib/brcobranca/remessa/cnab400/banco_brasil.rb +14 -0
  48. data/lib/brcobranca/remessa/cnab400/banco_brasilia.rb +166 -0
  49. data/lib/brcobranca/remessa/cnab400/banco_nordeste.rb +4 -6
  50. data/lib/brcobranca/remessa/cnab400/banrisul.rb +155 -0
  51. data/lib/brcobranca/remessa/cnab400/base.rb +4 -4
  52. data/lib/brcobranca/remessa/cnab400/bradesco.rb +7 -8
  53. data/lib/brcobranca/remessa/cnab400/citibank.rb +3 -4
  54. data/lib/brcobranca/remessa/cnab400/credisis.rb +128 -0
  55. data/lib/brcobranca/remessa/cnab400/itau.rb +23 -6
  56. data/lib/brcobranca/remessa/cnab400/santander.rb +80 -65
  57. data/lib/brcobranca/remessa/cnab400/sicoob.rb +2 -2
  58. data/lib/brcobranca/remessa/cnab400/unicred.rb +143 -0
  59. data/lib/brcobranca/remessa/pagamento.rb +50 -14
  60. data/lib/brcobranca/retorno/base.rb +4 -4
  61. data/lib/brcobranca/retorno/cnab240/base.rb +11 -8
  62. data/lib/brcobranca/retorno/cnab240/caixa.rb +4 -0
  63. data/lib/brcobranca/retorno/cnab240/cecred.rb +102 -0
  64. data/lib/brcobranca/retorno/cnab240/santander.rb +35 -12
  65. data/lib/brcobranca/retorno/cnab240/sicoob.rb +8 -4
  66. data/lib/brcobranca/retorno/cnab240/sicredi.rb +79 -0
  67. data/lib/brcobranca/retorno/cnab400/banco_brasil.rb +127 -0
  68. data/lib/brcobranca/retorno/cnab400/banco_brasilia.rb +89 -0
  69. data/lib/brcobranca/retorno/cnab400/banco_nordeste.rb +112 -0
  70. data/lib/brcobranca/retorno/cnab400/banrisul.rb +42 -0
  71. data/lib/brcobranca/retorno/cnab400/base.rb +18 -7
  72. data/lib/brcobranca/retorno/cnab400/bradesco.rb +9 -3
  73. data/lib/brcobranca/retorno/cnab400/credisis.rb +115 -0
  74. data/lib/brcobranca/retorno/cnab400/itau.rb +10 -4
  75. data/lib/brcobranca/retorno/cnab400/santander.rb +57 -0
  76. data/lib/brcobranca/retorno/cnab400/unicred.rb +118 -0
  77. data/lib/brcobranca/retorno/retorno_cnab240.rb +7 -3
  78. data/lib/brcobranca/retorno/retorno_cnab400.rb +6 -77
  79. data/lib/brcobranca/util/date.rb +20 -0
  80. data/lib/brcobranca/util/errors.rb +76 -0
  81. data/lib/brcobranca/validations.rb +232 -0
  82. data/lib/brcobranca/version.rb +1 -1
  83. data/spec/arquivos/CNAB240CECRED.RET +10 -0
  84. data/spec/arquivos/CNAB240SANTANDER.RET +8 -26
  85. data/spec/arquivos/CNAB240SICREDI.CRT +8 -0
  86. data/spec/arquivos/CNAB400BANCOBRASILIA.RET +3 -0
  87. data/spec/arquivos/CNAB400BANCONORDESTE.RET +3 -0
  88. data/spec/arquivos/CNAB400BANRISUL.RET +3 -0
  89. data/spec/arquivos/CNAB400CREDISIS.RET +3 -0
  90. data/spec/arquivos/CNAB400SANTANDER.RET +54 -0
  91. data/spec/arquivos/CNAB400UNICRED.RET +3 -0
  92. data/spec/brcobranca/base_spec.rb +6 -4
  93. data/spec/brcobranca/boleto/banco_brasil_spec.rb +22 -22
  94. data/spec/brcobranca/boleto/banco_brasilia_spec.rb +134 -0
  95. data/spec/brcobranca/boleto/banco_nordeste_spec.rb +19 -19
  96. data/spec/brcobranca/boleto/banestes_spec.rb +19 -19
  97. data/spec/brcobranca/boleto/banrisul_spec.rb +14 -14
  98. data/spec/brcobranca/boleto/bradesco_spec.rb +13 -13
  99. data/spec/brcobranca/boleto/caixa_spec.rb +7 -7
  100. data/spec/brcobranca/boleto/cecred_spec.rb +147 -0
  101. data/spec/brcobranca/boleto/credisis_spec.rb +155 -0
  102. data/spec/brcobranca/boleto/hsbc_spec.rb +17 -37
  103. data/spec/brcobranca/boleto/itau_spec.rb +16 -16
  104. data/spec/brcobranca/boleto/santander_spec.rb +11 -11
  105. data/spec/brcobranca/boleto/sicoob_spec.rb +17 -17
  106. data/spec/brcobranca/boleto/sicredi_spec.rb +13 -13
  107. data/spec/brcobranca/boleto/unicred_spec.rb +10 -10
  108. data/spec/brcobranca/boletos_em_lote_spec.rb +1 -1
  109. data/spec/brcobranca/formatacao_string_spec.rb +1 -1
  110. data/spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb +10 -18
  111. data/spec/brcobranca/remessa/cnab240/caixa_spec.rb +39 -38
  112. data/spec/brcobranca/remessa/cnab240/cecred_spec.rb +164 -0
  113. data/spec/brcobranca/remessa/cnab240/sicoob_banco_brasil_spec.rb +268 -0
  114. data/spec/brcobranca/remessa/cnab240/sicoob_spec.rb +58 -39
  115. data/spec/brcobranca/remessa/cnab240/sicredi_spec.rb +201 -0
  116. data/spec/brcobranca/remessa/cnab240/unicred_spec.rb +193 -0
  117. data/spec/brcobranca/remessa/cnab400/banco_brasilia_spec.rb +183 -0
  118. data/spec/brcobranca/remessa/cnab400/banco_nordeste_spec.rb +4 -2
  119. data/spec/brcobranca/remessa/cnab400/banrisul_spec.rb +190 -0
  120. data/spec/brcobranca/remessa/cnab400/base_spec.rb +1 -1
  121. data/spec/brcobranca/remessa/cnab400/bradesco_spec.rb +16 -11
  122. data/spec/brcobranca/remessa/cnab400/citibank_spec.rb +11 -11
  123. data/spec/brcobranca/remessa/cnab400/credisis_spec.rb +188 -0
  124. data/spec/brcobranca/remessa/cnab400/itau_spec.rb +25 -12
  125. data/spec/brcobranca/remessa/cnab400/santander_spec.rb +35 -36
  126. data/spec/brcobranca/remessa/cnab400/sicoob_spec.rb +37 -0
  127. data/spec/brcobranca/remessa/cnab400/unicred_spec.rb +185 -0
  128. data/spec/brcobranca/remessa/pagamento_spec.rb +45 -27
  129. data/spec/brcobranca/retorno/cnab240/base_spec.rb +7 -8
  130. data/spec/brcobranca/retorno/cnab240/cecred_spec.rb +50 -0
  131. data/spec/brcobranca/retorno/cnab240/santander_spec.rb +35 -18
  132. data/spec/brcobranca/retorno/cnab240/sicoob_spec.rb +20 -19
  133. data/spec/brcobranca/retorno/cnab240/sicredi_spec.rb +31 -0
  134. data/spec/brcobranca/retorno/cnab400/banco_brasilia_spec.rb +36 -0
  135. data/spec/brcobranca/retorno/cnab400/banco_nordeste_spec.rb +39 -0
  136. data/spec/brcobranca/retorno/cnab400/banrisul_spec.rb +41 -0
  137. data/spec/brcobranca/retorno/cnab400/base_spec.rb +34 -13
  138. data/spec/brcobranca/retorno/cnab400/bradesco_spec.rb +4 -4
  139. data/spec/brcobranca/retorno/cnab400/credisis_spec.rb +25 -0
  140. data/spec/brcobranca/retorno/cnab400/itau_spec.rb +4 -4
  141. data/spec/brcobranca/retorno/cnab400/santander_spec.rb +39 -0
  142. data/spec/brcobranca/retorno/cnab400/unicred_spec.rb +42 -0
  143. data/spec/brcobranca/retorno/retorno_cnab400_spec.rb +1 -1
  144. data/spec/brcobranca/retorno/retorno_cnab_240_spec.rb +1 -1
  145. data/spec/brcobranca/rghost_spec.rb +1 -1
  146. data/spec/fixtures/remessa/remessa-banco-brasil-cnab400.rem +1 -1
  147. data/spec/fixtures/remessa/remessa-banco-brasilia-cnab400.rem +3 -0
  148. data/spec/fixtures/remessa/remessa-banco-nordeste-cnab400.rem +1 -1
  149. data/spec/fixtures/remessa/remessa-banco_brasil-cnab240.rem +5 -4
  150. data/spec/fixtures/remessa/remessa-bancoob-cnab240.rem +5 -4
  151. data/spec/fixtures/remessa/remessa-banrisul-cnab400.rem +3 -0
  152. data/spec/fixtures/remessa/remessa-bradesco-cnab400.rem +1 -1
  153. data/spec/fixtures/remessa/remessa-caixa-cnab240.rem +6 -5
  154. data/spec/fixtures/remessa/remessa-cecred-cnab240.rem +7 -0
  155. data/spec/fixtures/remessa/remessa-citibank-cnab400.rem +1 -1
  156. data/spec/fixtures/remessa/remessa-credisis-cnab400.rem +3 -0
  157. data/spec/fixtures/remessa/remessa-itau-cnab400.rem +3 -2
  158. data/spec/fixtures/remessa/remessa-santander-cnab400.rem +2 -2
  159. data/spec/fixtures/remessa/remessa-sicoob-correspondente-bb-cnab240.rem +4 -0
  160. data/spec/fixtures/remessa/remessa-sicredi-cnab240.rem +7 -0
  161. data/spec/fixtures/remessa/remessa-unicred-cnab240.rem +7 -0
  162. data/spec/fixtures/remessa/remessa-unicred-cnab400.rem +3 -0
  163. data/spec/support/shared_examples/busca_logotipo.rb +0 -2
  164. data/spec/support/shared_examples/cnab240.rb +92 -28
  165. data/spec/support/shared_examples/cnab400.rb +60 -14
  166. data/spec/support/shared_examples/formatos_validos.rb +6 -6
  167. metadata +103 -31
@@ -1,23 +1,22 @@
1
1
  # -*_ encoding: utf-8 -*-
2
- #
3
2
  require 'spec_helper'
4
3
 
5
4
  RSpec.describe Brcobranca::Retorno::Cnab240::Base do
6
5
  let(:arquivo) { File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', nome_arquivo) }
7
6
 
8
- describe '#load_lines' do
9
- it 'retorna nil se o arquivo é nil' do
10
- expect(described_class.load_lines(nil)).to be_nil
7
+ describe "#load_lines" do
8
+ it "retorna nil se o arquivo é nil" do
9
+ expect(Brcobranca::Retorno::Cnab240::Base.load_lines(nil)).to be_nil
11
10
  end
12
11
 
13
- context 'Sicoob' do
14
- let(:nome_arquivo) { 'CNAB240SICOOB.RET' }
12
+ context "Sicoob" do
13
+ let(:nome_arquivo) { "CNAB240SICOOB.RET" }
15
14
 
16
15
  subject { Brcobranca::Retorno::Cnab240::Sicoob }
17
16
 
18
- it 'lê o arquivo pela classe do Sicoob' do
17
+ it "lê o arquivo pela classe do Sicoob" do
19
18
  expect(subject).to receive(:load_lines).with(arquivo, {})
20
- described_class.load_lines(arquivo)
19
+ Brcobranca::Retorno::Cnab240::Base.load_lines(arquivo)
21
20
  end
22
21
  end
23
22
  end
@@ -0,0 +1,50 @@
1
+ RSpec.describe Brcobranca::Retorno::Cnab240::Cecred do
2
+ before do
3
+ @arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB240CECRED.RET')
4
+ end
5
+
6
+ it 'Transforma arquivo de retorno em objetos de retorno retornando somente as linhas de pagamentos de títulos sem registro' do
7
+ pagamentos = described_class.load_lines(@arquivo)
8
+ expect(pagamentos.size).to eq(3)
9
+ pagamento = pagamentos.first
10
+ expect(pagamento.agencia_com_dv).to eql('030390')
11
+ expect(pagamento.cedente_com_dv).to eql('0000000489816')
12
+ expect(pagamento.nosso_numero).to eql('000000000000083')
13
+ expect(pagamento.carteira).to eql('1')
14
+ expect(pagamento.data_vencimento).to eql('13082015')
15
+ expect(pagamento.valor_titulo).to eql('000000000000200')
16
+ expect(pagamento.banco_recebedor).to eql('085')
17
+ expect(pagamento.agencia_recebedora_com_dv).to eql('030390')
18
+ expect(pagamento.data_credito).to eql('10082015')
19
+ expect(pagamento.data_ocorrencia).to eql('10082015')
20
+ expect(pagamento.codigo_ocorrencia).to eql('06')
21
+ expect(pagamento.outras_despesas).to eql('000000000000000')
22
+ expect(pagamento.iof_desconto).to eql('000000000000000')
23
+ expect(pagamento.valor_abatimento).to eql('000000000000000')
24
+ expect(pagamento.desconto_concedito).to eql('000000000000000')
25
+ expect(pagamento.valor_recebido).to eql('000000000000200')
26
+ expect(pagamento.juros_mora).to eql('000000000000000')
27
+ expect(pagamento.outros_recebimento).to eql('000000000000000')
28
+ expect(pagamento.sequencial).to eql('00001')
29
+ expect(pagamento.valor_tarifa).to eql('000000000000170')
30
+ expect(pagamento.motivo_ocorrencia).to eql(['03'])
31
+
32
+ # Dados que não consegui extrair dos registros T e U
33
+ # pagamento.convenio.should eql('')
34
+ # pagamento.tipo_cobranca.should eql('')
35
+ # pagamento.tipo_cobranca_anterior.should eql('')
36
+ # pagamento.natureza_recebimento.should eql('')
37
+ # pagamento.carteira_variacao.should eql('7')
38
+ # pagamento.iof.should eql('')
39
+ # pagamento.comando.should eql('')
40
+ # pagamento.data_liquidacao.should eql('')
41
+ # pagamento.especie_documento.should eql('')
42
+ # pagamento.valor_tarifa.should eql('')
43
+ # pagamento.juros_desconto.should eql('')
44
+ # pagamento.abatimento_nao_aproveitado.should eql('')
45
+ # pagamento.valor_lancamento.should eql('')
46
+ # pagamento.indicativo_lancamento.should eql('')
47
+ # pagamento.indicador_valor.should eql('')
48
+ # pagamento.valor_ajuste.should eql('')
49
+ end
50
+ end
@@ -1,33 +1,50 @@
1
- # -*_ encoding: utf-8 -*-
2
- #
3
1
  require 'spec_helper'
2
+
4
3
  RSpec.describe Brcobranca::Retorno::Cnab240::Santander do
5
4
  before do
6
5
  @arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB240SANTANDER.RET')
7
6
  end
8
7
 
9
- it 'Transforma arquivo de retorno em objetos de retorno retornando somente as linhas de pagamentos de titulos sem registro' do
8
+ it 'Transforma arquivo de retorno em objetos de retorno retornando somente as linhas de pagamentos' do
10
9
  pagamentos = described_class.load_lines(@arquivo)
11
- expect(pagamentos.size).to eq(6)
12
- pagamento = pagamentos.last
13
- expect(pagamento.agencia_com_dv).to eql('999991')
14
- expect(pagamento.nosso_numero_com_dv).to eql('0000000289647')
15
- expect(pagamento.nosso_numero).to eql('000000028964')
16
- expect(pagamento.carteira).to eql('1')
17
- expect(pagamento.data_vencimento).to eql('28042016')
18
- expect(pagamento.valor_titulo).to eql('000000000000126')
19
- expect(pagamento.banco_recebedor).to eql('001')
20
- expect(pagamento.agencia_recebedora_com_dv).to eql('1234')
21
- expect(pagamento.data_credito).to eql('29042016')
10
+ expect(pagamentos.size).to eq(2)
11
+ pagamento = pagamentos.first
12
+ expect(pagamento.agencia_com_dv).to eql('31638')
13
+ expect(pagamento.cedente_com_dv).to eql('0130028625')
14
+ expect(pagamento.nosso_numero).to eql('0000000001406')
15
+ expect(pagamento.carteira).to eql('2')
16
+ expect(pagamento.data_vencimento).to eql('01042016')
17
+ expect(pagamento.valor_titulo).to eql('000000000001000')
18
+ expect(pagamento.banco_recebedor).to eql('033')
19
+ expect(pagamento.agencia_recebedora_com_dv).to eql('31638')
20
+ expect(pagamento.data_credito).to eql('01042016')
22
21
  expect(pagamento.outras_despesas).to eql('000000000000000')
23
22
  expect(pagamento.iof_desconto).to eql('000000000000000')
24
23
  expect(pagamento.valor_abatimento).to eql('000000000000000')
25
24
  expect(pagamento.desconto_concedito).to eql('000000000000000')
26
- expect(pagamento.valor_recebido).to eql('000000000000126')
25
+ expect(pagamento.valor_recebido).to eql('000000000001000')
27
26
  expect(pagamento.juros_mora).to eql('000000000000000')
28
27
  expect(pagamento.outros_recebimento).to eql('000000000000000')
29
- expect(pagamento.sequencial).to eql('00011')
30
- expect(pagamento.valor_tarifa).to eql('000000000000600')
31
- expect(pagamento.data_ocorrencia).to eql('28042016')
28
+ expect(pagamento.sequencial).to eql('00001')
29
+ expect(pagamento.valor_tarifa).to eql('000000000000392')
30
+ expect(pagamento.motivo_ocorrencia).to eql([])
31
+
32
+ # Dados que não consegui extrair dos registros T e U
33
+ # pagamento.convenio.should eql('')
34
+ # pagamento.tipo_cobranca.should eql('')
35
+ # pagamento.tipo_cobranca_anterior.should eql('')
36
+ # pagamento.natureza_recebimento.should eql('')
37
+ # pagamento.carteira_variacao.should eql('7')
38
+ # pagamento.iof.should eql('')
39
+ # pagamento.comando.should eql('')
40
+ # pagamento.data_liquidacao.should eql('')
41
+ # pagamento.especie_documento.should eql('')
42
+ # pagamento.valor_tarifa.should eql('')
43
+ # pagamento.juros_desconto.should eql('')
44
+ # pagamento.abatimento_nao_aproveitado.should eql('')
45
+ # pagamento.valor_lancamento.should eql('')
46
+ # pagamento.indicativo_lancamento.should eql('')
47
+ # pagamento.indicador_valor.should eql('')
48
+ # pagamento.valor_ajuste.should eql('')
32
49
  end
33
50
  end
@@ -1,11 +1,9 @@
1
- # -*_ encoding: utf-8 -*-
2
- #
3
1
  RSpec.describe Brcobranca::Retorno::Cnab240::Sicoob do
4
2
  before do
5
3
  @arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB240SICOOB.RET')
6
4
  end
7
5
 
8
- it 'Transforma arquivo de retorno em objetos de retorno retornando somente as linhas de pagamentos de titulos sem registro' do
6
+ it 'Transforma arquivo de retorno em objetos de retorno retornando somente as linhas de pagamentos de títulos sem registro' do
9
7
  pagamentos = described_class.load_lines(@arquivo)
10
8
  expect(pagamentos.size).to eq(3)
11
9
  pagamento = pagamentos.first
@@ -17,6 +15,8 @@ RSpec.describe Brcobranca::Retorno::Cnab240::Sicoob do
17
15
  expect(pagamento.valor_titulo).to eql('000000000000200')
18
16
  expect(pagamento.banco_recebedor).to eql('756')
19
17
  expect(pagamento.agencia_recebedora_com_dv).to eql('030390')
18
+ expect(pagamento.codigo_ocorrencia).to eql('06')
19
+ expect(pagamento.data_ocorrencia).to eql('10082015')
20
20
  expect(pagamento.data_credito).to eql('10082015')
21
21
  expect(pagamento.outras_despesas).to eql('000000000000000')
22
22
  expect(pagamento.iof_desconto).to eql('000000000000000')
@@ -27,23 +27,24 @@ RSpec.describe Brcobranca::Retorno::Cnab240::Sicoob do
27
27
  expect(pagamento.outros_recebimento).to eql('000000000000000')
28
28
  expect(pagamento.sequencial).to eql('00001')
29
29
  expect(pagamento.valor_tarifa).to eql('000000000000170')
30
+ expect(pagamento.motivo_ocorrencia).to eql(['03'])
30
31
 
31
32
  # Dados que não consegui extrair dos registros T e U
32
- # pagamento.convenio.should eql("")
33
- # pagamento.tipo_cobranca.should eql("")
34
- # pagamento.tipo_cobranca_anterior.should eql("")
35
- # pagamento.natureza_recebimento.should eql("")
36
- # pagamento.carteira_variacao.should eql("7")
37
- # pagamento.iof.should eql("")
38
- # pagamento.comando.should eql("")
39
- # pagamento.data_liquidacao.should eql("")
40
- # pagamento.especie_documento.should eql("")
41
- # pagamento.valor_tarifa.should eql("")
42
- # pagamento.juros_desconto.should eql("")
43
- # pagamento.abatimento_nao_aproveitado.should eql("")
44
- # pagamento.valor_lancamento.should eql("")
45
- # pagamento.indicativo_lancamento.should eql("")
46
- # pagamento.indicador_valor.should eql("")
47
- # pagamento.valor_ajuste.should eql("")
33
+ # pagamento.convenio.should eql('')
34
+ # pagamento.tipo_cobranca.should eql('')
35
+ # pagamento.tipo_cobranca_anterior.should eql('')
36
+ # pagamento.natureza_recebimento.should eql('')
37
+ # pagamento.carteira_variacao.should eql('7')
38
+ # pagamento.iof.should eql('')
39
+ # pagamento.comando.should eql('')
40
+ # pagamento.data_liquidacao.should eql('')
41
+ # pagamento.especie_documento.should eql('')
42
+ # pagamento.valor_tarifa.should eql('')
43
+ # pagamento.juros_desconto.should eql('')
44
+ # pagamento.abatimento_nao_aproveitado.should eql('')
45
+ # pagamento.valor_lancamento.should eql('')
46
+ # pagamento.indicativo_lancamento.should eql('')
47
+ # pagamento.indicador_valor.should eql('')
48
+ # pagamento.valor_ajuste.should eql('')
48
49
  end
49
50
  end
@@ -0,0 +1,31 @@
1
+ RSpec.describe Brcobranca::Retorno::Cnab240::Sicredi do
2
+ before do
3
+ @arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB240SICREDI.CRT')
4
+ end
5
+
6
+ it 'Transforma arquivo de retorno em objetos de retorno retornando somente as linhas de pagamentos de títulos sem registro' do
7
+ pagamentos = described_class.load_lines(@arquivo)
8
+ expect(pagamentos.size).to eq(2)
9
+ pagamento = pagamentos.first
10
+ expect(pagamento.agencia_com_dv).to eql('00390')
11
+ expect(pagamento.cedente_com_dv).to eql('0000000041468')
12
+ expect(pagamento.nosso_numero).to eql('172000595')
13
+ expect(pagamento.carteira).to eql('1')
14
+ expect(pagamento.data_vencimento).to eql('13042017')
15
+ expect(pagamento.valor_titulo).to eql('000000000000995')
16
+ expect(pagamento.banco_recebedor).to eql('000')
17
+ expect(pagamento.codigo_ocorrencia).to eql('02')
18
+ expect(pagamento.data_ocorrencia).to eql('06042017')
19
+ expect(pagamento.data_credito).to eql('')
20
+ expect(pagamento.outras_despesas).to eql('000000000000000')
21
+ expect(pagamento.iof_desconto).to eql('000000000000000')
22
+ expect(pagamento.valor_abatimento).to eql('000000000000000')
23
+ expect(pagamento.desconto_concedito).to eql('000000000000000')
24
+ expect(pagamento.valor_recebido).to eql('000000000000000')
25
+ expect(pagamento.juros_mora).to eql('000000000000000')
26
+ expect(pagamento.outros_recebimento).to eql('000000000000000')
27
+ expect(pagamento.sequencial).to eql('00001')
28
+ expect(pagamento.valor_tarifa).to eql('000000000000000')
29
+ expect(pagamento.motivo_ocorrencia).to eql(['A4'])
30
+ end
31
+ end
@@ -0,0 +1,36 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ RSpec.describe Brcobranca::Retorno::Cnab400::BancoBrasilia do
5
+ before do
6
+ @arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB400BANCOBRASILIA.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(2) # deve ignorar a primeira linha que é header
18
+ pagamento = pagamentos.first
19
+ expect(pagamento.cedente_com_dv).to eql('00000000279998886')
20
+ expect(pagamento.nosso_numero).to eql('107851907015')
21
+ expect(pagamento.valor_recebido).to eql('0000000026492')
22
+ expect(pagamento.data_credito).to eql('26072012')
23
+ expect(pagamento.codigo_ocorrencia).to eql('05')
24
+ expect(pagamento.data_ocorrencia).to eql('26072012')
25
+ expect(pagamento.data_vencimento).to eql('26072012')
26
+ expect(pagamento.valor_titulo).to eql('0000000026492')
27
+ expect(pagamento.banco_recebedor).to eql('070')
28
+ expect(pagamento.especie_documento).to eql('00')
29
+ expect(pagamento.valor_tarifa).to eql('0000000000000')
30
+ expect(pagamento.iof).to eql('0000000000000')
31
+ expect(pagamento.valor_abatimento).to eql('0000000000000')
32
+ expect(pagamento.desconto).to eql('0000000000000')
33
+ expect(pagamento.outros_recebimento).to eql('0000000000000')
34
+ expect(pagamento.motivo_ocorrencia).to eql('')
35
+ end
36
+ end
@@ -0,0 +1,39 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ RSpec.describe Brcobranca::Retorno::Cnab400::BancoNordeste do
5
+ before do
6
+ @arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB400BANCONORDESTE.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(2) # deve ignorar a primeira linha que é header
18
+ pagamento = pagamentos.first
19
+
20
+ expect(pagamento.agencia_sem_dv).to eql('0217')
21
+ expect(pagamento.cedente_com_dv).to eql('00056911')
22
+ expect(pagamento.nosso_numero).to eql('00000116')
23
+ expect(pagamento.valor_recebido).to eql('0000000017500')
24
+ expect(pagamento.carteira).to eql('I')
25
+ expect(pagamento.codigo_ocorrencia).to eql('06')
26
+ expect(pagamento.data_ocorrencia).to eql('191114')
27
+ expect(pagamento.data_vencimento).to eql('191114')
28
+ expect(pagamento.valor_titulo).to eql('0000000017500')
29
+ expect(pagamento.banco_recebedor).to eql('004')
30
+ expect(pagamento.especie_documento).to eql('01')
31
+ expect(pagamento.valor_tarifa).to eql('0000000000260')
32
+ expect(pagamento.valor_abatimento).to eql('0000000000000')
33
+ expect(pagamento.desconto).to eql('0000000000000')
34
+ expect(pagamento.valor_recebido).to eql('0000000017500')
35
+ expect(pagamento.juros_mora).to eql('0000000000000')
36
+ expect(pagamento.data_credito).to eql('191114')
37
+ expect(pagamento.motivo_ocorrencia).to eql('00000000000000000011100000000000000000000000000000000000000000000000000000000')
38
+ end
39
+ end
@@ -0,0 +1,41 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ RSpec.describe Brcobranca::Retorno::Cnab400::Banrisul do
5
+ before do
6
+ @arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB400BANRISUL.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(2) # deve ignorar a primeira linha que é header
18
+ pagamento = pagamentos.first
19
+ expect(pagamento.agencia_sem_dv).to eql('1102')
20
+ expect(pagamento.cedente_com_dv).to eql('900015096')
21
+ expect(pagamento.nosso_numero).to eql('2283256350')
22
+ expect(pagamento.carteira).to eql('1')
23
+ expect(pagamento.codigo_ocorrencia).to eql('06')
24
+ expect(pagamento.data_ocorrencia).to eql('150515')
25
+ expect(pagamento.data_vencimento).to eql('250515')
26
+ expect(pagamento.valor_titulo).to eql('0000000145000')
27
+ expect(pagamento.banco_recebedor).to eql('041')
28
+ expect(pagamento.agencia_recebedora_com_dv).to eql('1102')
29
+ expect(pagamento.especie_documento).to eql('')
30
+ expect(pagamento.valor_tarifa).to eql('0000000000160')
31
+ expect(pagamento.iof).to eql('0000000000000')
32
+ expect(pagamento.valor_abatimento).to eql('0000000000000')
33
+ expect(pagamento.desconto).to eql('0000000000000')
34
+ expect(pagamento.valor_recebido).to eql('0000000145000')
35
+ expect(pagamento.juros_mora).to eql('0000000000000')
36
+ expect(pagamento.outros_recebimento).to eql('0000000000000')
37
+ expect(pagamento.data_credito).to eql('150515')
38
+ expect(pagamento.motivo_ocorrencia).to eql('')
39
+ expect(pagamento.sequencial).to eql('000002')
40
+ end
41
+ end
@@ -1,35 +1,56 @@
1
1
  # -*- encoding: utf-8 -*-
2
- #
3
-
4
2
  require 'spec_helper'
5
3
 
6
4
  RSpec.describe Brcobranca::Retorno::Cnab400::Base do
7
5
  let(:arquivo) { File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', nome_arquivo) }
8
6
 
9
- describe '#load_lines' do
10
- it 'retorna nil se o arquivo é nil' do
11
- expect(described_class.load_lines(nil)).to be_nil
7
+ describe "#load_lines" do
8
+
9
+ it "retorna nil se o arquivo é nil" do
10
+ expect(Brcobranca::Retorno::Cnab400::Base.load_lines(nil)).to be_nil
11
+ end
12
+
13
+ context "Banco de Brasilia" do
14
+ let(:nome_arquivo) { "CNAB400BANCOBRASILIA.RET" }
15
+
16
+ subject { Brcobranca::Retorno::Cnab400::BancoBrasilia }
17
+
18
+ it "lê o arquivo pela classe do Banco de Brasilia" do
19
+ expect(subject).to receive(:load_lines).with(arquivo, {})
20
+ Brcobranca::Retorno::Cnab400::Base.load_lines(arquivo)
21
+ end
12
22
  end
13
23
 
14
- context 'Bradesco' do
15
- let(:nome_arquivo) { 'CNAB400BRADESCO.RET' }
24
+ context "Bradesco" do
25
+ let(:nome_arquivo) { "CNAB400BRADESCO.RET" }
16
26
 
17
27
  subject { Brcobranca::Retorno::Cnab400::Bradesco }
18
28
 
19
- it 'lê o arquivo pela classe do Bradesco' do
29
+ it "lê o arquivo pela classe do Bradesco" do
20
30
  expect(subject).to receive(:load_lines).with(arquivo, {})
21
- described_class.load_lines(arquivo)
31
+ Brcobranca::Retorno::Cnab400::Base.load_lines(arquivo)
22
32
  end
23
33
  end
24
34
 
25
- context 'Itaú' do
26
- let(:nome_arquivo) { 'CNAB400ITAU.RET' }
35
+ context "Itaú" do
36
+ let(:nome_arquivo) { "CNAB400ITAU.RET" }
27
37
 
28
38
  subject { Brcobranca::Retorno::Cnab400::Itau }
29
39
 
30
- it 'lê o arquivo pela classe do Itaú' do
40
+ it "lê o arquivo pela classe do Itaú" do
41
+ expect(subject).to receive(:load_lines).with(arquivo, {})
42
+ Brcobranca::Retorno::Cnab400::Base.load_lines(arquivo)
43
+ end
44
+ end
45
+
46
+ context "Santander" do
47
+ let(:nome_arquivo) { "CNAB400SANTANDER.RET" }
48
+
49
+ subject { Brcobranca::Retorno::Cnab400::Santander }
50
+
51
+ it "lê o arquivo pela classe do Santander" do
31
52
  expect(subject).to receive(:load_lines).with(arquivo, {})
32
- described_class.load_lines(arquivo)
53
+ Brcobranca::Retorno::Cnab400::Base.load_lines(arquivo)
33
54
  end
34
55
  end
35
56
  end
@@ -1,6 +1,4 @@
1
1
  # -*- encoding: utf-8 -*-
2
- #
3
-
4
2
  require 'spec_helper'
5
3
 
6
4
  RSpec.describe Brcobranca::Retorno::Cnab400::Bradesco do
@@ -34,16 +32,18 @@ RSpec.describe Brcobranca::Retorno::Cnab400::Bradesco do
34
32
  expect(pagamento.valor_recebido).to eql('0000000145000')
35
33
  expect(pagamento.juros_mora).to eql('0000000000000')
36
34
  expect(pagamento.outros_recebimento).to eql('0000000000000')
35
+ expect(pagamento.codigo_ocorrencia).to eql('02')
36
+ expect(pagamento.data_ocorrencia).to eql('150515')
37
37
  expect(pagamento.data_credito).to eql('150515')
38
+ expect(pagamento.motivo_ocorrencia).to eql([])
38
39
  expect(pagamento.sequencial).to eql('000002')
39
- expect(pagamento.cod_de_ocorrencia).to eql('02')
40
- expect(pagamento.data_de_ocorrencia).to eql('150515')
41
40
 
42
41
  # Campos da classe base que não encontrei a relação com CNAB400
43
42
  # parse.field :tipo_cobranca,80..80
44
43
  # parse.field :tipo_cobranca_anterior,81..81
45
44
  # parse.field :natureza_recebimento,86..87
46
45
  # parse.field :convenio,31..37
46
+ # parse.field :comando,108..109
47
47
  # parse.field :juros_desconto,201..213
48
48
  # parse.field :iof_desconto,214..226
49
49
  # parse.field :desconto_concedito,240..252