/** ------------------------- * 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); }
/** * @param Passenger $passenger * @param $pickupDate * @param $pickupTime * @param null $companion * @param null $memo * @param int $status * @param bool $manualRoute * @param null $additionalTime * @return DrivingOrder */ public static function registerDrivingOrder(Passenger $passenger, $pickupDate, $pickupTime, $companion = null, $memo = null, $status = self::BOOKED, $manualRoute = false, $additionalTime = null) { $correctedCompanion = null !== $companion ? $companion : 0; $correctedAdditionalTime = null !== $additionalTime ? $additionalTime : 0; $drivingOrder = new DrivingOrder(); $drivingOrder->assignPassenger($passenger); $drivingOrder->setPickUpDate($pickupDate); $drivingOrder->setPickUpTime($pickupTime); $drivingOrder->setSortOrder($drivingOrder->buildSortOrder($pickupDate, $pickupTime)); $drivingOrder->setCompanion($correctedCompanion); $drivingOrder->setStatus($status); $drivingOrder->setManualRoute($manualRoute); $drivingOrder->setMemo($memo); $drivingOrder->setAdditionalTime($correctedAdditionalTime); return $drivingOrder; }