teodoro 0.9.0 → 0.10.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: de3ebb9e45e3e9b980c944f4cc6b74cc0946612f106f709ed6733fdfe25f6a76
4
- data.tar.gz: 9b5e67fd6437621dbc95dfe09be177dd5ac147e8b3b9c05012b1a66903412002
3
+ metadata.gz: ed476a09d21ea31620816ef10a315c152da9fe7938810d81d2a3fd29f2085e28
4
+ data.tar.gz: 15caa64dd8e82804283ea2b8248888b778c07672534405cfcf2cf466b9bead9d
5
5
  SHA512:
6
- metadata.gz: 6b0021d42bf9f1ab1bdf39b80098faeb6c0adc8aec9dc7c80da299f724baf3adba6f19ebf40941b907b2a0a78285274c02d0c0df85c8fc90120cc3875461e6f8
7
- data.tar.gz: d8bc4bb61f6df69d8ad241e97efaff55abb71816311973d9c604b2bf4085243c88a5bee4840a34cbc72d793bcfbea88f52b598a983e884837c2bdba586bb8424
6
+ metadata.gz: ef9d1142cf3f02126a46d093a49010a92144d3eb373fb6692bd1b95b398c0a08ae6e2753a0ce3d5fd9d7b438642c7b4ea2e5dfbb6f0392d16602173171369e79
7
+ data.tar.gz: ce85156d0fe4b50c44c24ee31e0700f0a263db2a2e1b7f0b9cdcb48c72823ad7a97bf737a6d7529d9a2ca42a7a89f07f8a5a8685ab6973763b4f43695d7d9881
@@ -0,0 +1,87 @@
1
+ module Teodoro
2
+ class ArquivoData
3
+ private
4
+
5
+ def initialize(empresa:, nome:, itens_do_conteudo:)
6
+ @empresa = empresa
7
+ @nome = nome
8
+ @itens_do_conteudo = itens_do_conteudo
9
+ end
10
+
11
+ attr_reader :empresa, :itens_do_conteudo
12
+
13
+ public
14
+
15
+ attr_reader :nome
16
+
17
+ def criar
18
+ raise caminho if File.exist?(caminho)
19
+
20
+ File.write(caminho, (itens_do_conteudo.map { "#{_1}=#{Valor.new(_2)}" } + ['']).join("\r\n"))
21
+ end
22
+
23
+ private
24
+
25
+ def caminho
26
+ @caminho ||= Caminho.new(empresa: empresa, nome_do_arquivo: nome)
27
+ end
28
+
29
+ class Caminho
30
+ private
31
+
32
+ def initialize(empresa:, nome_do_arquivo:)
33
+ @empresa = empresa
34
+ @nome_do_arquivo = nome_do_arquivo
35
+ end
36
+
37
+ attr_reader :empresa, :nome_do_arquivo
38
+
39
+ public
40
+
41
+ def to_str
42
+ @to_str ||=
43
+ File.join(
44
+ empresa.destino_dos_arquivos_data,
45
+ "#{windows? ? nome_do_arquivo.gsub(%r{[<|>:"/\\?*]}, '_') : nome_do_arquivo}.data"
46
+ )
47
+ end
48
+
49
+ private
50
+
51
+ def windows?
52
+ OS.windows?
53
+ end
54
+ end
55
+
56
+ class Valor
57
+ FORMATADORES = {
58
+ bool: proc { _1 ? 'True' : 'False' },
59
+ data: proc { "#{_1[-2..]}/#{_1[5..6]}/#{_1[0..3]}" if _1 },
60
+ data_aaaammdd: proc { _1.delete('-') if _1 },
61
+ mes_ano: proc { "#{_1[-2..]}/#{_1[0..3]}" if _1 }
62
+ }.freeze
63
+
64
+ private
65
+
66
+ def initialize(arg)
67
+ @arg = arg
68
+ end
69
+
70
+ attr_reader :arg
71
+
72
+ public
73
+
74
+ def to_s
75
+ @to_s ||= (tipo ? FORMATADORES[tipo].call(valor) : valor).to_s
76
+ end
77
+
78
+ def tipo
79
+ @tipo ||= arg[1] if arg.is_a?(Array)
80
+ end
81
+
82
+ def valor
83
+ @valor ||= arg.is_a?(Array) ? arg[0] : arg
84
+ end
85
+ end
86
+ end
87
+ end
@@ -17,6 +17,18 @@ module Teodoro
17
17
  arquivo_xml.recibo
18
18
  end
19
19
 
20
+ def id_do_evento
21
+ evento.css('/*').first.attributes['Id'].value
22
+ end
23
+
24
+ def processo_de_emissao_do_evento
25
+ evento['ideEvento/procEmi']
26
+ end
27
+
28
+ def tipo_de_inscricao_do_empregador
29
+ @tipo_de_inscricao_do_empregador ||= evento['ideEmpregador/tpInsc']
30
+ end
31
+
20
32
  def versao_do_aplicativo_de_processamento_do_evento
21
33
  @versao_do_aplicativo_de_processamento_do_evento ||= recibo['processamento/versaoAppProcessamento']
22
34
  end
@@ -1,6 +1,6 @@
1
1
  module Teodoro
2
2
  module ArquivoDeEventoDeTabela
3
- include ArquivoDeEventoCriadorDeArquivoData
3
+ include ArquivoDeEvento
4
4
 
5
5
  def processar
6
6
  deletar_arquivo_data_original if alteracao? || exclusao?
@@ -20,15 +20,15 @@ module Teodoro
20
20
  end
21
21
 
22
22
  def deletar_arquivo_data_original
23
- File.delete(obter_caminho_do_arquivo_data(inicio_da_validade_original))
23
+ File.delete(caminho_do_arquivo_data_original)
24
24
  end
25
25
 
26
- def inicio_da_validade_original
27
- evento[noh_de_informacoes_do_evento, '*', noh_de_identificacao_do_periodo, 'iniValid']
26
+ def caminho_do_arquivo_data_original
27
+ ArquivoData::Caminho.new(empresa: empresa, nome_do_arquivo: nome_do_arquivo_data_original)
28
28
  end
29
29
 
30
- def obter_caminho_do_arquivo_data(inicio_da_validade)
31
- criar_caminho_do_arquivo_data("#{nome_base_do_arquivo_data}[#{inicio_da_validade.delete('-')}]")
30
+ def nome_do_arquivo_data_original
31
+ "#{nome_base_do_arquivo_data}[#{inicio_da_validade_original.delete('-')}]"
32
32
  end
33
33
 
34
34
  def nome_base_do_arquivo_data
@@ -36,9 +36,24 @@ module Teodoro
36
36
  identificacao_do_arquivo_data[0] + identificacao_do_arquivo_data[1..].map { "[#{_1}]" }.join
37
37
  end
38
38
 
39
- def caminho_do_arquivo_data
40
- # FIXME: Tales inicio de validade ou inicio da nova validade?
41
- obter_caminho_do_arquivo_data(inicio_da_validade)
39
+ def inicio_da_validade_original
40
+ evento[noh_de_informacoes_do_evento, '*', noh_de_identificacao_do_periodo, 'iniValid']
41
+ end
42
+
43
+ def criar_arquivo_data
44
+ arquivo_data.criar
45
+ end
46
+
47
+ def arquivo_data
48
+ ArquivoData.new(
49
+ empresa: empresa,
50
+ nome: nome_do_arquivo_data,
51
+ itens_do_conteudo: itens_do_conteudo_do_arquivo_data
52
+ )
53
+ end
54
+
55
+ def nome_do_arquivo_data
56
+ "#{nome_base_do_arquivo_data}[#{inicio_da_validade.delete('-')}]"
42
57
  end
43
58
 
44
59
  def inicio_da_validade
@@ -1,32 +1,51 @@
1
1
  module Teodoro
2
2
  module ArquivoDeEventoNaoPeriodico
3
- include ArquivoDeEventoCriadorDeArquivoData
4
- include ArquivoDeEventoRetificavel
3
+ include ArquivoDeEvento
5
4
 
6
5
  def processar
7
6
  if retificado?
8
7
  processar_retificacao
9
8
  else
10
- registrar_arquivo_data
11
- criar_arquivo_data
9
+ registrar_arquivos_data
10
+ criar_arquivos_data
12
11
  end
13
12
  end
14
13
 
15
14
  private
16
15
 
17
- def registrar_arquivo_data
18
- arquivos_data.registrar(
19
- nome: nome_do_arquivo_data,
20
- recibo: numero_do_recibo
21
- )
16
+ def retificado?
17
+ arquivo_xml_de_retificacao
22
18
  end
23
19
 
24
- def arquivos_data
25
- empresa.arquivos_data
20
+ def arquivo_xml_de_retificacao
21
+ @arquivo_xml_de_retificacao ||= arquivos_xml_por_recibo_a_retificar.delete(numero_do_recibo)
22
+ end
23
+
24
+ def arquivos_xml_por_recibo_a_retificar
25
+ empresa.arquivos_xml_por_recibo_a_retificar
26
26
  end
27
27
 
28
- def caminho_do_arquivo_data
29
- criar_caminho_do_arquivo_data(nome_do_arquivo_data)
28
+ def processar_retificacao
29
+ arquivo_xml_de_retificacao.processar
30
+ end
31
+
32
+ def registrar_arquivos_data
33
+ arquivos_data.each do
34
+ empresa.arquivos_data.registrar(
35
+ nome: _1.nome,
36
+ recibo: numero_do_recibo
37
+ )
38
+ end
39
+ end
40
+
41
+ def criar_arquivos_data
42
+ arquivos_data.each(&:criar)
43
+ end
44
+
45
+ def arquivos_data
46
+ @arquivos_data ||= dados_dos_arquivos_data.map {
47
+ ArquivoData.new(empresa: empresa, nome: _1.nome, itens_do_conteudo: _1.itens_do_conteudo)
48
+ }
30
49
  end
31
50
  end
32
51
  end
@@ -1,7 +1,5 @@
1
+ require_relative 'arquivo_data'
1
2
  require_relative 'arquivo_de_evento'
2
- require_relative 'arquivo_de_evento_processador_de_arquivo_data'
3
- require_relative 'arquivo_de_evento_criador_de_arquivo_data'
4
- require_relative 'arquivo_de_evento_retificavel'
5
3
  require_relative 'arquivo_de_evento_de_tabela'
6
4
  require_relative 'arquivo_de_evento_nao_periodico'
7
5
  require_relative 'cnpj'
@@ -5,24 +5,25 @@ module Teodoro
5
5
 
6
6
  private
7
7
 
8
- def nome_do_arquivo_data
9
- @nome_do_arquivo_data ||= "PRE[#{cpf_do_trabalhador}]"
8
+ def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength
9
+ [
10
+ Obj.new(
11
+ nome: "PRE[#{cpf_do_trabalhador}]",
12
+ itens_do_conteudo: [
13
+ ['NrRecibo', recibo['recibo/nrRecibo']],
14
+ ['CPF', evento['infoRegPrelim/cpfTrab']],
15
+ ['Nome'],
16
+ ['DataNascimento', [evento['infoRegPrelim/dtNascto'], :data]],
17
+ ['DataAdmissao', [evento['infoRegPrelim/dtAdm'], :data]],
18
+ ['IdEvento']
19
+ ]
20
+ )
21
+ ]
10
22
  end
11
23
 
12
24
  def cpf_do_trabalhador
13
25
  evento['infoRegPrelim/cpfTrab']
14
26
  end
15
-
16
- def itens_do_conteudo_do_arquivo_data
17
- [
18
- ['NrRecibo', recibo['recibo/nrRecibo']],
19
- ['CPF', evento['infoRegPrelim/cpfTrab']],
20
- ['Nome'],
21
- ['DataNascimento', [evento['infoRegPrelim/dtNascto'], :data]],
22
- ['DataAdmissao', [evento['infoRegPrelim/dtAdm'], :data]],
23
- ['IdEvento']
24
- ]
25
- end
26
27
  end
27
28
  end
28
29
  end
@@ -5,7 +5,7 @@ module Teodoro
5
5
 
6
6
  private
7
7
 
8
- def criar_arquivo_data
8
+ def criar_arquivos_data
9
9
  super
10
10
 
11
11
  registrar_admissao
@@ -51,153 +51,153 @@ module Teodoro
51
51
  ) }
52
52
  end
53
53
 
54
- def nome_do_arquivo_data
55
- @nome_do_arquivo_data ||=
56
- "TRA[#{cpf_do_trabalhador}][EPG_#{matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]-ADM"
57
- end
58
-
59
- def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
54
+ def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
60
55
  [
61
- # rubocop:disable Layout/LineLength
62
- ['ESX_CPF', cpf_do_trabalhador],
63
- ['ESX_MATRICULA', matricula_do_trabalhador],
64
- ['ESX_CATEGORIA', categoria_do_trabalhador],
65
- %w[ESX_SEMVINCULO 0],
66
- ['ESX_DATAADMISSAO', [data_de_admissao, :data]],
67
- ['IdEventoXml', id_do_evento],
68
- ['NrReciboEventoOriginal'],
69
- ['EventoAdmissao_TipoEventoEnviado'],
70
- ['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
71
- ['EventoAdmissao_InfoVinculo_IndicativoCadastramentoInicial', indicativo_de_cadastramento_inicial],
72
- ['EventoAdmissao_NrRecibo', numero_do_recibo],
73
- ['EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial', indicativo_de_cadastramento_inicial],
74
- ['EventoAdmissao_InformacoesInicio_DataInicio'],
75
- ['SomenteLeitura'],
76
- ['UrlRetorno'],
77
- ['IdEvento'],
78
- ['FiltroCargo'],
79
- ['FiltroFuncao'],
80
- ['IdContratoReferenciado'],
81
- ['autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento'],
82
- ['autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade'],
83
- ['DescricaoProcEmi', processo_de_emissao_do_evento],
84
- ['VerProc', versao_do_aplicativo_de_processamento_do_evento],
85
- ['HorarioTela_Dia'],
86
- ['EventoAdmissao_InfoTrabalhador_Cpf', cpf_do_trabalhador],
87
- ['EventoAdmissao_InfoTrabalhador_Nome', evento['trabalhador/nmTrab']],
88
- ['EventoAdmissao_InfoTrabalhador_Nis', evento['trabalhador/nisTrab']],
89
- ['EventoAdmissao_InfoTrabalhador_Sexo', evento['trabalhador/sexo']],
90
- ['EventoAdmissao_InfoTrabalhador_Sexo_TEXT'],
91
- ['EventoAdmissao_InfoTrabalhador_RacaCor', evento['trabalhador/racaCor']],
92
- ['EventoAdmissao_InfoTrabalhador_RacaCor_TEXT'],
93
- ['EventoAdmissao_InfoTrabalhador_EstadoCivil', evento['trabalhador/estCiv']],
94
- ['EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT'],
95
- ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', evento['trabalhador/grauInstr']],
96
- ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
97
- ['EventoAdmissao_InfoTrabalhador_PrimeiroEmprego', evento['trabalhador/indPriEmpr']],
98
- ['EventoAdmissao_InfoTrabalhador_NomeSocial', evento['trabalhador/nmSoc']],
99
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', evento['trabalhador/nascimento/codMunic']],
100
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT'],
101
- ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', [evento['trabalhador/nascimento/dtNascto'], :data]],
102
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', evento['trabalhador/nascimento/nmMae']],
103
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', evento['trabalhador/nascimento/nmPai']],
104
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', evento['trabalhador/nascimento/paisNascto']],
105
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
106
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', evento['trabalhador/nascimento/paisNac']],
107
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
108
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', evento['trabalhador/nascimento/uf']],
109
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
110
- ['EventoAdmissao_EnderecoResidencialBR_Bairro', evento['trabalhador/endereco/brasil/bairro']],
111
- ['EventoAdmissao_EnderecoResidencialBR_Cep', evento['trabalhador/endereco/brasil/cep']],
112
- ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio', evento['trabalhador/endereco/brasil/codMunic']],
113
- ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT'],
114
- ['EventoAdmissao_EnderecoResidencialBR_Complemento', evento['trabalhador/endereco/brasil/complemento']],
115
- ['EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro', evento['trabalhador/endereco/brasil/dscLograd']],
116
- ['EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro', evento['trabalhador/endereco/brasil/nrLograd']],
117
- ['SemNumeroLogradouroEnderecoBR'],
118
- ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro', evento['trabalhador/endereco/brasil/tpLograd']],
119
- ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT'],
120
- ['EventoAdmissao_EnderecoResidencialBR_Uf', evento['trabalhador/endereco/brasil/uf']],
121
- ['EventoAdmissao_EnderecoResidencialBR_Uf_TEXT'],
122
- ['ResideExterior', [evento['trabalhador/endereco/exterior'], :bool]],
123
- ['SemNumeroLogradouroEnderecoEX'],
124
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', evento['trabalhador/trabEstrangeiro/casadoBr']],
125
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', [evento['trabalhador/trabEstrangeiro/dtChegada'], :data]],
126
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', evento['trabalhador/trabEstrangeiro/filhosBr']],
127
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', evento['trabalhador/documentos/CNH/categoriaCnh']],
128
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
129
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', [evento['trabalhador/documentos/CNH/dtExped'], :data]],
130
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', [evento['trabalhador/documentos/CNH/dtPriHab'], :data]],
131
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', [evento['trabalhador/documentos/CNH/dtValid'], :data]],
132
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', evento['trabalhador/documentos/CNH/nrRegCnh']],
133
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', evento['trabalhador/documentos/CNH/ufCnh']],
134
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT'],
135
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', evento['trabalhador/documentos/CTPS/nrCtps']],
136
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', evento['trabalhador/documentos/CTPS/serieCtps']],
137
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', evento['trabalhador/documentos/CTPS/ufCtps']],
138
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT'],
139
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao', evento['trabalhador/documentos/OC/dtExped']],
140
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc', evento['trabalhador/documentos/OC/nrOc']],
141
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor', evento['trabalhador/documentos/OC/orgaoEmissor']],
142
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', [evento['trabalhador/documentos/RG/dtExped'], :data]],
143
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', evento['trabalhador/documentos/RG/nrRg']],
144
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', evento['trabalhador/documentos/RG/orgaoEmissor']],
145
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_DataExpedicao', [evento['trabalhador/documentos/RIC/dtExped'], :data]],
146
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_NumeroRic', evento['trabalhador/documentos/RIC/nrRic']],
147
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_OrgaoEmissor', evento['trabalhador/documentos/RIC/orgaoEmissor']],
148
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao', [evento['trabalhador/documentos/RNE/dtExped'], :data]],
149
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne', evento['trabalhador/documentos/RNE/nrRne']],
150
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor', evento['trabalhador/documentos/RNE/orgaoEmissor']],
151
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', evento['trabalhador/infoDeficiencia/defAuditiva']],
152
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', evento['trabalhador/infoDeficiencia/defFisica']],
153
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', evento['trabalhador/infoDeficiencia/defIntelectual']],
154
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', evento['trabalhador/infoDeficiencia/defMental']],
155
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', evento['trabalhador/infoDeficiencia/defVisual']],
156
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota', evento['trabalhador/infoDeficiencia/infoCota']],
157
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', evento['trabalhador/infoDeficiencia/reabReadap']],
158
- ['EventoAdmissao_Contato_TelefonePrincipal', evento['trabalhador/contato/fonePrinc']],
159
- ['EventoAdmissao_Contato_EmailPrincipal', evento['trabalhador/contato/emailPrinc']],
160
- ['EventoAdmissao_Contato_TelefoneAlternativo', evento['trabalhador/contato/foneAlternat']],
161
- ['EventoAdmissao_Contato_EmailAlternativo', evento['trabalhador/contato/emailAlternat']],
162
- *evento.*('trabalhador/dependente').map.with_index(1) do |dependente, seq|
163
- [
164
- ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
165
- ["EventoAdmissao_Dependente_#{seq}_DataNascimento", [dependente['dtNascto'], :data]],
166
- ["EventoAdmissao_Dependente_#{seq}_DataNascimentoFormatada", [dependente['dtNascto'], :data]],
167
- ["EventoAdmissao_Dependente_#{seq}_DependenteIRRF", dependente['depIRRF']],
168
- ["EventoAdmissao_Dependente_#{seq}_DependenteSF", dependente['depSF']],
169
- ["EventoAdmissao_Dependente_#{seq}_IncapacidadeDependente", dependente['incTrab']],
170
- ["EventoAdmissao_Dependente_#{seq}_NomeDependente", dependente['nmDep']],
171
- ["EventoAdmissao_Dependente_#{seq}_TipoDependente", dependente['tpDep']]
172
- ]
173
- end.sum([]),
174
- ['CodigoCBO'],
175
- ['CodigoCNAE'],
176
- *evento.*('vinculo/infoContrato/horContratual/horario').map.with_index(1) do |horario, seq|
177
- [
178
- ["Horarios_#{seq}_CodigoHorarioContratual", horario['codHorContrat']],
179
- ["Horarios_#{seq}_Dia", horario['dia']]
180
- ]
181
- end.sum([]),
182
- *evento.*('vinculo/infoContrato/filiacaoSindical').map.with_index(1) do |filiacao, seq|
183
- [
184
- ["InfoVinculo_InfoContrato_FiliacaoSindical_#{seq}_CnpjSindicatoTrabalhador", filiacao['cnpjSindTrab']]
56
+ Obj.new(
57
+ nome: "TRA[#{cpf_do_trabalhador}][EPG_#{matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]-ADM",
58
+ itens_do_conteudo: [
59
+ # rubocop:disable Layout/LineLength
60
+ ['ESX_CPF', cpf_do_trabalhador],
61
+ ['ESX_MATRICULA', matricula_do_trabalhador],
62
+ ['ESX_CATEGORIA', categoria_do_trabalhador],
63
+ %w[ESX_SEMVINCULO 0],
64
+ ['ESX_DATAADMISSAO', [data_de_admissao, :data]],
65
+ ['IdEventoXml', id_do_evento],
66
+ ['NrReciboEventoOriginal'],
67
+ ['EventoAdmissao_TipoEventoEnviado'],
68
+ ['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
69
+ ['EventoAdmissao_InfoVinculo_IndicativoCadastramentoInicial', indicativo_de_cadastramento_inicial],
70
+ ['EventoAdmissao_NrRecibo', numero_do_recibo],
71
+ ['EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial', indicativo_de_cadastramento_inicial],
72
+ ['EventoAdmissao_InformacoesInicio_DataInicio'],
73
+ ['SomenteLeitura'],
74
+ ['UrlRetorno'],
75
+ ['IdEvento'],
76
+ ['FiltroCargo'],
77
+ ['FiltroFuncao'],
78
+ ['IdContratoReferenciado'],
79
+ ['autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento'],
80
+ ['autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade'],
81
+ ['DescricaoProcEmi', processo_de_emissao_do_evento],
82
+ ['VerProc', versao_do_aplicativo_de_processamento_do_evento],
83
+ ['HorarioTela_Dia'],
84
+ ['EventoAdmissao_InfoTrabalhador_Cpf', cpf_do_trabalhador],
85
+ ['EventoAdmissao_InfoTrabalhador_Nome', evento['trabalhador/nmTrab']],
86
+ ['EventoAdmissao_InfoTrabalhador_Nis', evento['trabalhador/nisTrab']],
87
+ ['EventoAdmissao_InfoTrabalhador_Sexo', evento['trabalhador/sexo']],
88
+ ['EventoAdmissao_InfoTrabalhador_Sexo_TEXT'],
89
+ ['EventoAdmissao_InfoTrabalhador_RacaCor', evento['trabalhador/racaCor']],
90
+ ['EventoAdmissao_InfoTrabalhador_RacaCor_TEXT'],
91
+ ['EventoAdmissao_InfoTrabalhador_EstadoCivil', evento['trabalhador/estCiv']],
92
+ ['EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT'],
93
+ ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', evento['trabalhador/grauInstr']],
94
+ ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
95
+ ['EventoAdmissao_InfoTrabalhador_PrimeiroEmprego', evento['trabalhador/indPriEmpr']],
96
+ ['EventoAdmissao_InfoTrabalhador_NomeSocial', evento['trabalhador/nmSoc']],
97
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', evento['trabalhador/nascimento/codMunic']],
98
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT'],
99
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', [evento['trabalhador/nascimento/dtNascto'], :data]],
100
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', evento['trabalhador/nascimento/nmMae']],
101
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', evento['trabalhador/nascimento/nmPai']],
102
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', evento['trabalhador/nascimento/paisNascto']],
103
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
104
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', evento['trabalhador/nascimento/paisNac']],
105
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
106
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', evento['trabalhador/nascimento/uf']],
107
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
108
+ ['EventoAdmissao_EnderecoResidencialBR_Bairro', evento['trabalhador/endereco/brasil/bairro']],
109
+ ['EventoAdmissao_EnderecoResidencialBR_Cep', evento['trabalhador/endereco/brasil/cep']],
110
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio', evento['trabalhador/endereco/brasil/codMunic']],
111
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT'],
112
+ ['EventoAdmissao_EnderecoResidencialBR_Complemento', evento['trabalhador/endereco/brasil/complemento']],
113
+ ['EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro', evento['trabalhador/endereco/brasil/dscLograd']],
114
+ ['EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro', evento['trabalhador/endereco/brasil/nrLograd']],
115
+ ['SemNumeroLogradouroEnderecoBR'],
116
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro', evento['trabalhador/endereco/brasil/tpLograd']],
117
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT'],
118
+ ['EventoAdmissao_EnderecoResidencialBR_Uf', evento['trabalhador/endereco/brasil/uf']],
119
+ ['EventoAdmissao_EnderecoResidencialBR_Uf_TEXT'],
120
+ ['ResideExterior', [evento['trabalhador/endereco/exterior'], :bool]],
121
+ ['SemNumeroLogradouroEnderecoEX'],
122
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', evento['trabalhador/trabEstrangeiro/casadoBr']],
123
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', [evento['trabalhador/trabEstrangeiro/dtChegada'], :data]],
124
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', evento['trabalhador/trabEstrangeiro/filhosBr']],
125
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', evento['trabalhador/documentos/CNH/categoriaCnh']],
126
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
127
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', [evento['trabalhador/documentos/CNH/dtExped'], :data]],
128
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', [evento['trabalhador/documentos/CNH/dtPriHab'], :data]],
129
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', [evento['trabalhador/documentos/CNH/dtValid'], :data]],
130
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', evento['trabalhador/documentos/CNH/nrRegCnh']],
131
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', evento['trabalhador/documentos/CNH/ufCnh']],
132
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT'],
133
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', evento['trabalhador/documentos/CTPS/nrCtps']],
134
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', evento['trabalhador/documentos/CTPS/serieCtps']],
135
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', evento['trabalhador/documentos/CTPS/ufCtps']],
136
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT'],
137
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao', evento['trabalhador/documentos/OC/dtExped']],
138
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc', evento['trabalhador/documentos/OC/nrOc']],
139
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor', evento['trabalhador/documentos/OC/orgaoEmissor']],
140
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', [evento['trabalhador/documentos/RG/dtExped'], :data]],
141
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', evento['trabalhador/documentos/RG/nrRg']],
142
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', evento['trabalhador/documentos/RG/orgaoEmissor']],
143
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_DataExpedicao', [evento['trabalhador/documentos/RIC/dtExped'], :data]],
144
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_NumeroRic', evento['trabalhador/documentos/RIC/nrRic']],
145
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_OrgaoEmissor', evento['trabalhador/documentos/RIC/orgaoEmissor']],
146
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao', [evento['trabalhador/documentos/RNE/dtExped'], :data]],
147
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne', evento['trabalhador/documentos/RNE/nrRne']],
148
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor', evento['trabalhador/documentos/RNE/orgaoEmissor']],
149
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', evento['trabalhador/infoDeficiencia/defAuditiva']],
150
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', evento['trabalhador/infoDeficiencia/defFisica']],
151
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', evento['trabalhador/infoDeficiencia/defIntelectual']],
152
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', evento['trabalhador/infoDeficiencia/defMental']],
153
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', evento['trabalhador/infoDeficiencia/defVisual']],
154
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota', evento['trabalhador/infoDeficiencia/infoCota']],
155
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', evento['trabalhador/infoDeficiencia/reabReadap']],
156
+ ['EventoAdmissao_Contato_TelefonePrincipal', evento['trabalhador/contato/fonePrinc']],
157
+ ['EventoAdmissao_Contato_EmailPrincipal', evento['trabalhador/contato/emailPrinc']],
158
+ ['EventoAdmissao_Contato_TelefoneAlternativo', evento['trabalhador/contato/foneAlternat']],
159
+ ['EventoAdmissao_Contato_EmailAlternativo', evento['trabalhador/contato/emailAlternat']],
160
+ *evento.*('trabalhador/dependente').map.with_index(1) do |dependente, seq|
161
+ [
162
+ ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
163
+ ["EventoAdmissao_Dependente_#{seq}_DataNascimento", [dependente['dtNascto'], :data]],
164
+ ["EventoAdmissao_Dependente_#{seq}_DataNascimentoFormatada", [dependente['dtNascto'], :data]],
165
+ ["EventoAdmissao_Dependente_#{seq}_DependenteIRRF", dependente['depIRRF']],
166
+ ["EventoAdmissao_Dependente_#{seq}_DependenteSF", dependente['depSF']],
167
+ ["EventoAdmissao_Dependente_#{seq}_IncapacidadeDependente", dependente['incTrab']],
168
+ ["EventoAdmissao_Dependente_#{seq}_NomeDependente", dependente['nmDep']],
169
+ ["EventoAdmissao_Dependente_#{seq}_TipoDependente", dependente['tpDep']]
170
+ ]
171
+ end.sum([]),
172
+ ['CodigoCBO'],
173
+ ['CodigoCNAE'],
174
+ *evento.*('vinculo/infoContrato/horContratual/horario').map.with_index(1) do |horario, seq|
175
+ [
176
+ ["Horarios_#{seq}_CodigoHorarioContratual", horario['codHorContrat']],
177
+ ["Horarios_#{seq}_Dia", horario['dia']]
178
+ ]
179
+ end.sum([]),
180
+ *evento.*('vinculo/infoContrato/filiacaoSindical').map.with_index(1) do |filiacao, seq|
181
+ [
182
+ ["InfoVinculo_InfoContrato_FiliacaoSindical_#{seq}_CnpjSindicatoTrabalhador", filiacao['cnpjSindTrab']]
183
+ ]
184
+ end.sum([]),
185
+ ['EventoAdmissao_InfoVinculo_InfoContrato_CodigoCategoria', categoria_do_trabalhador],
186
+ ['EventoAdmissao_InfoVinculo_InfoContrato_Duracao_TipoContrato', evento['vinculo/infoContrato/duracao/tpContr']],
187
+ ['EventoAdmissao_InfoVinculo_InfoContrato_Remuneracao_UnidadeSalarioFixo', evento['vinculo/infoContrato/remuneracao/undSalFixo']],
188
+ ['EventoAdmissao_InfoVinculo_InfoContrato_Remuneracao_ValorSalarioFixo', evento['vinculo/infoContrato/remuneracao/vrSalFx']],
189
+ ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_CnpjSindicatoCategoriaProfissional', evento['vinculo/infoRegimeTrab/infoCeletista/cnpjSindCategProf']],
190
+ ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataAdmissao', [evento['vinculo/infoRegimeTrab/infoCeletista/dtAdm'], :data]],
191
+ ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao', evento['vinculo/infoRegimeTrab/infoCeletista/indAdmissao']],
192
+ ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade', evento['vinculo/infoRegimeTrab/infoCeletista/natAtividade']],
193
+ ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao', evento['vinculo/infoRegimeTrab/infoCeletista/tpAdmissao']],
194
+ ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoRegimeJornada', evento['vinculo/infoRegimeTrab/infoCeletista/tpRegJor']],
195
+ ['EventoAdmissao_InfoVinculo_Matricula', evento['vinculo/matricula']],
196
+ ['EventoAdmissao_InfoVinculo_TipoRegimePrevidenciario', evento['vinculo/tpRegPrev']],
197
+ ['EventoAdmissao_InfoVinculo_TipoRegimeTrabalhista', evento['vinculo/tpRegTrab']]
198
+ # rubocop:enable Layout/LineLength
185
199
  ]
186
- end.sum([]),
187
- ['EventoAdmissao_InfoVinculo_InfoContrato_CodigoCategoria', categoria_do_trabalhador],
188
- ['EventoAdmissao_InfoVinculo_InfoContrato_Duracao_TipoContrato', evento['vinculo/infoContrato/duracao/tpContr']],
189
- ['EventoAdmissao_InfoVinculo_InfoContrato_Remuneracao_UnidadeSalarioFixo', evento['vinculo/infoContrato/remuneracao/undSalFixo']],
190
- ['EventoAdmissao_InfoVinculo_InfoContrato_Remuneracao_ValorSalarioFixo', evento['vinculo/infoContrato/remuneracao/vrSalFx']],
191
- ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_CnpjSindicatoCategoriaProfissional', evento['vinculo/infoRegimeTrab/infoCeletista/cnpjSindCategProf']],
192
- ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataAdmissao', [evento['vinculo/infoRegimeTrab/infoCeletista/dtAdm'], :data]],
193
- ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao', evento['vinculo/infoRegimeTrab/infoCeletista/indAdmissao']],
194
- ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade', evento['vinculo/infoRegimeTrab/infoCeletista/natAtividade']],
195
- ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao', evento['vinculo/infoRegimeTrab/infoCeletista/tpAdmissao']],
196
- ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoRegimeJornada', evento['vinculo/infoRegimeTrab/infoCeletista/tpRegJor']],
197
- ['EventoAdmissao_InfoVinculo_Matricula', evento['vinculo/matricula']],
198
- ['EventoAdmissao_InfoVinculo_TipoRegimePrevidenciario', evento['vinculo/tpRegPrev']],
199
- ['EventoAdmissao_InfoVinculo_TipoRegimeTrabalhista', evento['vinculo/tpRegTrab']]
200
- # rubocop:enable Layout/LineLength
200
+ )
201
201
  ]
202
202
  end
203
203