/** * @param DrivingOrder $drivingOrder * @return DrivingMission */ public static function registerDrivingMissionFromOrder(DrivingOrder $drivingOrder) { $drivingMission = new DrivingMission(); $drivingMission->setDirection(self::SAME_START); $drivingMission->setServiceOrder(array($drivingOrder->getId())); $boardingTime = DispositionVariables::getBoardingTimes(); $extraMinutesPassenger = $drivingOrder->getPassenger()->getExtraMinutes(); $additionalTimesOnRide = $boardingTime + $extraMinutesPassenger; $serviceMinuteOfDay = DateTimeService::getMinutesOfDay($drivingOrder->getPickUpTime()); $serviceDuration = $drivingOrder->getRoute()->getDurationInMinutes() + $additionalTimesOnRide; $serviceDistance = $drivingOrder->getRoute()->getDistanceInMeters(); $drivingMission->setServiceMinuteOfDay($serviceMinuteOfDay); $drivingMission->setServiceDuration($serviceDuration); $drivingMission->setServiceDistance($serviceDistance); //DrivingMission <-> Order $drivingMission->assignDrivingOrder($drivingOrder); $drivingOrder->assignDrivingMission($drivingMission); return $drivingMission; }
/** * Convert one driving order to one embedded list DTO * * @param DrivingOrder $drivingOrder * @return DrivingOrderEmbeddedListDTO */ public function drivingOrderToDrivingOrderEmbeddedListDTO(DrivingOrder $drivingOrder) { $listDTO = new DrivingOrderEmbeddedListDTO(); $listDTO->id = $drivingOrder->getId(); $listDTO->passengerId = $drivingOrder->getPassenger()->getId(); $listDTO->isDeleted = !$drivingOrder->isActive(); $listDTO->sortOrder = $drivingOrder->getSortOrder(); $listDTO->pickupDate = $this->dateTimeService->convertToLocalDateTime($drivingOrder->getPickUpDate())->format('d.m.Y'); $listDTO->pickupTime = $this->dateTimeService->convertToLocalDateTime($drivingOrder->getPickUpTime())->format('H:i'); $listDTO->addressFromString = $drivingOrder->getRoute()->getStartAddress()->toString(); $listDTO->addressToString = $drivingOrder->getRoute()->getTargetAddress()->toString(); return $listDTO; }