/**
  * action createParticipant
  *
  * @param Reservation $reservation
  * @param Person $newParticipant
  * @return void
  */
 public function createParticipantAction(Reservation $reservation, Person $newParticipant)
 {
     if (!$reservation->getStatus() == Reservation::STATUS_DRAFT) {
         $reservation->setStatus(Reservation::STATUS_DRAFT);
     }
     $newParticipant->setType(Person::PERSON_TYPE_PARTICIPANT);
     $reservation->getLesson()->addParticipant($newParticipant);
     $reservation->addParticipant($newParticipant);
     $this->reservationRepository->update($reservation);
     $this->persistenceManager->persistAll();
     $this->addFlashMessage($this->translate('message.reservation.createParticipant.success'));
     $this->redirect('edit', null, null, ['reservation' => $reservation]);
 }
 /**
  * @test
  */
 public function setStatusForIntegerSetsStatus()
 {
     $this->subject->setStatus(12);
     $this->assertAttributeEquals(12, 'status', $this->subject);
 }
 /**
  * @test
  */
 public function newParticipantActionDoesNotDenyAccessIfReservationStatusIsDraft()
 {
     $mockRequest = $this->getMock(Request::class);
     $this->mockView();
     $this->inject($this->subject, 'request', $mockRequest);
     $reservation = new Reservation();
     $reservation->setStatus(Reservation::STATUS_DRAFT);
     $this->subject->expects($this->never())->method('denyAccess');
     $this->subject->newParticipantAction($reservation);
 }
 /**
  * Confirm Action
  *
  * @param Reservation $reservation
  * @return void
  */
 public function confirmAction(Reservation $reservation)
 {
     // @todo optionally read reservation status from settings
     $reservation->setStatus(Reservation::STATUS_SUBMITTED);
     $this->addFlashMessage($this->translate('message.reservation.confirm.success'));
     if (is_array($this->settings['reservation']['confirm']['notification'])) {
         foreach ($this->settings['reservation']['confirm']['notification'] as $identifier => $config) {
             $this->sendNotification($reservation, $identifier, $config);
         }
     }
     $this->reservationRepository->update($reservation);
     $this->redirect('show', null, null, ['reservation' => $reservation]);
 }