コード例 #1
0
 /**
  * Genera objetos HorarioAsignado desde la fecha actual hasta que termina el
  * período al que corresponde el HorarioHabitual dado. Marca como no actvos
  * los horarios que caen en feriados o semanas especiales.
  *
  * @param HorarioHabitual $horarioHabitual
  */
 private function generarHorariosAsignados($horarioHabitual)
 {
     $periodoActual = $this->gestorPeriodos->getPeriodoActual($horarioHabitual->getArea()->getIdArea());
     $fechaFinal = $periodoActual->getFin();
     // Obtiene el primer horario que debe cumplir
     $fecha = new DateTime('next ' . $horarioHabitual->getDia()->getNombreIngles());
     while ($fecha->getTimestamp() <= $fechaFinal->getTimestamp()) {
         $horario = new Horario();
         $horario->setUsuario($horarioHabitual->getUsuario());
         $horario->setIdHorarioHabitual($horarioHabitual->getIdHorarioHabitual());
         $horario->setFecha($fecha->format('d-m-Y'));
         $horario->setIngreso($horarioHabitual->imprimirIngreso());
         $horario->setEgreso($horarioHabitual->imprimirEgreso());
         $horario->setArea($horarioHabitual->getArea());
         $horario->setPeriodo($horarioHabitual->getPeriodo());
         $this->insertarHorario($horario);
         $fecha->modify("+1 week");
     }
     $this->horarioDAO->eliminarHorariosEnFeriados();
     $this->horarioDAO->eliminarHorariosEnSemanasEspeciales();
 }