protected function execute(InputInterface $input, OutputInterface $output)
 {
     $em = $this->getContainer()->get('doctrine.orm.default_entity_manager');
     $field_delimiter = "/\t/";
     $row_delimiter = "/\n/";
     $content = file_get_contents($input->getArgument('file'));
     $rows = preg_split($row_delimiter, $content);
     $field = $em->find('ClubBookingBundle:Field', 8);
     $user = $em->find('ClubUserBundle:User', 1);
     foreach ($rows as $line) {
         if (strlen($line) > 0) {
             list($name, $start, $stop, $interval_start, $interval_stop, $day) = preg_split($field_delimiter, $line);
             $day++;
             $start_time = new \DateTime($start . ' 00:00:00');
             $stop_time = new \DateTime($stop . ' 23:59:59');
             $t1 = new \DateTime(date('Y-m-d') . ' ' . $interval_start);
             $t2 = new \DateTime(date('Y-m-d') . ' ' . $interval_stop);
             $category = new \Club\BookingBundle\Entity\PlanCategory();
             $category->setName($name);
             $category->setDescription($name);
             $em->persist($category);
             $plan = new \Club\BookingBundle\Entity\Plan();
             $plan->setPlanCategory($category);
             $plan->setPeriodStart($start_time);
             $plan->setPeriodEnd($stop_time);
             $plan->setDay($day);
             $plan->setFirstDate($t1);
             $plan->setEndDate($t2);
             $plan->setUser($user);
             $plan->addField($field);
             $em->persist($plan);
         }
     }
     $em->flush();
 }
 /**
  * @Route("/new", defaults={"date" = false, "interval_id" = null})
  * @Route("/new/{date}/{interval_id}", name="club_booking_plan_pre")
  * @Template()
  */
 public function newAction($date, $interval_id = null)
 {
     $plan = new \Club\BookingBundle\Entity\Plan();
     $plan->setUser($this->getUser());
     $repeat = new \Club\BookingBundle\Entity\PlanRepeat();
     $repeat->setPlan($plan);
     $plan->addPlanRepeat($repeat);
     $em = $this->getDoctrine()->getManager();
     if ($date) {
         $date = new \DateTime($date);
         $interval = $em->find('ClubBookingBundle:Interval', $interval_id);
         $start = clone $date;
         $start->setTime($interval->getStartTime()->format('H'), $interval->getStartTime()->format('i'), $interval->getStartTime()->format('s'));
         $end = clone $date;
         $end->setTime($interval->getStopTime()->format('H'), $interval->getStopTime()->format('i'), $interval->getStopTime()->format('s'));
         $plan->setStart($start);
         $plan->setEnd($end);
         $plan->addField($interval->getField());
     }
     $form = $this->createForm(new \Club\BookingBundle\Form\Plan(), $plan);
     if ($this->getRequest()->getMethod() == 'POST') {
         $form->bind($this->getRequest());
         if ($form->isValid()) {
             $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('form' => $form->createView());
 }