teodoro 0.0.11 → 0.0.12

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: 1c9deae607c9ff37a06e53ec8cb179d250a85ed8fda4e2480892cc4169453e43
4
- data.tar.gz: d9f73ef82b8803e52fb33b57e4b25549d84c004e2cae59c4261e6f9694f5de6c
3
+ metadata.gz: bb82ca01d0e6d8a70fb3c77d09e5d89a03e473fa632f4382221cdffefb21feed
4
+ data.tar.gz: 7bc8f92129a1828c5c4fa4cd7fcc5f3e87ed6c21c524f334959c26e782fc8e26
5
5
  SHA512:
6
- metadata.gz: 11b1fac346b51fae9b6cc45f11881acb1e2c9c594afdabd6a943de5fe201f76f464c20bf084fb910e164d3886d2a22a02b1b0a34f28f43c98b0edab5f8591521
7
- data.tar.gz: 17b9915e3a32d1a8dda9de0626881eb817f8476048cbe7519ebf74fab442ff43e28887edf8c3775931d060e1857d66e97f0284c79b7b7d22b13966287177566e
6
+ metadata.gz: dce1dc08d6027a38f86f3ed22b0f4876bb95a977637ccd2f18daee65087dd1c8bfacfec9a970809c9ede277fd72ba8eefba2aa8356067e89a48800608dad5a21
7
+ data.tar.gz: f363698c4d43d83faea482d15e3ccd0299d1396c93c3ea214c8285c467514f2273400c182bae85425d90ee3c01cc3537f3c4c874dbc8423c44921f35f8933b20
@@ -2,13 +2,18 @@ module Teodoro
2
2
  module ArquivoDeEvento
3
3
  private
4
4
 
5
- def initialize(empresa:, evento:, recibo:)
5
+ def initialize(empresa:, versao_do_leiaute:, evento:, recibo:)
6
6
  @empresa = empresa
7
+ @versao_do_leiaute = versao_do_leiaute
7
8
  @evento = evento
8
9
  @recibo = recibo
9
10
  end
10
11
 
11
- attr_reader :empresa, :evento, :recibo
12
+ attr_reader :empresa, :versao_do_leiaute, :evento, :recibo
13
+
14
+ def leiaute_simplificado?
15
+ versao_do_leiaute.start_with?('_S_')
16
+ end
12
17
 
13
18
  def processo_de_emissao_do_evento
14
19
  evento["#{noh_principal_do_evento}/ideEvento/procEmi"]
@@ -3,7 +3,7 @@ require_relative 'arquivo_de_evento_exceto_de_exclusao'
3
3
  require_relative 'arquivo_de_evento_de_tabela'
4
4
  require_relative 'arquivo_de_evento_nao_periodico'
5
5
  require_relative 'cnpj'
6
- require_relative 'leiaute_2'
6
+ require_relative 'leiaute'
7
7
  require_relative 'xml'
8
8
 
9
9
  module Teodoro
@@ -47,8 +47,7 @@ module Teodoro
47
47
 
48
48
  def momento_de_processamento_pelo_e_social
49
49
  # otimizacao do gerenciamento de memoria
50
- carregar_conteudo
51
- .then { |conteudo| Nokogiri::XML(conteudo) }
50
+ carregar_xml
52
51
  .then { |xml| Nokogiri::XML(xml.css('eSocial/retornoProcessamentoDownload/recibo/*').to_s) }
53
52
  .then { |xml_do_recibo| XML.new(xml_do_recibo) }
54
53
  .then { |recibo| recibo['retornoEvento/processamento/dhProcessamento'] }
@@ -59,8 +58,9 @@ module Teodoro
59
58
  end
60
59
 
61
60
  def processar
62
- Console.print "processando #{nome}.xml..."
63
- arquivo.processar
61
+ dar_feedback_para_o_usuario
62
+ validar_versao_do_leiaute
63
+ processar_arquivo
64
64
  end
65
65
 
66
66
  private
@@ -69,29 +69,24 @@ module Teodoro
69
69
  @tipo_de_evento ||= nome[-6..].delete('-')
70
70
  end
71
71
 
72
- def carregar_conteudo
73
- File.read(caminho)
72
+ def carregar_xml
73
+ Nokogiri::XML(carregar_conteudo)
74
74
  end
75
75
 
76
- def arquivo
77
- classe_do_arquivo.new(empresa: empresa, evento: evento, recibo: recibo)
76
+ def carregar_conteudo
77
+ File.read(caminho)
78
78
  end
79
79
 
80
- def classe_do_arquivo
81
- modulo_do_leiaute.const_get("Arquivo#{tipo_de_evento}")
80
+ def dar_feedback_para_o_usuario
81
+ Console.print "processando #{nome}.xml..."
82
82
  end
83
83
 
84
- def modulo_do_leiaute
85
- {
86
- '02_04_01' => Leiaute_2,
87
- '02_04_02' => Leiaute_2,
88
- '02_05_00' => Leiaute_2,
89
- '_S_01_00_00' => Leiaute_2 # FIXME: Tales
90
- }[versao_do_leiaute_no_xml]
84
+ def validar_versao_do_leiaute
85
+ raise unless %w[02_04_01 02_04_02 02_05_00 _S_01_00_00].include?(versao_do_leiaute)
91
86
  end
92
87
 
93
- def versao_do_leiaute_no_xml
94
- namespace_do_evento.match(%r{.+/v(.+)$})[1]
88
+ def versao_do_leiaute
89
+ @versao_do_leiaute ||= namespace_do_evento.match(%r{.+/v(.+)$})[1]
95
90
  end
96
91
 
97
92
  def namespace_do_evento
@@ -103,7 +98,19 @@ module Teodoro
103
98
  end
104
99
 
105
100
  def xml
106
- @xml ||= Nokogiri::XML(carregar_conteudo)
101
+ @xml ||= carregar_xml
102
+ end
103
+
104
+ def processar_arquivo
105
+ arquivo.processar
106
+ end
107
+
108
+ def arquivo
109
+ classe_do_arquivo.new(empresa: empresa, versao_do_leiaute: versao_do_leiaute, evento: evento, recibo: recibo)
110
+ end
111
+
112
+ def classe_do_arquivo
113
+ Leiaute.const_get("Arquivo#{tipo_de_evento}")
107
114
  end
108
115
 
109
116
  def evento
@@ -0,0 +1,24 @@
1
+ require_relative 'leiaute/arquivo_s1000'
2
+ require_relative 'leiaute/arquivo_s1005'
3
+ require_relative 'leiaute/arquivo_s1010'
4
+ require_relative 'leiaute/arquivo_s1020'
5
+ require_relative 'leiaute/arquivo_s1030'
6
+ require_relative 'leiaute/arquivo_s1040'
7
+ require_relative 'leiaute/arquivo_s1050'
8
+ require_relative 'leiaute/arquivo_s1070'
9
+ require_relative 'leiaute/arquivo_s2190'
10
+ require_relative 'leiaute/arquivo_s2200'
11
+ require_relative 'leiaute/arquivo_s2205'
12
+ require_relative 'leiaute/arquivo_s2206'
13
+ require_relative 'leiaute/arquivo_s2230'
14
+ require_relative 'leiaute/arquivo_s2250'
15
+ require_relative 'leiaute/arquivo_s2299'
16
+ require_relative 'leiaute/arquivo_s2300'
17
+ require_relative 'leiaute/arquivo_s2306'
18
+ require_relative 'leiaute/arquivo_s2399'
19
+ require_relative 'leiaute/arquivo_s3000'
20
+
21
+ module Teodoro
22
+ module Leiaute
23
+ end
24
+ end
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  # rubocop:disable Metrics/ClassLength
4
4
  class ArquivoS1000
5
5
  include ArquivoDeEventoDeTabela
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS1005
4
4
  include ArquivoDeEventoDeTabela
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS1010
4
4
  include ArquivoDeEventoDeTabela
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS1020
4
4
  include ArquivoDeEventoDeTabela
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS1030
4
4
  include ArquivoDeEventoDeTabela
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS1040
4
4
  include ArquivoDeEventoDeTabela
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS1050
4
4
  include ArquivoDeEventoDeTabela
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS1070
4
4
  include ArquivoDeEventoDeTabela
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS2190
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS2200 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -158,7 +158,7 @@ module Teodoro
158
158
  ['EventoAdmissao_EnderecoResidencialEX_PaisResidencia_TEXT'],
159
159
  ['SemNumeroLogradouroEnderecoEX'],
160
160
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', evento['evtAdmissao/trabalhador/trabEstrangeiro/casadoBr']],
161
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao', evento['evtAdmissao/trabalhador/trabEstrangeiro/classTrabEstrang']],
161
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao', condicao_de_ingresso_do_trabalhador_estrangeiro],
162
162
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT'],
163
163
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', evento['evtAdmissao/trabalhador/trabEstrangeiro/dtChegada']],
164
164
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', evento['evtAdmissao/trabalhador/trabEstrangeiro/filhosBr']],
@@ -312,6 +312,26 @@ module Teodoro
312
312
  ]
313
313
  end
314
314
  # rubocop:enable Metrics/MethodLength, Layout/LineLength, Metrics/AbcSize
315
+
316
+ def condicao_de_ingresso_do_trabalhador_estrangeiro
317
+ if leiaute_simplificado?
318
+ MAPEAMENTO_DA_CONDICAO_DE_INGRESSO_DO_TRABALHADOR_IMIGRANTE
319
+ .then do |mapeamento|
320
+ mapeamento[evento['evtAdmissao/trabalhador/trabImig/condIng']] ||
321
+ evento['evtAdmissao/trabalhador/trabImig/tmpResid']
322
+ end
323
+ else
324
+ evento['evtAdmissao/trabalhador/trabEstrangeiro/classTrabEstrang']
325
+ end
326
+ end
327
+
328
+ MAPEAMENTO_DA_CONDICAO_DE_INGRESSO_DO_TRABALHADOR_IMIGRANTE = {
329
+ '1' => 4,
330
+ '2' => 5,
331
+ '4' => 10,
332
+ '5' => 11,
333
+ '6' => 12
334
+ }.freeze
315
335
  end
316
336
  end
317
337
  end
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS2205 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS2206 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS2230 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS2250
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS2299 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS2300 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS2306 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS2399 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS3000
4
4
  include ArquivoDeEvento
5
5
 
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.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clavius Tales
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-11 00:00:00.000000000 Z
11
+ date: 2021-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -182,26 +182,26 @@ files:
182
182
  - lib/teodoro/cnpj.rb
183
183
  - lib/teodoro/console.rb
184
184
  - lib/teodoro/empresa.rb
185
- - lib/teodoro/leiaute_2.rb
186
- - lib/teodoro/leiaute_2/arquivo_s1000.rb
187
- - lib/teodoro/leiaute_2/arquivo_s1005.rb
188
- - lib/teodoro/leiaute_2/arquivo_s1010.rb
189
- - lib/teodoro/leiaute_2/arquivo_s1020.rb
190
- - lib/teodoro/leiaute_2/arquivo_s1030.rb
191
- - lib/teodoro/leiaute_2/arquivo_s1040.rb
192
- - lib/teodoro/leiaute_2/arquivo_s1050.rb
193
- - lib/teodoro/leiaute_2/arquivo_s1070.rb
194
- - lib/teodoro/leiaute_2/arquivo_s2190.rb
195
- - lib/teodoro/leiaute_2/arquivo_s2200.rb
196
- - lib/teodoro/leiaute_2/arquivo_s2205.rb
197
- - lib/teodoro/leiaute_2/arquivo_s2206.rb
198
- - lib/teodoro/leiaute_2/arquivo_s2230.rb
199
- - lib/teodoro/leiaute_2/arquivo_s2250.rb
200
- - lib/teodoro/leiaute_2/arquivo_s2299.rb
201
- - lib/teodoro/leiaute_2/arquivo_s2300.rb
202
- - lib/teodoro/leiaute_2/arquivo_s2306.rb
203
- - lib/teodoro/leiaute_2/arquivo_s2399.rb
204
- - lib/teodoro/leiaute_2/arquivo_s3000.rb
185
+ - lib/teodoro/leiaute.rb
186
+ - lib/teodoro/leiaute/arquivo_s1000.rb
187
+ - lib/teodoro/leiaute/arquivo_s1005.rb
188
+ - lib/teodoro/leiaute/arquivo_s1010.rb
189
+ - lib/teodoro/leiaute/arquivo_s1020.rb
190
+ - lib/teodoro/leiaute/arquivo_s1030.rb
191
+ - lib/teodoro/leiaute/arquivo_s1040.rb
192
+ - lib/teodoro/leiaute/arquivo_s1050.rb
193
+ - lib/teodoro/leiaute/arquivo_s1070.rb
194
+ - lib/teodoro/leiaute/arquivo_s2190.rb
195
+ - lib/teodoro/leiaute/arquivo_s2200.rb
196
+ - lib/teodoro/leiaute/arquivo_s2205.rb
197
+ - lib/teodoro/leiaute/arquivo_s2206.rb
198
+ - lib/teodoro/leiaute/arquivo_s2230.rb
199
+ - lib/teodoro/leiaute/arquivo_s2250.rb
200
+ - lib/teodoro/leiaute/arquivo_s2299.rb
201
+ - lib/teodoro/leiaute/arquivo_s2300.rb
202
+ - lib/teodoro/leiaute/arquivo_s2306.rb
203
+ - lib/teodoro/leiaute/arquivo_s2399.rb
204
+ - lib/teodoro/leiaute/arquivo_s3000.rb
205
205
  - lib/teodoro/obj.rb
206
206
  - lib/teodoro/xml.rb
207
207
  homepage:
@@ -1,24 +0,0 @@
1
- require_relative 'leiaute_2/arquivo_s1000'
2
- require_relative 'leiaute_2/arquivo_s1005'
3
- require_relative 'leiaute_2/arquivo_s1010'
4
- require_relative 'leiaute_2/arquivo_s1020'
5
- require_relative 'leiaute_2/arquivo_s1030'
6
- require_relative 'leiaute_2/arquivo_s1040'
7
- require_relative 'leiaute_2/arquivo_s1050'
8
- require_relative 'leiaute_2/arquivo_s1070'
9
- require_relative 'leiaute_2/arquivo_s2190'
10
- require_relative 'leiaute_2/arquivo_s2200'
11
- require_relative 'leiaute_2/arquivo_s2205'
12
- require_relative 'leiaute_2/arquivo_s2206'
13
- require_relative 'leiaute_2/arquivo_s2230'
14
- require_relative 'leiaute_2/arquivo_s2250'
15
- require_relative 'leiaute_2/arquivo_s2299'
16
- require_relative 'leiaute_2/arquivo_s2300'
17
- require_relative 'leiaute_2/arquivo_s2306'
18
- require_relative 'leiaute_2/arquivo_s2399'
19
- require_relative 'leiaute_2/arquivo_s3000'
20
-
21
- module Teodoro
22
- module Leiaute_2
23
- end
24
- end