/** * Ulozeni formulare * @param \Nette\ArrayHash $values * @param \App\Model\Entity\Client $clientEntity * @throws \Doctrine\DBAL\DBALException * @return \App\Model\Entity\Event */ public function save(\Nette\ArrayHash $values, $event) { $addressValues = explode(',', $values['address']->getAddress()); $location = new \Knp\DoctrineBehaviors\ORM\Geocodable\Type\Point($values['address']->getLat(), $values['address']->getLng()); $hasSoldTickets = $this->eventService->hasSoldTickets($event); //@ToDo potřeba upravit po dodělání addressFieldu (toto je provizorní řešení) $address = $event->getAddress(); if (empty($address)) { $address = new \App\Model\Entity\Address(); } /** @var \Nette\Http\FileUpload $file */ $file = $values['logo']; if ($file->isImage()) { if ($file->move($this->config['uploadPath'] . '/logo/' . $file->getSanitizedName())) { $logo = new \App\Model\Entity\File(); $logo->setName($file->getName())->setType('image')->setFile($file->getSanitizedName())->setFileSize(0)->setExtension(''); $event->setLogo($logo); } } $event->setCategory($values['eventCategory']); if (!$hasSoldTickets) { //@ToDo potřeba upravit po dodělání addressFieldu (toto je provizorní řešení) $address->setName($addressValues[0])->setStreet($addressValues[1])->setCrossStreet($addressValues[1])->setCity($addressValues[2])->setZip(preg_replace('/[^0-9]/is', '', $addressValues[3]))->setInfo($addressValues[4])->setCountry($addressValues[5])->setLocation($location); $event->setAddress($address); $event->setName($values['name']); $event->setDateStart($values['dateTimeRange']->getFrom()); $event->setDateEnd($values['dateTimeRange']->getTo()); } $event->setDescription($values['description']); $event->setOrganizerName($values['organizer']); $event->setOrganizerDesc($values['organizerDescription']); return $this->eventService->saveEvent($event); }
/** * New event * Vytvoření nové události */ public function actionCreate() { try { $client = $this->userEntity->getClient(); $event = $this->eventService->createBlankEvent($client); $this->redirect('Event:edit', $event->getId(), $step = 'description'); \Tracy\Debugger::log('Uživatel #' . $this->getUser()->getId() . ' (klient #' . $this->event->getClient()->getId() . ') vytvořil novou událost.'); } catch (\Nette\Application\ForbiddenRequestException $e) { $this->flashMessage($e->getMessage()); $this->redirect('Dashboard:default'); \Tracy\Debugger::log('Uživatel #' . $this->getUser()->getId() . ' (klient #' . $this->event->getClient()->getId() . ') se pokusil vytvořit novou událost, ačkoli k tomu nemá oprávnění.'); } catch (\Nette\Application\BadRequestException $e) { $this->flashMessage($e->getMessage()); $this->redirect('Dashboard:default'); } }