Exemplo n.º 1
0
 /**
  *
  * @param Request $request
  * @param string|null $action
  * @return Form|boolean true Если форма успешно обработана
  * @throws \Exception
  */
 public function createAction(Request $request = null)
 {
     return $this->builder->processForm(['caption' => 'Создать', 'object' => new BizAction(), 'action' => $this->action], function ($form) {
         $em = $this->em;
         $object = $form->getData();
         $object_user = $this->user->getUserObject();
         //auth checked here
         $this->user->checkImageAccess($object->photo, 'biz_action_image');
         $object->setBiz($object_user);
         $object->setRandomCode();
         $em->beginTransaction();
         //rollback in formCode
         if ($this->hasActions()) {
             throw new \Exception('У вас уже есть акция');
         }
         $em->persist($object);
         $em->flush();
         $em->commit();
     }, $request);
 }
Exemplo n.º 2
0
 protected function processReport($biz_id = null, Request $request = null)
 {
     $object = new FundReport();
     $object->biz_id = $biz_id;
     return $this->formbuilder->processForm(['object' => $object, 'caption' => 'Отправить', 'action' => $this->action], function ($form) {
         $data = $form->getData();
         $this->user->checkImageAccess($data->photo, 'report_image');
         $fund = $this->user->getUserObject();
         $biz = $this->em->getRepository('AppBundle:UserBiz')->getExistsById($data->biz_id);
         $c = $this->em->createQuery('SELECT count(u) ' . 'FROM AppBundle:Cert u ' . 'WHERE u.brand=:biz and u.fund=:fund')->setHydrationMode(Query::HYDRATE_SINGLE_SCALAR)->execute(['biz' => $biz, 'fund' => $fund]);
         if (!$c) {
             throw new \Exception('Отправка отчета недоступна т.к. нет сертификатов для данного бизнеса');
         }
         $data->setFund($fund);
         $data->setBiz($biz);
         $this->em->persist($data);
         $this->em->flush();
     }, $request);
 }