teodoro 0.6.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.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/lib/teodoro.rb +1 -0
  3. data/lib/teodoro/arquivo_data.rb +87 -0
  4. data/lib/teodoro/arquivo_de_evento.rb +14 -2
  5. data/lib/teodoro/arquivo_de_evento_de_tabela.rb +29 -14
  6. data/lib/teodoro/arquivo_de_evento_nao_periodico.rb +38 -12
  7. data/lib/teodoro/arquivo_de_origem.rb +7 -7
  8. data/lib/teodoro/arquivo_xml.rb +46 -22
  9. data/lib/teodoro/console.rb +3 -1
  10. data/lib/teodoro/empresa.rb +179 -161
  11. data/lib/teodoro/leiaute/arquivo_s1000.rb +20 -24
  12. data/lib/teodoro/leiaute/arquivo_s1005.rb +12 -18
  13. data/lib/teodoro/leiaute/arquivo_s1010.rb +9 -13
  14. data/lib/teodoro/leiaute/arquivo_s1020.rb +6 -10
  15. data/lib/teodoro/leiaute/arquivo_s1030.rb +4 -8
  16. data/lib/teodoro/leiaute/arquivo_s1040.rb +3 -7
  17. data/lib/teodoro/leiaute/arquivo_s1050.rb +6 -12
  18. data/lib/teodoro/leiaute/arquivo_s1070.rb +9 -13
  19. data/lib/teodoro/leiaute/arquivo_s2190.rb +16 -17
  20. data/lib/teodoro/leiaute/arquivo_s2200.rb +161 -185
  21. data/lib/teodoro/leiaute/arquivo_s2205.rb +132 -167
  22. data/lib/teodoro/leiaute/arquivo_s2206.rb +72 -75
  23. data/lib/teodoro/leiaute/arquivo_s2230.rb +87 -91
  24. data/lib/teodoro/leiaute/arquivo_s2250.rb +36 -40
  25. data/lib/teodoro/leiaute/arquivo_s2299.rb +171 -169
  26. data/lib/teodoro/leiaute/arquivo_s2300.rb +135 -159
  27. data/lib/teodoro/leiaute/arquivo_s2306.rb +148 -151
  28. data/lib/teodoro/leiaute/arquivo_s2399.rb +123 -127
  29. data/lib/teodoro/leiaute/arquivo_s3000.rb +4 -8
  30. data/lib/teodoro/xml.rb +2 -2
  31. metadata +3 -5
  32. data/lib/teodoro/arquivo_de_evento_criador_de_arquivo_data.rb +0 -52
  33. data/lib/teodoro/arquivo_de_evento_processador_de_arquivo_data.rb +0 -30
  34. data/lib/teodoro/arquivo_de_evento_retificavel.rb +0 -23
@@ -1,27 +1,13 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
- class ArquivoS2205
4
- include ArquivoDeEventoProcessadorDeArquivoData
5
- include ArquivoDeEventoRetificavel
6
-
7
- def processar
8
- deletar_arquivos_data_originais if retificacao?
9
- processar_contratos_de_trabalho
10
- end
3
+ class ArquivoS2205 # rubocop:disable Metrics/ClassLength
4
+ include ArquivoDeEventoNaoPeriodico
11
5
 
12
6
  private
13
7
 
14
- def noh_principal_do_evento
15
- 'evtAltCadastral'
16
- end
17
-
18
- def processar_contratos_de_trabalho
19
- contratos_de_trabalho.each(&:processar)
20
- end
21
-
22
8
  def contratos_de_trabalho
23
9
  (contratos_de_emprego + contratos_de_trabalho_sem_vinculo)
24
- .map { |classe, contrato| classe.new(empresa: empresa, arquivo_xml: arquivo_xml, contrato: contrato) }
10
+ .map { |classe, contrato| classe.new(contrato) }
25
11
  end
26
12
 
27
13
  def contratos_de_emprego
@@ -37,156 +23,139 @@ module Teodoro
37
23
  end
38
24
 
39
25
  def cpf_do_trabalhador
40
- @cpf_do_trabalhador ||= evento['evtAltCadastral/ideTrabalhador/cpfTrab']
26
+ @cpf_do_trabalhador ||= evento['ideTrabalhador/cpfTrab']
41
27
  end
42
28
 
43
29
  def data_da_alteracao
44
- @data_da_alteracao ||= evento['evtAltCadastral/alteracao/dtAlteracao']
30
+ @data_da_alteracao ||= evento['alteracao/dtAlteracao']
45
31
  end
46
32
 
47
- module ContratoDeTrabalho # rubocop:disable Metrics/ModuleLength
48
- include ArquivoDeEventoNaoPeriodico
33
+ def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
34
+ contratos_de_trabalho.map do |contrato_de_trabalho| # rubocop:disable Metrics/BlockLength
35
+ Obj.new(
36
+ nome: [
37
+ "TRA[#{cpf_do_trabalhador}]",
38
+ contrato_de_trabalho.nome_do_arquivo_data_identificacao_do_contrato,
39
+ "-ACA[#{data_da_alteracao.delete('-')}]"
40
+ ].join,
41
+ itens_do_conteudo: [
42
+ # rubocop:disable Layout/LineLength
43
+ ['ESX_CPF', cpf_do_trabalhador],
44
+ ['ESX_MATRICULA', contrato_de_trabalho.matricula_do_contrato],
45
+ ['ESX_CATEGORIA', contrato_de_trabalho.categoria_do_trabalhador],
46
+ %w[ESX_SEMVINCULO 0], # FIXME: Tales TC
47
+ ['ESX_DATAADMISSAO', [contrato_de_trabalho.data_de_inicio, :data]],
48
+ ['ESX_DATAALTERACAO', [data_da_alteracao, :data]],
49
+ ['DataAlteracao', [data_da_alteracao, :data]],
50
+ ['IdEventoXml', id_do_evento],
51
+ ['NrReciboEventoOriginal', numero_do_recibo],
52
+ ['RequestVerificationToken'],
53
+ ['SomenteLeitura'],
54
+ ['VisualizarDadosCadastrais'],
55
+ ['UrlRetorno'],
56
+ ['visualizar'],
57
+ ['DescricaoProcEmi', processo_de_emissao_do_evento],
58
+ ['VerProc', recibo['processamento/versaoAppProcessamento']],
59
+ ['EventoAdmissao_TipoEventoEnviado'],
60
+ ['EventoAdmissao_InfoTrabalhador_Cpf', cpf_do_trabalhador],
61
+ ['EventoAdmissao_InfoTrabalhador_Nome', evento['alteracao/dadosTrabalhador/nmTrab']],
62
+ ['EventoAdmissao_InfoTrabalhador_Nis', evento['alteracao/dadosTrabalhador/nisTrab']],
63
+ ['EventoAdmissao_InfoTrabalhador_Sexo', evento['alteracao/dadosTrabalhador/sexo']],
64
+ ['EventoAdmissao_InfoTrabalhador_Sexo_TEXT'],
65
+ ['EventoAdmissao_InfoTrabalhador_RacaCor', evento['alteracao/dadosTrabalhador/racaCor']],
66
+ ['EventoAdmissao_InfoTrabalhador_RacaCor_TEXT'],
67
+ ['EventoAdmissao_InfoTrabalhador_EstadoCivil', evento['alteracao/dadosTrabalhador/estCiv']],
68
+ ['EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT'],
69
+ ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', evento['alteracao/dadosTrabalhador/grauInstr']],
70
+ ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
71
+ ['EventoAdmissao_InfoTrabalhador_NomeSocial', evento['alteracao/dadosTrabalhador/nmSoc']],
72
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio'],
73
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT'],
74
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', [evento['alteracao/dadosTrabalhador/nascimento/dtNascto'], :data]],
75
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae'],
76
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai'],
77
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', evento['alteracao/dadosTrabalhador/nascimento/paisNascto']],
78
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
79
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', evento['alteracao/dadosTrabalhador/nascimento/paisNac']],
80
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
81
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf'],
82
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
83
+ ['EventoAdmissao_EnderecoResidencialBR_Bairro', evento['alteracao/dadosTrabalhador/endereco/brasil/bairro']],
84
+ ['EventoAdmissao_EnderecoResidencialBR_Cep', evento['alteracao/dadosTrabalhador/endereco/brasil/cep']],
85
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio', evento['alteracao/dadosTrabalhador/endereco/brasil/codMunic']],
86
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT'],
87
+ ['EventoAdmissao_EnderecoResidencialBR_Complemento', evento['alteracao/dadosTrabalhador/endereco/brasil/complemento']],
88
+ ['EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro', evento['alteracao/dadosTrabalhador/endereco/brasil/dscLograd']],
89
+ ['EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro', evento['alteracao/dadosTrabalhador/endereco/brasil/nrLograd']],
90
+ ['SemNumeroLogradouroEnderecoBR'],
91
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro', evento['alteracao/dadosTrabalhador/endereco/brasil/tpLograd']],
92
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT'],
93
+ ['EventoAdmissao_EnderecoResidencialBR_Uf', evento['alteracao/dadosTrabalhador/endereco/brasil/uf']],
94
+ ['EventoAdmissao_EnderecoResidencialBR_Uf_TEXT'],
95
+ ['ResideExterior'],
96
+ ['SemNumeroLogradouroEnderecoEX'],
97
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', evento['alteracao/dadosTrabalhador/trabEstrangeiro/casadoBr']],
98
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', [evento['alteracao/dadosTrabalhador/trabEstrangeiro/dtChegada'], :data]],
99
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', evento['alteracao/dadosTrabalhador/trabEstrangeiro/filhosBr']],
100
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', evento['alteracao/dadosTrabalhador/documentos/CNH/categoriaCnh']],
101
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
102
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', [evento['alteracao/dadosTrabalhador/documentos/CNH/dtExped'], :data]],
103
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', [evento['alteracao/dadosTrabalhador/documentos/CNH/dtPriHab'], :data]],
104
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', [evento['alteracao/dadosTrabalhador/documentos/CNH/dtValid'], :data]],
105
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', evento['alteracao/dadosTrabalhador/documentos/CNH/nrRegCnh']],
106
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', evento['alteracao/dadosTrabalhador/documentos/CNH/ufCnh']],
107
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT'],
108
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', evento['alteracao/dadosTrabalhador/documentos/CTPS/nrCtps']],
109
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', evento['alteracao/dadosTrabalhador/documentos/CTPS/serieCtps']],
110
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', evento['alteracao/dadosTrabalhador/documentos/CTPS/ufCtps']],
111
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT'],
112
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', [evento['alteracao/dadosTrabalhador/documentos/RG/dtExped'], :data]],
113
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', evento['alteracao/dadosTrabalhador/documentos/RG/nrRg']],
114
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', evento['alteracao/dadosTrabalhador/documentos/RG/orgaoEmissor']],
115
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao', [evento['alteracao/dadosTrabalhador/documentos/RNE/dtExped'], :data]],
116
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne', evento['alteracao/dadosTrabalhador/documentos/RNE/nrRne']],
117
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor', evento['alteracao/dadosTrabalhador/documentos/RNE/orgaoEmissor']],
118
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', evento['alteracao/dadosTrabalhador/infoDeficiencia/defAuditiva']],
119
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', evento['alteracao/dadosTrabalhador/infoDeficiencia/defFisica']],
120
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', evento['alteracao/dadosTrabalhador/infoDeficiencia/defIntelectual']],
121
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', evento['alteracao/dadosTrabalhador/infoDeficiencia/defMental']],
122
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', evento['alteracao/dadosTrabalhador/infoDeficiencia/defVisual']],
123
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota', evento['alteracao/dadosTrabalhador/infoDeficiencia/infoCota']],
124
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', evento['alteracao/dadosTrabalhador/infoDeficiencia/reabReadap']],
125
+ ['EventoAdmissao_Contato_TelefonePrincipal', evento['alteracao/dadosTrabalhador/contato/fonePrinc']],
126
+ ['EventoAdmissao_Contato_EmailPrincipal', evento['alteracao/dadosTrabalhador/contato/emailPrinc']],
127
+ ['EventoAdmissao_Contato_TelefoneAlternativo', evento['alteracao/dadosTrabalhador/contato/foneAlternat']],
128
+ *evento.*('alteracao/dadosTrabalhador/dependente').map.with_index(1) do |dependente, seq|
129
+ [
130
+ ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
131
+ ["EventoAdmissao_Dependente_#{seq}_DataNascimento", [dependente['dtNascto'], :data]],
132
+ ["EventoAdmissao_Dependente_#{seq}_DataNascimentoFormatada", [dependente['dtNascto'], :data]],
133
+ ["EventoAdmissao_Dependente_#{seq}_DependenteIRRF", dependente['depIRRF']],
134
+ ["EventoAdmissao_Dependente_#{seq}_DependenteSF", dependente['depSF']],
135
+ ["EventoAdmissao_Dependente_#{seq}_IncapacidadeDependente", dependente['incTrab']],
136
+ ["EventoAdmissao_Dependente_#{seq}_NomeDependente", dependente['nmDep']],
137
+ ["EventoAdmissao_Dependente_#{seq}_TipoDependente", dependente['tpDep']]
138
+ ]
139
+ end.sum([])
140
+ # rubocop:enable Layout/LineLength
141
+ ]
142
+ )
143
+ end
144
+ end
49
145
 
146
+ module ContratoDeTrabalho
50
147
  private
51
148
 
52
- def initialize(contrato:, **args)
53
- super(**args)
54
-
149
+ def initialize(contrato)
55
150
  @contrato = contrato
56
151
  end
57
152
 
58
153
  attr_reader :contrato
59
-
60
- def noh_principal_do_evento
61
- 'evtAltCadastral'
62
- end
63
-
64
- def nome_do_arquivo_data
65
- @nome_do_arquivo_data ||= [
66
- "TRA[#{cpf_do_trabalhador}]",
67
- nome_do_arquivo_data_identificacao_do_contrato,
68
- "-ACA[#{data_da_alteracao.delete('-')}]"
69
- ].join
70
- end
71
-
72
- def cpf_do_trabalhador
73
- @cpf_do_trabalhador ||= evento['evtAltCadastral/ideTrabalhador/cpfTrab']
74
- end
75
-
76
- def data_da_alteracao
77
- @data_da_alteracao ||= evento['evtAltCadastral/alteracao/dtAlteracao']
78
- end
79
-
80
- def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
81
- [
82
- # rubocop:disable Layout/LineLength
83
- ['ESX_CPF', cpf_do_trabalhador],
84
- ['ESX_MATRICULA', matricula_do_contrato],
85
- ['ESX_CATEGORIA', categoria_do_trabalhador],
86
- %w[ESX_SEMVINCULO 0], # FIXME: Tales TC
87
- ['ESX_DATAADMISSAO', [data_de_inicio_do_contrato_de_trabalho, :data]],
88
- ['ESX_DATAALTERACAO', [data_da_alteracao, :data]],
89
- ['DataAlteracao', [data_da_alteracao, :data]],
90
- ['IdEventoXml', id_do_evento],
91
- ['NrReciboEventoOriginal', numero_do_recibo],
92
- ['RequestVerificationToken'],
93
- ['SomenteLeitura'],
94
- ['VisualizarDadosCadastrais'],
95
- ['UrlRetorno'],
96
- ['visualizar'],
97
- ['DescricaoProcEmi', processo_de_emissao_do_evento],
98
- ['VerProc', recibo['retornoEvento/processamento/versaoAppProcessamento']],
99
- ['EventoAdmissao_TipoEventoEnviado'],
100
- ['EventoAdmissao_InfoTrabalhador_Cpf', cpf_do_trabalhador],
101
- ['EventoAdmissao_InfoTrabalhador_Nome', evento['evtAltCadastral/alteracao/dadosTrabalhador/nmTrab']],
102
- ['EventoAdmissao_InfoTrabalhador_Nis', evento['evtAltCadastral/alteracao/dadosTrabalhador/nisTrab']],
103
- ['EventoAdmissao_InfoTrabalhador_Sexo', evento['evtAltCadastral/alteracao/dadosTrabalhador/sexo']],
104
- ['EventoAdmissao_InfoTrabalhador_Sexo_TEXT'],
105
- ['EventoAdmissao_InfoTrabalhador_RacaCor', evento['evtAltCadastral/alteracao/dadosTrabalhador/racaCor']],
106
- ['EventoAdmissao_InfoTrabalhador_RacaCor_TEXT'],
107
- ['EventoAdmissao_InfoTrabalhador_EstadoCivil', evento['evtAltCadastral/alteracao/dadosTrabalhador/estCiv']],
108
- ['EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT'],
109
- ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', evento['evtAltCadastral/alteracao/dadosTrabalhador/grauInstr']],
110
- ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
111
- ['EventoAdmissao_InfoTrabalhador_NomeSocial', evento['evtAltCadastral/alteracao/dadosTrabalhador/nmSoc']],
112
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio'],
113
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT'],
114
- ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', [evento['evtAltCadastral/alteracao/dadosTrabalhador/nascimento/dtNascto'], :data]],
115
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae'],
116
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai'],
117
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', evento['evtAltCadastral/alteracao/dadosTrabalhador/nascimento/paisNascto']],
118
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
119
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', evento['evtAltCadastral/alteracao/dadosTrabalhador/nascimento/paisNac']],
120
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
121
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf'],
122
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
123
- ['EventoAdmissao_EnderecoResidencialBR_Bairro', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/bairro']],
124
- ['EventoAdmissao_EnderecoResidencialBR_Cep', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/cep']],
125
- ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/codMunic']],
126
- ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT'],
127
- ['EventoAdmissao_EnderecoResidencialBR_Complemento', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/complemento']],
128
- ['EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/dscLograd']],
129
- ['EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/nrLograd']],
130
- ['SemNumeroLogradouroEnderecoBR'],
131
- ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/tpLograd']],
132
- ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT'],
133
- ['EventoAdmissao_EnderecoResidencialBR_Uf', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/uf']],
134
- ['EventoAdmissao_EnderecoResidencialBR_Uf_TEXT'],
135
- ['ResideExterior'],
136
- ['SemNumeroLogradouroEnderecoEX'],
137
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', evento['evtAltCadastral/alteracao/dadosTrabalhador/trabEstrangeiro/casadoBr']],
138
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', [evento['evtAltCadastral/alteracao/dadosTrabalhador/trabEstrangeiro/dtChegada'], :data]],
139
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', evento['evtAltCadastral/alteracao/dadosTrabalhador/trabEstrangeiro/filhosBr']],
140
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CNH/categoriaCnh']],
141
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
142
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', [evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CNH/dtExped'], :data]],
143
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', [evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CNH/dtPriHab'], :data]],
144
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', [evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CNH/dtValid'], :data]],
145
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CNH/nrRegCnh']],
146
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CNH/ufCnh']],
147
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT'],
148
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CTPS/nrCtps']],
149
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CTPS/serieCtps']],
150
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CTPS/ufCtps']],
151
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT'],
152
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', [evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/RG/dtExped'], :data]],
153
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/RG/nrRg']],
154
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/RG/orgaoEmissor']],
155
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao', [evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/RNE/dtExped'], :data]],
156
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/RNE/nrRne']],
157
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/RNE/orgaoEmissor']],
158
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', evento['evtAltCadastral/alteracao/dadosTrabalhador/infoDeficiencia/defAuditiva']],
159
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', evento['evtAltCadastral/alteracao/dadosTrabalhador/infoDeficiencia/defFisica']],
160
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', evento['evtAltCadastral/alteracao/dadosTrabalhador/infoDeficiencia/defIntelectual']],
161
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', evento['evtAltCadastral/alteracao/dadosTrabalhador/infoDeficiencia/defMental']],
162
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', evento['evtAltCadastral/alteracao/dadosTrabalhador/infoDeficiencia/defVisual']],
163
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota', evento['evtAltCadastral/alteracao/dadosTrabalhador/infoDeficiencia/infoCota']],
164
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', evento['evtAltCadastral/alteracao/dadosTrabalhador/infoDeficiencia/reabReadap']],
165
- ['EventoAdmissao_Contato_TelefonePrincipal', evento['evtAltCadastral/alteracao/dadosTrabalhador/contato/fonePrinc']],
166
- ['EventoAdmissao_Contato_EmailPrincipal', evento['evtAltCadastral/alteracao/dadosTrabalhador/contato/emailPrinc']],
167
- ['EventoAdmissao_Contato_TelefoneAlternativo', evento['evtAltCadastral/alteracao/dadosTrabalhador/contato/foneAlternat']],
168
- *evento.*('evtAltCadastral/alteracao/dadosTrabalhador/dependente').map.with_index(1) do |dependente, seq|
169
- [
170
- ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
171
- ["EventoAdmissao_Dependente_#{seq}_DataNascimento", [dependente['dtNascto'], :data]],
172
- ["EventoAdmissao_Dependente_#{seq}_DataNascimentoFormatada", [dependente['dtNascto'], :data]],
173
- ["EventoAdmissao_Dependente_#{seq}_DependenteIRRF", dependente['depIRRF']],
174
- ["EventoAdmissao_Dependente_#{seq}_DependenteSF", dependente['depSF']],
175
- ["EventoAdmissao_Dependente_#{seq}_IncapacidadeDependente", dependente['incTrab']],
176
- ["EventoAdmissao_Dependente_#{seq}_NomeDependente", dependente['nmDep']],
177
- ["EventoAdmissao_Dependente_#{seq}_TipoDependente", dependente['tpDep']]
178
- ]
179
- end.sum([])
180
- # rubocop:enable Layout/LineLength
181
- ]
182
- end
183
154
  end
184
155
 
185
156
  class ContratoDeEmprego
186
157
  include ContratoDeTrabalho
187
158
 
188
- private
189
-
190
159
  def nome_do_arquivo_data_identificacao_do_contrato
191
160
  "[EPG_#{matricula_do_contrato}_#{data_de_admissao.delete('-')}]"
192
161
  end
@@ -195,43 +164,39 @@ module Teodoro
195
164
  contrato.matricula
196
165
  end
197
166
 
198
- def data_de_admissao
199
- contrato.data_de_admissao
200
- end
201
-
202
167
  def categoria_do_trabalhador
203
168
  contrato.categoria_do_trabalhador
204
169
  end
205
170
 
206
- def data_de_inicio_do_contrato_de_trabalho
171
+ def data_de_inicio
207
172
  data_de_admissao
208
173
  end
174
+
175
+ private
176
+
177
+ def data_de_admissao
178
+ contrato.data_de_admissao
179
+ end
209
180
  end
210
181
 
211
182
  class ContratoDeTrabalhoSemVinculo
212
183
  include ContratoDeTrabalho
213
184
 
214
- private
215
-
216
185
  def nome_do_arquivo_data_identificacao_do_contrato
217
- "[TSV_#{categoria_do_trabalhador}_#{data_de_inicio_do_contrato_de_trabalho_sem_vinculo.delete('-')}]"
186
+ "[TSV_#{categoria_do_trabalhador}_#{data_de_inicio.delete('-')}]"
187
+ end
188
+
189
+ def matricula_do_contrato
190
+ nil
218
191
  end
219
192
 
220
193
  def categoria_do_trabalhador
221
194
  contrato.categoria_do_trabalhador
222
195
  end
223
196
 
224
- def data_de_inicio_do_contrato_de_trabalho_sem_vinculo
197
+ def data_de_inicio
225
198
  contrato.data_de_inicio
226
199
  end
227
-
228
- def matricula_do_contrato
229
- nil
230
- end
231
-
232
- def data_de_inicio_do_contrato_de_trabalho
233
- data_de_inicio_do_contrato_de_trabalho_sem_vinculo
234
- end
235
200
  end
236
201
  end
237
202
  end
@@ -5,25 +5,82 @@ module Teodoro
5
5
 
6
6
  private
7
7
 
8
- def noh_principal_do_evento
9
- 'evtAltContratual'
10
- end
11
-
12
- def nome_do_arquivo_data
13
- @nome_do_arquivo_data ||= [
14
- 'TRA',
15
- "[#{cpf_do_trabalhador}]",
16
- "[EPG_#{matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]",
17
- "-ACO[#{data_da_alteracao.delete('-')}]"
18
- ].join
8
+ def dados_dos_arquivos_data # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
9
+ [
10
+ Obj.new(
11
+ nome: [
12
+ 'TRA',
13
+ "[#{cpf_do_trabalhador}]",
14
+ "[EPG_#{matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]",
15
+ "-ACO[#{data_da_alteracao.delete('-')}]"
16
+ ].join,
17
+ itens_do_conteudo: [
18
+ # rubocop:disable Layout/LineLength
19
+ ['ESX_CPF', cpf_do_trabalhador],
20
+ ['ESX_MATRICULA', matricula_do_trabalhador],
21
+ %w[ESX_SEMVINCULO 0],
22
+ ['ESX_DATAADMISSAO', [data_de_admissao, :data]],
23
+ ['ESX_DATAALTERACAO', [data_da_alteracao, :data]],
24
+ ['cpfTrabalhador', cpf_do_trabalhador],
25
+ %w[nomeTrabalhador nomeTrabalhador],
26
+ ['IdentificacaoVinculo_Cpf', cpf_do_trabalhador],
27
+ ['IdentificacaoVinculo_Matricula', matricula_do_trabalhador],
28
+ ['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
29
+ ['AlteracaoContratual_DataAlteracao', [data_da_alteracao, :data]],
30
+ ['AlteracaoContratual_DataEfeito', [evento['altContratual/dtEf'], :data]],
31
+ ['AlteracaoContratual_DescricaoAlteracao', evento['altContratual/dscAlt']],
32
+ ['IdentificacaoVinculo_Nis', evento['ideVinculo/nisTrab']],
33
+ ['IndicadorRetificacao'],
34
+ ['IdEventoXml', id_do_evento],
35
+ ['NrReciboEventoOriginal', numero_do_recibo],
36
+ ['UrlRetorno'],
37
+ ['idContrato'],
38
+ ['SomenteLeitura'],
39
+ ['IdEvento'],
40
+ ['RequestVerificationToken'],
41
+ ['IdContratoAlterado'],
42
+ ['regTrab'],
43
+ ['InformacoesContrato_CodigoCategoria', categoria_do_trabalhador],
44
+ ['VinculoAlteracao_TipoRegimePrevidenciario', evento['altContratual/vinculo/tpRegPrev']],
45
+ ['dataAdmissao', [data_de_admissao, :data]],
46
+ ['InformacoesCeletista_TipoRegimeJornada', evento['altContratual/infoRegimeTrab/infoCeletista/tpRegJor']],
47
+ ['InformacoesCeletista_NaturezaAtividade', evento['altContratual/infoRegimeTrab/infoCeletista/natAtividade']],
48
+ ['FiltroCargo'],
49
+ ['FiltroFuncao'],
50
+ ['HorarioTela_Dia'],
51
+ ['dataNomeacao'],
52
+ ['DescricaoProcEmi', processo_de_emissao_do_evento],
53
+ ['VerProc', recibo['processamento/versaoAppProcessamento']],
54
+ ['FiltroEstabelecimentoLocalTrabalho'],
55
+ ['NomeEstabelecimentoLocalTrabalho'],
56
+ ['CodigoCBO'],
57
+ ['InformacoesContrato_Remuneracao_UnidadeSalarioFixo', evento['altContratual/infoContrato/remuneracao/undSalFixo']],
58
+ ['InformacoesContrato_TipoContrato', evento['altContratual/infoContrato/duracao/tpContr']],
59
+ ['CodigoCNAE'],
60
+ *evento.*('altContratual/infoContrato/horContratual/horario').map.with_index(1) do |horario, seq|
61
+ [
62
+ ["Horarios_#{seq}_CodigoHorarioContratual", horario['codHorContrat']],
63
+ ["Horarios_#{seq}_Dia", horario['dia']]
64
+ ]
65
+ end.sum([]),
66
+ *evento.*('altContratual/infoContrato/filiacaoSindical').map.with_index(1) do |filiacao, seq|
67
+ [
68
+ ["InfoVinculo_InfoContrato_FiliacaoSindical_#{seq}_CnpjSindicatoTrabalhador", filiacao['cnpjSindTrab']]
69
+ ]
70
+ end.sum([]),
71
+ ['InformacoesContrato_Remuneracao_ValorSalarioFixo', evento['altContratual/infoContrato/remuneracao/vrSalFx']]
72
+ # rubocop:enable Layout/LineLength
73
+ ]
74
+ )
75
+ ]
19
76
  end
20
77
 
21
78
  def cpf_do_trabalhador
22
- @cpf_do_trabalhador ||= evento['evtAltContratual/ideVinculo/cpfTrab']
79
+ @cpf_do_trabalhador ||= evento['ideVinculo/cpfTrab']
23
80
  end
24
81
 
25
82
  def matricula_do_trabalhador
26
- @matricula_do_trabalhador ||= evento['evtAltContratual/ideVinculo/matricula']
83
+ @matricula_do_trabalhador ||= evento['ideVinculo/matricula']
27
84
  end
28
85
 
29
86
  def data_de_admissao
@@ -39,71 +96,11 @@ module Teodoro
39
96
  end
40
97
 
41
98
  def data_da_alteracao
42
- evento['evtAltContratual/altContratual/dtAlteracao']
43
- end
44
-
45
- def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
46
- [
47
- # rubocop:disable Layout/LineLength
48
- ['ESX_CPF', cpf_do_trabalhador],
49
- ['ESX_MATRICULA', matricula_do_trabalhador],
50
- %w[ESX_SEMVINCULO 0],
51
- ['ESX_DATAADMISSAO', [data_de_admissao, :data]],
52
- ['ESX_DATAALTERACAO', [data_da_alteracao, :data]],
53
- ['cpfTrabalhador', cpf_do_trabalhador],
54
- %w[nomeTrabalhador nomeTrabalhador],
55
- ['IdentificacaoVinculo_Cpf', cpf_do_trabalhador],
56
- ['IdentificacaoVinculo_Matricula', matricula_do_trabalhador],
57
- ['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
58
- ['AlteracaoContratual_DataAlteracao', [data_da_alteracao, :data]],
59
- ['AlteracaoContratual_DataEfeito', [evento['evtAltContratual/altContratual/dtEf'], :data]],
60
- ['AlteracaoContratual_DescricaoAlteracao', evento['evtAltContratual/altContratual/dscAlt']],
61
- ['IdentificacaoVinculo_Nis', evento['evtAltContratual/ideVinculo/nisTrab']],
62
- ['IndicadorRetificacao'],
63
- ['IdEventoXml', id_do_evento],
64
- ['NrReciboEventoOriginal', numero_do_recibo],
65
- ['UrlRetorno'],
66
- ['idContrato'],
67
- ['SomenteLeitura'],
68
- ['IdEvento'],
69
- ['RequestVerificationToken'],
70
- ['IdContratoAlterado'],
71
- ['regTrab'],
72
- ['InformacoesContrato_CodigoCategoria', categoria_do_trabalhador],
73
- ['VinculoAlteracao_TipoRegimePrevidenciario', evento['evtAltContratual/altContratual/vinculo/tpRegPrev']],
74
- ['dataAdmissao', [data_de_admissao, :data]],
75
- ['InformacoesCeletista_TipoRegimeJornada', evento['evtAltContratual/altContratual/infoRegimeTrab/infoCeletista/tpRegJor']],
76
- ['InformacoesCeletista_NaturezaAtividade', evento['evtAltContratual/altContratual/infoRegimeTrab/infoCeletista/natAtividade']],
77
- ['FiltroCargo'],
78
- ['FiltroFuncao'],
79
- ['HorarioTela_Dia'],
80
- ['dataNomeacao'],
81
- ['DescricaoProcEmi', processo_de_emissao_do_evento],
82
- ['VerProc', recibo['retornoEvento/processamento/versaoAppProcessamento']],
83
- ['FiltroEstabelecimentoLocalTrabalho'],
84
- ['NomeEstabelecimentoLocalTrabalho'],
85
- ['CodigoCBO'],
86
- ['InformacoesContrato_Remuneracao_UnidadeSalarioFixo', evento['evtAltContratual/altContratual/infoContrato/remuneracao/undSalFixo']],
87
- ['InformacoesContrato_TipoContrato', evento['evtAltContratual/altContratual/infoContrato/duracao/tpContr']],
88
- ['CodigoCNAE'],
89
- *evento.*('evtAltContratual/altContratual/infoContrato/horContratual/horario').map.with_index(1) do |horario, seq|
90
- [
91
- ["Horarios_#{seq}_CodigoHorarioContratual", horario['codHorContrat']],
92
- ["Horarios_#{seq}_Dia", horario['dia']]
93
- ]
94
- end.sum([]),
95
- *evento.*('evtAltContratual/altContratual/infoContrato/filiacaoSindical').map.with_index(1) do |filiacao, seq|
96
- [
97
- ["InfoVinculo_InfoContrato_FiliacaoSindical_#{seq}_CnpjSindicatoTrabalhador", filiacao['cnpjSindTrab']]
98
- ]
99
- end.sum([]),
100
- ['InformacoesContrato_Remuneracao_ValorSalarioFixo', evento['evtAltContratual/altContratual/infoContrato/remuneracao/vrSalFx']]
101
- # rubocop:enable Layout/LineLength
102
- ]
99
+ evento['altContratual/dtAlteracao']
103
100
  end
104
101
 
105
102
  def categoria_do_trabalhador
106
- @categoria_do_trabalhador ||= evento['evtAltContratual/altContratual/infoContrato/codCateg']
103
+ @categoria_do_trabalhador ||= evento['altContratual/infoContrato/codCateg']
107
104
  end
108
105
  end
109
106
  end