예제 #1
0
 public function onVersionMigrate(\Club\InstallerBundle\Event\FilterVersionEvent $event)
 {
     if ($event->getVersion()->getVersion() != '20121016161300') {
         // fit to this version only
         return;
     }
     $repeats = $this->em->getRepository('ClubBookingBundle:PlanRepeat')->findAll();
     if (count($repeats) > 0) {
         // if we already has migrate our booking plans
         return;
     }
     $plans = $this->em->getRepository('ClubBookingBundle:Plan')->findAll();
     foreach ($plans as $plan) {
         $repeat = new \Club\BookingBundle\Entity\PlanRepeat();
         $repeat->setPlan($plan);
         $repeat->setRepeats('weekly');
         $repeat->setRepeatOn($plan->getDay());
         $repeat->setEndsType('on');
         $repeat->setEndsOn($plan->getPeriodEnd());
         $repeat->setRepeatEvery(1);
         $start = clone $plan->getPeriodStart();
         $start->setTime($plan->getFirstTime()->format('H'), $plan->getFirstTime()->format('i'), $plan->getFirstTime()->format('s'));
         $end = clone $plan->getPeriodStart();
         $end->setTime($plan->getEndTime()->format('H'), $plan->getEndTime()->format('i'), $plan->getEndTime()->format('s'));
         $plan->setStart($start);
         $plan->setEnd($end);
         $plan->setRepeating(true);
         $plan->addPlanRepeat($repeat);
         $this->em->persist($plan);
     }
     $dql = "UPDATE ClubBookingBundle:Booking b SET b.status=2";
     $r = $this->em->createQuery($dql)->execute();
 }
 /**
  * @Route("/edit/{id}")
  * @Template()
  */
 public function editAction(\Club\BookingBundle\Entity\Plan $plan)
 {
     if (!count($plan->getPlanRepeats())) {
         $repeat = new \Club\BookingBundle\Entity\PlanRepeat();
         $repeat->setPlan($plan);
         $plan->addPlanRepeat($repeat);
     }
     $form = $this->createForm(new \Club\BookingBundle\Form\Plan(), $plan);
     if ($this->getRequest()->getMethod() == 'POST') {
         $form->bind($this->getRequest());
         if ($form->isValid()) {
             $em = $this->getDoctrine()->getManager();
             $em = $this->getDoctrine()->getManager();
             $em->persist($plan);
             $em->flush();
             $this->get('session')->getFlashBag()->add('notice', $this->get('translator')->trans('Your changes are saved.'));
             return $this->redirect($this->generateUrl('club_booking_adminplan_index'));
         }
     }
     return array('plan' => $plan, 'form' => $form->createView());
 }