/** * @param DrivingOrder $drivingOrder * @return mixed|void */ public function handleNewDrivingOrder(DrivingOrder $drivingOrder) { /** @var DrivingOrderRepository $drivingOrderRepository */ $drivingOrderRepository = $this->container->get('drivingorder_repository'); /** @var DrivingMissionRepository $drivingMissionRepository */ $drivingMissionRepository = $this->container->get('drivingmission_repository'); /** @var DateTimeService $timeService */ $timeService = $this->container->get('tixi_api.datetimeservice'); $pickUpTime = $drivingOrder->getPickUpTime(); if ($pickUpTime->getTimezone()->getName() === 'UTC') { $drivingOrder->setPickUpTime($timeService->convertToLocalDateTime($pickUpTime)); } $drivingMission = DrivingMission::registerDrivingMissionFromOrder($drivingOrder); $drivingMissionRepository->store($drivingMission); $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; }