Class: Teodoro::Empresa::ContratosDeTrabalhoSemVinculo

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

Defined Under Namespace

Classes: Contrato

Instance Method Summary collapse

Instance Method Details

#*(cpf_do_trabalhador:, data:) ⇒ Object



31
32
33
34
35
# File 'lib/teodoro/empresa/contratos_de_trabalho_sem_vinculo.rb', line 31

def *(cpf_do_trabalhador:, data:)
  contratos
    .select { _1.trabalhador.cpf == cpf_do_trabalhador && _1.ativo?(data) }
    .sort_by(&:data_de_inicio)
end

#[](cpf_do_trabalhador:, matricula_do_trabalhador:, categoria_do_trabalhador:, data:) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/teodoro/empresa/contratos_de_trabalho_sem_vinculo.rb', line 19

def [](cpf_do_trabalhador:, matricula_do_trabalhador:, categoria_do_trabalhador:, data:)
  return contratos.find { _1.matricula_do_trabalhador == matricula_do_trabalhador } if matricula_do_trabalhador

  contratos
    .select do |contrato|
      contrato.trabalhador.cpf == cpf_do_trabalhador &&
        contrato.categoria_do_trabalhador == categoria_do_trabalhador &&
        contrato.ativo?(data)
    end
    .max_by(&:data_de_inicio)
end

#registrar_inicio_de_contrato(inicio_de_contrato:, inicio_de_afastamento:) ⇒ Object



14
15
16
17
# File 'lib/teodoro/empresa/contratos_de_trabalho_sem_vinculo.rb', line 14

def registrar_inicio_de_contrato(inicio_de_contrato:, inicio_de_afastamento:)
  contratos << Contrato.new(inicio_de_contrato: inicio_de_contrato, inicio_de_afastamento: inicio_de_afastamento)
  trabalhadores << inicio_de_contrato.trabalhador
end

#remover(recibo) ⇒ Object



37
38
39
# File 'lib/teodoro/empresa/contratos_de_trabalho_sem_vinculo.rb', line 37

def remover(recibo)
  contratos.delete_if { _1.recibo == recibo }
end