/**
  * 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);
     }
 }
Esempio n. 2
0
 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));
 }
Esempio n. 3
0
 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);
 }
Esempio n. 4
0
 /**
  * @param Vehicle $vehicle
  */
 public static function removeVehicle(Vehicle $vehicle)
 {
     foreach ($vehicle->getServicePlans() as $s) {
         /**@var $s ServicePlan */
         $s->removeVehicle();
     }
     $vehicle->removeSupervisor();
 }
Esempio n. 5
0
 /**
  * @param Vehicle $vehicle
  */
 public function removeSupervisedVehicle(Vehicle $vehicle)
 {
     $vehicle->removeSupervisor();
     $this->supervisedVehicles->removeElement($vehicle);
 }
Esempio n. 6
0
 /**
  * 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);
     }
 }
Esempio n. 8
0
 /**
  * @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;
 }