Exemplo n.º 1
0
 /**
  * Save Single Date
  * @throws Trails_DoubleRenderError
  */
 public function saveSingleDate_action()
 {
     CSRFProtection::verifyRequest();
     $start_time = strtotime(sprintf('%s %s:00', Request::get('date'), Request::get('start_time')));
     $end_time = strtotime(sprintf('%s %s:00', Request::get('date'), Request::get('end_time')));
     if ($start_time > $end_time) {
         $this->storeRequest();
         PageLayout::postMessage(MessageBox::error(_('Die Zeitangaben sind nicht korrekt. Bitte überprüfen Sie diese!')));
         $this->redirect('course/timesrooms/createSingleDate');
         return;
     }
     $termin = new CourseDate();
     $termin->termin_id = $termin->getNewId();
     $termin->range_id = $this->course->id;
     $termin->date = $start_time;
     $termin->end_time = $end_time;
     $termin->autor_id = $GLOBALS['user']->id;
     $termin->date_typ = Request::get('dateType');
     $teachers = $this->course->getMembers('dozent');
     foreach (Request::getArray('related_teachers') as $dozent_id) {
         if (in_array($dozent_id, array_keys($teachers))) {
             $related_persons[] = User::find($dozent_id);
         }
     }
     if (isset($related_persons)) {
         $termin->dozenten = $related_persons;
     }
     foreach (Request::getArray('related_statusgruppen') as $statusgruppe_id) {
         $related_groups[] = Statusgruppen::find($statusgruppe_id);
     }
     if (isset($related_groups)) {
         $termin->statusgruppen = $related_groups;
     }
     if (!Request::get('room') || Request::get('room') === 'nothing') {
         $termin->raum = Request::get('freeRoomText');
         $termin->store();
     } else {
         $termin->store();
         $room = new ResourceAssignment();
         $room->assign_user_id = $termin->termin_id;
         $room->resource_id = Request::get('room');
         $room->begin = $termin->date;
         $room->end = $termin->end_time;
         $room->repeat_end = $termin->end_time;
         if (!$room->store()) {
             $termin->delete();
         }
     }
     if ($start_time < $this->course->filterStart || $end_time > $this->course->filterEnd) {
         $this->course->setFilter('all');
     }
     $this->course->createMessage(sprintf(_('Der Termin %s wurde hinzugefügt!'), $termin->getFullname()));
     $this->course->store();
     $this->displayMessages();
     if (Request::get('fromDialog') == 'true') {
         $this->redirect('course/timesrooms/index');
     } else {
         $this->relocate('course/timesrooms/index');
     }
 }