cnab240 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -2
  3. data/cnab240.gemspec +10 -12
  4. data/lib/cnab240.rb +108 -91
  5. data/lib/cnab240/arquivo/arquivo.rb +6 -9
  6. data/lib/cnab240/arquivo/builder.rb +111 -90
  7. data/lib/cnab240/arquivo/estrutura.rb +161 -99
  8. data/lib/cnab240/arquivo/v40/header.rb +27 -29
  9. data/lib/cnab240/arquivo/v40/trailer.rb +8 -10
  10. data/lib/cnab240/arquivo/v60/header.rb +38 -0
  11. data/lib/cnab240/arquivo/v60/trailer.rb +17 -0
  12. data/lib/cnab240/arquivo/v80/header.rb +23 -26
  13. data/lib/cnab240/arquivo/v80/trailer.rb +8 -9
  14. data/lib/cnab240/arquivo/v81/header.rb +37 -0
  15. data/lib/cnab240/arquivo/v81/trailer.rb +17 -0
  16. data/lib/cnab240/arquivo/v83/header.rb +25 -26
  17. data/lib/cnab240/arquivo/v83/trailer.rb +9 -9
  18. data/lib/cnab240/arquivo/v86/header.rb +25 -26
  19. data/lib/cnab240/arquivo/v86/trailer.rb +9 -10
  20. data/lib/cnab240/arquivo/v87/header.rb +25 -26
  21. data/lib/cnab240/arquivo/v87/trailer.rb +9 -10
  22. data/lib/cnab240/ext/attribute_accessors.rb +4 -4
  23. data/lib/cnab240/ext/bindata.rb +4 -4
  24. data/lib/cnab240/ext/default_mixin.rb +2 -4
  25. data/lib/cnab240/ext/filler.rb +1 -3
  26. data/lib/cnab240/ext/lstring.rb +9 -10
  27. data/lib/cnab240/ext/segmento_mixin.rb +1 -3
  28. data/lib/cnab240/helper/boleto_bancoob.rb +60 -0
  29. data/lib/cnab240/helper/helper.rb +1 -1
  30. data/lib/cnab240/helper/pagamento_bb.rb +7 -9
  31. data/lib/cnab240/helper/pagamento_bradesco.rb +6 -8
  32. data/lib/cnab240/helper/pagamento_itau.rb +6 -8
  33. data/lib/cnab240/helper/transferencia_citibank.rb +56 -0
  34. data/lib/cnab240/helper/{pagamento_sicoob.rb → transferencia_sicoob.rb} +8 -15
  35. data/lib/cnab240/{arquivo/lote.rb → lote.rb} +29 -14
  36. data/lib/cnab240/lote/v40/boletos/header.rb +46 -0
  37. data/lib/cnab240/lote/v40/boletos/trailer.rb +29 -0
  38. data/lib/cnab240/pagamentos/v40/header.rb +30 -32
  39. data/lib/cnab240/pagamentos/v40/trailer.rb +10 -11
  40. data/lib/cnab240/pagamentos/v60/header.rb +43 -0
  41. data/lib/cnab240/pagamentos/v60/trailer.rb +17 -0
  42. data/lib/cnab240/pagamentos/v80/header.rb +35 -37
  43. data/lib/cnab240/pagamentos/v80/trailer.rb +10 -11
  44. data/lib/cnab240/pagamentos/v83/header.rb +33 -35
  45. data/lib/cnab240/pagamentos/v83/trailer.rb +11 -12
  46. data/lib/cnab240/pagamentos/v86/header.rb +34 -36
  47. data/lib/cnab240/pagamentos/v86/titulos/header.rb +28 -30
  48. data/lib/cnab240/pagamentos/v86/titulos/trailer.rb +11 -12
  49. data/lib/cnab240/pagamentos/v86/trailer.rb +11 -12
  50. data/lib/cnab240/pagamentos/v86/tributos/header.rb +35 -37
  51. data/lib/cnab240/pagamentos/v86/tributos/trailer.rb +9 -10
  52. data/lib/cnab240/pagamentos/v87/header.rb +34 -36
  53. data/lib/cnab240/pagamentos/v87/titulos/header.rb +28 -30
  54. data/lib/cnab240/pagamentos/v87/titulos/trailer.rb +11 -12
  55. data/lib/cnab240/pagamentos/v87/trailer.rb +11 -12
  56. data/lib/cnab240/pagamentos/v87/tributos/header.rb +35 -37
  57. data/lib/cnab240/pagamentos/v87/tributos/trailer.rb +9 -10
  58. data/lib/cnab240/segmentos/v40/segmento_a.rb +40 -41
  59. data/lib/cnab240/segmentos/v60/segmento_a.rb +43 -0
  60. data/lib/cnab240/segmentos/v60/segmento_b.rb +38 -0
  61. data/lib/cnab240/segmentos/v60/segmento_j.rb +32 -0
  62. data/lib/cnab240/segmentos/v80/agencia_itau.rb +8 -9
  63. data/lib/cnab240/segmentos/v80/agencia_outros.rb +6 -7
  64. data/lib/cnab240/segmentos/v80/segmento_a.rb +30 -32
  65. data/lib/cnab240/segmentos/v81/segmento_p.rb +79 -0
  66. data/lib/cnab240/segmentos/v81/segmento_q.rb +36 -0
  67. data/lib/cnab240/segmentos/v81/segmento_r.rb +49 -0
  68. data/lib/cnab240/segmentos/v81/segmento_s.rb +37 -0
  69. data/lib/cnab240/segmentos/v83/segmento_a.rb +35 -36
  70. data/lib/cnab240/segmentos/v83/segmento_b.rb +33 -34
  71. data/lib/cnab240/segmentos/v83/segmento_j.rb +22 -23
  72. data/lib/cnab240/segmentos/v83/segmento_z.rb +10 -11
  73. data/lib/cnab240/segmentos/v86/segmento_a.rb +37 -38
  74. data/lib/cnab240/segmentos/v86/segmento_b.rb +33 -34
  75. data/lib/cnab240/segmentos/v86/segmento_c.rb +19 -20
  76. data/lib/cnab240/segmentos/v86/segmento_j.rb +22 -23
  77. data/lib/cnab240/segmentos/v86/segmento_j52.rb +19 -20
  78. data/lib/cnab240/segmentos/v86/segmento_n.rb +17 -18
  79. data/lib/cnab240/segmentos/v86/segmento_n1.rb +10 -11
  80. data/lib/cnab240/segmentos/v86/segmento_n2.rb +12 -13
  81. data/lib/cnab240/segmentos/v86/segmento_n3.rb +12 -13
  82. data/lib/cnab240/segmentos/v86/segmento_n4.rb +14 -15
  83. data/lib/cnab240/segmentos/v86/segmento_n5.rb +12 -13
  84. data/lib/cnab240/segmentos/v86/segmento_n6.rb +12 -13
  85. data/lib/cnab240/segmentos/v86/segmento_n7.rb +13 -14
  86. data/lib/cnab240/segmentos/v86/segmento_n8.rb +12 -14
  87. data/lib/cnab240/segmentos/v86/segmento_o.rb +17 -18
  88. data/lib/cnab240/segmentos/v86/segmento_w.rb +12 -13
  89. data/lib/cnab240/segmentos/v86/segmento_w1.rb +9 -10
  90. data/lib/cnab240/segmentos/v86/segmento_z.rb +10 -11
  91. data/lib/cnab240/segmentos/v87/segmento_a.rb +37 -38
  92. data/lib/cnab240/segmentos/v87/segmento_b.rb +33 -34
  93. data/lib/cnab240/segmentos/v87/segmento_c.rb +19 -20
  94. data/lib/cnab240/segmentos/v87/segmento_j.rb +22 -23
  95. data/lib/cnab240/segmentos/v87/segmento_j52.rb +19 -20
  96. data/lib/cnab240/segmentos/v87/segmento_n.rb +17 -18
  97. data/lib/cnab240/segmentos/v87/segmento_n1.rb +10 -11
  98. data/lib/cnab240/segmentos/v87/segmento_n2.rb +12 -13
  99. data/lib/cnab240/segmentos/v87/segmento_n3.rb +12 -13
  100. data/lib/cnab240/segmentos/v87/segmento_n4.rb +14 -15
  101. data/lib/cnab240/segmentos/v87/segmento_n5.rb +12 -13
  102. data/lib/cnab240/segmentos/v87/segmento_n6.rb +12 -13
  103. data/lib/cnab240/segmentos/v87/segmento_n7.rb +13 -14
  104. data/lib/cnab240/segmentos/v87/segmento_n8.rb +12 -14
  105. data/lib/cnab240/segmentos/v87/segmento_o.rb +17 -18
  106. data/lib/cnab240/segmentos/v87/segmento_w.rb +12 -13
  107. data/lib/cnab240/segmentos/v87/segmento_w1.rb +9 -10
  108. data/lib/cnab240/segmentos/v87/segmento_z.rb +10 -11
  109. data/lib/cnab240/version.rb +1 -1
  110. metadata +30 -40
@@ -1,162 +1,224 @@
1
1
  module Cnab240
2
+ ESTRUTURA_V40 = {
3
+ segmentos_implementados: [:a],
4
+ pagamento: {
5
+ header: Cnab240::V40::Pagamentos::Header,
6
+ trailer: Cnab240::V40::Pagamentos::Trailer,
7
+ segmentos: [:a],
8
+ a: {
9
+ remessa: true,
10
+ retorno: true
11
+ }
12
+ }
13
+ }
14
+
15
+ ESTRUTURA_V60 = {
16
+ segmentos_implementados: [:a, :b],
17
+ pagamento: {
18
+
19
+ header: Cnab240::V60::Pagamentos::Header,
20
+ trailer: Cnab240::V60::Pagamentos::Trailer,
21
+
22
+ segmentos: [:a, :b],
23
+ a: {
24
+ remessa: true,
25
+ retorno: true
26
+ },
27
+ b: {
28
+ remessa: true,
29
+ retorno: true
30
+ }
31
+ }
32
+ }
2
33
 
3
34
  ESTRUTURA_V80 = {
4
- :segmentos_implementados => [:a],
5
- :pagamento => {
6
- :header => Cnab240::V80::Pagamentos::Header,
7
- :trailer => Cnab240::V80::Pagamentos::Trailer,
8
- :segmentos => [:a],
9
- :a => {
10
- :remessa => true,
11
- :retorno => true
35
+ segmentos_implementados: [:a],
36
+ pagamento: {
37
+ header: Cnab240::V80::Pagamentos::Header,
38
+ trailer: Cnab240::V80::Pagamentos::Trailer,
39
+ segmentos: [:a],
40
+ a: {
41
+ remessa: true,
42
+ retorno: true
12
43
  }
13
44
  }
14
45
  }
15
46
 
16
- ESTRUTURA_V40 = {
17
- :segmentos_implementados => [:a],
18
- :pagamento => {
19
- :header => Cnab240::V40::Pagamentos::Header,
20
- :trailer => Cnab240::V40::Pagamentos::Trailer,
21
- :segmentos => [:a],
22
- :a => {
23
- :remessa => true,
24
- :retorno => true
47
+ ESTRUTURA_V81 = {
48
+ segmentos_implementados: [:p, :q, :r, :s],
49
+ boleto: {
50
+
51
+ header: Cnab240::Lote::V40::Boletos::Header,
52
+ trailer: Cnab240::Lote::V40::Boletos::Trailer,
53
+
54
+ segmentos: [:p, :q, :r, :s],
55
+ p: {
56
+ remessa: true
57
+ },
58
+ q: {
59
+ remessa: true
60
+ },
61
+ r: {
62
+ remessa: false
63
+ },
64
+ s: {
65
+ remessa: false
66
+ }
67
+ }
68
+ }
69
+
70
+ ESTRUTURA_V83 = {
71
+ segmentos_implementados: [:a, :b, :j, :z],
72
+ pagamento: {
73
+
74
+ header: Cnab240::V83::Pagamentos::Header,
75
+ trailer: Cnab240::V83::Pagamentos::Trailer,
76
+
77
+ segmentos: [:a, :b],
78
+ a: {
79
+ remessa: true,
80
+ retorno: true
81
+ },
82
+ b: {
83
+ remessa: true,
84
+ retorno: true
25
85
  }
26
86
  }
27
87
  }
28
88
 
29
89
  ESTRUTURA_V86 = {
30
- :segmentos_implementados => [:a, :b, :c, :j, :j52, :o, :n, :w, :z],
31
- :pagamento => {
90
+ segmentos_implementados: [:a, :b, :c, :j, :j52, :o, :n, :w, :z],
91
+ pagamento: {
32
92
 
33
- :header => Cnab240::V86::Pagamentos::Header,
34
- :trailer => Cnab240::V86::Pagamentos::Trailer,
93
+ header: Cnab240::V86::Pagamentos::Header,
94
+ trailer: Cnab240::V86::Pagamentos::Trailer,
35
95
 
36
- :segmentos => [:a, :b, :c],
37
- :a => {
38
- :remessa => true,
39
- :retorno => true
96
+ segmentos: [:a, :b, :c],
97
+ a: {
98
+ remessa: true,
99
+ retorno: true
40
100
  },
41
- :b => {
42
- :remessa => true,
43
- :retorno => true
101
+ b: {
102
+ remessa: true,
103
+ retorno: true
44
104
  },
45
- :c => {
46
- :remessa => false,
47
- :retorno => false
105
+ c: {
106
+ remessa: false,
107
+ retorno: false
48
108
  }
49
109
  },
50
110
 
51
- :pagamento_titulo_cobranca => {
111
+ pagamento_titulo_cobranca: {
52
112
 
53
- :header => Cnab240::V86::PagamentosTitulos::Header,
54
- :trailer => Cnab240::V86::PagamentosTitulos::Trailer,
113
+ header: Cnab240::V86::PagamentosTitulos::Header,
114
+ trailer: Cnab240::V86::PagamentosTitulos::Trailer,
55
115
 
56
- :segmentos => [:j, :j52],
57
- :j => {
58
- :remessa => true,
59
- :retorno => true
116
+ segmentos: [:j, :j52],
117
+ j: {
118
+ remessa: true,
119
+ retorno: true
60
120
  },
61
- :j52 => {
62
- :remessa => false,
63
- :retorno => false
121
+ j52: {
122
+ remessa: false,
123
+ retorno: false
64
124
  }
65
125
  },
66
126
 
67
- :pagamento_titulo_tributos => {
127
+ pagamento_titulo_tributos: {
68
128
 
69
- :header => Cnab240::V86::PagamentosTributos::Header,
70
- :trailer => Cnab240::V86::PagamentosTributos::Trailer,
129
+ header: Cnab240::V86::PagamentosTributos::Header,
130
+ trailer: Cnab240::V86::PagamentosTributos::Trailer,
71
131
 
72
- :segmentos => [:o, :n, :w, :z],
73
- :o => {
74
- :remessa => true,
75
- :retorno => true
132
+ segmentos: [:o, :n, :w, :z],
133
+ o: {
134
+ remessa: true,
135
+ retorno: true
76
136
  },
77
- :n => {
78
- :remessa => true,
79
- :retorno => true
137
+ n: {
138
+ remessa: true,
139
+ retorno: true
80
140
  },
81
- :w => {
82
- :remessa => false,
83
- :retorno => false
141
+ w: {
142
+ remessa: false,
143
+ retorno: false
84
144
  },
85
- :z => {
86
- :remessa => false,
87
- :retorno => false
145
+ z: {
146
+ remessa: false,
147
+ retorno: false
88
148
  }
89
149
  }
90
150
  }
91
151
 
92
152
  ESTRUTURA_V87 = {
93
- :segmentos_implementados => [:a, :b, :c, :j, :j52, :o, :n, :w, :z],
94
- :pagamento => {
153
+ segmentos_implementados: [:a, :b, :c, :j, :j52, :o, :n, :w, :z],
154
+ pagamento: {
95
155
 
96
- :header => Cnab240::V87::Pagamentos::Header,
97
- :trailer => Cnab240::V87::Pagamentos::Trailer,
156
+ header: Cnab240::V87::Pagamentos::Header,
157
+ trailer: Cnab240::V87::Pagamentos::Trailer,
98
158
 
99
- :segmentos => [:a, :b, :c],
100
- :a => {
101
- :remessa => true,
102
- :retorno => true
159
+ segmentos: [:a, :b, :c],
160
+ a: {
161
+ remessa: true,
162
+ retorno: true
103
163
  },
104
- :b => {
105
- :remessa => true,
106
- :retorno => true
164
+ b: {
165
+ remessa: true,
166
+ retorno: true
107
167
  },
108
- :c => {
109
- :remessa => false,
110
- :retorno => false
168
+ c: {
169
+ remessa: false,
170
+ retorno: false
111
171
  }
112
172
  },
113
173
 
114
- :pagamento_titulo_cobranca => {
174
+ pagamento_titulo_cobranca: {
115
175
 
116
- :header => Cnab240::V87::PagamentosTitulos::Header,
117
- :trailer => Cnab240::V87::PagamentosTitulos::Trailer,
176
+ header: Cnab240::V87::PagamentosTitulos::Header,
177
+ trailer: Cnab240::V87::PagamentosTitulos::Trailer,
118
178
 
119
- :segmentos => [:j, :j52],
120
- :j => {
121
- :remessa => true,
122
- :retorno => true
179
+ segmentos: [:j, :j52],
180
+ j: {
181
+ remessa: true,
182
+ retorno: true
123
183
  },
124
- :j52 => {
125
- :remessa => false,
126
- :retorno => false
184
+ j52: {
185
+ remessa: false,
186
+ retorno: false
127
187
  }
128
188
  },
129
189
 
130
- :pagamento_titulo_tributos => {
190
+ pagamento_titulo_tributos: {
131
191
 
132
- :header => Cnab240::V87::PagamentosTributos::Header,
133
- :trailer => Cnab240::V87::PagamentosTributos::Trailer,
192
+ header: Cnab240::V87::PagamentosTributos::Header,
193
+ trailer: Cnab240::V87::PagamentosTributos::Trailer,
134
194
 
135
- :segmentos => [:o, :n, :w, :z],
136
- :o => {
137
- :remessa => true,
138
- :retorno => true
195
+ segmentos: [:o, :n, :w, :z],
196
+ o: {
197
+ remessa: true,
198
+ retorno: true
139
199
  },
140
- :n => {
141
- :remessa => true,
142
- :retorno => true
200
+ n: {
201
+ remessa: true,
202
+ retorno: true
143
203
  },
144
- :w => {
145
- :remessa => false,
146
- :retorno => false
204
+ w: {
205
+ remessa: false,
206
+ retorno: false
147
207
  },
148
- :z => {
149
- :remessa => false,
150
- :retorno => false
208
+ z: {
209
+ remessa: false,
210
+ retorno: false
151
211
  }
152
212
  }
153
213
  }
154
214
 
155
215
  ESTRUTURA = {
156
216
  'V40' => ESTRUTURA_V40,
217
+ 'V60' => ESTRUTURA_V60,
157
218
  'V80' => ESTRUTURA_V80,
219
+ 'V81' => ESTRUTURA_V81,
220
+ 'V83' => ESTRUTURA_V83,
158
221
  'V86' => ESTRUTURA_V86,
159
222
  'V87' => ESTRUTURA_V87
160
223
  }
161
-
162
- end
224
+ end
@@ -1,46 +1,44 @@
1
1
  module Cnab240::V40::Arquivo
2
2
  class Header < BinData::Record
3
-
4
3
  include Cnab240::DefaultMixin
5
4
 
6
- string :controle_banco, :length => 3, :pad_byte => '0'
7
- lstring :controle_lote, :length => 4, :initial_value => '0000', :pad_byte => '0'
8
- lstring :controle_registro, :length => 1, :initial_value => '0', :pad_byte => '0'
9
-
10
- string :cnab_g004_1, :length => 9, :initial_value => ' ', :pad_byte => ' '
5
+ string :controle_banco, length: 3, pad_byte: '0'
6
+ lstring :controle_lote, length: 4, initial_value: '0000', pad_byte: '0'
7
+ lstring :controle_registro, length: 1, initial_value: '0', pad_byte: '0'
11
8
 
12
- lstring :empresa_tipo, :length => 1, :pad_byte => '0'
13
- lstring :empresa_numero, :length => 14, :pad_byte => '0'
14
- string :empresa_convenio, :length => 13, :pad_byte => ' '
9
+ string :cnab_g004_1, length: 9, initial_value: ' ', pad_byte: ' '
15
10
 
16
- string :brancos_1, :length => 7, :pad_byte => ' '
17
- lstring :brancos_2, :length => 1, :pad_byte => '0'
11
+ lstring :empresa_tipo, length: 1, pad_byte: '0'
12
+ lstring :empresa_numero, length: 14, pad_byte: '0'
13
+ string :empresa_convenio, length: 13, pad_byte: ' '
18
14
 
19
- lstring :empresa_agencia_codigo, :length => 4, :pad_byte => '0'
15
+ string :brancos_1, length: 7, pad_byte: ' '
16
+ lstring :brancos_2, length: 1, pad_byte: '0'
20
17
 
21
- string :brancos_3, :length => 1, :pad_byte => ' '
22
- lstring :brancos_4, :length => 7, :pad_byte => '0'
18
+ lstring :empresa_agencia_codigo, length: 4, pad_byte: '0'
23
19
 
24
- lstring :empresa_conta_numero, :length => 5, :pad_byte => '0'
25
- string :brancos_5, :length => 1, :pad_byte => ' '
20
+ string :brancos_3, length: 1, pad_byte: ' '
21
+ lstring :brancos_4, length: 7, pad_byte: '0'
26
22
 
27
- string :empresa_agencia_conta_dv, :length => 1, :pad_byte => '0'
28
- string :empresa_nome, :length => 30, :pad_byte => ' '
23
+ lstring :empresa_conta_numero, length: 5, pad_byte: '0'
24
+ string :brancos_5, length: 1, pad_byte: ' '
29
25
 
30
- string :banco_nome, :length => 30, :pad_byte => ' '
26
+ string :empresa_agencia_conta_dv, length: 1, pad_byte: '0'
27
+ string :empresa_nome, length: 30, pad_byte: ' '
31
28
 
32
- string :cnab_g004_2, :length => 10, :pad_byte => ' '
29
+ string :banco_nome, length: 30, pad_byte: ' '
33
30
 
34
- lstring :arquivo_codigo, :length => 1, :pad_byte => '0'
35
- lstring :arquivo_data_geracao, :length => 8, :pad_byte => '0'
36
- lstring :arquivo_hora_geracao, :length => 6, :pad_byte => '0'
37
- lstring :arquivo_sequencia, :length => 6, :pad_byte => '0'
38
- lstring :arquivo_layout, :length => 3, :initial_value => '040'
39
- lstring :arquivo_densidade, :length => 5, :pad_byte => '0'
31
+ string :cnab_g004_2, length: 10, pad_byte: ' '
40
32
 
41
- string :reservado_banco, :length => 20, :pad_byte => ' '
33
+ lstring :arquivo_codigo, length: 1, pad_byte: '0'
34
+ lstring :arquivo_data_geracao, length: 8, pad_byte: '0'
35
+ lstring :arquivo_hora_geracao, length: 6, pad_byte: '0'
36
+ lstring :arquivo_sequencia, length: 6, pad_byte: '0'
37
+ lstring :arquivo_layout, length: 3, initial_value: '040'
38
+ lstring :arquivo_densidade, length: 5, pad_byte: '0'
42
39
 
43
- string :cnab_g004_3, :length => 49, :pad_byte => ' '
40
+ string :reservado_banco, length: 20, pad_byte: ' '
44
41
 
42
+ string :cnab_g004_3, length: 49, pad_byte: ' '
45
43
  end
46
- end
44
+ end
@@ -1,18 +1,16 @@
1
1
  module Cnab240::V40::Arquivo
2
2
  class Trailer < BinData::Record
3
-
4
3
  include Cnab240::DefaultMixin
5
4
 
6
- string :controle_banco, :length => 3, :pad_byte => '0'
7
- lstring :controle_lote, :length => 4, :initial_value => '9999', :pad_byte => '0'
8
- lstring :controle_registro, :length => 1, :initial_value => '9', :pad_byte => '0'
9
-
10
- string :cnab_g004_1, :length => 9, :pad_byte => ' '
5
+ string :controle_banco, length: 3, pad_byte: '0'
6
+ lstring :controle_lote, length: 4, initial_value: '9999', pad_byte: '0'
7
+ lstring :controle_registro, length: 1, initial_value: '9', pad_byte: '0'
11
8
 
12
- lstring :totais_qtde_lotes, :length => 6, :pad_byte => '0'
13
- lstring :totais_qtde_registros, :length => 6, :pad_byte => '0'
9
+ string :cnab_g004_1, length: 9, pad_byte: ' '
14
10
 
15
- string :cnab_g004_2, :length => 211, :pad_byte => ' '
11
+ lstring :totais_qtde_lotes, length: 6, pad_byte: '0'
12
+ lstring :totais_qtde_registros, length: 6, pad_byte: '0'
16
13
 
14
+ string :cnab_g004_2, length: 211, pad_byte: ' '
17
15
  end
18
- end
16
+ end
@@ -0,0 +1,38 @@
1
+ module Cnab240::V60::Arquivo
2
+ class Header < BinData::Record
3
+ include Cnab240::DefaultMixin
4
+
5
+ string :controle_banco, length: 3, pad_byte: '0'
6
+ lstring :controle_lote, length: 4, initial_value: '0000', pad_byte: '0'
7
+ lstring :controle_registro, length: 1, initial_value: '0', pad_byte: '0'
8
+
9
+ string :cnab_g004_1, length: 9, initial_value: ' ', pad_byte: ' '
10
+
11
+ lstring :empresa_tipo, length: 1, pad_byte: '0'
12
+ lstring :empresa_numero, length: 14, pad_byte: '0'
13
+ string :empresa_convenio, length: 20, pad_byte: ' '
14
+
15
+ lstring :empresa_agencia_codigo, length: 5, pad_byte: '0'
16
+ string :empresa_agencia_dv, length: 1, pad_byte: ' '
17
+ lstring :empresa_conta_numero, length: 12, pad_byte: ' '
18
+ string :empresa_conta_dv, length: 1, pad_byte: ' '
19
+ string :empresa_agencia_conta_dv, length: 1, pad_byte: ' '
20
+ string :empresa_nome, length: 30, pad_byte: ' '
21
+
22
+ string :banco_nome, length: 30, pad_byte: ' '
23
+
24
+ string :cnab_g004_2, length: 10, pad_byte: ' '
25
+
26
+ lstring :arquivo_codigo, length: 1, pad_byte: '0'
27
+ lstring :arquivo_data_geracao, length: 8, pad_byte: '0'
28
+ lstring :arquivo_hora_geracao, length: 6, pad_byte: '0'
29
+ lstring :arquivo_sequencia, length: 6, pad_byte: '0'
30
+ lstring :arquivo_layout, length: 3, initial_value: '060'
31
+ lstring :arquivo_densidade, length: 5, pad_byte: '0'
32
+
33
+ string :reservado_banco, length: 20, pad_byte: ' '
34
+ string :reservado_empresa, length: 20, pad_byte: ' '
35
+
36
+ string :cnab_g004_3, length: 29, pad_byte: ' '
37
+ end
38
+ end