teodoro 0.58.0 → 0.59.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0bdfd35d16d5c9a1e4357c15c07df253144b1baee4c7fd9205b3cf52718c4b7f
4
- data.tar.gz: f7c536c9fb09a58113a5687c8fe85b2b4214d487dd50b52c6d03bf78dc98af35
3
+ metadata.gz: 16090454b943f6dcf593dd00cb47f4d6c2c70a496666604928d8697e93122b52
4
+ data.tar.gz: 0e547aec652063cb273180e9f6ac0c02dc2c3d1ccca157f8db49402253ef5fd7
5
5
  SHA512:
6
- metadata.gz: 1baf3efc2f3dee684f15ed2a8573d3ef3414656c40facab51387912f5ebaf8308d8954e0be0c040946b06c43e85e8dc4887dc5278ab4f015009582801aff11d0
7
- data.tar.gz: d6895ab2737b33fdb3f5ffa7399d3baed801d987e79e914838178b6050343a6a3f8fa8073a3f9e306844255f83efe2e0cf8d455e08e3b4be8da6ef7d2c8d8f92
6
+ metadata.gz: 4d14465f187f7e708321c46e3b30b0bf7970389f29ee8d695a4e027739df22ccb3ec8e50368e52cb226353d537306ae39c99b57e62a4f5f1bd2bba0cbcf6a94c
7
+ data.tar.gz: abda36e22058ea1ac2e140dc68fe9f8d1a62b2167a4178367f193b1de99dd1718832c5db71ef5915dc87251abef546637ea6ec9ae567bb3fe4eaa3b9b2cbade9
@@ -195,6 +195,10 @@ module Teodoro
195
195
  .to_h { _1.match(/^(.+)=(.*)$/)[1..2] }
196
196
  end
197
197
 
198
+ def deletar
199
+ File.delete(caminho)
200
+ end
201
+
198
202
  private
199
203
 
200
204
  attr_reader :caminho
@@ -34,7 +34,7 @@ module Teodoro
34
34
  arquivo_xml_de_retificacao.processar
35
35
  end
36
36
 
37
- def processar_inclusao
37
+ def registrar_e_salvar_arquivos_data
38
38
  registrar_arquivos_data
39
39
  salvar_arquivos_data
40
40
  end
@@ -0,0 +1,11 @@
1
+ module Teodoro
2
+ module ArquivoDeEventoNaoPeriodicoNaoCancelavel
3
+ include ArquivoDeEventoNaoPeriodico
4
+
5
+ private
6
+
7
+ def processar_inclusao
8
+ registrar_e_salvar_arquivos_data
9
+ end
10
+ end
11
+ end
@@ -2,6 +2,7 @@ require_relative 'arquivo_data'
2
2
  require_relative 'arquivo_de_evento'
3
3
  require_relative 'arquivo_de_evento_de_tabela'
4
4
  require_relative 'arquivo_de_evento_nao_periodico'
5
+ require_relative 'arquivo_de_evento_nao_periodico_nao_cancelavel'
5
6
  require_relative 'cnpj'
6
7
  require_relative 'leiaute/arquivo_s1000'
7
8
  require_relative 'leiaute/arquivo_s1005'
@@ -127,6 +128,10 @@ module Teodoro
127
128
  @nome ||= File.basename(caminho, '.xml')
128
129
  end
129
130
 
131
+ def s1000?
132
+ tipo_de_evento == 'S1000'
133
+ end
134
+
130
135
  def processar
131
136
  Console.print "processando #{nome}.xml..." do
132
137
  validar_versao_do_leiaute
@@ -48,6 +48,7 @@ module Teodoro
48
48
  carregar_arquivos_xml
49
49
  classificar_arquivos_xml
50
50
  ordenar_arquivos_xml
51
+ validar_que_primeiro_arquivo_xml_eh_s1000
51
52
  processar_arquivos_xml
52
53
  salvar_arquivo_de_dados_gerais
53
54
  processar_cargos_gerados
@@ -177,6 +178,17 @@ module Teodoro
177
178
  end
178
179
  end
179
180
 
181
+ def validar_que_primeiro_arquivo_xml_eh_s1000
182
+ return if primeiro_arquivo_xml_eh_s1000?
183
+
184
+ puts '', Rainbow('Erro! Primeiro arquivo XML (evento) deve ser S-1000.').red
185
+ exit
186
+ end
187
+
188
+ def primeiro_arquivo_xml_eh_s1000?
189
+ arquivos_xml.first.s1000?
190
+ end
191
+
180
192
  def processar_arquivos_xml
181
193
  # otimizacao do gerenciamento de memoria
182
194
  arquivos_xml.shift.processar while arquivos_xml.any?
@@ -1,7 +1,7 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
3
  class ArquivoS2190
4
- include ArquivoDeEventoNaoPeriodico
4
+ include ArquivoDeEventoNaoPeriodicoNaoCancelavel
5
5
 
6
6
  private
7
7
 
@@ -1,7 +1,7 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
3
  class ArquivoS2200 # rubocop:disable Metrics/ClassLength
4
- include ArquivoDeEventoNaoPeriodico
4
+ include ArquivoDeEventoNaoPeriodicoNaoCancelavel
5
5
 
6
6
  private
7
7
 
@@ -1,7 +1,7 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
3
  class ArquivoS2205 # rubocop:disable Metrics/ClassLength
4
- include ArquivoDeEventoNaoPeriodico
4
+ include ArquivoDeEventoNaoPeriodicoNaoCancelavel
5
5
 
6
6
  private
7
7
 
@@ -1,7 +1,7 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
3
  class ArquivoS2206
4
- include ArquivoDeEventoNaoPeriodico
4
+ include ArquivoDeEventoNaoPeriodicoNaoCancelavel
5
5
 
6
6
  private
7
7
 
@@ -1,7 +1,7 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
3
  class ArquivoS2210
4
- include ArquivoDeEventoNaoPeriodico
4
+ include ArquivoDeEventoNaoPeriodicoNaoCancelavel
5
5
 
6
6
  private
7
7
 
@@ -1,7 +1,7 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
3
  class ArquivoS2220
4
- include ArquivoDeEventoNaoPeriodico
4
+ include ArquivoDeEventoNaoPeriodicoNaoCancelavel
5
5
 
6
6
  private
7
7
 
@@ -1,7 +1,7 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
3
  class ArquivoS2230 # rubocop:disable Metrics/ClassLength
4
- include ArquivoDeEventoNaoPeriodico
4
+ include ArquivoDeEventoNaoPeriodicoNaoCancelavel
5
5
 
6
6
  private
7
7
 
@@ -1,7 +1,7 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
3
  class ArquivoS2240
4
- include ArquivoDeEventoNaoPeriodico
4
+ include ArquivoDeEventoNaoPeriodicoNaoCancelavel
5
5
 
6
6
  private
7
7
 
@@ -5,6 +5,33 @@ module Teodoro
5
5
 
6
6
  private
7
7
 
8
+ def processar_inclusao
9
+ if cancelamento?
10
+ deletar_arquivo_data_original
11
+ else
12
+ registrar_e_salvar_arquivos_data
13
+ end
14
+ end
15
+
16
+ def cancelamento?
17
+ evento['infoAvPrevio/cancAvPrevio']
18
+ end
19
+
20
+ def deletar_arquivo_data_original
21
+ arquivo_data_original.deletar
22
+ end
23
+
24
+ def arquivo_data_original
25
+ ArquivoData::Original.new(caminho_do_arquivo_data_original)
26
+ end
27
+
28
+ def caminho_do_arquivo_data_original
29
+ ArquivoData::Caminho.new(
30
+ diretorio: empresa.destino_dos_arquivos_data,
31
+ nome_do_arquivo: dados_dos_arquivos_data.first.nome
32
+ )
33
+ end
34
+
8
35
  def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
9
36
  [
10
37
  ArquivoData::TRA_EPG_AVI.new(
@@ -1,7 +1,7 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
3
  class ArquivoS2299 # rubocop:disable Metrics/ClassLength
4
- include ArquivoDeEventoNaoPeriodico
4
+ include ArquivoDeEventoNaoPeriodicoNaoCancelavel
5
5
 
6
6
  private
7
7
 
@@ -1,7 +1,7 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
3
  class ArquivoS2300 # rubocop:disable Metrics/ClassLength
4
- include ArquivoDeEventoNaoPeriodico
4
+ include ArquivoDeEventoNaoPeriodicoNaoCancelavel
5
5
 
6
6
  private
7
7
 
@@ -1,7 +1,7 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
3
  class ArquivoS2306 # rubocop:disable Metrics/ClassLength
4
- include ArquivoDeEventoNaoPeriodico
4
+ include ArquivoDeEventoNaoPeriodicoNaoCancelavel
5
5
 
6
6
  private
7
7
 
@@ -1,7 +1,7 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
3
  class ArquivoS2399
4
- include ArquivoDeEventoNaoPeriodico
4
+ include ArquivoDeEventoNaoPeriodicoNaoCancelavel
5
5
 
6
6
  private
7
7
 
@@ -1,7 +1,7 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
3
  class ArquivoS2500 # rubocop:disable Metrics/ClassLength
4
- include ArquivoDeEventoNaoPeriodico
4
+ include ArquivoDeEventoNaoPeriodicoNaoCancelavel
5
5
 
6
6
  private
7
7
 
@@ -1,7 +1,7 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
3
  class ArquivoS2501
4
- include ArquivoDeEventoNaoPeriodico
4
+ include ArquivoDeEventoNaoPeriodicoNaoCancelavel
5
5
 
6
6
  private
7
7
 
@@ -1,3 +1,3 @@
1
1
  module Teodoro
2
- VERSION = '0.58.0'.freeze
2
+ VERSION = '0.59.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teodoro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.58.0
4
+ version: 0.59.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fortes Tecnologia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-03 00:00:00.000000000 Z
11
+ date: 2023-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -84,6 +84,7 @@ files:
84
84
  - lib/teodoro/arquivo_de_evento.rb
85
85
  - lib/teodoro/arquivo_de_evento_de_tabela.rb
86
86
  - lib/teodoro/arquivo_de_evento_nao_periodico.rb
87
+ - lib/teodoro/arquivo_de_evento_nao_periodico_nao_cancelavel.rb
87
88
  - lib/teodoro/arquivo_de_origem.rb
88
89
  - lib/teodoro/arquivo_xml.rb
89
90
  - lib/teodoro/cnpj.rb