예제 #1
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));
 }
예제 #2
0
 private function addParticipantsToOrder()
 {
     $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager');
     if ($this->getUser()) {
         $orderService = $this->getServiceLocator()->get('ErsBase\\Service\\OrderService');
         $countries = array();
         /*
          * add logged in user
          */
         $login_user = $this->getUser();
         $newUser = new Entity\User();
         $newUser->populate($login_user->getArrayCopy());
         if ($newUser->getCountryId()) {
             if (isset($countries[$newUser->getCountryId()])) {
                 $country = $countries[$newUser->getCountryId()];
             } else {
                 $country = $em->getRepository("ErsBase\\Entity\\Country")->findOneBy(array('id' => $newUser->getCountryId()));
                 $countries[$country->getId()] = $country;
             }
             $newUser->setCountry($country);
         } else {
             $newUser->setCountry(null);
             $newUser->setCountryId(null);
         }
         $package = $orderService->getOrder()->getPackageByParticipantEmail($login_user->getEmail());
         if ($package) {
             $package->setParticipant($newUser);
         } else {
             $orderService->addParticipant($newUser);
         }
         /*
          * add users from former orders
          */
         $orders = $em->getRepository("ErsBase\\Entity\\Order")->findBy(array('buyer_id' => $this->getUser()->getId()));
         foreach ($orders as $order) {
             $count = 1;
             foreach ($order->getParticipants() as $user) {
                 $package = $orderService->getOrder()->getPackageByParticipantEmail($user->getEmail());
                 $newUser = new Entity\User();
                 $newUser->populate($user->getArrayCopy());
                 if ($newUser->getCountryId()) {
                     if (isset($countries[$newUser->getCountryId()])) {
                         $country = $countries[$newUser->getCountryId()];
                     } else {
                         $country = $em->getRepository("ErsBase\\Entity\\Country")->findOneBy(array('id' => $newUser->getCountryId()));
                         $countries[$country->getId()] = $country;
                     }
                     $newUser->setCountry($country);
                 } else {
                     $newUser->setCountry(null);
                     $newUser->setCountryId(null);
                 }
                 if ($package) {
                     $package->setParticipant($newUser);
                 } else {
                     $orderService->getOrder()->addParticipant($newUser);
                 }
                 $count++;
             }
         }
     } else {
         throw new \Exception('unable to find logged in user');
     }
 }