/** -------------------------
  * 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);
 }