コード例 #1
0
 /**
  * Lists all DisponibiliteInscription entities.
  *
  * @Route("/", name="disponibiliteinscription")
  * @Template()
  */
 public function indexAction()
 {
     if (false === $this->get('security.context')->isGranted('ROLE_HUMAIN')) {
         throw new AccessDeniedException();
     }
     $request = $this->get('request');
     $param = $request->request->all();
     $em = $this->getDoctrine()->getEntityManager();
     $config = $this->get('config.extension');
     $admin = $this->get('security.context')->isGranted('ROLE_HUMAIN');
     $entitiesQuery = "SELECT d, o FROM AssoMakerPHPMBundle:DisponibiliteInscription d LEFT JOIN d.orgas o ORDER BY d.debut";
     $entities = $em->createQuery($entitiesQuery)->getResult();
     $data = array('disponibiliteInscriptionItems' => $entities);
     $form = $this->createForm(new DisponibiliteInscriptionListType($admin, $config));
     if ($this->get('request')->getMethod() == 'POST') {
         $form->handleRequest($request);
         $data = $form->getData();
         $valid = $form->isValid();
         if ($valid) {
             $decalage = $data['decalage'];
             $mission = $data['mission'];
             $statut = $data['statut'];
             $pointsCharisme = $data['pointsCharisme'];
             $confiance = $data['confiance'];
             $confianceDesaffect = $data['confiance2'];
             foreach ($data['disponibiliteInscriptionItems'] as $di) {
                 if ($param['action'] == 'delete') {
                     $em->remove($di);
                 }
                 if ($param['action'] == 'affect') {
                     foreach ($confiance->getEquipes() as $equipe) {
                         foreach ($equipe->getOrgas() as $orga) {
                             if (!$orga->getDisponibilitesInscription()->contains($di)) {
                                 $orga->addDisponibiliteInscription($di);
                             }
                         }
                     }
                 }
                 if ($param['action'] == 'desaffect') {
                     foreach ($confianceDesaffect->getEquipes() as $equipe) {
                         foreach ($equipe->getOrgas() as $orga) {
                             if ($orga->getDisponibilitesInscription()->contains($di)) {
                                 $orga->getDisponibilitesInscription()->removeElement($di);
                             }
                         }
                     }
                 }
                 if ($param['action'] == 'edit') {
                     if ($decalage != null) {
                         $ndi = new DisponibiliteInscription();
                         $debutDi = clone $di->getDebut();
                         $finDi = clone $di->getFin();
                         $debutDi->add(new \DateInterval('PT' . $decalage . 'S'));
                         $finDi->add(new \DateInterval('PT' . $decalage . 'S'));
                         $ndi->setDebut($debutDi);
                         $ndi->setFin($finDi);
                         if ($mission != null) {
                             $ndi->setMission($mission);
                         } else {
                             $ndi->setMission($di->getMission());
                         }
                         if ($statut != null) {
                             $ndi->setStatut($statut);
                         } else {
                             $ndi->setStatut($di->getStatut());
                         }
                         if ($pointsCharisme != null) {
                             $ndi->setPointsCharisme($pointsCharisme);
                         } else {
                             $ndi->setPointsCharisme($di->getPointsCharisme());
                         }
                         $em->persist($ndi);
                     } else {
                         if ($mission != null) {
                             $di->setMission($mission);
                         }
                         if ($statut != null) {
                             $di->setStatut($statut);
                         }
                         if ($pointsCharisme != null) {
                             $di->setPointsCharisme($pointsCharisme);
                         }
                     }
                 }
             }
             $em->flush();
         }
         $form = $this->createForm(new DisponibiliteInscriptionListType($admin, $config));
         $entities = $em->createQuery($entitiesQuery)->getResult();
     }
     return array('entities' => $entities, 'form' => $form->createView());
 }
コード例 #2
0
ファイル: Orga.php プロジェクト: PhilippeGeek/PHPM
 public function removeDIFromDisponibilites(\AssoMaker\PHPMBundle\Entity\DisponibiliteInscription $di)
 {
     foreach ($this->getDisponibilites() as $dispo) {
         if ($di->getFin() <= $dispo->getDebut()) {
         } elseif ($di->getDebut() >= $dispo->getFin()) {
         } elseif ($di->getDebut() <= $dispo->getDebut() && $di->getFin() >= $dispo->getFin()) {
             $this->removeDisponibilite($dispo);
         } elseif ($di->getDebut() <= $dispo->getDebut() && $di->getFin() > $dispo->getDebut()) {
             foreach ($dispo->getCreneaux() as $creneau) {
                 if ($creneau->getDebut() < $di->getFin() && $creneau->getFin() > $di->getDebut()) {
                     var_dump('deja affecté a ' . $creneau->getId());
                     return false;
                 }
             }
             $dispo->setDebut($di->getFin());
         } elseif ($di->getDebut() < $dispo->getFin() && $di->getFin() >= $dispo->getFin()) {
             foreach ($dispo->getCreneaux() as $creneau) {
                 if ($creneau->getDebut() < $di->getFin() && $creneau->getFin() > $di->getDebut()) {
                     var_dump('deja affecté a ' . $creneau->getId());
                     return false;
                 }
             }
             $dispo->setFin($di->getDebut());
         } elseif ($di->getDebut() > $dispo->getDebut() && $di->getFin() < $dispo->getFin()) {
             foreach ($dispo->getCreneaux() as $creneau) {
                 if ($creneau->getDebut() < $di->getFin() && $creneau->getFin() > $di->getDebut()) {
                     var_dump('deja affecté a ' . $creneau->getId());
                     return false;
                 }
             }
             print $dispo->getId();
             print " ";
             print $di->getId();
             print "scinder";
             $nd = new Disponibilite();
             $nd->setDebut($di->getFin());
             $nd->setFin($dispo->getFin());
             $dispo->setFin($di->getDebut());
             foreach ($dispo->getCreneaux() as $creneau) {
                 if ($creneau->getDebut() >= $di->getFin()) {
                     $creneau->setDisponibilite($nd);
                 }
             }
             $nd->setOrga($this);
             $this->addDisponibilite($nd);
         } else {
             print "merde...";
             var_dump($dispo->getDebut());
             var_dump($dispo->getFin());
             var_dump($di->getDebut());
             var_dump($di->getFin());
         }
         print "\n";
     }
     return true;
 }