/** * Définie la façon de générer des créneaux à partir d'une plage horaire unique. * @param $plageHoraire PlageHoraire La plage horaire en question * @param $debut \DateTime Le début du créneau * @param $fin \DateTime La fin du créneau * @param $em EntityManager L'entity manager pour les modifications */ private function genererCreneaux($plageHoraire, $debut, $fin, $em) { foreach ($plageHoraire->getBesoinsOrga() as $besoinOrga) { if ($besoinOrga->getOrgaHint() == NULL) { for ($i = 0; $i < $besoinOrga->getNbOrgasNecessaires(); $i++) { $creneau = new Creneau(); $creneau->setDebut($debut); $creneau->setFin($fin); $creneau->setPlageHoraire($plageHoraire); $creneau->setEquipeHint($besoinOrga->getEquipe()); $em->persist($creneau); } } else { $creneau = new Creneau(); $creneau->setDebut($debut); $creneau->setFin($fin); $creneau->setPlageHoraire($plageHoraire); $creneau->setOrgaHint($besoinOrga->getOrgaHint()); $creneau->setEquipeHint($besoinOrga->getOrgaHint()->getEquipe()); $em->persist($creneau); } } if ($plageHoraire->getRespNecessaire()) { $creneau = new Creneau(); $creneau->setDebut($debut); $creneau->setFin($fin); $creneau->setPlageHoraire($plageHoraire); $creneau->setOrgaHint($plageHoraire->getTache()->getResponsable()); $creneau->setEquipeHint($plageHoraire->getTache()->getGroupeTache()->getEquipe()); $em->persist($creneau); } }