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



28
29
30
31
32
# File 'lib/teodoro/empresa/contratos_de_trabalho_sem_vinculo.rb', line 28

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:, categoria_do_trabalhador:, data:) ⇒ Object



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

def [](cpf_do_trabalhador:, categoria_do_trabalhador:, data:)
  contratos
    .select {
      _1.trabalhador.cpf == cpf_do_trabalhador && _1.categoria_do_trabalhador == categoria_do_trabalhador &&
        _1.ativo?(data)
    }
    .max_by(&:data_de_inicio)
end

#registrar_inicio_de_contrato(inicio_de_contrato:, 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:, afastamento:)
  contratos << Contrato.new(inicio_de_contrato: inicio_de_contrato, afastamento: afastamento)
  trabalhadores << inicio_de_contrato.trabalhador
end

#remover(recibo) ⇒ Object



34
35
36
# File 'lib/teodoro/empresa/contratos_de_trabalho_sem_vinculo.rb', line 34

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