public function postNew() { $NewModel = Input::json('models.0'); $startDatetime = new DateTime(); $endDatetime = new DateTime(); $Eastern = new DateTimeZone('America/Detroit'); $startDatetime->setTimezone($Eastern); $endDatetime->setTimezone($Eastern); $startDatetime->setTimestamp(strtotime($NewModel['Start'])); $endDatetime->setTimestamp(strtotime($NewModel['End'])); $newSpecialRoom = new SpecialRoom(); $newSpecialRoom->RoomId = $NewModel['RoomId']; $newSpecialRoom->Title = $NewModel['Title']; $newSpecialRoom->Start = $startDatetime->format('Y-m-d H:i:s'); $newSpecialRoom->End = $endDatetime->format('Y-m-d H:i:s'); $newSpecialRoom->Attendee = $NewModel['Attendee']; $newSpecialRoom->Host = $NewModel['Host']; $newSpecialRoom->RecurrenceId = $NewModel['RecurrenceId']; if (array_key_exists('RecurrenceRule', $NewModel)) { $newSpecialRoom->RecurrenceRule = $NewModel['RecurrenceRule']; } $newSpecialRoom->RecurrenceException = $NewModel['RecurrenceException']; $newSpecialRoom->save(); return $newSpecialRoom->toJson(); }
private function createEvent($class, $classBlock, &$response) { $startDatetime = new DateTime(); $endDatetime = new DateTime(); // get the first day of the semester $firstDayOfClass = strtotime('next ' . $classBlock['day'], $this->dayBeforeSemesterStart); // the kendo front end library must be on a different timezone setting, // because all db times that are used by kendo calendars need to be 4-5 // (5 if daylight savings time is not currently in effect) hours earlier // than the time displayed by kendo $kendoReadjust = 5 - date('I'); $startDatetime->setTimestamp($firstDayOfClass + 60 * (60 * ($classBlock['startT']['H'] - $kendoReadjust) + $classBlock['startT']['M'])); $endDatetime->setTimestamp($firstDayOfClass + 60 * (60 * ($classBlock['endT']['H'] - $kendoReadjust) + $classBlock['endT']['M'])); $room = CeasRooms::where('name', '=', $classBlock['room'])->first(); if ($room) { switch ($room->type) { case "1": $newClassroom = new Classroom(); break; case "2": $newClassroom = new ComputerClassroom(); break; case "3": $newClassroom = new BreakoutRoom(); break; case "4": $newClassroom = new SpecialRoom(); break; default: return; } $newClassroom->RoomId = $room->id; $newClassroom->Title = $class; $newClassroom->Start = $startDatetime->format('Y-m-d H:i:s'); $newClassroom->End = $endDatetime->format('Y-m-d H:i:s'); $newClassroom->RecurrenceRule = "FREQ=WEEKLY;UNTIL=" . date("Y-m-d\\TH:i:s\\Z", $this->dayAfterLastDayOfSemester) . ";BYDAY=" . substr($classBlock['day'], 0, 2); $newClassroom->attendee = 1; $newClassroom->save(); } else { if (!in_array($classBlock['room'], $response["nonExistantRooms"])) { array_push($response["nonExistantRooms"], $classBlock['room']); } } }