teodoro 0.0.11 → 0.0.12

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: 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