teodoro 0.58.0 → 0.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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