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;
 }
示例#3
0
 /**
  * @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;
 }