teodoro 0.0.13 → 0.3.1

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.
@@ -27,24 +27,24 @@ module Teodoro
27
27
  end
28
28
 
29
29
  def data_de_admissao
30
- admissao.data
30
+ contrato_de_emprego.data_de_admissao
31
31
  end
32
32
 
33
- def admissao
34
- @admissao ||= admissoes_por_matricula[matricula_do_trabalhador]
33
+ def contrato_de_emprego
34
+ contratos_de_emprego[matricula_do_trabalhador]
35
35
  end
36
36
 
37
- def admissoes_por_matricula
38
- empresa.admissoes_por_matricula
37
+ def contratos_de_emprego
38
+ empresa.contratos_de_emprego
39
39
  end
40
40
 
41
41
  def data_da_alteracao
42
42
  evento['evtAltContratual/altContratual/dtAlteracao']
43
43
  end
44
44
 
45
- # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Layout/LineLength
46
- def itens_do_conteudo_do_arquivo_data
45
+ def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
47
46
  [
47
+ # rubocop:disable Layout/LineLength
48
48
  ['ESX_CPF', cpf_do_trabalhador],
49
49
  ['ESX_MATRICULA', matricula_do_trabalhador],
50
50
  ['ESX_CATEGORIA', categoria_do_trabalhador],
@@ -186,9 +186,9 @@ module Teodoro
186
186
  ["InfoVinculo_InfoContrato_FiliacaoSindical_#{seq}_CnpjSindicatoTrabalhador", filiacao['cnpjSindTrab']]
187
187
  ]
188
188
  end.sum([])
189
+ # rubocop:enable Layout/LineLength
189
190
  ]
190
191
  end
191
- # rubocop:enable Metrics/AbcSize, Metrics/MethodLength, Layout/LineLength
192
192
 
193
193
  def categoria_do_trabalhador
194
194
  @categoria_do_trabalhador ||= evento['evtAltContratual/altContratual/infoContrato/codCateg']
@@ -10,9 +10,9 @@ module Teodoro
10
10
  end
11
11
 
12
12
  def nome_do_arquivo_data
13
- # FIXME: Tales dataDeAdmissao
14
13
  @nome_do_arquivo_data ||= [
15
- "TRA[#{cpf_do_trabalhador}][EPG_#{matricula_do_trabalhador}_dataDeAdmissao]-",
14
+ "TRA[#{cpf_do_trabalhador}]",
15
+ "[#{empregado? ? nome_do_arquivo_data_identif_do_empregado : nome_do_arquivo_data_identif_do_tsv}]-",
16
16
  fim_do_afastamento? ? 'TAF' : 'IAF',
17
17
  '[',
18
18
  inicio_do_afastamento? ? data_de_inicio_do_afastamento.delete('-') : 'SemIni',
@@ -26,16 +26,52 @@ module Teodoro
26
26
  evento['evtAfastTemp/ideVinculo/cpfTrab']
27
27
  end
28
28
 
29
+ def empregado?
30
+ matricula_do_trabalhador
31
+ end
32
+
29
33
  def matricula_do_trabalhador
30
- evento['evtAfastTemp/ideVinculo/matricula']
34
+ @matricula_do_trabalhador ||= evento['evtAfastTemp/ideVinculo/matricula']
31
35
  end
32
36
 
33
- def fim_do_afastamento?
34
- fim_do_afastamento
37
+ def nome_do_arquivo_data_identif_do_empregado
38
+ "EPG_#{matricula_do_trabalhador}_#{data_de_admissao.delete('-')}"
35
39
  end
36
40
 
37
- def fim_do_afastamento
38
- @fim_do_afastamento ||= evento['evtAfastTemp/infoAfastamento/fimAfastamento']
41
+ def data_de_admissao
42
+ contrato_de_emprego.data_de_admissao
43
+ end
44
+
45
+ def contrato_de_emprego
46
+ contratos_de_emprego[matricula_do_trabalhador]
47
+ end
48
+
49
+ def contratos_de_emprego
50
+ empresa.contratos_de_emprego
51
+ end
52
+
53
+ def nome_do_arquivo_data_identif_do_tsv
54
+ "TSV_#{categoria_do_trabalhador}_#{data_de_inicio_do_contrato_de_trabalho.delete('-')}"
55
+ end
56
+
57
+ def categoria_do_trabalhador
58
+ @categoria_do_trabalhador ||= evento['evtAfastTemp/ideVinculo/codCateg']
59
+ end
60
+
61
+ def data_de_inicio_do_contrato_de_trabalho
62
+ contrato_de_trabalho_sem_vinculo.data_de_inicio
63
+ end
64
+
65
+ def contrato_de_trabalho_sem_vinculo
66
+ contratos_de_trabalho_sem_vinculo[
67
+ cpf_do_trabalhador: cpf_do_trabalhador,
68
+ categoria_do_trabalhador: categoria_do_trabalhador,
69
+ data: inicio_do_afastamento? ? data_de_inicio_do_afastamento : data_de_termino_do_afastamento
70
+ ]
71
+ end
72
+
73
+ def contratos_de_trabalho_sem_vinculo
74
+ empresa.contratos_de_trabalho_sem_vinculo
39
75
  end
40
76
 
41
77
  def inicio_do_afastamento?
@@ -54,12 +90,20 @@ module Teodoro
54
90
  fim_do_afastamento['dtTermAfast']
55
91
  end
56
92
 
57
- # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Layout/LineLength
58
- def itens_do_conteudo_do_arquivo_data
93
+ def fim_do_afastamento
94
+ @fim_do_afastamento ||= evento['evtAfastTemp/infoAfastamento/fimAfastamento']
95
+ end
96
+
97
+ def fim_do_afastamento?
98
+ fim_do_afastamento
99
+ end
100
+
101
+ def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
59
102
  [
103
+ # rubocop:disable Layout/LineLength
60
104
  ['ESX_CPF', evento['evtAfastTemp/ideVinculo/cpfTrab']],
61
105
  ['ESX_MATRICULA', evento['evtAfastTemp/ideVinculo/matricula']],
62
- ['ESX_CATEGORIA', evento['evtAfastTemp/ideVinculo/codCateg']],
106
+ ['ESX_CATEGORIA', categoria_do_trabalhador],
63
107
  ['ESX_DATAADMISSAO'],
64
108
  %w[ESX_SEMVINCULO 0],
65
109
  ['ESX_INICIO', evento['evtAfastTemp/infoAfastamento/iniAfastamento/dtIniAfast']],
@@ -139,9 +183,9 @@ module Teodoro
139
183
  ["IniAfastamento_ListaInfoAtestado_#{seq}_Emitente_DescricaoOrgaoClasse"]
140
184
  ]
141
185
  end.sum([])
186
+ # rubocop:enable Layout/LineLength
142
187
  ]
143
188
  end
144
- # rubocop:enable Metrics/MethodLength, Metrics/AbcSize, Layout/LineLength
145
189
  end
146
190
  end
147
191
  end
@@ -23,15 +23,15 @@ module Teodoro
23
23
  end
24
24
 
25
25
  def data_de_admissao
26
- admissao.data
26
+ contrato_de_emprego.data_de_admissao
27
27
  end
28
28
 
29
- def admissao
30
- @admissao ||= admissoes_por_matricula[matricula_do_trabalhador]
29
+ def contrato_de_emprego
30
+ @contrato_de_emprego ||= contratos_de_emprego[matricula_do_trabalhador]
31
31
  end
32
32
 
33
- def admissoes_por_matricula
34
- empresa.admissoes_por_matricula
33
+ def contratos_de_emprego
34
+ empresa.contratos_de_emprego
35
35
  end
36
36
 
37
37
  def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
@@ -71,7 +71,7 @@ module Teodoro
71
71
  end
72
72
 
73
73
  def categoria_do_trabalhador
74
- admissao.categoria_do_trabalhador
74
+ contrato_de_emprego.categoria_do_trabalhador
75
75
  end
76
76
  end
77
77
  end
@@ -3,8 +3,30 @@ module Teodoro
3
3
  class ArquivoS2299 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
6
+ def processar
7
+ super
8
+
9
+ registrar_desligamento
10
+ end
11
+
6
12
  private
7
13
 
14
+ def registrar_desligamento
15
+ contrato_de_emprego.data_de_desligamento = data_de_desligamento
16
+ end
17
+
18
+ def contrato_de_emprego
19
+ @contrato_de_emprego ||= contratos_de_emprego[matricula_do_trabalhador]
20
+ end
21
+
22
+ def contratos_de_emprego
23
+ empresa.contratos_de_emprego
24
+ end
25
+
26
+ def data_de_desligamento
27
+ @data_de_desligamento ||= evento['evtDeslig/infoDeslig/dtDeslig']
28
+ end
29
+
8
30
  def noh_principal_do_evento
9
31
  'evtDeslig'
10
32
  end
@@ -23,26 +45,18 @@ module Teodoro
23
45
  end
24
46
 
25
47
  def data_de_admissao
26
- admissao.data
27
- end
28
-
29
- def admissao
30
- @admissao ||= admissoes_por_matricula[matricula_do_trabalhador]
31
- end
32
-
33
- def admissoes_por_matricula
34
- empresa.admissoes_por_matricula
48
+ contrato_de_emprego.data_de_admissao
35
49
  end
36
50
 
37
- # rubocop:disable Metrics/MethodLength, Layout/LineLength
38
- def itens_do_conteudo_do_arquivo_data
51
+ def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/MethodLength
39
52
  [
53
+ # rubocop:disable Layout/LineLength
40
54
  ['ESX_CPF', cpf_do_trabalhador],
41
55
  ['ESX_MATRICULA', matricula_do_trabalhador],
42
56
  ['ESX_CATEGORIA'],
43
57
  %w[ESX_SEMVINCULO 0],
44
58
  ['ESX_DATAADMISSAO'],
45
- ['ESX_DATADESLIGAMENTO', evento['evtDeslig/infoDeslig/dtDeslig']],
59
+ ['ESX_DATADESLIGAMENTO', data_de_desligamento],
46
60
  ['ESX_INFOWEB_RESCISAO_IDEDMDEV', identificador_do_demonstrativo],
47
61
  ['ESX_INFOWEB_RESCISAO_RECIBO', numero_do_recibo],
48
62
  ['ESX_INFOWEB_RESCISAO_MOTIVO', evento['evtDeslig/infoDeslig/mtvDeslig']],
@@ -288,14 +302,15 @@ module Teodoro
288
302
  ['Horarios_#_CodigoHorarioContratual'],
289
303
  ['Horarios_#_Dia'],
290
304
  ['InfoVinculo_InfoContrato_FiliacaoSindical_#_CnpjSindicatoTrabalhador']
305
+ # rubocop:enable Layout/LineLength
291
306
  ]
292
307
  end
293
- # rubocop:enable Metrics/MethodLength, Layout/LineLength
294
308
 
295
309
  def identificador_do_demonstrativo
296
310
  evento['evtDeslig/infoDeslig/verbasResc']&.then do |verbas|
297
311
  verbas.*('dmDev').then do |demonstrativos|
298
- raise if demonstrativos.size > 1
312
+ puts "\n #{Rainbow('mais de um demonstrativo (considerado apenas o primeiro)').yellow}" if
313
+ demonstrativos.size > 1 # yellow
299
314
 
300
315
  demonstrativos[0]['ideDmDev']
301
316
  end
@@ -303,7 +318,7 @@ module Teodoro
303
318
  end
304
319
 
305
320
  def categoria_do_trabalhador
306
- admissao.categoria_do_trabalhador
321
+ contrato_de_emprego.categoria_do_trabalhador
307
322
  end
308
323
  end
309
324
  end
@@ -4,23 +4,30 @@ module Teodoro
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
6
6
  def processar
7
+ remover_registro_do_contrato_de_trabalho if retificacao?
8
+
7
9
  super
8
10
 
9
- registrar_contrato_de_trabalhador_sem_vinculo
11
+ registrar_inicio_de_contrato
10
12
  end
11
13
 
12
14
  private
13
15
 
14
- def registrar_contrato_de_trabalhador_sem_vinculo
15
- contratos_de_trabalhado_sem_vinculo << Obj.new(
16
+ def remover_registro_do_contrato_de_trabalho
17
+ contratos_de_trabalho_sem_vinculo.remover(numero_do_recibo_a_retificar)
18
+ end
19
+
20
+ def registrar_inicio_de_contrato
21
+ contratos_de_trabalho_sem_vinculo.registrar_inicio_de_contrato(
16
22
  cpf_do_trabalhador: cpf_do_trabalhador,
17
23
  categoria_do_trabalhador: categoria_do_trabalhador,
18
- data_de_inicio: data_de_inicio
24
+ data_de_inicio: data_de_inicio,
25
+ recibo: numero_do_recibo
19
26
  )
20
27
  end
21
28
 
22
- def contratos_de_trabalhado_sem_vinculo
23
- empresa.contratos_de_trabalhado_sem_vinculo
29
+ def contratos_de_trabalho_sem_vinculo
30
+ empresa.contratos_de_trabalho_sem_vinculo
24
31
  end
25
32
 
26
33
  def noh_principal_do_evento
@@ -44,9 +51,9 @@ module Teodoro
44
51
  evento['evtTSVInicio/infoTSVInicio/dtInicio']
45
52
  end
46
53
 
47
- # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Layout/LineLength
48
- def itens_do_conteudo_do_arquivo_data
54
+ def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
49
55
  [
56
+ # rubocop:disable Layout/LineLength
50
57
  ['ESX_CPF', evento['evtTSVInicio/trabalhador/cpfTrab']],
51
58
  ['ESX_MATRICULA'],
52
59
  ['ESX_CATEGORIA', evento['evtTSVInicio/infoTSVInicio/codCateg']],
@@ -295,9 +302,9 @@ module Teodoro
295
302
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NivelEstagio', evento['evtTSVInicio/infoTSVInicio/infoComplementares/infoEstagiario/nivEstagio']],
296
303
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NrApoliceSeguro', evento['evtTSVInicio/infoTSVInicio/infoComplementares/infoEstagiario/nrApol']],
297
304
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_ValorBolsa', evento['evtTSVInicio/infoTSVInicio/infoComplementares/infoEstagiario/vlrBolsa']]
305
+ # rubocop:enable Layout/LineLength
298
306
  ]
299
307
  end
300
- # rubocop:enable Metrics/AbcSize, Metrics/MethodLength, Layout/LineLength
301
308
  end
302
309
  end
303
310
  end
@@ -31,15 +31,15 @@ module Teodoro
31
31
  end
32
32
 
33
33
  def contrato_de_trabalho
34
- contratos_de_trabalhado_sem_vinculo[
34
+ contratos_de_trabalho_sem_vinculo[
35
35
  cpf_do_trabalhador: cpf_do_trabalhador,
36
36
  categoria_do_trabalhador: categoria_do_trabalhador,
37
37
  data: data_da_alteracao
38
38
  ]
39
39
  end
40
40
 
41
- def contratos_de_trabalhado_sem_vinculo
42
- empresa.contratos_de_trabalhado_sem_vinculo
41
+ def contratos_de_trabalho_sem_vinculo
42
+ empresa.contratos_de_trabalho_sem_vinculo
43
43
  end
44
44
 
45
45
  def data_da_alteracao
@@ -3,8 +3,34 @@ module Teodoro
3
3
  class ArquivoS2399 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
6
+ def processar
7
+ super
8
+
9
+ registrar_termino_do_contrato
10
+ end
11
+
6
12
  private
7
13
 
14
+ def registrar_termino_do_contrato
15
+ contrato_de_trabalho.data_do_termino = data_do_termino
16
+ end
17
+
18
+ def contrato_de_trabalho
19
+ contratos_de_trabalho_sem_vinculo[
20
+ cpf_do_trabalhador: cpf_do_trabalhador,
21
+ categoria_do_trabalhador: categoria_do_trabalhador,
22
+ data: data_do_termino
23
+ ]
24
+ end
25
+
26
+ def contratos_de_trabalho_sem_vinculo
27
+ empresa.contratos_de_trabalho_sem_vinculo
28
+ end
29
+
30
+ def data_do_termino
31
+ @data_do_termino ||= evento['evtTSVTermino/infoTSVTermino/dtTerm']
32
+ end
33
+
8
34
  def noh_principal_do_evento
9
35
  'evtTSVTermino'
10
36
  end
@@ -26,25 +52,9 @@ module Teodoro
26
52
  contrato_de_trabalho.data_de_inicio
27
53
  end
28
54
 
29
- def contrato_de_trabalho
30
- contratos_de_trabalhado_sem_vinculo[
31
- cpf_do_trabalhador: cpf_do_trabalhador,
32
- categoria_do_trabalhador: categoria_do_trabalhador,
33
- data: data_do_termino
34
- ]
35
- end
36
-
37
- def contratos_de_trabalhado_sem_vinculo
38
- empresa.contratos_de_trabalhado_sem_vinculo
39
- end
40
-
41
- def data_do_termino
42
- @data_do_termino ||= evento['evtTSVTermino/infoTSVTermino/dtTerm']
43
- end
44
-
45
- # rubocop:disable Metrics/MethodLength, Layout/LineLength
46
- def itens_do_conteudo_do_arquivo_data
55
+ def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/MethodLength
47
56
  [
57
+ # rubocop:disable Layout/LineLength
48
58
  ['ESX_CPF', cpf_do_trabalhador],
49
59
  ['ESX_MATRICULA'],
50
60
  ['ESX_CATEGORIA', categoria_do_trabalhador],
@@ -296,9 +306,9 @@ module Teodoro
296
306
  ['Horarios_#_CodigoHorarioContratual'],
297
307
  ['Horarios_#_Dia'],
298
308
  ['InfoVinculo_InfoContrato_FiliacaoSindical_#_CnpjSindicatoTrabalhador']
309
+ # rubocop:enable Layout/LineLength
299
310
  ]
300
311
  end
301
- # rubocop:enable Metrics/MethodLength, Layout/LineLength
302
312
  end
303
313
  end
304
314
  end
@@ -1,10 +1,12 @@
1
1
  module Teodoro
2
2
  module Leiaute
3
3
  class ArquivoS3000
4
- include ArquivoDeEvento
4
+ include ArquivoDeEventoProcessadorDeArquivoData
5
+
6
+ # FIXME: Tales aspectos em empresa
5
7
 
6
8
  def processar
7
- excluir_arquivo_data_original if tipo_de_evento_processavel?
9
+ excluir_arquivos_data if tipo_de_evento_processavel?
8
10
  end
9
11
 
10
12
  private
@@ -17,20 +19,12 @@ module Teodoro
17
19
  evento['evtExclusao/infoExclusao/tpEvento'].delete('-')
18
20
  end
19
21
 
20
- def excluir_arquivo_data_original
21
- File.delete(caminho_do_arquivo_data_original)
22
- end
23
-
24
- def caminho_do_arquivo_data_original
25
- criar_caminho_do_arquivo_data(nome_do_arquivo_data_original)
26
- end
27
-
28
- def nome_do_arquivo_data_original
29
- de_recibo_para_nome_do_arquivo_data[numero_de_recibo_do_evento_a_excluir]
22
+ def excluir_arquivos_data
23
+ arquivos_data.excluir(numero_de_recibo_do_evento_a_excluir)
30
24
  end
31
25
 
32
- def de_recibo_para_nome_do_arquivo_data
33
- empresa.de_recibo_para_nome_do_arquivo_data
26
+ def arquivos_data
27
+ empresa.arquivos_data
34
28
  end
35
29
 
36
30
  def numero_de_recibo_do_evento_a_excluir