Exemple #1
0
 private function checkDuplicity(User $user)
 {
     $duplicate = $this->repository->findOneBy(['email' => $user->getEmail()]);
     if ($duplicate !== null) {
         throw new EntityDuplicateException(sprintf('User with e-mail %s already exists.', $user->getEmail()));
     }
 }
Exemple #2
0
 private function createFields()
 {
     $shipmentOptions = [];
     $personalPoints = $this->shipmentService->getPersonalPoints();
     foreach ($personalPoints as $personalPoint) {
         $key = sprintf('%d-%d', ShipmentType::PERSONAL, $personalPoint->getId());
         $shipmentOptions[$key] = sprintf('Personally at: %s', $this->shipmentHelper->formatShipmentOption($personalPoint));
     }
     $collectionPoints = $this->shipmentService->getCollectionPoints();
     foreach ($collectionPoints as $collectionPoint) {
         $key = sprintf('%d-%d', ShipmentType::TO_COLLECTION_POINT, $collectionPoint->getId());
         $shipmentOptions[$key] = sprintf('At collection point: %s', $this->shipmentHelper->formatShipmentOption($collectionPoint));
     }
     $transportCompanies = $this->shipmentService->getTransportCompanies();
     $transportCompanyKeys = [];
     $hasTransportCompany = false;
     foreach ($transportCompanies as $transportCompany) {
         $key = sprintf('%d-%d', ShipmentType::BY_TRANSPORT_COMPANY, $transportCompany->getId());
         $shipmentOptions[$key] = $this->shipmentHelper->formatShipmentOption($transportCompany);
         $transportCompanyKeys[] = $key;
         $hasTransportCompany = true;
     }
     $shipmentControl = $this->addRadioList('shipment', 'Shipment', $shipmentOptions)->setDefaultValue(key($shipmentOptions))->setRequired();
     if ($this->shipment !== null) {
         $shipmentControl->setDefaultValue(sprintf('%d-%d', $this->shipment->getShipmentOption()->getType()->getValue(), $this->shipment->getShipmentOption()->getId()));
     }
     $defaultName = null;
     $defaultStreet = null;
     $defaultCity = null;
     $defaultZip = null;
     if ($this->shipment instanceof ShipmentByTransportCompany) {
         $defaultName = $this->shipment->getName();
         $defaultStreet = $this->shipment->getStreet();
         $defaultCity = $this->shipment->getCity();
         $defaultZip = $this->shipment->getZip();
     } elseif ($this->user !== null) {
         $defaultName = $this->user->getName();
         $defaultStreet = $this->user->getStreet();
         $defaultCity = $this->user->getCity();
         $defaultZip = $this->user->getZip();
     }
     if ($hasTransportCompany) {
         $requiring = function (TextInput $control) use($shipmentControl, $transportCompanyKeys) {
             return $control->addConditionOn($shipmentControl, self::IS_IN, $transportCompanyKeys);
         };
         $addressContainer = new AddressFormContainer();
         $this->addComponent($addressContainer, 'address');
         $addressContainer->addNameControl('name', $defaultName, $requiring);
         $addressContainer->addStreetControl('street', $defaultStreet, $requiring);
         $addressContainer->addCityControl('city', $defaultCity, $requiring);
         $addressContainer->addZipControl('zip', $defaultZip, $requiring);
         $shipmentControl->addCondition(self::IS_IN, $transportCompanyKeys)->toggle('order-shipment-address');
     }
     $this->addSubmit('next', 'Next');
 }
 private function registerUser(RegistrationForm $form)
 {
     $values = $form->getValues();
     $user = new User($values->email, $values->password);
     $user->setName($values->address->name);
     $user->setStreet($values->address->street);
     $user->setCity($values->address->city);
     $user->setZip($values->address->zip);
     try {
         if (!$form->hasErrors()) {
             $this->userService->create($user);
             $this->flashMessage('Account has been created.');
             $this->user->login($user->getEmail(), $values->password);
             $this->currentCartService->consolidateCurrentCartWithCurrentUser();
             $this->restoreRequest($this->backlink);
             $this->redirect(':Front:Home:Homepage:');
         }
     } catch (EntityDuplicateException $e) {
         $form->addError(sprintf('User with e-mail %s already exists.', $user->getEmail()));
     }
 }