/** * @param POI $poi * @param POIRegisterDTO $poiDTO * @throws \Exception * @return POI */ public function registerDTOToPOI(POIRegisterDTO $poiDTO, POI $poi) { $address = $this->addressAssembler->addressLookaheadDTOtoAddress($poiDTO->address); $poi->updatePOIData($poiDTO->name, $address, $poiDTO->department, $poiDTO->telephone, $poiDTO->comment, $poiDTO->details); $poi->setKeywords($poiDTO->keywords); return $poi; }
/** * @param Custodian $custodian * @param CustodianRegisterDTO $custodianDTO * @return Custodian */ public function registerDTOToCustodian(CustodianRegisterDTO $custodianDTO, Custodian $custodian) { $address = $this->addressAssembler->addressLookaheadDTOtoAddress($custodianDTO->lookaheadaddress); $address->setBuilding($custodianDTO->building); $custodian->updateCustodianData($custodianDTO->gender, $custodianDTO->firstname, $custodianDTO->lastname, $custodianDTO->telephone, $address, $custodianDTO->title, $custodianDTO->email, $custodianDTO->entryDate, $custodianDTO->birthday, $custodianDTO->extraMinutes, $custodianDTO->details, $custodianDTO->isAuthorizedToRide); return $custodian; }
/** * @param Passenger $passenger * @param PassengerRegisterDTO $passengerDTO * @return Passenger */ public function registerDTOToPassenger(Passenger $passenger, PassengerRegisterDTO $passengerDTO) { $address = $this->addressAssembler->addressLookaheadDTOtoAddress($passengerDTO->lookaheadaddress); $address->setBuilding($passengerDTO->building); $passenger->updatePassengerData($passengerDTO->gender, $passengerDTO->firstname, $passengerDTO->lastname, $passengerDTO->telephone, $address, $passengerDTO->title, $passengerDTO->isInWheelChair, $passengerDTO->hasMonthlyBilling, $passengerDTO->email, $passengerDTO->entryDate, $passengerDTO->birthday, $passengerDTO->extraMinutes, $passengerDTO->details, $passengerDTO->notice, $passengerDTO->isAuthorizedToRide); $passenger->setHandicaps($passengerDTO->handicaps); $passenger->setInsurances($passengerDTO->insurances); $passenger->setContradictVehicleCategories($passengerDTO->contradictVehicleCategories); $passenger->setPersonCategories($passengerDTO->personCategories); if (!empty($passengerDTO->custodian)) { $passenger->assignCustodian($passengerDTO->custodian); } else { $passenger->removeCustodian(); } return $passenger; }
/** * @param DrivingOrderRegisterDTO $registerDTO * @param Passenger $passenger * @param array $errors * @return RepeatedDrivingOrderPlan */ public function registerDTOtoNewDrivingOrderPlan(DrivingOrderRegisterDTO $registerDTO, Passenger $passenger, &$errors) { /** @var Address $fromAddress */ $fromAddress = $this->addressAssembler->addressLookaheadDTOtoAddress($registerDTO->lookaheadaddressFrom); /** @var Address $toAddress */ $toAddress = $this->addressAssembler->addressLookaheadDTOtoAddress($registerDTO->lookaheadaddressTo); /** @var Zone $zone */ $zone = $this->zonePlanManagement->getZoneWithHighestPriorityForCities(array($fromAddress->getCity(), $toAddress->getCity())); if (null == $zone) { $errors[] = 'drivingorder.form.error.zone'; } if ($zone->isUnclassified()) { $errors[] = 'repeateddrivingorder.form.error.longDistance'; } $route = $this->routeManagement->getRouteFromAddresses($fromAddress, $toAddress); $drivingOrderPlan = RepeatedDrivingOrderPlan::registerRepeatedDrivingOrderPlan($registerDTO->anchorDate, $registerDTO->withHolidays, $registerDTO->compagnion, $registerDTO->endDate, $registerDTO->memo, $registerDTO->additionalTime); $drivingOrderPlan->assignPassenger($passenger); $drivingOrderPlan->assignRoute($route); $drivingOrderPlan->assignZone($zone); $passenger->assignRepeatedDrivingOrderPlan($drivingOrderPlan); return $drivingOrderPlan; }
/** ------------------------- * Register one driving order (one way: outbound or return) * * @param DrivingOrderRegisterDTO $registerDTO * @param Passenger $passenger * @param $direction * @param mixed $status * @param array $errors * @return DrivingOrder|null * @throws Exception */ protected function registerDtoToDrivingOrder(DrivingOrderRegisterDTO $registerDTO, Passenger $passenger, $direction, $status, &$errors) { /** @var Address $fromAddress */ $fromAddress = $this->addressAssembler->addressLookaheadDTOtoAddress($registerDTO->lookaheadaddressFrom); /** @var Address $toAddress */ $toAddress = $this->addressAssembler->addressLookaheadDTOtoAddress($registerDTO->lookaheadaddressTo); if ($fromAddress->getId() === $toAddress->getId() or null === $fromAddress or null === $toAddress) { $errors[] = 'drivingorder.form.error.illegalRoute'; return null; } /** @var Zone $zone */ $zone = $this->zonePlanManagement->getZoneWithHighestPriorityForCities(array($fromAddress->getCity(), $toAddress->getCity())); if (null == $zone) { $errors[] = 'drivingorder.form.error.zone'; return null; } /** @var Route $route */ $route = null; $pickupTime = null; try { if ($direction === self::OUTWARD_DIRECTION) { $pickupTime = $registerDTO->orderTime->outwardTime; $route = $this->routeManagement->getRouteFromAddresses($fromAddress, $toAddress); } elseif ($direction === self::RETURN_DIRECTION) { $pickupTime = $registerDTO->orderTime->returnTime; $route = $this->routeManagement->getRouteFromAddresses($toAddress, $fromAddress); } else { $errors[] = 'drivingorder.form.error.unknown'; } } catch (Exception $e) { $errors[] = 'drivingorder.form.error.routingError'; return null; } if (null === $route or null === $pickupTime) { $errors[] = 'drivingorder.form.error.routingError'; $this->logger->error('Driving order: routing error (' . "Direction => {$direction}, " . "From => " . $fromAddress->getStreet() . ' ' . $fromAddress->getCity() . ', ' . "To => " . $toAddress->getStreet() . ', ' . $toAddress->getCity() . ')'); return null; } else { $drivingOrder = DrivingOrder::registerDrivingOrder($passenger, $registerDTO->anchorDate, $pickupTime, $registerDTO->compagnion, $registerDTO->memo, $status, false, $registerDTO->additionalTime); $drivingOrder->assignRoute($route); $drivingOrder->assignZone($zone); $passenger->assignDrivingOrder($drivingOrder); return $drivingOrder; } return null; }
/** * @param Driver $driver * @param DriverRegisterDTO $driverDTO * @throws \Exception * @return Driver */ public function registerDTOToDriver(DriverRegisterDTO $driverDTO, Driver $driver) { $driver->updateDriverData($driverDTO->gender, $driverDTO->firstname, $driverDTO->lastname, $driverDTO->telephone, $this->addressAssembler->addressLookaheadDTOtoAddress($driverDTO->lookaheadaddress), $driverDTO->licenceNumber, $driverDTO->driverCategory, $driverDTO->wheelChairAttendance, $driverDTO->title, $driverDTO->email, $driverDTO->entryDate, $driverDTO->birthday, $driverDTO->extraMinutes, $driverDTO->details, $driverDTO->operationWish, $driverDTO->fax, $driverDTO->contradictVehicleCategories); return $driver; }
/** * @param VehicleDepot $vehicleDepot * @param VehicleDepotRegisterDTO $dto */ public function registerDTOtoVehicleDepot(VehicleDepot $vehicleDepot, VehicleDepotRegisterDTO $dto) { $address = $this->addressAssembler->addressLookaheadDTOtoAddress($dto->address); $vehicleDepot->updateVehicleDepotData($dto->name, $address, $dto->memo); }