/** * Assign vehicle to driving pool(s) and mark resource as occupied. * Prerequisite: the vehicle has been tested to be available. * * @param Vehicle $vehicle * @param DispositionResourcesDTO $dto */ protected function assignVehicleToDrivingPools(Vehicle $vehicle, DispositionResourcesDTO $dto) { foreach ($dto->getShifts() as $idx => $shift) { $this->resources[$shift->getId()][$vehicle->getId()] = true; $drivingPool = $dto->getDrivingPools()[$idx]; $drivingPool->assignVehicle($vehicle); } }
private function vehicleRemove(Vehicle $vehicle) { $id = $vehicle->getId(); Vehicle::removeVehicle($vehicle); $this->init->vehicleRepo->remove($vehicle); $this->init->em->flush(); $this->assertEquals(null, $this->init->vehicleRepo->find($id)); }
private function driverSuperviseVehicle(Driver $driver) { $vehicleCategory = VehicleCategory::registerVehicleCategory('Movano Maxi', 4, 2); $this->init->vehicleCategoryRepo->store($vehicleCategory); $vehicle = Vehicle::registerVehicle('Movano 1', 'CH123', new \DateTime('2012-11-11'), 1, $vehicleCategory); $this->init->vehicleRepo->store($vehicle); $driver->assignSupervisedVehicle($vehicle); $this->init->driverRepo->store($driver); $this->init->em->flush(); /**@var Driver $driverFound */ $driverFound = $this->init->driverRepo->find($driver->getId()); $supervisedVehicles = $driverFound->getSupervisedVehicles(); $found = true; foreach ($supervisedVehicles as $s) { if ($s->getId() == $vehicle->getId()) { $found = true; } } $this->assertTrue($found); }
/** * @param Vehicle $vehicle */ public static function removeVehicle(Vehicle $vehicle) { foreach ($vehicle->getServicePlans() as $s) { /**@var $s ServicePlan */ $s->removeVehicle(); } $vehicle->removeSupervisor(); }
/** * @param Vehicle $vehicle */ public function removeSupervisedVehicle(Vehicle $vehicle) { $vehicle->removeSupervisor(); $this->supervisedVehicles->removeElement($vehicle); }
/** * Set DTO for one single driving mission (not a shared ride) * * @param DailyPlanEditMissionDTO $missionDTO * @param DrivingMission $drivingMission * @param Vehicle|null $vehicle */ private function setSingleRideDTO(DailyPlanEditMissionDTO $missionDTO, DrivingMission $drivingMission, Vehicle $vehicle = null) { $missionDTO->isSharedRide = self::NO; $errors = array(); $missionDTO->hasErrorMessage = self::NO; $tr = $this->container->get('translator'); /** @var DrivingOrder $drivingOrder */ $drivingOrder = $drivingMission->getDrivingOrders()[0]; /** @var Route $route */ $route = $drivingOrder->getRoute(); $startCity = $route->getStartAddress()->getCity(); $targetCity = $route->getTargetAddress()->getCity(); $missionDTO->isLongDistance = self::NO; /** @var Zone $zone */ $zone = $drivingOrder->getZone(); if ($zone instanceof Zone && $zone->isUnclassified()) { $missionDTO->isLongDistance = self::YES; $missionDTO->missionName = $startCity . "→" . $targetCity; } else { $missionDTO->missionName = $this->getLocalMissionName($startCity, $targetCity); } $missionDTO->hasWheelChair = $drivingOrder->getPassenger()->getIsInWheelChair() ? self::YES : self::NO; if (null !== $vehicle) { if (!$drivingOrder->getPassenger()->isCompatibleWithVehicleCategory($vehicle->getCategory())) { $errors[] = $tr->trans('dailyplan.error.wrong.vehicle'); } } $missionDTO->serviceTitle = $tr->trans('dailyplan.field.from') . ": " . $route->getStartAddress()->toString() . "
" . $tr->trans('dailyplan.field.to') . ": " . $route->getTargetAddress()->toString() . "
" . $tr->trans('dailyplan.field.ride') . "(ID:" . $drivingMission->getId() . "/" . $drivingOrder->getId() . "): " . $this->dateTimeService->convertToLocalTimeString($drivingOrder->getPickUpTime()) . "UTC+1, " . round($drivingMission->getServiceDistance() / 1000, 1) . "km, " . $drivingMission->getServiceDuration() . "min
" . $tr->trans('dailyplan.field.passenger') . ": " . $drivingOrder->getPassenger()->getNameStringForContact(); if (count($errors) > 0) { $missionDTO->hasErrorMessage = self::YES; $missionDTO->serviceTitle = $this->setErrorMessagesInTitle($errors, $missionDTO->serviceTitle); } }
/** * @param ServicePlanRegisterDTO $servicePlanDTO * @param Vehicle $vehicle */ protected function registerOrUpdateServicePlanToVehicle(ServicePlanRegisterDTO $servicePlanDTO, Vehicle $vehicle) { if (empty($servicePlanDTO->id)) { $servicePlan = $this->get('tixi_api.assemblerserviceplan')->registerDTOtoNewServicePlan($servicePlanDTO); $vehicle->assignServicePlan($servicePlan); $this->get('serviceplan_repository')->store($servicePlan); } else { $servicePlan = $this->get('serviceplan_repository')->find($servicePlanDTO->id); $this->get('tixi_api.assemblerserviceplan')->registerDTOtoServicePlan($servicePlanDTO, $servicePlan); } }
/** * @param Vehicle $vehicle * @return VehicleListDTO */ public function toVehicleListDTO(Vehicle $vehicle) { $vehicleListDTO = new VehicleListDTO(); $vehicleListDTO->id = $vehicle->getId(); $vehicleListDTO->name = $vehicle->getName(); $vehicleListDTO->licenceNumber = $vehicle->getLicenceNumber(); $vehicleListDTO->parking = $vehicle->getParking(); $vehicleListDTO->depot = $vehicle->getDepot()->getName(); $vehicleListDTO->dateOfFirstRegistration = $vehicle->getDateOfFirstRegistration()->format('d.m.Y'); $vehicleListDTO->category = $vehicle->getCategory()->getName(); $vehicleListDTO->amountOfSeats = $vehicle->getCategory()->getAmountOfSeats(); $vehicleListDTO->amountOfWheelChairs = $vehicle->getCategory()->getAmountOfWheelChairs(); return $vehicleListDTO; }