コード例 #1
0
 /**
  * @param VehicleDepot $vehicleDepot
  * @return VehicleDepotRegisterDTO
  */
 public function toVehicleDepotRegisterDTO(VehicleDepot $vehicleDepot)
 {
     $vehicleDepotDTO = new VehicleDepotRegisterDTO();
     $vehicleDepotDTO->id = $vehicleDepot->getId();
     $vehicleDepotDTO->name = $vehicleDepot->getName();
     $vehicleDepotDTO->memo = $vehicleDepot->getMemo();
     $vehicleDepotDTO->address = $this->addressAssembler->addressToAddressLookaheadDTO($vehicleDepot->getAddress());
     return $vehicleDepotDTO;
 }
コード例 #2
0
ファイル: POIAssembler.php プロジェクト: binaryfr3ak/sfitixi
 /**
  * @param POI $poi
  * @return POIRegisterDTO
  */
 public function poiToPOIRegisterDTO(POI $poi)
 {
     $poiDTO = new POIRegisterDTO();
     $poiDTO->id = $poi->getId();
     $poiDTO->isActive = $poi->getIsActive();
     $poiDTO->name = $poi->getName();
     $poiDTO->department = $poi->getDepartment();
     $poiDTO->telephone = $poi->getTelephone();
     $poiDTO->comment = $poi->getComment();
     $poiDTO->details = $poi->getDetails();
     $poiDTO->keywords = $poi->getKeywords();
     $poiDTO->address = $this->addressAssembler->addressToAddressLookaheadDTO($poi->getAddress());
     return $poiDTO;
 }
コード例 #3
0
 /**
  * @param Passenger $passenger
  * @return PassengerRegisterDTO
  */
 public function passengerToPassengerRegisterDTO(Passenger $passenger)
 {
     $passengerDTO = new PassengerRegisterDTO();
     $passengerDTO->person_id = $passenger->getId();
     $passengerDTO->gender = $passenger->getGender();
     $passengerDTO->title = $passenger->getTitle();
     $passengerDTO->firstname = $passenger->getFirstname();
     $passengerDTO->lastname = $passenger->getLastname();
     $passengerDTO->telephone = $passenger->getTelephone();
     $passengerDTO->email = $passenger->getEmail();
     $passengerDTO->entryDate = $passenger->getEntryDate();
     $passengerDTO->birthday = $passenger->getBirthday();
     $passengerDTO->extraMinutes = $passenger->getExtraMinutes();
     $passengerDTO->details = $passenger->getDetails();
     $passengerDTO->contradictVehicleCategories = $passenger->getContradictVehicleCategories();
     $passengerDTO->personCategories = $passenger->getPersonCategories();
     $passengerDTO->isInWheelChair = $passenger->getIsInWheelChair();
     $passengerDTO->hasMonthlyBilling = $passenger->getHasMonthlyBilling();
     $passengerDTO->notice = $passenger->getNotice();
     $passengerDTO->handicaps = $passenger->getHandicaps();
     $passengerDTO->insurances = $passenger->getInsurances();
     $passengerDTO->isAuthorizedToRide = $passenger->getisAuthorizedToRide();
     $passengerDTO->building = $passenger->getAddress()->getBuilding();
     $passengerDTO->lookaheadaddress = $this->addressAssembler->addressToAddressLookaheadDTO($passenger->getAddress());
     $passengerDTO->custodian = $passenger->getCustodian();
     return $passengerDTO;
 }
コード例 #4
0
 /**
  * @param RepeatedDrivingOrderPlan $repeatedDrivingOrderPlan
  * @return DrivingOrderRegisterDTO
  */
 public function drivingOrderPlanToRegisterDTO(RepeatedDrivingOrderPlan $repeatedDrivingOrderPlan)
 {
     $registerDTO = new DrivingOrderRegisterDTO();
     /* read repeated driving order plan */
     $registerDTO->id = $repeatedDrivingOrderPlan->getId();
     $registerDTO->anchorDate = $repeatedDrivingOrderPlan->getAnchorDate();
     $registerDTO->lookaheadaddressFrom = $this->addressAssembler->addressToAddressLookaheadDTO($repeatedDrivingOrderPlan->getRoute()->getStartAddress());
     $registerDTO->lookaheadaddressTo = $this->addressAssembler->addressToAddressLookaheadDTO($repeatedDrivingOrderPlan->getRoute()->getTargetAddress());
     $registerDTO->zoneName = $repeatedDrivingOrderPlan->getZone()->getName();
     $registerDTO->isRepeated = true;
     $registerDTO->withHolidays = $repeatedDrivingOrderPlan->getWithHolidays();
     $registerDTO->compagnion = $repeatedDrivingOrderPlan->getCompanion();
     $registerDTO->memo = $repeatedDrivingOrderPlan->getMemo();
     $registerDTO->additionalTime = $repeatedDrivingOrderPlan->getAdditionalTime();
     $registerDTO->endDate = $repeatedDrivingOrderPlan->getEndingDate() != DateTimeService::getMaxDateTime() ? $repeatedDrivingOrderPlan->getEndingDate() : null;
     /* read repeated driving orders */
     $outwardTime = null;
     $returnTime = null;
     $repeatedOrders = $repeatedDrivingOrderPlan->getRepeatedDrivingOrdersAsArray();
     /** @var RepeatedDrivingOrder $repeatedOrder*/
     foreach ($repeatedOrders as $repeatedOrder) {
         /* normally there should be one or two rows in this array */
         $registerDTO->weekday = $repeatedOrder->getWeekday();
         $direction = $repeatedOrder->getDirection();
         if ($direction === RepeatedDrivingOrder::OUTWARD_DIRECTION) {
             $outwardTime = $repeatedOrder->getPickUpTime();
         } elseif ($direction === RepeatedDrivingOrder::RETURN_DIRECTION) {
             $returnTime = $repeatedOrder->getPickUpTime();
         }
         $registerDTO->repeatedOrderTime = $this->createOrUpdateOrderTimeDTO($outwardTime, $returnTime, $registerDTO->orderTime);
     }
     return $registerDTO;
 }
コード例 #5
0
 /**
  * @param Custodian $custodian
  * @return CustodianRegisterDTO
  */
 public function custodianToCustodianRegisterDTO(Custodian $custodian)
 {
     $custodianDTO = new CustodianRegisterDTO();
     $custodianDTO->person_id = $custodian->getId();
     $custodianDTO->gender = $custodian->getGender();
     $custodianDTO->title = $custodian->getTitle();
     $custodianDTO->firstname = $custodian->getFirstname();
     $custodianDTO->lastname = $custodian->getLastname();
     $custodianDTO->telephone = $custodian->getTelephone();
     $custodianDTO->email = $custodian->getEmail();
     $custodianDTO->entryDate = $custodian->getEntryDate();
     $custodianDTO->birthday = $custodian->getBirthday();
     $custodianDTO->extraMinutes = $custodian->getExtraMinutes();
     $custodianDTO->details = $custodian->getDetails();
     $custodianDTO->isAuthorizedToRide = $custodian->getisAuthorizedToRide();
     $custodianDTO->building = $custodian->getAddress()->getBuilding();
     $custodianDTO->lookaheadaddress = $this->addressAssembler->addressToAddressLookaheadDTO($custodian->getAddress());
     return $custodianDTO;
 }
コード例 #6
0
 /**
  * @param Driver $driver
  * @return DriverRegisterDTO
  */
 public function driverToDriverRegisterDTO(Driver $driver)
 {
     $driverDTO = new DriverRegisterDTO();
     $driverDTO->person_id = $driver->getId();
     $driverDTO->gender = $driver->getGender();
     $driverDTO->title = $driver->getTitle();
     $driverDTO->firstname = $driver->getFirstname();
     $driverDTO->lastname = $driver->getLastname();
     $driverDTO->telephone = $driver->getTelephone();
     $driverDTO->fax = $driver->getFax();
     $driverDTO->email = $driver->getEmail();
     $driverDTO->entryDate = $driver->getEntryDate();
     $driverDTO->birthday = $driver->getBirthday();
     $driverDTO->extraMinutes = $driver->getExtraMinutes();
     $driverDTO->details = $driver->getDetails();
     $driverDTO->licenceNumber = $driver->getLicenceNumber();
     $driverDTO->wheelChairAttendance = $driver->getWheelChairAttendance();
     $driverDTO->operationWish = $driver->getOperationWish();
     $driverDTO->driverCategory = $driver->getDriverCategory();
     $driverDTO->lookaheadaddress = $this->addressAssembler->addressToAddressLookaheadDTO($driver->getAddress());
     $driverDTO->contradictVehicleCategories = $driver->getContradictVehicleCategories();
     return $driverDTO;
 }
コード例 #7
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;
 }