teodoro 0.45.0 → 0.46.0
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_data.rb +7 -4
- data/lib/teodoro/arquivo_xml.rb +4 -0
- data/lib/teodoro/empresa/arquivo_de_dados_gerais.rb +55 -0
- data/lib/teodoro/empresa/contratos_de_trabalho_sem_vinculo.rb +4 -1
- data/lib/teodoro/empresa.rb +14 -0
- data/lib/teodoro/leiaute/arquivo_s1298.rb +17 -0
- data/lib/teodoro/leiaute/arquivo_s1299.rb +17 -0
- data/lib/teodoro/leiaute/arquivo_s2200.rb +10 -1
- data/lib/teodoro/leiaute/arquivo_s2206.rb +6 -1
- data/lib/teodoro/leiaute/arquivo_s2230.rb +1 -0
- data/lib/teodoro/leiaute/arquivo_s2300.rb +1 -0
- data/lib/teodoro/leiaute/arquivo_s2306.rb +14 -3
- data/lib/teodoro/leiaute/arquivo_s2399.rb +14 -3
- data/lib/teodoro/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76c8918c7124a971c158c41b7c1d0de13c09b2f155fa2b7fc42be79a7807c805
|
4
|
+
data.tar.gz: 3e47d002a6482058c13c2e6a360edfa0f30aeacc3b0798a50de857ae15ec26ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 47150df11fb3df6d7d2254a6cca993ff71bfaf12308fad4c98890ae8b9bd14682a4eb192b14538aee96dbc077718256fcec9edac9ba85a8708983e06c02504cb
|
7
|
+
data.tar.gz: 89b1f8e0712f195334b5fb4f074fc3b1bfc566098d59f524c26c7c0afb1c5f3ccc7168264eb43192bbc241fb83f8b37c77a2bf355b2332334549440ce79b21cb
|
data/lib/teodoro/arquivo_data.rb
CHANGED
@@ -33,13 +33,16 @@ module Teodoro
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def conteudo_do_arquivo
|
36
|
-
|
37
|
-
.map {
|
38
|
-
.
|
39
|
-
.reject { |_chave, valor| valor.vazio? }
|
36
|
+
itens_de_conteudo_ajustados
|
37
|
+
.map { |chave, valor, formato, opcoes| [chave, Valor.new(valor, formato: formato), opcoes] }
|
38
|
+
.reject { |_chave, valor, opcoes| valor.vazio? && !opcoes[:manter_se_vazio] }
|
40
39
|
.map { |chave, valor| "#{chave}=#{valor}" }
|
41
40
|
end
|
42
41
|
|
42
|
+
def itens_de_conteudo_ajustados
|
43
|
+
itens_do_conteudo.map { [_1[0], _1[1], _1.size == 1 ? :vazio : _1[2], _1[3] || {}] }
|
44
|
+
end
|
45
|
+
|
43
46
|
class Caminho
|
44
47
|
private
|
45
48
|
|
data/lib/teodoro/arquivo_xml.rb
CHANGED
@@ -11,6 +11,8 @@ require_relative 'leiaute/arquivo_s1030'
|
|
11
11
|
require_relative 'leiaute/arquivo_s1040'
|
12
12
|
require_relative 'leiaute/arquivo_s1050'
|
13
13
|
require_relative 'leiaute/arquivo_s1070'
|
14
|
+
require_relative 'leiaute/arquivo_s1298'
|
15
|
+
require_relative 'leiaute/arquivo_s1299'
|
14
16
|
require_relative 'leiaute/arquivo_s2190'
|
15
17
|
require_relative 'leiaute/arquivo_s2200'
|
16
18
|
require_relative 'leiaute/arquivo_s2205'
|
@@ -39,6 +41,8 @@ module Teodoro
|
|
39
41
|
S1040
|
40
42
|
S1050
|
41
43
|
S1070
|
44
|
+
S1298
|
45
|
+
S1299
|
42
46
|
S2190
|
43
47
|
S2200
|
44
48
|
S2205
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Teodoro
|
2
|
+
class Empresa
|
3
|
+
class ArquivoDeDadosGerais
|
4
|
+
def initialize(empresa:, destino:)
|
5
|
+
@empresa = empresa
|
6
|
+
@destino = destino
|
7
|
+
end
|
8
|
+
|
9
|
+
attr_reader :empresa, :destino
|
10
|
+
|
11
|
+
def gerar # rubocop:disable Metrics/MethodLength
|
12
|
+
ArquivoData.new(
|
13
|
+
diretorio: destino,
|
14
|
+
nome: 'DADOS_GERAIS',
|
15
|
+
itens_do_conteudo: [
|
16
|
+
[
|
17
|
+
'ULTIMA_COMPETENCIA_FECHADA',
|
18
|
+
ultima_competencia_fechada,
|
19
|
+
:mes_ano,
|
20
|
+
{ manter_se_vazio: true }
|
21
|
+
],
|
22
|
+
[
|
23
|
+
'ULTIMA_COMPETENCIA_FECHADA_DECIMO_TERCEIRO',
|
24
|
+
ultima_competencia_fechada_decimo_terceiro,
|
25
|
+
nil,
|
26
|
+
{ manter_se_vazio: true }
|
27
|
+
]
|
28
|
+
]
|
29
|
+
).criar
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def ultima_competencia_fechada
|
35
|
+
meses_anos.max
|
36
|
+
end
|
37
|
+
|
38
|
+
def meses_anos
|
39
|
+
competencias_encerradas.grep(/^\d{4}-\d{2}$/)
|
40
|
+
end
|
41
|
+
|
42
|
+
def competencias_encerradas
|
43
|
+
empresa.competencias_encerradas
|
44
|
+
end
|
45
|
+
|
46
|
+
def ultima_competencia_fechada_decimo_terceiro
|
47
|
+
anos.max
|
48
|
+
end
|
49
|
+
|
50
|
+
def anos
|
51
|
+
competencias_encerradas.grep(/^\d{4}$/)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -16,7 +16,9 @@ module Teodoro
|
|
16
16
|
trabalhadores << inicio_de_contrato.trabalhador
|
17
17
|
end
|
18
18
|
|
19
|
-
def [](cpf_do_trabalhador:, categoria_do_trabalhador:, data:)
|
19
|
+
def [](cpf_do_trabalhador:, matricula_do_trabalhador:, categoria_do_trabalhador:, data:)
|
20
|
+
return contratos.find { _1.matricula_do_trabalhador == matricula_do_trabalhador } if matricula_do_trabalhador
|
21
|
+
|
20
22
|
contratos
|
21
23
|
.select do |contrato|
|
22
24
|
contrato.trabalhador.cpf == cpf_do_trabalhador &&
|
@@ -58,6 +60,7 @@ module Teodoro
|
|
58
60
|
|
59
61
|
def_delegators :inicio_de_contrato,
|
60
62
|
:trabalhador,
|
63
|
+
:matricula_do_trabalhador,
|
61
64
|
:categoria_do_trabalhador,
|
62
65
|
:data_de_inicio,
|
63
66
|
:recibo
|
data/lib/teodoro/empresa.rb
CHANGED
@@ -3,6 +3,7 @@ require_relative 'arquivo_xml'
|
|
3
3
|
require_relative 'empresa/arquivos_data'
|
4
4
|
require_relative 'empresa/arquivo_data_emp'
|
5
5
|
require_relative 'empresa/arquivo_data_rub'
|
6
|
+
require_relative 'empresa/arquivo_de_dados_gerais'
|
6
7
|
require_relative 'empresa/cargos_gerados'
|
7
8
|
require_relative 'empresa/contratos_de_emprego'
|
8
9
|
require_relative 'empresa/contratos_de_trabalho_sem_vinculo'
|
@@ -49,6 +50,7 @@ module Teodoro
|
|
49
50
|
classificar_arquivos_xml
|
50
51
|
ordenar_arquivos_xml
|
51
52
|
processar_arquivos_xml
|
53
|
+
gerar_arquivo_de_dados_gerais
|
52
54
|
processar_cargos_gerados
|
53
55
|
processar_funcoes_geradas
|
54
56
|
setar_proximo_identificador_de_tabela_de_rubricas_nos_arquivos_data_emp
|
@@ -63,6 +65,10 @@ module Teodoro
|
|
63
65
|
@arquivos_data ||= ArquivosData.new(destino_dos_arquivos_data)
|
64
66
|
end
|
65
67
|
|
68
|
+
def competencias_encerradas
|
69
|
+
@competencias_encerradas ||= []
|
70
|
+
end
|
71
|
+
|
66
72
|
def trabalhadores
|
67
73
|
@trabalhadores ||= Trabalhadores.new
|
68
74
|
end
|
@@ -159,6 +165,14 @@ module Teodoro
|
|
159
165
|
arquivos_xml.shift.processar while arquivos_xml.any?
|
160
166
|
end
|
161
167
|
|
168
|
+
def gerar_arquivo_de_dados_gerais
|
169
|
+
arquivo_de_dados_gerais.gerar
|
170
|
+
end
|
171
|
+
|
172
|
+
def arquivo_de_dados_gerais
|
173
|
+
ArquivoDeDadosGerais.new(empresa: self, destino: destino_dos_arquivos_data)
|
174
|
+
end
|
175
|
+
|
162
176
|
def processar_cargos_gerados
|
163
177
|
cargos_gerados.each(&:processar)
|
164
178
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Teodoro
|
2
|
+
module Leiaute
|
3
|
+
class ArquivoS1298
|
4
|
+
include ArquivoDeEvento
|
5
|
+
|
6
|
+
def processar
|
7
|
+
empresa.competencias_encerradas.delete(periodo_de_apuracao)
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def periodo_de_apuracao
|
13
|
+
evento['ideEvento/perApur']
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Teodoro
|
2
|
+
module Leiaute
|
3
|
+
class ArquivoS1299
|
4
|
+
include ArquivoDeEvento
|
5
|
+
|
6
|
+
def processar
|
7
|
+
empresa.competencias_encerradas << periodo_de_apuracao
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def periodo_de_apuracao
|
13
|
+
evento['ideEvento/perApur']
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -276,7 +276,16 @@ module Teodoro
|
|
276
276
|
['EventoAdmissao_InfoVinculo_CodigoMotivoAfastamento', evento['vinculo/afastamento/codMotAfast']],
|
277
277
|
['EventoAdmissao_InfoVinculo_SucessaoVinculo_DataTransferencia', evento['vinculo/sucessaoVinc/dtTransf'], :data],
|
278
278
|
leiaute['EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior'],
|
279
|
-
['EventoAdmissao_InfoVinculo_SucessaoVinculo_MatriculaAnterior', evento['vinculo/sucessaoVinc/matricAnt']]
|
279
|
+
['EventoAdmissao_InfoVinculo_SucessaoVinculo_MatriculaAnterior', evento['vinculo/sucessaoVinc/matricAnt']],
|
280
|
+
*(
|
281
|
+
if leiaute_simplificado?
|
282
|
+
evento.*('vinculo/infoContrato/treiCap').map.with_index(1) do |treinamento_capacitacao, seq|
|
283
|
+
[
|
284
|
+
["treiCap_#{seq}_codTreiCap", treinamento_capacitacao['codTreiCap']]
|
285
|
+
]
|
286
|
+
end.sum([])
|
287
|
+
end
|
288
|
+
)
|
280
289
|
# rubocop:enable Layout/LineLength
|
281
290
|
]
|
282
291
|
)
|
@@ -192,7 +192,12 @@ module Teodoro
|
|
192
192
|
['InformacoesContrato_HorarioContratual_DescricaoTipoJornada', evento['altContratual/vinculo/infoContrato/horContratual/dscJorn']],
|
193
193
|
['InformacoesContrato_CodigoCargo', codigo_do_cargo],
|
194
194
|
['InformacoesContrato_CodigoFuncao', codigo_da_funcao],
|
195
|
-
['InformacoesContrato_DataTermino', evento['altContratual/vinculo/infoContrato/duracao/dtTerm'], :data]
|
195
|
+
['InformacoesContrato_DataTermino', evento['altContratual/vinculo/infoContrato/duracao/dtTerm'], :data],
|
196
|
+
*evento.*('altContratual/vinculo/infoContrato/treiCap').map.with_index(1) do |treinamento_capacitacao, seq|
|
197
|
+
[
|
198
|
+
["treiCap_#{seq}_codTreiCap", treinamento_capacitacao['codTreiCap']]
|
199
|
+
]
|
200
|
+
end.sum([])
|
196
201
|
# rubocop:enable Layout/LineLength
|
197
202
|
]
|
198
203
|
end
|
@@ -83,6 +83,7 @@ module Teodoro
|
|
83
83
|
def contrato_de_trabalho_sem_vinculo
|
84
84
|
@contrato_de_trabalho_sem_vinculo ||= contratos_de_trabalho_sem_vinculo[
|
85
85
|
cpf_do_trabalhador: cpf_do_trabalhador,
|
86
|
+
matricula_do_trabalhador: matricula_do_trabalhador,
|
86
87
|
categoria_do_trabalhador: categoria_do_trabalhador,
|
87
88
|
data: inicio_do_afastamento? ? data_de_inicio_do_afastamento : data_de_termino_do_afastamento
|
88
89
|
]
|
@@ -25,6 +25,7 @@ module Teodoro
|
|
25
25
|
def inicio_de_contrato
|
26
26
|
@inicio_de_contrato ||= Obj.new(
|
27
27
|
trabalhador: trabalhador,
|
28
|
+
matricula_do_trabalhador: evento['infoTSVInicio/matricula'],
|
28
29
|
categoria_do_trabalhador: evento['infoTSVInicio/codCateg'],
|
29
30
|
data_de_inicio: evento['infoTSVInicio/dtInicio'],
|
30
31
|
matricula: evento['infoTSVInicio/matricula'],
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Teodoro
|
2
2
|
module Leiaute
|
3
|
-
class ArquivoS2306
|
3
|
+
class ArquivoS2306 # rubocop:disable Metrics/ClassLength
|
4
4
|
include ArquivoDeEventoNaoPeriodico
|
5
5
|
|
6
6
|
private
|
@@ -17,6 +17,7 @@ module Teodoro
|
|
17
17
|
itens_do_conteudo: [
|
18
18
|
# rubocop:disable Layout/LineLength
|
19
19
|
['ESX_CPF', cpf_do_trabalhador],
|
20
|
+
['matricula', matricula_do_trabalhador],
|
20
21
|
['ESX_CATEGORIA', categoria_do_trabalhador],
|
21
22
|
%w[ESX_SEMVINCULO 1],
|
22
23
|
['ESX_DATAADMISSAO', data_de_inicio, :data],
|
@@ -69,8 +70,17 @@ module Teodoro
|
|
69
70
|
@cpf_do_trabalhador ||= evento['ideTrabSemVinculo/cpfTrab']
|
70
71
|
end
|
71
72
|
|
73
|
+
def matricula_do_trabalhador
|
74
|
+
@matricula_do_trabalhador ||= evento['ideTrabSemVinculo/matricula']
|
75
|
+
end
|
76
|
+
|
72
77
|
def categoria_do_trabalhador
|
73
|
-
@categoria_do_trabalhador ||=
|
78
|
+
@categoria_do_trabalhador ||=
|
79
|
+
if matricula_do_trabalhador
|
80
|
+
contrato_de_trabalho.categoria_do_trabalhador
|
81
|
+
else
|
82
|
+
evento['ideTrabSemVinculo/codCateg']
|
83
|
+
end
|
74
84
|
end
|
75
85
|
|
76
86
|
def data_de_inicio
|
@@ -80,7 +90,8 @@ module Teodoro
|
|
80
90
|
def contrato_de_trabalho
|
81
91
|
contratos_de_trabalho_sem_vinculo[
|
82
92
|
cpf_do_trabalhador: cpf_do_trabalhador,
|
83
|
-
|
93
|
+
matricula_do_trabalhador: matricula_do_trabalhador,
|
94
|
+
categoria_do_trabalhador: (categoria_do_trabalhador unless matricula_do_trabalhador),
|
84
95
|
data: data_da_alteracao
|
85
96
|
]
|
86
97
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Teodoro
|
2
2
|
module Leiaute
|
3
|
-
class ArquivoS2399
|
3
|
+
class ArquivoS2399 # rubocop:disable Metrics/ClassLength
|
4
4
|
include ArquivoDeEventoNaoPeriodico
|
5
5
|
|
6
6
|
private
|
@@ -18,7 +18,8 @@ module Teodoro
|
|
18
18
|
def contrato_de_trabalho
|
19
19
|
@contrato_de_trabalho ||= contratos_de_trabalho_sem_vinculo[
|
20
20
|
cpf_do_trabalhador: cpf_do_trabalhador,
|
21
|
-
|
21
|
+
matricula_do_trabalhador: matricula_do_trabalhador,
|
22
|
+
categoria_do_trabalhador: (categoria_do_trabalhador unless matricula_do_trabalhador),
|
22
23
|
data: data_do_termino
|
23
24
|
]
|
24
25
|
end
|
@@ -31,12 +32,21 @@ module Teodoro
|
|
31
32
|
@data_do_termino ||= evento['infoTSVTermino/dtTerm']
|
32
33
|
end
|
33
34
|
|
35
|
+
def matricula_do_trabalhador
|
36
|
+
@matricula_do_trabalhador ||= evento['ideTrabSemVinculo/matricula']
|
37
|
+
end
|
38
|
+
|
34
39
|
def cpf_do_trabalhador
|
35
40
|
@cpf_do_trabalhador ||= evento['ideTrabSemVinculo/cpfTrab']
|
36
41
|
end
|
37
42
|
|
38
43
|
def categoria_do_trabalhador
|
39
|
-
@categoria_do_trabalhador ||=
|
44
|
+
@categoria_do_trabalhador ||=
|
45
|
+
if matricula_do_trabalhador
|
46
|
+
contrato_de_trabalho.categoria_do_trabalhador
|
47
|
+
else
|
48
|
+
evento['ideTrabSemVinculo/codCateg']
|
49
|
+
end
|
40
50
|
end
|
41
51
|
|
42
52
|
def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
@@ -46,6 +56,7 @@ module Teodoro
|
|
46
56
|
itens_do_conteudo: [
|
47
57
|
# rubocop:disable Layout/LineLength
|
48
58
|
['ESX_CPF', cpf_do_trabalhador],
|
59
|
+
['matricula', matricula_do_trabalhador],
|
49
60
|
['ESX_CATEGORIA', categoria_do_trabalhador],
|
50
61
|
%w[ESX_SEMVINCULO 1],
|
51
62
|
['ESX_DATAADMISSAO', data_de_inicio],
|
data/lib/teodoro/version.rb
CHANGED
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.
|
4
|
+
version: 0.46.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:
|
11
|
+
date: 2022-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -203,6 +203,7 @@ files:
|
|
203
203
|
- lib/teodoro/empresa.rb
|
204
204
|
- lib/teodoro/empresa/arquivo_data_emp.rb
|
205
205
|
- lib/teodoro/empresa/arquivo_data_rub.rb
|
206
|
+
- lib/teodoro/empresa/arquivo_de_dados_gerais.rb
|
206
207
|
- lib/teodoro/empresa/arquivos_data.rb
|
207
208
|
- lib/teodoro/empresa/cargos_gerados.rb
|
208
209
|
- lib/teodoro/empresa/contratos_de_emprego.rb
|
@@ -217,6 +218,8 @@ files:
|
|
217
218
|
- lib/teodoro/leiaute/arquivo_s1040.rb
|
218
219
|
- lib/teodoro/leiaute/arquivo_s1050.rb
|
219
220
|
- lib/teodoro/leiaute/arquivo_s1070.rb
|
221
|
+
- lib/teodoro/leiaute/arquivo_s1298.rb
|
222
|
+
- lib/teodoro/leiaute/arquivo_s1299.rb
|
220
223
|
- lib/teodoro/leiaute/arquivo_s2190.rb
|
221
224
|
- lib/teodoro/leiaute/arquivo_s2200.rb
|
222
225
|
- lib/teodoro/leiaute/arquivo_s2205.rb
|