Ejemplo n.º 1
0
 private function updateShipment(ShipmentForm $form)
 {
     $values = $form->getValues();
     if ($this->shipment instanceof ShipmentPersonalPoint || $this->shipment instanceof ShipmentCollectionPoint) {
         $this->shipment->setAddress($values->address->name !== '' ? $values->address->name : null, $values->address->street, $values->address->city, $values->address->zip);
         if ($values->address->longitude !== '') {
             $this->shipment->setGps($values->address->longitude, $values->address->latitude);
         } else {
             $this->shipment->removeGps();
         }
     }
     if ($this->shipment instanceof ShipmentTransportCompany || $this->shipment instanceof ShipmentCollectionPoint) {
         $this->shipment->setPrice($values->price);
         if ($values->enableFreeFromCertainOrderPrice) {
             $this->shipment->setMinimumOrderPriceToBeFree($values->minimumOrderPriceToBeFree);
         } else {
             $this->shipment->eraseToBeFreeFromCertainOrderPrice();
         }
     }
     if ($this->shipment instanceof ShipmentTransportCompany) {
         $this->shipment->setName($values->companyName);
     }
     try {
         if (!$form->hasErrors()) {
             $this->shipmentService->update($this->shipment);
             $this->flashMessage('Shipment has been updated.');
             $this->redirect(':Admin:Shipment:List:');
         }
     } catch (EntityDuplicateException $e) {
         $form->addError(sprintf('Shipment company with name %s already exists.', $this->shipment->getName()));
     }
 }
Ejemplo n.º 2
0
 /**
  * @param ShipmentPersonalPoint|ShipmentCollectionPoint|null $shipment
  */
 private function addAddressControls(ShipmentOption $shipment = null, ChoiceControl $typeControl = null)
 {
     $addressContainer = new AddressFormContainer();
     $this->addComponent($addressContainer, 'address');
     $defaultName = null;
     $defaultStreet = null;
     $defaultCity = null;
     $defaultZip = null;
     $defaultLongitude = null;
     $defaultLatitude = null;
     if ($shipment !== null) {
         $defaultName = $shipment->getName();
         $defaultStreet = $shipment->getStreet();
         $defaultCity = $shipment->getCity();
         $defaultZip = $shipment->getZip();
         $defaultLongitude = $shipment->getLongitude();
         $defaultLatitude = $shipment->getLatitude();
     }
     $addressContainer->addText('name', 'Name')->setDefaultValue($defaultName);
     $requiring = true;
     if ($typeControl !== null) {
         $requiring = function (TextInput $control) use($typeControl) {
             return $control->addConditionOn($typeControl, self::NOT_EQUAL, ShipmentType::BY_TRANSPORT_COMPANY);
         };
         $typeControl->addCondition(self::NOT_EQUAL, ShipmentType::BY_TRANSPORT_COMPANY)->toggle('shipment-address');
     }
     $addressContainer->addStreetControl('street', $defaultStreet, $requiring);
     $addressContainer->addCityControl('city', $defaultCity, $requiring);
     $addressContainer->addZipControl('zip', $defaultZip, $requiring);
     $addressContainer->addGpsControls('longitude', 'latitude', $defaultLongitude, $defaultLatitude);
 }
Ejemplo n.º 3
0
 /**
  * @param ShipmentCollectionPoint|ShipmentPersonalPoint $shipment
  */
 private function getAddressDescription(ShipmentOption $shipment)
 {
     $description = sprintf('%s %s %s', $shipment->getStreet(), $shipment->getCity(), $shipment->getZip());
     if ($shipment->hasName()) {
         $description = sprintf('%s, %s', $shipment->getName(), $description);
     }
     return $description;
 }
Ejemplo n.º 4
0
 private function checkDuplicity(ShipmentOption $shipment)
 {
     if ($shipment instanceof ShipmentTransportCompany) {
         $duplicate = $this->transportCompanyRepository->findOneBy(['name' => $shipment->getName()]);
         if ($duplicate !== null) {
             throw new EntityDuplicateException(sprintf('Shipment company with name %s already exists.', $shipment->getName()));
         }
     }
 }