teodoro 0.13.0 → 0.15.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 +4 -4
- data/lib/teodoro.rb +1 -0
- data/lib/teodoro/arquivo_data.rb +13 -10
- data/lib/teodoro/arquivo_data/car.rb +34 -0
- data/lib/teodoro/arquivo_data/tra_epg_avi.rb +55 -0
- data/lib/teodoro/arquivo_de_evento.rb +4 -0
- data/lib/teodoro/arquivo_de_evento_de_tabela.rb +49 -19
- data/lib/teodoro/arquivo_de_evento_nao_periodico.rb +1 -1
- data/lib/teodoro/arquivo_xml.rb +24 -2
- data/lib/teodoro/empresa.rb +13 -138
- data/lib/teodoro/empresa/arquivos_data.rb +31 -0
- data/lib/teodoro/empresa/cargos_gerados.rb +86 -0
- data/lib/teodoro/empresa/contratos_de_emprego.rb +59 -0
- data/lib/teodoro/empresa/contratos_de_trabalho_sem_vinculo.rb +59 -0
- data/lib/teodoro/leiaute/arquivo_s1000.rb +13 -1
- data/lib/teodoro/leiaute/arquivo_s1005.rb +1 -1
- data/lib/teodoro/leiaute/arquivo_s1010.rb +1 -1
- data/lib/teodoro/leiaute/arquivo_s1020.rb +1 -1
- data/lib/teodoro/leiaute/arquivo_s1030.rb +19 -23
- data/lib/teodoro/leiaute/arquivo_s1040.rb +1 -1
- data/lib/teodoro/leiaute/arquivo_s1050.rb +1 -1
- data/lib/teodoro/leiaute/arquivo_s1070.rb +1 -1
- data/lib/teodoro/leiaute/arquivo_s2200.rb +148 -7
- data/lib/teodoro/leiaute/arquivo_s2205.rb +26 -26
- data/lib/teodoro/leiaute/arquivo_s2206.rb +177 -82
- data/lib/teodoro/leiaute/arquivo_s2250.rb +14 -34
- data/lib/teodoro/leiaute/arquivo_s2299.rb +65 -1
- data/lib/teodoro/leiaute/arquivo_s2300.rb +117 -4
- data/lib/teodoro/leiaute/arquivo_s2306.rb +80 -1
- metadata +8 -3
- data/lib/teodoro/leiaute.rb +0 -24
@@ -0,0 +1,31 @@
|
|
1
|
+
module Teodoro
|
2
|
+
class Empresa
|
3
|
+
class ArquivosData
|
4
|
+
private
|
5
|
+
|
6
|
+
def initialize(destino_dos_arquivos_data)
|
7
|
+
@destino_dos_arquivos_data = destino_dos_arquivos_data
|
8
|
+
end
|
9
|
+
|
10
|
+
attr_reader :destino_dos_arquivos_data
|
11
|
+
|
12
|
+
public
|
13
|
+
|
14
|
+
def registrar(recibo:, nome:)
|
15
|
+
(nomes_por_recibo[recibo] ||= []) << nome
|
16
|
+
end
|
17
|
+
|
18
|
+
def excluir(recibo)
|
19
|
+
(nomes_por_recibo.delete(recibo) || [])
|
20
|
+
.map { |nome| File.join(destino_dos_arquivos_data, "#{nome}.data") }
|
21
|
+
.each { File.delete(_1) }
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def nomes_por_recibo
|
27
|
+
@nomes_por_recibo ||= {}
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
module Teodoro
|
2
|
+
class Empresa
|
3
|
+
class CargosGerados
|
4
|
+
private
|
5
|
+
|
6
|
+
def initialize(empresa)
|
7
|
+
@empresa = empresa
|
8
|
+
end
|
9
|
+
|
10
|
+
attr_reader :empresa
|
11
|
+
|
12
|
+
public
|
13
|
+
|
14
|
+
extend Forwardable
|
15
|
+
|
16
|
+
def_delegators :cargos, :each
|
17
|
+
|
18
|
+
def [](nome:, cbo:)
|
19
|
+
indice[nome: nome, cbo: cbo] ||= Cargo.new(empresa: empresa, dados: Obj.new(nome: nome, cbo: cbo)) if nome
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def cargos
|
25
|
+
indice.values
|
26
|
+
end
|
27
|
+
|
28
|
+
def indice
|
29
|
+
@indice ||= {}
|
30
|
+
end
|
31
|
+
|
32
|
+
class Cargo
|
33
|
+
private
|
34
|
+
|
35
|
+
def initialize(empresa:, dados:)
|
36
|
+
@empresa = empresa
|
37
|
+
@dados = dados
|
38
|
+
end
|
39
|
+
|
40
|
+
attr_reader :empresa
|
41
|
+
|
42
|
+
public
|
43
|
+
|
44
|
+
attr_reader :dados
|
45
|
+
|
46
|
+
def codigo
|
47
|
+
@codigo ||= SecureRandom.hex(15)
|
48
|
+
end
|
49
|
+
|
50
|
+
def processar
|
51
|
+
criar_arquivo_data
|
52
|
+
end
|
53
|
+
|
54
|
+
private
|
55
|
+
|
56
|
+
def criar_arquivo_data
|
57
|
+
arquivo_data.criar
|
58
|
+
end
|
59
|
+
|
60
|
+
def arquivo_data # rubocop:disable Metrics/MethodLength
|
61
|
+
ArquivoData.new(
|
62
|
+
diretorio: empresa.destino_dos_arquivos_data,
|
63
|
+
nome: ArquivoDeEventoDeTabela::NomeDoArquivoData.new(
|
64
|
+
identificacao: ArquivoData::CAR::Identificacao.new(codigo),
|
65
|
+
inicio_da_validade: empresa.inicio_da_validade
|
66
|
+
),
|
67
|
+
itens_do_conteudo: ArquivoData::CAR::ItensDeConteudo.new(
|
68
|
+
Obj.new(
|
69
|
+
codigo_do_cargo: codigo,
|
70
|
+
inicio_da_validade: empresa.inicio_da_validade,
|
71
|
+
fim_da_validade: nil,
|
72
|
+
nome_do_cargo: dados.nome,
|
73
|
+
cbo: dados.cbo,
|
74
|
+
orgao_publico?: false,
|
75
|
+
id_do_evento: nil,
|
76
|
+
numero_do_recibo: nil,
|
77
|
+
processo_de_emissao_do_evento: nil,
|
78
|
+
versao_do_aplicativo_de_processamento_do_evento: nil
|
79
|
+
)
|
80
|
+
)
|
81
|
+
)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Teodoro
|
2
|
+
class Empresa
|
3
|
+
class ContratosDeEmprego
|
4
|
+
def registrar_admissao(admissao:, afastamento:)
|
5
|
+
contratos_por_matricula[admissao.matricula] = Contrato.new(admissao: admissao, afastamento: afastamento)
|
6
|
+
end
|
7
|
+
|
8
|
+
def [](matricula)
|
9
|
+
contratos_por_matricula[matricula]
|
10
|
+
end
|
11
|
+
|
12
|
+
def *(cpf_do_trabalhador:, data:)
|
13
|
+
contratos
|
14
|
+
.select { _1.cpf_do_trabalhador == cpf_do_trabalhador && _1.ativo?(data) }
|
15
|
+
.sort_by(&:data_de_admissao)
|
16
|
+
end
|
17
|
+
|
18
|
+
def remover(recibo)
|
19
|
+
contratos_por_matricula.delete_if { _2.recibo == recibo }
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def contratos_por_matricula
|
25
|
+
@contratos_por_matricula ||= {}
|
26
|
+
end
|
27
|
+
|
28
|
+
def contratos
|
29
|
+
contratos_por_matricula.values
|
30
|
+
end
|
31
|
+
|
32
|
+
class Contrato
|
33
|
+
private
|
34
|
+
|
35
|
+
def initialize(admissao:, afastamento:)
|
36
|
+
@admissao = admissao
|
37
|
+
@afastamento = afastamento
|
38
|
+
end
|
39
|
+
|
40
|
+
attr_reader :admissao, :data_de_desligamento
|
41
|
+
|
42
|
+
public
|
43
|
+
|
44
|
+
extend Forwardable
|
45
|
+
|
46
|
+
def_delegators :admissao, :matricula, :data_de_admissao, :categoria_do_trabalhador, :cpf_do_trabalhador,
|
47
|
+
:recibo
|
48
|
+
|
49
|
+
attr_accessor :afastamento
|
50
|
+
|
51
|
+
attr_writer :data_de_desligamento
|
52
|
+
|
53
|
+
def ativo?(data)
|
54
|
+
data_de_admissao <= data && (!data_de_desligamento || data_de_desligamento >= data)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Teodoro
|
2
|
+
class Empresa
|
3
|
+
class ContratosDeTrabalhoSemVinculo
|
4
|
+
def registrar_inicio_de_contrato(inicio_de_contrato:, afastamento:)
|
5
|
+
contratos << Contrato.new(inicio_de_contrato: inicio_de_contrato, afastamento: afastamento)
|
6
|
+
end
|
7
|
+
|
8
|
+
def [](cpf_do_trabalhador:, categoria_do_trabalhador:, data:)
|
9
|
+
contratos
|
10
|
+
.select {
|
11
|
+
_1.cpf_do_trabalhador == cpf_do_trabalhador && _1.categoria_do_trabalhador == categoria_do_trabalhador &&
|
12
|
+
_1.ativo?(data)
|
13
|
+
}
|
14
|
+
.max_by(&:data_de_inicio)
|
15
|
+
end
|
16
|
+
|
17
|
+
def *(cpf_do_trabalhador:, data:)
|
18
|
+
contratos
|
19
|
+
.select { _1.cpf_do_trabalhador == cpf_do_trabalhador && _1.ativo?(data) }
|
20
|
+
.sort_by(&:data_de_inicio)
|
21
|
+
end
|
22
|
+
|
23
|
+
def remover(recibo)
|
24
|
+
contratos.delete_if { _1.recibo == recibo }
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def contratos
|
30
|
+
@contratos ||= []
|
31
|
+
end
|
32
|
+
|
33
|
+
class Contrato
|
34
|
+
private
|
35
|
+
|
36
|
+
def initialize(inicio_de_contrato:, afastamento:)
|
37
|
+
@inicio_de_contrato = inicio_de_contrato
|
38
|
+
@afastamento = afastamento
|
39
|
+
end
|
40
|
+
|
41
|
+
attr_reader :inicio_de_contrato, :data_do_termino
|
42
|
+
|
43
|
+
public
|
44
|
+
|
45
|
+
extend Forwardable
|
46
|
+
|
47
|
+
def_delegators :inicio_de_contrato, :cpf_do_trabalhador, :categoria_do_trabalhador, :data_de_inicio, :recibo
|
48
|
+
|
49
|
+
attr_accessor :afastamento
|
50
|
+
|
51
|
+
attr_writer :data_do_termino
|
52
|
+
|
53
|
+
def ativo?(data)
|
54
|
+
data_de_inicio <= data && (!data_do_termino || data_do_termino >= data)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -1,10 +1,22 @@
|
|
1
1
|
module Teodoro
|
2
2
|
module Leiaute
|
3
3
|
class ArquivoS1000 # rubocop:disable Metrics/ClassLength
|
4
|
-
include ArquivoDeEventoDeTabela
|
4
|
+
include ArquivoDeEventoDeTabela::DescritorDeArquivoData
|
5
5
|
|
6
6
|
private
|
7
7
|
|
8
|
+
def criar_arquivo_data
|
9
|
+
super
|
10
|
+
|
11
|
+
registrar_inicio_da_validade
|
12
|
+
end
|
13
|
+
|
14
|
+
def registrar_inicio_da_validade
|
15
|
+
return unless !empresa.inicio_da_validade || inicio_da_validade < empresa.inicio_da_validade
|
16
|
+
|
17
|
+
empresa.inicio_da_validade = inicio_da_validade
|
18
|
+
end
|
19
|
+
|
8
20
|
def noh_de_informacoes_do_evento
|
9
21
|
'infoEmpregador'
|
10
22
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Teodoro
|
2
2
|
module Leiaute
|
3
3
|
class ArquivoS1030
|
4
|
-
include ArquivoDeEventoDeTabela
|
4
|
+
include ArquivoDeEventoDeTabela::DescritorDeArquivoData
|
5
5
|
|
6
6
|
private
|
7
7
|
|
@@ -14,32 +14,28 @@ module Teodoro
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def identificacao_do_arquivo_data
|
17
|
-
|
17
|
+
ArquivoData::CAR::Identificacao.new(codigo_do_cargo)
|
18
18
|
end
|
19
19
|
|
20
|
-
def
|
21
|
-
@
|
20
|
+
def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/MethodLength
|
21
|
+
@itens_do_conteudo_do_arquivo_data ||= ArquivoData::CAR::ItensDeConteudo.new(
|
22
|
+
Obj.new(
|
23
|
+
codigo_do_cargo: codigo_do_cargo,
|
24
|
+
inicio_da_validade: inicio_da_validade,
|
25
|
+
fim_da_validade: fim_da_validade,
|
26
|
+
nome_do_cargo: evento['infoCargo/*/dadosCargo/nmCargo'],
|
27
|
+
cbo: evento['infoCargo/*/dadosCargo/codCBO'],
|
28
|
+
orgao_publico?: evento['infoCargo/*/dadosCargo/cargoPublico'],
|
29
|
+
id_do_evento: id_do_evento,
|
30
|
+
numero_do_recibo: numero_do_recibo,
|
31
|
+
processo_de_emissao_do_evento: processo_de_emissao_do_evento,
|
32
|
+
versao_do_aplicativo_de_processamento_do_evento: versao_do_aplicativo_de_processamento_do_evento
|
33
|
+
)
|
34
|
+
)
|
22
35
|
end
|
23
36
|
|
24
|
-
def
|
25
|
-
[
|
26
|
-
['RequestVerificationToken'],
|
27
|
-
['SomenteVisualizacao'],
|
28
|
-
['BloquearCodigo'],
|
29
|
-
['BloquearAntigoPeriodoValidade'],
|
30
|
-
['CodigoCargo', codigo_do_cargo],
|
31
|
-
['InicioValidade', inicio_da_validade, :mes_ano],
|
32
|
-
['FimValidade', fim_da_validade, :mes_ano],
|
33
|
-
['DadosCargo_DescricaoCargo', evento['infoCargo/*/dadosCargo/nmCargo']],
|
34
|
-
['DadosCargo_CodigoCBO', evento['infoCargo/*/dadosCargo/codCBO']],
|
35
|
-
['DadosCargo_CodigoCBO_TEXT'],
|
36
|
-
['autocomplete_DadosCargo_CodigoCBO'],
|
37
|
-
['PreencherCargoPublico', evento['infoCargo/*/dadosCargo/cargoPublico'], :bool],
|
38
|
-
['IdEventoXml', id_do_evento],
|
39
|
-
['NrReciboEventoOriginal', numero_do_recibo],
|
40
|
-
['DescricaoProcEmi', processo_de_emissao_do_evento],
|
41
|
-
['VerProc', versao_do_aplicativo_de_processamento_do_evento]
|
42
|
-
]
|
37
|
+
def codigo_do_cargo
|
38
|
+
@codigo_do_cargo ||= evento['infoCargo/*/ideCargo/codCargo']
|
43
39
|
end
|
44
40
|
end
|
45
41
|
end
|
@@ -122,7 +122,7 @@ module Teodoro
|
|
122
122
|
['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', evento['trabalhador/trabEstrangeiro/casadoBr']],
|
123
123
|
['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', evento['trabalhador/trabEstrangeiro/dtChegada'], :data],
|
124
124
|
['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', evento['trabalhador/trabEstrangeiro/filhosBr']],
|
125
|
-
['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'
|
125
|
+
de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
|
126
126
|
['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', evento['trabalhador/documentos/CNH/categoriaCnh']],
|
127
127
|
['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
|
128
128
|
['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', evento['trabalhador/documentos/CNH/dtExped'], :data],
|
@@ -196,21 +196,21 @@ module Teodoro
|
|
196
196
|
['EventoAdmissao_InfoVinculo_Matricula', evento['vinculo/matricula']],
|
197
197
|
['EventoAdmissao_InfoVinculo_TipoRegimePrevidenciario', evento['vinculo/tpRegPrev']],
|
198
198
|
['EventoAdmissao_InfoVinculo_TipoRegimeTrabalhista', evento['vinculo/tpRegTrab']],
|
199
|
-
['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS'
|
200
|
-
['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS'
|
201
|
-
['EventoAdmissao_InfoVinculo_InfoContrato_CodigoCargo'
|
199
|
+
de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS'],
|
200
|
+
de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS'],
|
201
|
+
de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InfoContrato_CodigoCargo'],
|
202
202
|
['EventoAdmissao_InfoVinculo_InfoContrato_Duracao_DataTermino', evento['vinculo/infoContrato/duracao/dtTerm'], :data],
|
203
203
|
['EventoAdmissao_InfoVinculo_InfoContrato_Duracao_ClausulaAssecuratoria', evento['vinculo/infoContrato/duracao/clauAssec']],
|
204
204
|
['EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao', evento['vinculo/infoContrato/localTrabalho/localTrabGeral/tpInsc']],
|
205
205
|
['EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao', evento['vinculo/infoContrato/localTrabalho/localTrabGeral/nrInsc']],
|
206
206
|
['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_QuantidadedHorasSemanal', evento['vinculo/infoContrato/horContratual/qtdHrsSem'], :decimal],
|
207
|
-
['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada'
|
208
|
-
['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada'
|
207
|
+
de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada'],
|
208
|
+
de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada'],
|
209
209
|
['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial', evento['vinculo/infoContrato/horContratual/tmpParc']],
|
210
210
|
['EventoAdmissao_InfoVinculo_DataInicioAfastamento', evento['vinculo/afastamento/dtIniAfast'], :data],
|
211
211
|
['EventoAdmissao_InfoVinculo_CodigoMotivoAfastamento', evento['vinculo/afastamento/codMotAfast']],
|
212
212
|
['EventoAdmissao_InfoVinculo_SucessaoVinculo_DataTransferencia', evento['vinculo/sucessaoVinc/dtTransf'], :data],
|
213
|
-
['EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior'
|
213
|
+
de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior'],
|
214
214
|
['EventoAdmissao_InfoVinculo_SucessaoVinculo_MatriculaAnterior', evento['vinculo/sucessaoVinc/matricAnt']]
|
215
215
|
# rubocop:enable Layout/LineLength
|
216
216
|
]
|
@@ -221,6 +221,147 @@ module Teodoro
|
|
221
221
|
def indicativo_de_cadastramento_inicial
|
222
222
|
@indicativo_de_cadastramento_inicial ||= evento['vinculo/cadIni']
|
223
223
|
end
|
224
|
+
|
225
|
+
def de_acordo_com_a_versao_do_leiaute
|
226
|
+
@de_acordo_com_a_versao_do_leiaute ||=
|
227
|
+
if leiaute_simplificado?
|
228
|
+
LeiauteSimplificado.new(empresa: empresa, evento: evento)
|
229
|
+
else
|
230
|
+
Leiaute2.new(evento)
|
231
|
+
end
|
232
|
+
end
|
233
|
+
|
234
|
+
module Leiaute
|
235
|
+
private
|
236
|
+
|
237
|
+
attr_reader :evento
|
238
|
+
|
239
|
+
public
|
240
|
+
|
241
|
+
def [](chave)
|
242
|
+
dados_do_arquivo_data_por_chave[chave]
|
243
|
+
end
|
244
|
+
|
245
|
+
private
|
246
|
+
|
247
|
+
def dados_do_arquivo_data_por_chave
|
248
|
+
@dados_do_arquivo_data_por_chave ||= dados_do_arquivo_data.map { |item| [item.first, item] }.to_h
|
249
|
+
end
|
250
|
+
end
|
251
|
+
|
252
|
+
class Leiaute2
|
253
|
+
include Leiaute
|
254
|
+
|
255
|
+
private
|
256
|
+
|
257
|
+
def initialize(evento)
|
258
|
+
@evento = evento
|
259
|
+
end
|
260
|
+
|
261
|
+
def dados_do_arquivo_data # rubocop:disable Metrics/MethodLength
|
262
|
+
[
|
263
|
+
# rubocop:disable Layout/LineLength
|
264
|
+
[
|
265
|
+
'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
|
266
|
+
evento['trabalhador/trabEstrangeiro/classTrabEstrang']
|
267
|
+
],
|
268
|
+
[
|
269
|
+
'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada',
|
270
|
+
evento['vinculo/infoContrato/horContratual/tpJornada']
|
271
|
+
],
|
272
|
+
[
|
273
|
+
'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada',
|
274
|
+
evento['vinculo/infoContrato/horContratual/dscTpJorn']
|
275
|
+
],
|
276
|
+
[
|
277
|
+
'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS',
|
278
|
+
evento['vinculo/infoRegimeTrab/infoCeletista/FGTS/opcFGTS']
|
279
|
+
],
|
280
|
+
[
|
281
|
+
'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS',
|
282
|
+
evento['vinculo/infoRegimeTrab/infoCeletista/FGTS/dtOpcFGTS'],
|
283
|
+
:data
|
284
|
+
],
|
285
|
+
[
|
286
|
+
'EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior',
|
287
|
+
evento['vinculo/sucessaoVinc/cnpjEmpregAnt']
|
288
|
+
],
|
289
|
+
[
|
290
|
+
'EventoAdmissao_InfoVinculo_InfoContrato_CodigoCargo',
|
291
|
+
evento['vinculo/infoContrato/codCargo']
|
292
|
+
]
|
293
|
+
# rubocop:enable Layout/LineLength
|
294
|
+
]
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
298
|
+
class LeiauteSimplificado
|
299
|
+
include Leiaute
|
300
|
+
|
301
|
+
private
|
302
|
+
|
303
|
+
def initialize(empresa:, evento:)
|
304
|
+
@empresa = empresa
|
305
|
+
@evento = evento
|
306
|
+
end
|
307
|
+
|
308
|
+
attr_reader :empresa
|
309
|
+
|
310
|
+
def dados_do_arquivo_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
311
|
+
[
|
312
|
+
# rubocop:disable Layout/LineLength
|
313
|
+
[
|
314
|
+
'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
|
315
|
+
{
|
316
|
+
'1' => 4,
|
317
|
+
'2' => 5,
|
318
|
+
'3' => 9,
|
319
|
+
'4' => 10,
|
320
|
+
'5' => 11,
|
321
|
+
'6' => 12,
|
322
|
+
'7' => evento['trabalhador/trabImig/tmpResid']
|
323
|
+
}[evento['trabalhador/trabImig/condIng']]
|
324
|
+
],
|
325
|
+
[
|
326
|
+
'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada',
|
327
|
+
evento['vinculo/infoContrato/horContratual/tpJornada'].then { %w[2 3].include?(_1) ? _1 : 9 }
|
328
|
+
],
|
329
|
+
[
|
330
|
+
'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada',
|
331
|
+
evento['vinculo/infoContrato/horContratual/dscJorn']
|
332
|
+
],
|
333
|
+
[
|
334
|
+
'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS',
|
335
|
+
evento['vinculo/infoRegimeTrab/infoCeletista/FGTS'] ? 1 : 2
|
336
|
+
],
|
337
|
+
[
|
338
|
+
'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS',
|
339
|
+
evento['vinculo/infoRegimeTrab/infoCeletista/FGTS/dtOpcFGTS'],
|
340
|
+
:data
|
341
|
+
],
|
342
|
+
[
|
343
|
+
'EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior',
|
344
|
+
evento['vinculo/sucessaoVinc/nrInsc']
|
345
|
+
],
|
346
|
+
[
|
347
|
+
'EventoAdmissao_InfoVinculo_InfoContrato_CodigoCargo',
|
348
|
+
codigo_do_cargo
|
349
|
+
]
|
350
|
+
# rubocop:enable Layout/LineLength
|
351
|
+
]
|
352
|
+
end
|
353
|
+
|
354
|
+
def codigo_do_cargo
|
355
|
+
cargo&.codigo
|
356
|
+
end
|
357
|
+
|
358
|
+
def cargo
|
359
|
+
empresa.cargos_gerados[
|
360
|
+
nome: evento['vinculo/infoContrato/nmCargo'],
|
361
|
+
cbo: evento['vinculo/infoContrato/CBOCargo']
|
362
|
+
]
|
363
|
+
end
|
364
|
+
end
|
224
365
|
end
|
225
366
|
end
|
226
367
|
end
|