Example #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()));
     }
 }
Example #2
0
 private function createShipment(ShipmentForm $form)
 {
     $values = $form->getValues();
     $type = ShipmentType::createFromValue($values->type);
     switch ($type->getValue()) {
         case ShipmentType::PERSONAL:
             $shipmentOption = new ShipmentPersonalPoint($values->address->name !== '' ? $values->address->name : null, $values->address->street, $values->address->city, $values->address->zip);
             if ($values->address->longitude !== '') {
                 $shipmentOption->setGps($values->address->longitude, $values->address->latitude);
             }
             break;
         case ShipmentType::BY_TRANSPORT_COMPANY:
             $shipmentOption = new ShipmentTransportCompany($values->companyName, $values->price);
             if ($values->enableFreeFromCertainOrderPrice) {
                 $shipmentOption->setMinimumOrderPriceToBeFree($values->minimumOrderPriceToBeFree);
             }
             break;
         case ShipmentType::TO_COLLECTION_POINT:
             $shipmentOption = new ShipmentCollectionPoint($values->address->name !== '' ? $values->address->name : null, $values->address->street, $values->address->city, $values->address->zip, $values->price);
             if ($values->address->longitude !== '') {
                 $shipmentOption->setGps($values->address->longitude, $values->address->latitude);
             }
             if ($values->enableFreeFromCertainOrderPrice) {
                 $shipmentOption->setMinimumOrderPriceToBeFree($values->minimumOrderPriceToBeFree);
             }
             break;
         default:
             throw new \LogicException();
     }
     try {
         if (!$form->hasErrors()) {
             $this->shipmentService->create($shipmentOption);
             $this->flashMessage('Shipment has been created.');
             $this->redirect(':Admin:Shipment:List:');
         }
     } catch (EntityDuplicateException $e) {
         $form->addError(sprintf('Shipment company with name %s already exists.', $shipmentOption->getName()));
     }
 }