cnab240 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. data/README.md +61 -8
  2. data/docs/vendor/itau/sisdeb_cnab_240.pdf +0 -0
  3. data/lib/cnab240/arquivo/arquivo.rb +14 -57
  4. data/lib/cnab240/arquivo/builder.rb +118 -0
  5. data/lib/cnab240/arquivo/estrutura.rb +68 -45
  6. data/lib/cnab240/arquivo/lote.rb +13 -5
  7. data/lib/cnab240/arquivo/v40/header.rb +46 -0
  8. data/lib/cnab240/arquivo/v40/trailer.rb +17 -0
  9. data/lib/cnab240/arquivo/{header.rb → v86/header.rb} +2 -2
  10. data/lib/cnab240/arquivo/{trailer.rb → v86/trailer.rb} +1 -1
  11. data/lib/cnab240/helper/remessa.rb +29 -0
  12. data/lib/cnab240/pagamentos/v40/header.rb +55 -0
  13. data/lib/cnab240/pagamentos/v40/trailer.rb +18 -0
  14. data/lib/cnab240/pagamentos/{header.rb → v86/header.rb} +1 -2
  15. data/lib/cnab240/pagamentos/{titulos → v86/titulos}/header.rb +1 -1
  16. data/lib/cnab240/pagamentos/{titulos → v86/titulos}/trailer.rb +1 -1
  17. data/lib/cnab240/pagamentos/{trailer.rb → v86/trailer.rb} +1 -1
  18. data/lib/cnab240/pagamentos/{tributos → v86/tributos}/header.rb +1 -1
  19. data/lib/cnab240/pagamentos/{tributos → v86/tributos}/trailer.rb +1 -1
  20. data/lib/cnab240/segmentos/{segmento_a.rb → v40/segmento_a.rb} +3 -1
  21. data/lib/cnab240/segmentos/v86/segmento_a.rb +47 -0
  22. data/lib/cnab240/segmentos/{segmento_b.rb → v86/segmento_b.rb} +1 -1
  23. data/lib/cnab240/segmentos/{segmento_c.rb → v86/segmento_c.rb} +1 -1
  24. data/lib/cnab240/segmentos/{segmento_j.rb → v86/segmento_j.rb} +1 -1
  25. data/lib/cnab240/segmentos/{segmento_j52.rb → v86/segmento_j52.rb} +1 -1
  26. data/lib/cnab240/segmentos/{segmento_n.rb → v86/segmento_n.rb} +1 -1
  27. data/lib/cnab240/segmentos/{segmento_n1.rb → v86/segmento_n1.rb} +1 -1
  28. data/lib/cnab240/segmentos/{segmento_n2.rb → v86/segmento_n2.rb} +1 -1
  29. data/lib/cnab240/segmentos/{segmento_n3.rb → v86/segmento_n3.rb} +1 -1
  30. data/lib/cnab240/segmentos/{segmento_n4.rb → v86/segmento_n4.rb} +1 -1
  31. data/lib/cnab240/segmentos/{segmento_n5.rb → v86/segmento_n5.rb} +1 -1
  32. data/lib/cnab240/segmentos/{segmento_n6.rb → v86/segmento_n6.rb} +1 -1
  33. data/lib/cnab240/segmentos/{segmento_n7.rb → v86/segmento_n7.rb} +1 -1
  34. data/lib/cnab240/segmentos/{segmento_n8.rb → v86/segmento_n8.rb} +1 -1
  35. data/lib/cnab240/segmentos/{segmento_o.rb → v86/segmento_o.rb} +1 -1
  36. data/lib/cnab240/segmentos/{segmento_w.rb → v86/segmento_w.rb} +1 -1
  37. data/lib/cnab240/segmentos/{segmento_w1.rb → v86/segmento_w1.rb} +1 -1
  38. data/lib/cnab240/segmentos/{segmento_z.rb → v86/segmento_z.rb} +1 -1
  39. data/lib/cnab240/version.rb +1 -1
  40. data/lib/cnab240.rb +39 -26
  41. data/spec/arquivo/arquivo_spec.rb +13 -5
  42. data/spec/arquivo/v40/header_spec.rb +68 -0
  43. data/spec/arquivo/v40/trailer_spec.rb +25 -0
  44. data/spec/arquivo/{header_spec.rb → v86/header_spec.rb} +6 -6
  45. data/spec/arquivo/{trailer_spec.rb → v86/trailer_spec.rb} +3 -3
  46. data/spec/cnab240_spec.rb +4 -4
  47. data/spec/pagamentos/v40/header_spec.rb +59 -0
  48. data/spec/pagamentos/v40/lote_spec.rb +24 -0
  49. data/spec/pagamentos/v40/trailer_spec.rb +28 -0
  50. data/spec/pagamentos/{header_spec.rb → v86/header_spec.rb} +3 -3
  51. data/spec/pagamentos/{lote_spec.rb → v86/lote_spec.rb} +4 -4
  52. data/spec/pagamentos/{titulos → v86/titulos}/header_spec.rb +3 -3
  53. data/spec/pagamentos/{titulos → v86/titulos}/lote_spec.rb +4 -4
  54. data/spec/pagamentos/{titulos → v86/titulos}/trailer_spec.rb +3 -3
  55. data/spec/pagamentos/{trailer_spec.rb → v86/trailer_spec.rb} +3 -3
  56. data/spec/pagamentos/{tributos → v86/tributos}/header_spec.rb +3 -3
  57. data/spec/pagamentos/{tributos → v86/tributos}/lote_spec.rb +4 -4
  58. data/spec/pagamentos/{tributos → v86/tributos}/trailer_spec.rb +3 -3
  59. data/spec/segmentos/{segmento_a_spec.rb → v40/segmento_a_spec.rb} +2 -2
  60. data/spec/segmentos/v86/segmento_a_spec.rb +65 -0
  61. data/spec/segmentos/{segmento_b_spec.rb → v86/segmento_b_spec.rb} +2 -2
  62. data/spec/segmentos/{segmento_c_spec.rb → v86/segmento_c_spec.rb} +2 -2
  63. data/spec/segmentos/{segmento_j52_spec.rb → v86/segmento_j52_spec.rb} +2 -2
  64. data/spec/segmentos/{segmento_j_spec.rb → v86/segmento_j_spec.rb} +2 -2
  65. data/spec/segmentos/{segmento_n1_spec.rb → v86/segmento_n1_spec.rb} +2 -2
  66. data/spec/segmentos/{segmento_n2_spec.rb → v86/segmento_n2_spec.rb} +2 -2
  67. data/spec/segmentos/{segmento_n3_spec.rb → v86/segmento_n3_spec.rb} +2 -2
  68. data/spec/segmentos/{segmento_n4_spec.rb → v86/segmento_n4_spec.rb} +2 -2
  69. data/spec/segmentos/{segmento_n5_spec.rb → v86/segmento_n5_spec.rb} +2 -2
  70. data/spec/segmentos/{segmento_n6_spec.rb → v86/segmento_n6_spec.rb} +2 -2
  71. data/spec/segmentos/{segmento_n7_spec.rb → v86/segmento_n7_spec.rb} +2 -2
  72. data/spec/segmentos/{segmento_n8_spec.rb → v86/segmento_n8_spec.rb} +2 -2
  73. data/spec/segmentos/{segmento_n_spec.rb → v86/segmento_n_spec.rb} +3 -3
  74. data/spec/segmentos/{segmento_o_spec.rb → v86/segmento_o_spec.rb} +2 -2
  75. data/spec/segmentos/{segmento_spec.rb → v86/segmento_spec.rb} +1 -1
  76. data/spec/segmentos/{segmento_w_spec.rb → v86/segmento_w_spec.rb} +2 -2
  77. data/spec/segmentos/{segmento_z_spec.rb → v86/segmento_z_spec.rb} +2 -2
  78. metadata +167 -137
@@ -1,4 +1,4 @@
1
- module Cnab240::PagamentosTitulos
1
+ module Cnab240::V86::PagamentosTitulos
2
2
  class Header < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240::PagamentosTitulos
1
+ module Cnab240::V86::PagamentosTitulos
2
2
  class Trailer < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240::Pagamentos
1
+ module Cnab240::V86::Pagamentos
2
2
  class Trailer < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240::PagamentosTributos
1
+ module Cnab240::V86::PagamentosTributos
2
2
  class Header < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240::PagamentosTributos
1
+ module Cnab240::V86::PagamentosTributos
2
2
  class Trailer < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V40
2
2
  class SegmentoA < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -41,5 +41,7 @@ module Cnab240
41
41
  string :aviso, :length => 1, :pad_byte => '0'
42
42
  string :ocorrencias, :length => 10, :pad_byte => ' '
43
43
 
44
+
45
+
44
46
  end
45
47
  end
@@ -0,0 +1,47 @@
1
+ module Cnab240::V86
2
+ class SegmentoA < BinData::Record
3
+
4
+ include Cnab240::DefaultMixin
5
+ include Cnab240::SegmentoMixin
6
+
7
+ string :controle_banco, :length => 3, :pad_byte => '0'
8
+ string :controle_lote, :length => 4, :pad_byte => '0'
9
+ string :controle_registro, :length => 1, :initial_value => '3', :pad_byte => '0'
10
+
11
+ string :servico_numero_registro, :length => 5, :pad_byte => '0'
12
+ string :servico_codigo_segmento, :length => 1, :initial_value => 'A', :pad_byte => ' '
13
+ string :servico_tipo_movimento, :length => 1, :pad_byte => '0'
14
+ string :servico_codigo_movimento, :length => 2, :pad_byte => '0'
15
+
16
+ string :favorecido_camara, :length => 3, :pad_byte => '0'
17
+ string :favorecido_banco, :length => 3, :pad_byte => '0'
18
+ string :favorecido_agencia_codigo, :length => 5, :pad_byte => '0'
19
+ string :favorecido_agencia_dv, :length => 1, :pad_byte => ' '
20
+ string :favorecido_conta_numero, :length => 12, :pad_byte => '0'
21
+ string :favorecido_conta_dv, :length => 1, :pad_byte => ' '
22
+ string :favorecido_agencia_conta_dv, :length => 1, :pad_byte => ' '
23
+ string :favorecido_nome, :length => 30, :pad_byte => ' '
24
+
25
+ string :credito_seu_numero, :length => 20, :pad_byte => ' '
26
+ string :credito_data_pagamento, :length => 8, :pad_byte => '0'
27
+ string :credito_moeda_tipo, :length => 3, :pad_byte => ' '
28
+ string :credito_moeda_quantidade, :length => 15, :pad_byte => '0'
29
+ string :credito_valor_pagamento, :length => 15, :pad_byte => '0'
30
+ string :credito_nosso_numero, :length => 20, :pad_byte => ' '
31
+ string :credito_data_real, :length => 8, :pad_byte => '0'
32
+ string :credito_valor_real, :length => 15, :pad_byte => '0'
33
+
34
+ string :informacao_2, :length => 40, :pad_byte => ' '
35
+
36
+ string :codigo_finalidade_doc, :length => 2, :pad_byte => ' '
37
+ string :codigo_finalidade_ted, :length => 5, :pad_byte => ' '
38
+ string :codigo_finalidade_complementar, :length => 2, :pad_byte => ' '
39
+
40
+ string :cnab_g004_1, :length => 3, :pad_byte => ' '
41
+ string :aviso, :length => 1, :pad_byte => '0'
42
+ string :ocorrencias, :length => 10, :pad_byte => ' '
43
+
44
+
45
+
46
+ end
47
+ end
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoB < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoC < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoJ < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoJ52 < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoN < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoN1 < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoN2 < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoN3 < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoN4 < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoN5 < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoN6 < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoN7 < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoN8 < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoO < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoW < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoW1 < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
- module Cnab240
1
+ module Cnab240::V86
2
2
  class SegmentoZ < BinData::Record
3
3
 
4
4
  include Cnab240::DefaultMixin
@@ -1,4 +1,4 @@
1
1
  module Cnab240
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
4
4
 
data/lib/cnab240.rb CHANGED
@@ -9,44 +9,57 @@ require "cnab240/ext/segmento_mixin"
9
9
 
10
10
  require "cnab240/arquivo/lote"
11
11
 
12
- require "cnab240/segmentos/segmento_a"
13
- require "cnab240/segmentos/segmento_b"
14
- require "cnab240/segmentos/segmento_c"
15
- require "cnab240/segmentos/segmento_j"
16
- require "cnab240/segmentos/segmento_j52"
17
- require "cnab240/segmentos/segmento_o"
18
- require "cnab240/segmentos/segmento_n8"
19
- require "cnab240/segmentos/segmento_n7"
20
- require "cnab240/segmentos/segmento_n6"
21
- require "cnab240/segmentos/segmento_n5"
22
- require "cnab240/segmentos/segmento_n4"
23
- require "cnab240/segmentos/segmento_n3"
24
- require "cnab240/segmentos/segmento_n2"
25
- require "cnab240/segmentos/segmento_n1"
26
- require "cnab240/segmentos/segmento_n"
27
- require "cnab240/segmentos/segmento_w1"
28
- require "cnab240/segmentos/segmento_w"
29
- require "cnab240/segmentos/segmento_z"
12
+ require "cnab240/segmentos/v86/segmento_a"
13
+ require "cnab240/segmentos/v86/segmento_b"
14
+ require "cnab240/segmentos/v86/segmento_c"
15
+ require "cnab240/segmentos/v86/segmento_j"
16
+ require "cnab240/segmentos/v86/segmento_j52"
17
+ require "cnab240/segmentos/v86/segmento_o"
18
+ require "cnab240/segmentos/v86/segmento_n8"
19
+ require "cnab240/segmentos/v86/segmento_n7"
20
+ require "cnab240/segmentos/v86/segmento_n6"
21
+ require "cnab240/segmentos/v86/segmento_n5"
22
+ require "cnab240/segmentos/v86/segmento_n4"
23
+ require "cnab240/segmentos/v86/segmento_n3"
24
+ require "cnab240/segmentos/v86/segmento_n2"
25
+ require "cnab240/segmentos/v86/segmento_n1"
26
+ require "cnab240/segmentos/v86/segmento_n"
27
+ require "cnab240/segmentos/v86/segmento_w1"
28
+ require "cnab240/segmentos/v86/segmento_w"
29
+ require "cnab240/segmentos/v86/segmento_z"
30
+
31
+ require "cnab240/segmentos/v40/segmento_a"
30
32
 
31
33
  require "cnab240/arquivo/arquivo"
32
- require "cnab240/arquivo/header"
33
- require "cnab240/arquivo/trailer"
34
34
 
35
- require "cnab240/pagamentos/header"
36
- require "cnab240/pagamentos/trailer"
37
- require "cnab240/pagamentos/titulos/header"
38
- require "cnab240/pagamentos/titulos/trailer"
39
- require "cnab240/pagamentos/tributos/header"
40
- require "cnab240/pagamentos/tributos/trailer"
35
+ require "cnab240/arquivo/v86/header"
36
+ require "cnab240/arquivo/v86/trailer"
37
+ require "cnab240/arquivo/v40/header"
38
+ require "cnab240/arquivo/v40/trailer"
39
+
40
+ require "cnab240/pagamentos/v86/header"
41
+ require "cnab240/pagamentos/v86/trailer"
42
+ require "cnab240/pagamentos/v86/titulos/header"
43
+ require "cnab240/pagamentos/v86/titulos/trailer"
44
+ require "cnab240/pagamentos/v86/tributos/header"
45
+ require "cnab240/pagamentos/v86/tributos/trailer"
46
+
47
+ require "cnab240/pagamentos/v40/header"
48
+ require "cnab240/pagamentos/v40/trailer"
41
49
 
42
50
  require "cnab240/arquivo/estrutura"
43
51
 
52
+ require "cnab240/arquivo/builder"
53
+
44
54
 
45
55
  module Cnab240
46
56
 
47
57
  mod_attr_accessor :defaults
48
58
  @@defaults = {}
49
59
 
60
+ mod_attr_accessor :fallback
61
+ @@fallback = "V86"
62
+
50
63
 
51
64
  # Yield self for configuration block:
52
65
  #
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- include Cnab240::Pagamentos
3
+ include Cnab240::V86::Pagamentos
4
4
  include Cnab240::Arquivo
5
5
 
6
6
  describe Arquivo do
@@ -17,7 +17,7 @@ describe Arquivo do
17
17
  (1..10).each do |n|
18
18
  lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
19
19
  lote.should be_an_instance_of(Cnab240::Lote)
20
- arquivo.lotes << lote
20
+ arquivo << lote
21
21
  arquivo.lotes.length.should be(n)
22
22
  end
23
23
  end
@@ -29,7 +29,7 @@ describe Arquivo do
29
29
  (1..10).each do |n|
30
30
  lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
31
31
  lote.should be_an_instance_of(Cnab240::Lote)
32
- arquivo.lotes << lote
32
+ arquivo << lote
33
33
  end
34
34
 
35
35
  arquivo.linhas do |linha|
@@ -40,7 +40,7 @@ describe Arquivo do
40
40
  it "deve ler e escrever, mantendo classe de lote" do
41
41
  arquivo = Cnab240::Arquivo::Arquivo.new
42
42
  (1..10).each do |n|
43
- arquivo.lotes << Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
43
+ arquivo << Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
44
44
  end
45
45
  arquivo.save_to_file("spec/tmp/arquivo.test")
46
46
 
@@ -58,7 +58,7 @@ describe Arquivo do
58
58
  it "arquivos devem ser identicos" do
59
59
  arquivo = Cnab240::Arquivo::Arquivo.new
60
60
  (1..10).each do |n|
61
- arquivo.lotes << Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
61
+ arquivo << Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
62
62
  end
63
63
  arquivo.save_to_file("spec/tmp/arquivo.test")
64
64
 
@@ -72,5 +72,13 @@ describe Arquivo do
72
72
 
73
73
  end
74
74
 
75
+ it "deve carregar arquivo grande" do
76
+
77
+ # arquivo_read = Cnab240::Arquivo::Arquivo.load_from_file("spec/tmp/B330002984PSL.REM")[0]
78
+ # arquivo_read.save_to_file("spec/tmp/arquivo.test")
79
+ # arquivo_read2 = Cnab240::Arquivo::Arquivo.load_from_file("spec/tmp/arquivo.test")[0]
80
+ # arquivo_read.string.should eq arquivo_read2.string
81
+ end
82
+
75
83
 
76
84
  end
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe Cnab240::V40::Arquivo::Header do
5
+
6
+ it "deve ter campos de header" do
7
+ header = Cnab240::V40::Arquivo::Header.new
8
+
9
+ header.should respond_to(:controle_banco)
10
+ header.should respond_to(:controle_lote)
11
+ header.should respond_to(:controle_registro)
12
+
13
+ header.should respond_to(:cnab_g004_1)
14
+
15
+ header.should respond_to(:empresa_tipo)
16
+ header.should respond_to(:empresa_numero)
17
+ header.should respond_to(:empresa_convenio)
18
+
19
+ header.should respond_to(:brancos_1)
20
+ header.should respond_to(:brancos_2)
21
+
22
+ header.should respond_to(:empresa_agencia_codigo)
23
+
24
+ header.should respond_to(:brancos_3)
25
+ header.should respond_to(:brancos_4)
26
+
27
+ header.should respond_to(:empresa_conta_numero)
28
+ header.should respond_to(:brancos_5)
29
+
30
+ header.should respond_to(:empresa_agencia_conta_dv)
31
+ header.should respond_to(:empresa_nome)
32
+
33
+ header.should respond_to(:banco_nome)
34
+
35
+ header.should respond_to(:cnab_g004_2)
36
+
37
+ header.should respond_to(:arquivo_codigo)
38
+ header.should respond_to(:arquivo_data_geracao)
39
+ header.should respond_to(:arquivo_hora_geracao)
40
+ header.should respond_to(:arquivo_sequencia)
41
+ header.should respond_to(:arquivo_layout)
42
+ header.should respond_to(:arquivo_densidade)
43
+
44
+ header.should respond_to(:reservado_banco)
45
+
46
+ header.should respond_to(:cnab_g004_3)
47
+ end
48
+
49
+ it "header deve ter 240 caracteres" do
50
+ header = Cnab240::V40::Arquivo::Header.new
51
+ header.linha.length.should be(240)
52
+ end
53
+
54
+ it "conversao deve manter consistencia" do
55
+ header = Cnab240::V40::Arquivo::Header.new
56
+
57
+ header.controle_banco= "8"
58
+ header.controle_lote= "8"
59
+ header.controle_registro= "8"
60
+
61
+ linha1 = header.linha
62
+
63
+ header2 = Cnab240::V40::Arquivo::Header.read(linha1)
64
+ linha2 = header2.linha
65
+
66
+ linha1.should eq linha2
67
+ end
68
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe Cnab240::V40::Arquivo::Trailer do
5
+
6
+ it "deve conter campos trailer" do
7
+ header = Cnab240::V40::Arquivo::Trailer.new
8
+ header.should respond_to(:controle_banco)
9
+ header.should respond_to(:controle_lote)
10
+ header.should respond_to(:controle_registro)
11
+
12
+ header.should respond_to(:cnab_g004_1)
13
+
14
+ header.should respond_to(:totais_qtde_lotes)
15
+ header.should respond_to(:totais_qtde_registros)
16
+
17
+ header.should respond_to(:cnab_g004_2)
18
+ end
19
+
20
+ it "trailer deve ter 240 caracteres" do
21
+ trailer = Cnab240::V40::Arquivo::Trailer.new
22
+ trailer.linha.length.should be(240)
23
+ end
24
+
25
+ end
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
3
 
4
- describe Cnab240::Arquivo::Header do
4
+ describe Cnab240::V86::Arquivo::Header do
5
5
 
6
6
  it "deve ter campos de header" do
7
- header = Cnab240::Arquivo::Header.new
7
+ header = Cnab240::V86::Arquivo::Header.new
8
8
 
9
9
  header.should respond_to(:controle_banco)
10
10
  header.should respond_to(:controle_lote)
@@ -40,12 +40,12 @@ describe Cnab240::Arquivo::Header do
40
40
  end
41
41
 
42
42
  it "header deve ter 240 caracteres" do
43
- header = Cnab240::Arquivo::Header.new
43
+ header = Cnab240::V86::Arquivo::Header.new
44
44
  header.linha.length.should be(240)
45
45
  end
46
46
 
47
47
  it "conversao deve manter consistencia" do
48
- header = Cnab240::Arquivo::Header.new
48
+ header = Cnab240::V86::Arquivo::Header.new
49
49
 
50
50
  header.controle_banco= "8"
51
51
  header.controle_lote= "8"
@@ -71,7 +71,7 @@ describe Cnab240::Arquivo::Header do
71
71
  header.arquivo_data_geracao= "8"
72
72
  header.arquivo_hora_geracao= "8"
73
73
  header.arquivo_sequencia= "8"
74
- header.arquivo_layout= "8"
74
+ header.arquivo_layout= "085"
75
75
  header.arquivo_densidade= "8"
76
76
 
77
77
  header.reservado_banco= "8"
@@ -81,7 +81,7 @@ describe Cnab240::Arquivo::Header do
81
81
 
82
82
  linha1 = header.linha
83
83
 
84
- header2 = Cnab240::Arquivo::Header.read(linha1)
84
+ header2 = Cnab240::V86::Arquivo::Header.read(linha1)
85
85
  linha2 = header2.linha
86
86
 
87
87
  linha1.should eq linha2
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
3
 
4
- describe Cnab240::Arquivo::Trailer do
4
+ describe Cnab240::V86::Arquivo::Trailer do
5
5
 
6
6
  it "deve conter campos trailer" do
7
- header = Cnab240::Arquivo::Trailer.new
7
+ header = Cnab240::V86::Arquivo::Trailer.new
8
8
 
9
9
  header.should respond_to(:controle_banco)
10
10
  header.should respond_to(:controle_lote)
@@ -20,7 +20,7 @@ describe Cnab240::Arquivo::Trailer do
20
20
  end
21
21
 
22
22
  it "trailer deve ter 240 caracteres" do
23
- trailer = Cnab240::Arquivo::Trailer.new
23
+ trailer = Cnab240::V86::Arquivo::Trailer.new
24
24
  trailer.linha.length.should be(240)
25
25
  end
26
26
 
data/spec/cnab240_spec.rb CHANGED
@@ -3,16 +3,16 @@ require 'spec_helper'
3
3
  describe Cnab240 do
4
4
 
5
5
  it "deve ter campos de configuracao" do
6
- Cnab240.setup do |config|
7
- config.should respond_to(:defaults)
8
- defaults[:empresa_tipo] = "1"
6
+ Cnab240.setup do |c|
7
+ c.should respond_to(:defaults)
8
+ c.defaults[:empresa_tipo] = "1"
9
9
  end
10
10
  Cnab240.defaults[:empresa_tipo].should eq("1")
11
11
  end
12
12
 
13
13
  it "configuracao deve ter efeito" do
14
14
  Cnab240.setup do |config|
15
- defaults[:empresa_tipo] = "1"
15
+ config.defaults[:empresa_tipo] = "1"
16
16
  end
17
17
  Cnab240.defaults[:empresa_tipo].should eq("1")
18
18
  arquivo = Cnab240::Arquivo::Arquivo.new
@@ -0,0 +1,59 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cnab240::V40::Pagamentos::Header do
4
+
5
+ it "deve conter campos header" do
6
+ header = Cnab240::V40::Pagamentos::Header.new
7
+
8
+ header.should respond_to(:controle_banco)
9
+ header.should respond_to(:controle_lote)
10
+ header.should respond_to(:controle_registro)
11
+
12
+ header.should respond_to(:servico_operacao)
13
+ header.should respond_to(:servico_tipo)
14
+ header.should respond_to(:servico_forma)
15
+ header.should respond_to(:servico_layout)
16
+
17
+ header.should respond_to(:cnab_g004_1)
18
+ header.should respond_to(:empresa_tipo)
19
+ header.should respond_to(:empresa_numero)
20
+ header.should respond_to(:empresa_convenio)
21
+
22
+
23
+ header.should respond_to(:brancos_1)
24
+ header.should respond_to(:brancos_2)
25
+
26
+
27
+ header.should respond_to(:empresa_agencia_codigo)
28
+
29
+ header.should respond_to(:brancos_3)
30
+ header.should respond_to(:brancos_4)
31
+
32
+ header.should respond_to(:empresa_conta_numero)
33
+
34
+ header.should respond_to(:brancos_5)
35
+
36
+ header.should respond_to(:empresa_agencia_conta_dv)
37
+ header.should respond_to(:empresa_nome)
38
+
39
+ header.should respond_to(:informacao_1)
40
+
41
+ header.should respond_to(:endereco_logradouro)
42
+ header.should respond_to(:endereco_numero)
43
+ header.should respond_to(:endereco_complemento)
44
+ header.should respond_to(:endereco_cidade)
45
+ header.should respond_to(:endereco_cep)
46
+ header.should respond_to(:endereco_estado)
47
+
48
+ header.should respond_to(:cnab_g004_2)
49
+ header.should respond_to(:ocorrencias)
50
+
51
+ end
52
+
53
+
54
+ it "header deve ter 240 caracteres" do
55
+ header = Cnab240::V40::Pagamentos::Header.new
56
+ header.linha.length.should be(240)
57
+ end
58
+
59
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cnab240::Lote do
4
+
5
+ it "deve conter trailer e header" do
6
+ lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa, :versao => 'V40')
7
+ lote.header.should be_an_instance_of(Cnab240::V40::Pagamentos::Header)
8
+ lote.trailer.should be_an_instance_of(Cnab240::V40::Pagamentos::Trailer)
9
+ end
10
+
11
+ it "deve conter segmento a" do
12
+ lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa, :versao => 'V40')
13
+ lote.segmento_a.should be_an_instance_of(Cnab240::V40::SegmentoA)
14
+ end
15
+
16
+ it "linhas devem ter 240" do
17
+ lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa, :versao => 'V40')
18
+ lote.linhas.each do |linha|
19
+ linha.length.should be(240)
20
+ end
21
+ end
22
+
23
+
24
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cnab240::V40::Pagamentos::Trailer do
4
+
5
+ it "deve conter campos trailer" do
6
+ trailer = Cnab240::V40::Pagamentos::Trailer.new
7
+
8
+ trailer.should respond_to(:controle_banco)
9
+ trailer.should respond_to(:controle_lote)
10
+ trailer.should respond_to(:controle_registro)
11
+
12
+ trailer.should respond_to(:cnab_g004_1)
13
+
14
+ trailer.should respond_to(:totais_qtde_registros)
15
+ trailer.should respond_to(:totais_valor)
16
+ trailer.should respond_to(:totais_qtde_moeda)
17
+
18
+ trailer.should respond_to(:cnab_g004_2)
19
+
20
+ trailer.should respond_to(:ocorrencias)
21
+ end
22
+
23
+ it "trailer deve ter 240 caracteres" do
24
+ trailer = Cnab240::V40::Pagamentos::Trailer.new
25
+ trailer.linha.length.should be(240)
26
+ end
27
+
28
+ end