Example #1
0
 /**
  * @test
  * @return void
  */
 public function uniqueEmailCheckSetsValueForBoolen()
 {
     $this->subject->setUniqueEmailCheck(true);
     $this->assertTrue($this->subject->getUniqueEmailCheck());
 }
 /**
  * Checks, if the registration can successfully be created. Note, that
  * $result is passed by reference!
  *
  * @param \DERHANSEN\SfEventMgt\Domain\Model\Event $event Event
  * @param \DERHANSEN\SfEventMgt\Domain\Model\Registration $registration Registration
  * @param RegistrationResult $result Result
  *
  * @return bool
  */
 public function checkRegistrationSuccess($event, $registration, &$result)
 {
     $success = true;
     if ($event->getEnableRegistration() === false) {
         $success = false;
         $result = RegistrationResult::REGISTRATION_NOT_ENABLED;
     } elseif ($event->getRegistrationDeadline() != null && $event->getRegistrationDeadline() < new \DateTime()) {
         $success = false;
         $result = RegistrationResult::REGISTRATION_FAILED_DEADLINE_EXPIRED;
     } elseif ($event->getStartdate() < new \DateTime()) {
         $success = false;
         $result = RegistrationResult::REGISTRATION_FAILED_EVENT_EXPIRED;
     } elseif ($event->getRegistration()->count() >= $event->getMaxParticipants() && $event->getMaxParticipants() > 0 && !$event->getEnableWaitlist()) {
         $success = false;
         $result = RegistrationResult::REGISTRATION_FAILED_MAX_PARTICIPANTS;
     } elseif ($event->getFreePlaces() < $registration->getAmountOfRegistrations() && $event->getMaxParticipants() > 0 && !$event->getEnableWaitlist()) {
         $success = false;
         $result = RegistrationResult::REGISTRATION_FAILED_NOT_ENOUGH_FREE_PLACES;
     } elseif ($event->getMaxRegistrationsPerUser() < $registration->getAmountOfRegistrations()) {
         $success = false;
         $result = RegistrationResult::REGISTRATION_FAILED_MAX_AMOUNT_REGISTRATIONS_EXCEEDED;
     } elseif ($event->getUniqueEmailCheck() && $this->emailNotUnique($event, $registration->getEmail())) {
         $success = false;
         $result = RegistrationResult::REGISTRATION_FAILED_EMAIL_NOT_UNIQUE;
     } elseif ($event->getRegistration()->count() >= $event->getMaxParticipants() && $event->getMaxParticipants() > 0 && $event->getEnableWaitlist()) {
         $result = RegistrationResult::REGISTRATION_SUCCESSFUL_WAITLIST;
     }
     return $success;
 }