/**
  * Récupère une chaine de dates formattées (Y-m-d) séparées par un ";"
  * et renvoit une liste de "lunch" pour l'élève pour chacune des dates.
  *
  * @param  string $datesString dates formattée Y-m-d séparées par un ";"
  * @return array Lunch renvoit une liste d'entité "Lunch" pour cet élève ou une liste vide
  */
 public function reverseTransform($datesString)
 {
     if (empty($datesString)) {
         return array();
     }
     $lunches = array();
     $dates = explode(';', $datesString);
     $lunchCurrents = $this->manager->getRepository("WCSCantineBundle:Lunch")->findByEleve($this->eleve);
     foreach ($dates 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
         $lunch = null;
         $dateT = new \DateTime($date);
         $found = false;
         foreach ($lunchCurrents as $current) {
             if ($current->getDate() == $dateT) {
                 $lunch = $current;
                 $found = true;
             }
         }
         if (!$found) {
             $lunch = new Lunch();
             $lunch->setEleve($this->eleve);
             $lunch->setDate($dateT);
             $lunch->setStatus('0');
             $this->manager->persist($lunch);
         }
         $lunches[] = $lunch;
     }
     return $lunches;
 }
Пример #2
0
 /**
  * {@inheritDoc}
  */
 public function load(ObjectManager $manager)
 {
     $inscs = [['2016-06-21', 'Dupontel-Jean-Kevin'], ['2016-06-21', 'Dupontel-Kevina'], ['2016-06-21', 'Dupontel-Mathilde'], ['2016-06-21', 'Robert-Mickael'], ['2016-06-21', 'Larissa-Viviane'], ['2016-06-21', 'Larissa-Gaelle'], ['2016-06-21', 'Larissa-Melina'], ['2016-06-21', 'Larissa-Astrid'], ['2016-06-21', 'Veron-Matheos'], ['2016-06-21', 'Veron-Kevin'], ['2016-06-21', 'Batista-Jean'], ['2016-06-19', 'Dupontel-Jean-Kevin'], ['2016-06-19', 'Dupontel-Kevina'], ['2016-06-19', 'Dupontel-Mathilde'], ['2016-06-19', 'Robert-Mickael'], ['2016-06-19', 'Larissa-Viviane'], ['2016-06-19', 'Larissa-Gaelle'], ['2016-06-19', 'Larissa-Melina'], ['2016-06-19', 'Larissa-Astrid'], ['2016-06-19', 'Veron-Matheos'], ['2016-06-19', 'Veron-Kevin'], ['2016-06-19', 'Batista-Jean']];
     foreach ($inscs as $insc) {
         $entity = new Lunch();
         $entity->setDate(new \DateTime($insc[0]));
         $entity->setStatus('0');
         $entity->setEleve($this->getReference($insc[1]));
         $manager->persist($entity);
     }
     $manager->flush();
 }