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