Exemplo n.º 1
0
 /**
  * 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);
     }
 }
Exemplo n.º 2
0
 public function diviserAction()
 {
     // permet de couper un créneau en 2
     $em = $this->getDoctrine()->getEntityManager();
     $request = $this->getRequest();
     $creneau_id = $request->request->get('creneau_id', '');
     $creneau = $em->getRepository('AssoMakerPHPMBundle:Creneau')->find($creneau_id);
     $date_times = $request->request->get('date_time', '');
     $date_time = new \DateTime($date_times);
     //var_dump($date_time);
     //TODO remplacer les tgc par les erreurs ad hoc
     if (!$creneau) {
         return array('response' => 'tgc');
     }
     if (!$date_time) {
         return array('response' => 'tgc');
     }
     //     	On vérifie que l'heure est bien incluse dans le créneau
     if ($date_time < $creneau->getDebut() || $date_time > $creneau->getFin()) {
         return array('response' => 'tgc');
     } else {
         //     	=>crée un créneau B possédant les memes propriétés que le créneau A, mais commençant à l'heure fournie
         //     	=>met la fin du créneau A à l'heure fournie
         $nouveauCreneau = new Creneau();
         $nouveauCreneau->setDebut($date_time);
         $nouveauCreneau->setFin($creneau->getFin());
         $nouveauCreneau->setDisponibilite($creneau->getDisponibilite());
         $nouveauCreneau->setPlageHoraire($creneau->getPlageHoraire());
         $creneau->setFin($date_time);
         $em->persist($nouveauCreneau);
         $em->flush();
         return array('response' => 'cay cool');
     }
 }