コード例 #1
0
ファイル: POIAssembler.php プロジェクト: binaryfr3ak/sfitixi
 /**
  * @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;
 }
コード例 #2
0
 /**
  * @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;
 }
コード例 #3
0
 /**
  * @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;
 }
コード例 #4
0
 /**
  * @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;
 }
コード例 #5
0
 /** -------------------------
  * 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;
 }
コード例 #6
0
 /**
  * @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;
 }
コード例 #7
0
 /**
  * @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);
 }