예제 #1
0
 public function validateUserCourseRegistrationQueue(CourseRegistrationQueue $queue)
 {
     $status = $queue->getStatus();
     if ($status & CourseRegistrationQueue::WAITING_USER) {
         $status -= CourseRegistrationQueue::WAITING_USER;
         if ($status === 0) {
             $status = CourseRegistrationQueue::WAITING;
         }
         $queue->setStatus($status);
         $queue->setUserValidationDate(new \DateTime());
         $this->persistCourseRegistrationQueue($queue);
         $event = new LogCourseQueueUserValidateEvent($queue);
         $this->eventDispatcher->dispatch('log', $event);
     }
 }
예제 #2
0
 public function courseQueue(Course $course, User $user)
 {
     $now = new \DateTime();
     $status = 0;
     $validators = $course->getValidators();
     if ($course->getUserValidation()) {
         $status += CourseRegistrationQueue::WAITING_USER;
     }
     if ($course->getOrganizationValidation()) {
         $status += CourseRegistrationQueue::WAITING_ORGANIZATION;
     }
     if (count($validators) > 0) {
         $status += CourseRegistrationQueue::WAITING_VALIDATOR;
     } elseif ($course->getRegistrationValidation()) {
         $status += CourseRegistrationQueue::WAITING;
     }
     $courseQueue = new CourseRegistrationQueue();
     $courseQueue->setUser($user);
     $courseQueue->setCourse($course);
     $courseQueue->setApplicationDate($now);
     $courseQueue->setStatus($status);
     $this->om->persist($courseQueue);
     return $courseQueue;
 }