/** * @param RepeatedDrivingOrderPlan $orderPlan * @return RepeatedDrivingOrderEmbeddedListDTO */ public function orderPlanToEmbeddedListDTOs(RepeatedDrivingOrderPlan $orderPlan) { $dto = new RepeatedDrivingOrderEmbeddedListDTO(); $dto->id = $orderPlan->getId(); $dto->isDeleted = !$orderPlan->isActive(); $dto->anchorDate = $orderPlan->getAnchorDate()->format('d.m.Y'); $dto->endDate = $orderPlan->getEndingDate() != DateTimeService::getMaxDateTime() ? $orderPlan->getEndingDate()->format('d.m.Y') : 'repeateddrivingorder.validtillrecalled'; /** @var Passenger $passenger */ $passenger = $orderPlan->getPassenger(); $dto->passengerId = $passenger->getId(); $repeatedDrivingOrders = $orderPlan->getRepeatedDrivingOrders(); /** @var RepeatedDrivingOrder $repeatedDrivingOrder */ foreach ($repeatedDrivingOrders as $repeatedDrivingOrder) { if ($repeatedDrivingOrder->getDirection() == RepeatedDrivingOrder::OUTWARD_DIRECTION) { $dto->weekDay = $this->convertWeekDay($repeatedDrivingOrder->getWeekday()); $dto->outwardTime = $this->dateTimeService->convertToLocalTimeString($repeatedDrivingOrder->getPickUpTime()); } else { $dto->returnTime = $this->dateTimeService->convertToLocalTimeString($repeatedDrivingOrder->getPickUpTime()); } } return $dto; }
/** ------------------------- * Build one driving order for one working day. * * @param RepeatedDrivingOrderPlan $drivingOrderPlan * @param RepeatedDrivingOrder $repeatedDrivingOrder * @param \DateTime $day * @param mixed $status * @return DrivingOrder */ protected function handleNewDrivingOrderForDate(RepeatedDrivingOrderPlan &$drivingOrderPlan, $repeatedDrivingOrder, \DateTime $day, $status) { $drivingOrder = DrivingOrder::registerDrivingOrder($drivingOrderPlan->getPassenger(), $day, $repeatedDrivingOrder->getPickUpTime(), $drivingOrderPlan->getCompanion(), $drivingOrderPlan->getMemo(), $status, false, $drivingOrderPlan->getAdditionalTime()); $drivingOrder->assignZone($drivingOrderPlan->getZone()); $drivingOrder->assignRepeatedDrivingOrderPlan($drivingOrderPlan); $drivingOrder->assignRepeatedDrivingOrder($repeatedDrivingOrder); $drivingOrderPlan->assignDrivingOrder($drivingOrder); return $drivingOrder; }
/** * @param \DateTime $anchorDate * @param null $withHolidays * @param null $companion * @param \DateTime $endingDate * @param null $memo * @param null $additionalTime * @return RepeatedDrivingOrderPlan */ public static function registerRepeatedDrivingOrderPlan(\DateTime $anchorDate, $withHolidays = null, $companion = null, \DateTime $endingDate = null, $memo = null, $additionalTime = null) { $correctedWithHolidays = null !== $withHolidays ? $withHolidays : false; $correctedCompanion = null !== $companion ? $companion : 0; $correctedAdditionalTime = null !== $additionalTime ? $additionalTime : 0; $correctedEndingDate = $endingDate !== null ? $endingDate : DateTimeService::getMaxDateTime(); $correctedMemo = $memo !== null ? $memo : ''; $rdPlan = new RepeatedDrivingOrderPlan(); $rdPlan->setAnchorDate($anchorDate); $rdPlan->setEndingDate($correctedEndingDate); $rdPlan->setWithHolidays($correctedWithHolidays); $rdPlan->setCompanion($correctedCompanion); $rdPlan->setMemo($correctedMemo); $rdPlan->setAdditionalTime($correctedAdditionalTime); return $rdPlan; }