コード例 #1
0
 /**
  * @param  string $daysOfWeekString indice des jours de la semaine séparé par des ";"
  * @return Tap[]|null
  */
 public function reverseTransform($daysOfWeekString)
 {
     if (empty($daysOfWeekString)) {
         return array();
     }
     $daysOfWeek = explode(';', $daysOfWeekString);
     $taps_periode = $this->daysOfWeek->getListJoursTap();
     $taps_eleve = $this->manager->getRepository('WCSCantineBundle:Eleve')->findAllTapsForPeriode($this->eleve, $this->daysOfWeek->getPeriode(), true);
     $taps = array();
     foreach ($daysOfWeek as $dayOfWeek) {
         foreach ($taps_periode[$dayOfWeek] as $date) {
             // si la réservation est déjà présente,
             // on se contente de l'ajouter dans la liste
             // sinon on créé une nouvelle réservation
             $dateT = new \DateTime($date);
             $found = false;
             $tap = null;
             foreach ($taps_eleve as $current) {
                 if ($current->getDate() == $dateT) {
                     $tap = $current;
                     $found = true;
                 }
             }
             if (!$found) {
                 $tap = new Tap();
                 $tap->setEleve($this->eleve);
                 $tap->setDate($dateT);
                 $tap->setSubscribedByParent(true);
                 $this->manager->persist($tap);
             }
             $taps[] = $tap;
         }
     }
     return $taps;
 }
コード例 #2
0
 /**
  * @param  string $daysOfWeekString indice des jours de la semaine séparé par des ";"
  * @return Garderie[]|null
  */
 public function reverseTransform($daysOfWeekString)
 {
     if (empty($daysOfWeekString)) {
         return array();
     }
     $daysOfWeek = explode(';', $daysOfWeekString);
     $garderies_periode = $this->daysOfWeek->getListJoursGarderie();
     $garderies_eleve = $this->manager->getRepository('WCSCantineBundle:Eleve')->findAllGarderiesForPeriode($this->eleve, $this->daysOfWeek->getPeriode(), true);
     $garderies = array();
     foreach ($daysOfWeek as $dayOfWeek) {
         foreach ($garderies_periode[$dayOfWeek] as $date) {
             // si la réservation est déjà présente,
             // on se contente de l'ajouter dans la liste
             // sinon on créé une nouvelle réservation
             $dateT = new \DateTime($date);
             $found = false;
             $garderie = null;
             foreach ($garderies_eleve as $current) {
                 if ($current->getDate() == $dateT) {
                     if (substr($dayOfWeek, -2) == '-1' && $current->isEnableMorning()) {
                         $garderie = $current;
                         $found = true;
                     }
                     if (substr($dayOfWeek, -2) == '-2' && $current->isEnableEvening()) {
                         $garderie = $current;
                         $found = true;
                     }
                 }
             }
             if (!$found) {
                 $garderie = new Garderie();
                 $garderie->setEleve($this->eleve);
                 $garderie->setDate($dateT);
                 if (substr($dayOfWeek, -2) == '-1') {
                     $garderie->setEnableMorning(true);
                 }
                 if (substr($dayOfWeek, -2) == '-2') {
                     $garderie->setEnableEvening(true);
                 }
                 $garderie->setSubscribedByParent(true);
                 $this->manager->persist($garderie);
             }
             $garderies[] = $garderie;
         }
     }
     return $garderies;
 }