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 +4 -4
- data/lib/teodoro/arquivo_de_evento.rb +7 -2
- data/lib/teodoro/arquivo_xml.rb +28 -21
- data/lib/teodoro/leiaute.rb +24 -0
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1000.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1005.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1010.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1020.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1030.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1040.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1050.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1070.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2190.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2200.rb +22 -2
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2205.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2206.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2230.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2250.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2299.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2300.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2306.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2399.rb +1 -1
- data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s3000.rb +1 -1
- metadata +22 -22
- data/lib/teodoro/leiaute_2.rb +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb82ca01d0e6d8a70fb3c77d09e5d89a03e473fa632f4382221cdffefb21feed
|
4
|
+
data.tar.gz: 7bc8f92129a1828c5c4fa4cd7fcc5f3e87ed6c21c524f334959c26e782fc8e26
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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"]
|
data/lib/teodoro/arquivo_xml.rb
CHANGED
@@ -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 '
|
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
|
-
|
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
|
-
|
63
|
-
|
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
|
73
|
-
|
72
|
+
def carregar_xml
|
73
|
+
Nokogiri::XML(carregar_conteudo)
|
74
74
|
end
|
75
75
|
|
76
|
-
def
|
77
|
-
|
76
|
+
def carregar_conteudo
|
77
|
+
File.read(caminho)
|
78
78
|
end
|
79
79
|
|
80
|
-
def
|
81
|
-
|
80
|
+
def dar_feedback_para_o_usuario
|
81
|
+
Console.print "processando #{nome}.xml..."
|
82
82
|
end
|
83
83
|
|
84
|
-
def
|
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
|
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 ||=
|
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
|
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',
|
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
|
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.
|
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
|
+
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/
|
186
|
-
- lib/teodoro/
|
187
|
-
- lib/teodoro/
|
188
|
-
- lib/teodoro/
|
189
|
-
- lib/teodoro/
|
190
|
-
- lib/teodoro/
|
191
|
-
- lib/teodoro/
|
192
|
-
- lib/teodoro/
|
193
|
-
- lib/teodoro/
|
194
|
-
- lib/teodoro/
|
195
|
-
- lib/teodoro/
|
196
|
-
- lib/teodoro/
|
197
|
-
- lib/teodoro/
|
198
|
-
- lib/teodoro/
|
199
|
-
- lib/teodoro/
|
200
|
-
- lib/teodoro/
|
201
|
-
- lib/teodoro/
|
202
|
-
- lib/teodoro/
|
203
|
-
- lib/teodoro/
|
204
|
-
- lib/teodoro/
|
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:
|
data/lib/teodoro/leiaute_2.rb
DELETED
@@ -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
|