Exemplo n.º 1
0
 public function addAction()
 {
     $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager');
     $form = new Form\Participant();
     $form->setServiceLocator($this->getServiceLocator());
     $optionService = $this->getServiceLocator()->get('ErsBase\\Service\\OptionService');
     $form->get('Country_id')->setValueOptions($optionService->getCountryOptions());
     $user = new Entity\User();
     $user->setActive(false);
     $form->bind($user);
     $breadcrumbService = new Service\BreadcrumbService();
     $request = $this->getRequest();
     if ($request->isPost()) {
         #$inputFilter = new InputFilter\Participant();
         #$inputFilter->setEntityManager($em);
         #$form->setInputFilter($inputFilter->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $orderService = $this->getServiceLocator()->get('ErsBase\\Service\\OrderService');
             $order = $orderService->getOrder();
             $participant = $em->getRepository('ErsBase\\Entity\\User')->findOneBy(array('email' => $user->getEmail(), 'active' => false));
             if ($participant) {
                 $participant->loadData($user);
                 $em->persist($participant);
                 $orderService->addParticipant($participant);
                 #$em->persist($participant);
             } else {
                 $active_user = $em->getRepository('ErsBase\\Entity\\User')->findOneBy(array('email' => $user->getEmail(), 'active' => true));
                 if ($active_user) {
                     # TODO: flash error message: login is needed
                 } else {
                     #$em->persist($user);
                     $orderService->addParticipant($user);
                 }
             }
             $orderService->setCountryId($user->getCountryId());
             if ($user->getCountryId() == 0) {
                 $user->setCountryId(null);
                 $user->setCountry(null);
             }
             $em->persist($order);
             $em->flush();
             $breadcrumb = $breadcrumbService->get('participant');
             if ($breadcrumb->route == 'product' && isset($breadcrumb->params['action']) && ($breadcrumb->params['action'] == 'add' || $breadcrumb->params['action'] == 'edit')) {
                 unset($breadcrumb->params['agegroup_id']);
                 $breadcrumb->options['fragment'] = 'person';
                 $breadcrumb->options['query']['participant_id'] = $user->getId();
             }
             return $this->redirect()->toRoute($breadcrumb->route, $breadcrumb->params, $breadcrumb->options);
         } else {
             $logger = $this->getServiceLocator()->get('Logger');
             $logger->warn($form->getMessages());
         }
     }
     if (!$breadcrumbService->exists('participant')) {
         $breadcrumbService->set('participant', 'participant');
     }
     return new ViewModel(array('form' => $form, 'breadcrumb' => $breadcrumbService->get('participant')));
 }
Exemplo n.º 2
0
 public function addAction()
 {
     $forrest = new Service\BreadcrumbService();
     if (!$forrest->exists('user')) {
         $forrest->set('user', 'admin/user');
     }
     $breadcrumb = $forrest->get('user');
     $form = new Form\User();
     $form->get('submit')->setValue('Add');
     $form->get('Country_id')->setValueOptions($this->getCountryOptions());
     $request = $this->getRequest();
     if ($request->isPost()) {
         $user = new Entity\User();
         #$form->setInputFilter($user->getInputFilter());
         $inputFilter = $this->getServiceLocator()->get('Admin\\InputFilter\\User');
         $form->setInputFilter($inputFilter->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $user->populate($form->getData());
             if ($user->getEmail() == '') {
                 $user->setEmail(null);
             }
             if ($user->getCountryId() == 0) {
                 $user->setCountry(null);
                 $user->setCountryId(null);
             }
             $user->setActive(true);
             $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager');
             $em->persist($user);
             $em->flush();
             return $this->redirect()->toRoute($breadcrumb->route, $breadcrumb->params, $breadcrumb->options);
         } else {
             $logger = $this->getServiceLocator()->get('Logger');
             $logger->warn($form->getMessages());
         }
     }
     return new ViewModel(array('form' => $form));
 }