/** ------------------------- * Validate the driving order DTO, errors are written to the array. * These are the "low hanging fruit" and easy to test. Later on in the * code some other special cases may be found and reported in $errors. * * @param DrivingOrderRegisterDTO $registerDTO * @param Passenger $passenger * @param array $errors * @return array */ private function validateDrivingOrderDto(DrivingOrderRegisterDTO $registerDTO, Passenger $passenger, &$errors) { if ($registerDTO->isRepeated == true) { $errors[] = 'drivingorder.form.error.unknown'; } if (null === $passenger) { $errors[] = 'drivingorder.form.error.unknown'; } else { if ($passenger->getisAuthorizedToRide() == false) { $errors[] = 'drivingorder.form.error.notAuthorized'; return $errors; } } if (null === $registerDTO->anchorDate) { $errors[] = 'drivingorder.form.error.emptyDate'; } else { $now = new \DateTime(); $now->setTime(0, 0, 0); if ($registerDTO->anchorDate < $now) { $errors[] = 'drivingorder.form.error.anchorDate'; } } if (empty($registerDTO->orderTime->outwardTime) and empty($registerDTO->orderTime->returnTime)) { $errors[] = 'drivingorder.form.error.empty'; } if ($registerDTO->additionalTime < 0) { $errors[] = 'drivingorder.form.error.extraMinutes'; } if ($registerDTO->compagnion < 0) { $errors[] = 'drivingorder.form.error.companions'; } }
/** * @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; }
/** ------------------------- * Create a notice (one or more warnings) for a passenger * * @param Passenger $passenger * @return mixed */ protected function constructNotice(Passenger $passenger) { $tr = $this->container->get('translator'); $notice = $passenger->getNotice(); $notAuthorized = $passenger->getisAuthorizedToRide() ? null : $tr->trans('drivingorder.form.error.notAuthorized'); $linefeed = (isset($notice) and isset($notAuthorized)) ? "\n" : null; return $notAuthorized . $linefeed . $notice; }