/** -------------------------
  * Delete driving order logically, not physically.
  * Set the status according to the context (setCancelled).
  *
  * @param DrivingOrder $drivingOrder
  * @param boolean $setCancelled
  * @return mixed|void
  */
 public function handleDeletionOfDrivingOrder(DrivingOrder $drivingOrder, $setCancelled = false)
 {
     /** @var DrivingOrderRepository $drivingOrderRepository */
     $drivingOrderRepository = $this->container->get('drivingorder_repository');
     /** @var DrivingMissionRepository $drivingMissionRepository */
     $drivingMissionRepository = $this->container->get('drivingmission_repository');
     /* delete driving mission */
     $drivingMission = $drivingOrder->getDrivingMission();
     if (null !== $drivingMission) {
         $drivingOrder->removeDrivingMission();
         $drivingMission->deletePhysically();
         $drivingMissionRepository->remove($drivingMission);
     }
     /* delete driving order */
     if ($setCancelled == true) {
         $drivingOrder->setStatus(DrivingOrder::CANCELED);
     }
     $drivingOrder->deleteLogically();
     $drivingOrderRepository->store($drivingOrder);
 }
 private function mapDrivingOrder(DrivingOrder $drivingOrder, $mission)
 {
     /*
      * map DrivingOrder infos to body array
      */
     $body = new DrivingConfigPrinterBodyDTO();
     $body->colA = $mission;
     $body->colB = $drivingOrder->getDrivingMission()->getDirection() > 0 ? 'R' : '';
     $timeService = $this->container->get('tixi_api.datetimeservice');
     $body->colC = $timeService->convertToLocalTimeString($drivingOrder->getPickUpTime());
     $body->colD = $drivingOrder->getPassenger()->getHasMonthlyBilling() > 0 ? 'X' : '';
     $passenger = $drivingOrder->getPassenger();
     $home = $passenger->getAddress();
     $body->colE = $passenger->getTitle() . ' ' . $passenger->getFirstname() . ' ' . $passenger->getLastname();
     $body->colF = $this->getRideNodeAddress($drivingOrder->getRoute()->getStartAddress(), $home, $passenger->getTelephone());
     $body->colG = $this->getRideNodeAddress($drivingOrder->getRoute()->getTargetAddress(), $home, $passenger->getTelephone());
     $comment1 = $drivingOrder->getMemo();
     $comment2 = $passenger->getNotice();
     if (!empty($comment1) and !empty($comment1)) {
         $body->colH = $comment1 . '<br>' . $comment2;
     } else {
         $body->colH = $comment1 . $comment2;
     }
     $body->colI = $passenger->getIsInWheelChair() > 0 ? 'X' : '';
     /** @var ArrayCollection $handicaps */
     $handicaps = $passenger->getHandicaps();
     $body->colJ = $handicaps->count() > 0 ? 'X' : '';
     $body->colK = $passenger->getInsurancesAsString();
     /** @var Zone $zone */
     $zone = $drivingOrder->getZone();
     $longDistance = false;
     if ($zone instanceof Zone) {
         $body->colL = $drivingOrder->getZone()->getName();
         $longDistance = $zone->isUnclassified();
     } else {
         $body->colL = '?';
     }
     $body->colM = $drivingOrder->getCompanion();
     $body->colX = '';
     if ($longDistance) {
         /** @var DrivingOrder $returnOrder */
         $returnOrder = $drivingOrder->getCorrespondingReturnOrder();
         if ($returnOrder instanceof DrivingOrder) {
             $body->colX = $returnOrder->getPickUpDate()->format('d.m.Y') . ' ' . $returnOrder->getPickUpTime()->format('H:i');
         }
     }
     return $body->getArray();
 }