private function mapDrivingOrder(DrivingOrder $drivingOrder, $mission) { /* * map DrivingOrder infos to body array */ $body = new DrivingConfigPrinterBodyDTO(); $body->colA = $mission; $body->colB = $drivingOrder->getDrivingMission()->getDirection() > 0 ? 'R' : ''; $timeService = $this->container->get('tixi_api.datetimeservice'); $body->colC = $timeService->convertToLocalTimeString($drivingOrder->getPickUpTime()); $body->colD = $drivingOrder->getPassenger()->getHasMonthlyBilling() > 0 ? 'X' : ''; $passenger = $drivingOrder->getPassenger(); $home = $passenger->getAddress(); $body->colE = $passenger->getTitle() . ' ' . $passenger->getFirstname() . ' ' . $passenger->getLastname(); $body->colF = $this->getRideNodeAddress($drivingOrder->getRoute()->getStartAddress(), $home, $passenger->getTelephone()); $body->colG = $this->getRideNodeAddress($drivingOrder->getRoute()->getTargetAddress(), $home, $passenger->getTelephone()); $comment1 = $drivingOrder->getMemo(); $comment2 = $passenger->getNotice(); if (!empty($comment1) and !empty($comment1)) { $body->colH = $comment1 . '<br>' . $comment2; } else { $body->colH = $comment1 . $comment2; } $body->colI = $passenger->getIsInWheelChair() > 0 ? 'X' : ''; /** @var ArrayCollection $handicaps */ $handicaps = $passenger->getHandicaps(); $body->colJ = $handicaps->count() > 0 ? 'X' : ''; $body->colK = $passenger->getInsurancesAsString(); /** @var Zone $zone */ $zone = $drivingOrder->getZone(); $longDistance = false; if ($zone instanceof Zone) { $body->colL = $drivingOrder->getZone()->getName(); $longDistance = $zone->isUnclassified(); } else { $body->colL = '?'; } $body->colM = $drivingOrder->getCompanion(); $body->colX = ''; if ($longDistance) { /** @var DrivingOrder $returnOrder */ $returnOrder = $drivingOrder->getCorrespondingReturnOrder(); if ($returnOrder instanceof DrivingOrder) { $body->colX = $returnOrder->getPickUpDate()->format('d.m.Y') . ' ' . $returnOrder->getPickUpTime()->format('H:i'); } } return $body->getArray(); }
/** * 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; }
/** * @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; }
/** * Converts an overbooked driving order to a human readable string. * * @param DrivingOrder $drivingOrder * @return string */ private function getDrivingOrderString(DrivingOrder $drivingOrder) { /** @var DateTimeService $timeService */ $timeService = $this->container->get('tixi_api.datetimeservice'); $tr = $this->container->get('translator'); $body = $tr->trans('drivingorder.issue.body'); $dateStr = $drivingOrder->getPickUpDate()->format('d.m.Y'); $timeStr = $timeService->convertToLocalTimeString($drivingOrder->getPickUpTime()); $adr = $drivingOrder->getRoute()->getStartAddress(); $location = $adr->getStreet() . ', ' . $adr->getCity(); return $body . ' ' . $drivingOrder->getPassenger()->getNameStringForContact() . ' : ' . $dateStr . ' ' . $timeStr . ', ' . $location; }