/** * 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; }
/** * {@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(); }