Class: Teodoro::Empresa::Impl

Inherits:
Object
  • Object
show all
Defined in:
lib/teodoro/empresa.rb

Overview

rubocop:disable Metrics/ClassLength

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#arquivos_xml_por_recibo_a_retificarObject (readonly)

Returns the value of attribute arquivos_xml_por_recibo_a_retificar.



43
44
45
# File 'lib/teodoro/empresa.rb', line 43

def arquivos_xml_por_recibo_a_retificar
  @arquivos_xml_por_recibo_a_retificar
end

#inicio_da_validadeObject

Returns the value of attribute inicio_da_validade.



41
42
43
# File 'lib/teodoro/empresa.rb', line 41

def inicio_da_validade
  @inicio_da_validade
end

Instance Method Details

#arquivos_dataObject



64
65
66
# File 'lib/teodoro/empresa.rb', line 64

def arquivos_data
  @arquivos_data ||= ArquivosData.new(destino_dos_arquivos_data)
end

#cargos_geradosObject



84
85
86
# File 'lib/teodoro/empresa.rb', line 84

def cargos_gerados
  @cargos_gerados ||= CargosGerados.new(self)
end

#competencias_encerradasObject



68
69
70
# File 'lib/teodoro/empresa.rb', line 68

def competencias_encerradas
  @competencias_encerradas ||= []
end

#contratos_de_empregoObject



76
77
78
# File 'lib/teodoro/empresa.rb', line 76

def contratos_de_emprego
  @contratos_de_emprego ||= ContratosDeEmprego.new(trabalhadores)
end

#contratos_de_trabalhoObject



99
100
101
# File 'lib/teodoro/empresa.rb', line 99

def contratos_de_trabalho
  [*contratos_de_emprego, *contratos_de_trabalho_sem_vinculo]
end

#contratos_de_trabalho_sem_vinculoObject



80
81
82
# File 'lib/teodoro/empresa.rb', line 80

def contratos_de_trabalho_sem_vinculo
  @contratos_de_trabalho_sem_vinculo ||= ContratosDeTrabalhoSemVinculo.new(trabalhadores)
end

#destino_dos_arquivos_dataObject



60
61
62
# File 'lib/teodoro/empresa.rb', line 60

def destino_dos_arquivos_data
  @destino_dos_arquivos_data ||= File.join(destino, 'data')
end

#funcoes_geradasObject



88
89
90
# File 'lib/teodoro/empresa.rb', line 88

def funcoes_geradas
  @funcoes_geradas ||= FuncoesGeradas.new(self)
end

#inicios_de_afastamento_por_numero_do_reciboObject



92
93
94
95
96
97
# File 'lib/teodoro/empresa.rb', line 92

def inicios_de_afastamento_por_numero_do_recibo
  contratos_de_trabalho
    .sum([], &:inicios_de_afastamento)
    .group_by(&:numero_do_recibo)
    .transform_values { _1.size == 1 ? _1.first : raise }
end

#processarObject

rubocop:disable Metrics/MethodLength



45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/teodoro/empresa.rb', line 45

def processar # rubocop:disable Metrics/MethodLength
  dar_feedback_para_o_usuario
  criar_diretorios_destino
  descompactar_arquivos_de_origem
  carregar_arquivos_xml
  classificar_arquivos_xml
  ordenar_arquivos_xml
  processar_arquivos_xml
  gerar_arquivo_de_dados_gerais
  processar_cargos_gerados
  processar_funcoes_geradas
  setar_proximo_identificador_de_tabela_de_rubricas_nos_arquivos_data_emp
  ajustar_nome_do_ultimo_arquivo_emp_data
end

#trabalhadoresObject



72
73
74
# File 'lib/teodoro/empresa.rb', line 72

def trabalhadores
  @trabalhadores ||= Trabalhadores.new
end