/**
  * Store a newly created resource in storage.
  *
  * @param ScheduleFormRequest $request
  * @return Response
  */
 public function store($course_id, ScheduleFormRequest $request)
 {
     $schedule = new Schedule();
     $schedule->fill($request->all());
     $schedule->course_id = $course_id;
     $schedule->save();
     return redirect()->route('courses.classes.index', $course_id)->with('flash', ['level' => 'success', 'message' => 'Added class in "' . $schedule->city . '".']);
 }
Пример #2
0
 /**
  * Save one action in schedule queue
  *
  * @param $runAt  Date when to run action
  * @param $action  Name of action class
  * @param $obj  Name of object class to which action is associated
  * @param $dataArr  (optional) Array of parameters to be used with action
  * @return Schedule  An instance of saved Schedule with id
  */
 public function add($runAt, $action, $obj, $dataArr = [])
 {
     // save action in queue
     $whoObject = get_class($obj);
     $whoId = $obj->id;
     $schedule = new Schedule(['run_at' => $runAt, 'action' => $action, 'who_object' => $whoObject, 'who_id' => $whoId, 'parameters' => json_encode($dataArr), 'status' => 'new']);
     $schedule->save();
     return $schedule;
 }
Пример #3
0
 public function test_save_modified_schedule_in_db()
 {
     $companyOne = factory(Company::class)->create();
     // remove reminders for Company One
     $scheduleRepository = new ScheduleRepository();
     $scheduleRepository->removeAllForObject($companyOne);
     $schedule = new Schedule(['run_at' => '2015-03-15', 'action' => ActionCommandSendReminderEmailCommand::class, 'who_object' => Company::class, 'who_id' => $companyOne->id, 'parameters' => json_encode(array()), 'status' => 'new']);
     $schedule->save();
     $this->seeInDatabase('schedules', ['run_at' => '2015-03-15']);
 }
Пример #4
0
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     DB::table('schedules')->delete();
     $schedule = new Schedule(['eqpId' => '1', 'docId' => '2001', 'time' => '14']);
     $schedule->save();
     $schedule = new Schedule(['eqpId' => '2', 'docId' => '2002', 'time' => '16']);
     $schedule->save();
     $schedule = new Schedule(['eqpId' => '3', 'docId' => '2003', 'time' => '15']);
     $schedule->save();
 }
Пример #5
0
 public function store($roomId)
 {
     $request = json_decode(request()->getContent());
     $schedule = new Schedule();
     $schedule->date = $request->date;
     $schedule->start = $request->start;
     $schedule->course_id = $request->course_id;
     $schedule->duration = $request->duration;
     $schedule->room_id = $roomId;
     $saved = $schedule->save();
     return response()->json(array('error' => !$saved, 'schedule' => $schedule->toArray()), $saved ? 200 : 500);
 }
Пример #6
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  Request  $request
  * @return Response
  */
 public function store(ScheduleRequest $request)
 {
     $schedule = new Schedule();
     $schedule->user_id = Auth::id();
     $schedule->days = $request->get('days');
     $schedule->t1 = $request->get('t1');
     $schedule->t2 = $request->get('t2');
     $schedule->t3 = $request->get('t3');
     $schedule->t4 = $request->get('t4');
     $schedule->t5 = $request->get('t5');
     $schedule->t6 = $request->get('t6');
     $schedule->t7 = $request->get('t7');
     $schedule->save();
     return redirect(route('schedules.index'))->with('flash_success', 'Timetable created successfully.');
 }
 /**
  * 创建预约
  *
  * @param Request  $request
  * @param Schedule $schedule
  *
  * @return \Illuminate\Http\JsonResponse
  */
 public function store(Request $request, Schedule $schedule)
 {
     $user = $request->user();
     if (Registration::where(['user_id' => $user->id, 'schedule_id' => $schedule->id, 'registration_date' => $schedule->doctoring_date])->count() > 0) {
         return response()->json(['status' => 2, 'message' => '已预约']);
     }
     if ($schedule->rest_num < 1) {
         return response()->json(['status' => 3, 'message' => '暂无余号']);
     }
     $registration = new Registration();
     $registration->schedule_id = $schedule->id;
     $registration->registration_date = $schedule->doctoring_date;
     $registration->fee = $schedule->doctor->fee;
     $schedule->rest_num -= 1;
     if ($user->registrations()->save($registration)) {
         if ($schedule->save()) {
             return response()->json(['status' => 0]);
         } else {
             return response()->json(['status' => 7, 'message' => '系统繁忙,请稍后再试']);
         }
     }
     return response()->json(['status' => 7, 'message' => '系统繁忙,请稍后再试']);
 }
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     $schedules = new Schedule();
     $schedules->academic_year_id = Input::get('academic_year_id');
     $schedules->program_study_id = Input::get('program_study_id');
     $schedules->course_id = Input::get('course_id');
     $schedules->study_id = Input::get('study_id');
     $schedules->class_room = Input::get('class_room');
     $schedules->lecturer_id = Input::get('lecturer_id');
     $schedules->day_id = Input::get('day_id');
     $schedules->start_time = Input::get('start_time');
     $schedules->finish_time = Input::get('finish_time');
     $schedules->date_midterm_exam = date("Y-m-d", strtotime(Input::get('date_midterm_exam')));
     $schedules->start_midterm_exam_time = Input::get('start_midterm_exam_time');
     $schedules->finish_midterm_exam_time = Input::get('finish_midterm_exam_time');
     $schedules->midterm_exam_room = Input::get('midterm_exam_room');
     $schedules->date_final_exam = date("Y-m-d", strtotime(Input::get('date_final_exam')));
     $schedules->start_final_exam_time = Input::get('start_final_exam_time');
     $schedules->finish_final_exam_time = Input::get('finish_final_exam_time');
     $schedules->final_exam_room = Input::get('final_exam_room');
     $schedules->save();
     Session::flash('message', 'You have successfully added schedule');
     return Redirect::to('dashboard/admin/schedules');
 }
Пример #9
0
 public static function storeSchedule($scheduleLogId, $diagDate, $diagTime)
 {
     $schedule = new Schedule();
     $schedule->scheduleLogId = $scheduleLogId;
     $schedule->diagDate = $diagDate;
     $schedule->diagTime = $diagTime;
     $schedule->save();
 }
Пример #10
0
 public function index(Request $request)
 {
     if (Session::has("user_id") || Auth::check()) {
         $errorMessage = "";
         $successMessage = "";
         if (Auth::check()) {
             //только для админа
             /*
              * Обновление даты/времени приема если есть
              */
             if ($request->has("update_priem")) {
                 $updateSched = Schedule::find($request->input("sched_id"));
                 $updateSched->data_priem = date("Y-m-d", strtotime($request->input("message_data_priem")));
                 $updateSched->time_priem = $request->input("message_time_priem");
                 $updateSched->save();
                 $successMessage = "Расписание успешно обновлено";
             }
             /*
              * Удаление приема
              */
             if ($request->has("del_priem")) {
                 $delSched = Schedule::find($request->input("sched_id"));
                 $delSched->delete();
                 $successMessage = "Время приема удалено";
             }
             /*
              * Добавление нового приема если пришел запрос
              */
             if ($request->has("add_datatime")) {
                 $validator = Validator::make($request->all(), ["data_priem" => "required", "time_priem" => "required", "doctor_id" => "required"]);
                 if ($validator->fails()) {
                     $errorMessage = "Не все поля заполнены или невыбран врач";
                 } else {
                     $schedLine = new Schedule();
                     $schedLine->data_priem = date("Y-m-d", strtotime($request->input("data_priem")));
                     $schedLine->time_priem = $request->input("time_priem");
                     $schedLine->doctor_id = $request->input("doctor_id");
                     if ($request->has("pay")) {
                         $schedLine->pay = 1;
                     }
                     $schedLine->save();
                     $successMessage = "В расписание врача " . $schedLine->doctor->name . " добавлен прием на дату " . date("d.m.Y", strtotime($schedLine->data_priem)) . " время {$schedLine->time_priem}";
                 }
             }
         }
         // end if (Auth::check())
         /************************************************/
         /*
          * Запись нового пациента, если пришел запрос
          */
         if ($request->has("save")) {
             if (!Auth::check()) {
                 $sched = Schedule::find($request->input('sched_id'));
                 if (!$sched->pacient_id) {
                     $sched->pacient_id = $request->input('user_id');
                     $sched->save();
                     $successMessage = "Запись к врачу {$sched->doctor->name} на дату " . date("d.m.Y", strtotime($sched->data_priem)) . " в {$sched->time_priem} часов успешно произведена<br>\n                        <ul>\n                            <li class='rules-list__item'>\n                                Необходимо не менее чем за 30 минут до начала приема обратиться в регистратуру, предъявить полис и паспорт, оформить статталон.\n                            </li>\n                            <li class='rules-list__item'>Если Вы не являетесь пациентом, прикрепленным к Больнице КНЦ РАН, то при обращении Вам необходимо иметь при себе амбулаторную карту или выписку из нее</li>\n                            <li class='rules-list__item'>Если Вы записались на платный прием, необходимо произвести оплату до начала приема в кабинете №3 </li>\n                        </ul>\n                        ";
                     Event::fire(new PeopleWriteToVisit($sched));
                 } else {
                     $errorMessage = "Запись невозможна.";
                 }
             } else {
                 $errorMessage = "Вы вошли как администратор запись невозможна";
             }
         }
         /*****************************************************/
         $data = array();
         if (Auth::check()) {
             // вход выполнен в административную часть - то роль админа получаем пользователя из Users
             $data["is_admin"] = true;
             $user = Auth::user();
             $data["user_id"] = $user->id;
             $data["user_fullname"] = $user->fullname;
         } else {
             $data["is_admin"] = false;
             // полаем пользователя из Pacients
             $pacient = Pacient::find(Session::get("user_id"));
             $data["user_id"] = $pacient->id;
             $data["user_fullname"] = implode(" ", array($pacient->fam, $pacient->im, $pacient->ot));
             //объединяем в одну строку
         }
         /*
          * получаем список специализаций и "привязанных" к ним врачей
          */
         $specializations = Specialization::all();
         foreach ($specializations as $spec) {
             $doctors = $spec->doctors;
             if ($doctors->toArray()) {
                 $data["doctors"][$spec->name] = $doctors;
             }
         }
         /*
          * здесь передаем данные пациента и получаем данные по врачам
          */
         return view("home", ["data" => $data, "success" => $successMessage, "error" => $errorMessage]);
     } else {
         return view("auth");
     }
 }
Пример #11
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     $userRole = Auth::user()->role()->first()->name;
     $course = Course::where('id', $request->get('course'))->first();
     $professor = Professor::where('id', $request->get('professor'))->first();
     $area = $request->get('area');
     $schedulesYear = Schedule::join('courses', 'courses.id', '=', 'schedules.course_id')->where('schedules.professor_id', $professor->id)->where('courses.year', $course->year)->get();
     $professorLoad = 0;
     foreach ($schedulesYear as $sche) {
         $professorLoad = $professorLoad + count(explode("-", $sche->course()->first()->schedule)) * 22.5;
     }
     $conflictHours = array("L1A" => "L1B", "M1A" => "M1B", "W1A" => "W1B", "J1A" => "J1B", "V1A" => "V1B", "L4A" => "L4B", "M4A" => "M4B", "W4A" => "W4B", "J4A" => "J4B", "V4A" => "V4B");
     $days = array("L" => null, "M" => null, "W" => null, "J" => null, "V" => null);
     $schedules = array();
     $courseSchedules = Course::where('year', $course->year)->where('semester', $course->semester)->get();
     $hours = array();
     foreach ($courseSchedules as $courseSchedule) {
         if ($courseSchedule->schedule()->first() != null) {
             if ($courseSchedule->schedule()->first()->professor_id == $professor->id) {
                 $hours2 = explode("-", $courseSchedule->schedule);
                 $hours = array_merge(explode("-", $courseSchedule->schedule), $hours);
                 foreach ($hours2 as $h) {
                     $days[$h[0]] = $courseSchedule->branch;
                 }
             }
         }
     }
     foreach ($conflictHours as $oneConflict => $otherOne) {
         if (in_array($oneConflict, $hours) || in_array($otherOne, $hours)) {
             array_push($hours, $otherOne);
             array_push($hours, $oneConflict);
         }
     }
     $selectedCourseSchedule = explode("-", $course->schedule);
     foreach ($selectedCourseSchedule as $oneSchedule) {
         if (in_array($oneSchedule, $hours)) {
             return redirect()->back()->withErrors('El curso seleccionado tiene tope de horario con otro curso ya asignado.')->withInput();
         } elseif ($days[$oneSchedule[0]] != $course->branch && $days[$oneSchedule[0]] != null && $userRole != "Administrador") {
             return redirect()->back()->withErrors('No es posible asignar dos cursos con distintas sedes el mismo día.')->withInput();
         } elseif ($professorLoad + count($selectedCourseSchedule) * 22.5 > $professor->max_load && $userRole != "Administrador") {
             return redirect()->back()->withErrors('Añadir este curso excede la carga máxima del profesor seleccionado.')->withInput();
         }
     }
     if (isset($course) && isset($professor)) {
         $professorLoad = $professorLoad + count($selectedCourseSchedule) * 22.5;
         $record = new Schedule();
         $record->course_id = $course->id;
         $record->professor_id = $professor->id;
         $record->save();
         $prof = Professor::findOrFail($professor->id);
         $prof->current_load = $professorLoad;
         $prof->save();
         $course = Course::findOrFail($course->id);
         $course->taken = 1;
         $course->save();
     }
     return redirect("schedules/{$course->year}-{$course->semester}/{$area}/{$professor->id}");
 }
Пример #12
0
 public function offerclasstime()
 {
     if (Input::get('code') != null && isset($_POST['offer_classtime']) && isset($_POST['set'])) {
         $errorarray = array();
         foreach ($_POST['set'] as $set) {
             $starttime = Input::get('starttime' . $set);
             $endtime = Input::get('endtime' . $set);
             $classcode = Input::get('code');
             if ($starttime == null || $endtime == null) {
                 $errorarray[count($errorarray)] = "You cannot leave time values empty (" . $set . ")";
             } else {
                 if ($starttime >= $endtime) {
                     $errorarray[count($errorarray)] = "Start time must be less than End time (" . $set . ")";
                 } else {
                     //Checking for Batch time conflict
                     $offered_to = Course_detail::where('id', $classcode)->first()->offered_to;
                     $batchclasses = Course_detail::where('offered_to', $offered_to)->get();
                     foreach ($batchclasses as $batchclass) {
                         $batchschedule = Schedule::where('class_id', $batchclass->id . $set)->first();
                         $scheludeclasscode = $batchschedule['class_id'];
                         if ($scheludeclasscode != $classcode . $set) {
                             $stime = $batchschedule['stime'];
                             $etime = $batchschedule['etime'];
                             $flag = 0;
                             $case1 = 0;
                             if ($starttime <= $stime && $endtime > $stime) {
                                 $flag = 1;
                                 $case1 = 1;
                             } else {
                                 if ($starttime >= $stime && $endtime < $etime) {
                                     $flag = 1;
                                 } else {
                                     if ($starttime >= $stime && $starttime < $etime && $case1 != 1) {
                                         $flag = 1;
                                     }
                                 }
                             }
                             if ($flag == 1) {
                                 $errorarray[count($errorarray)] = "Time slot: " . $starttime . "-" . $endtime . " (" . $set . ") for batch " . $offered_to . " is occupied by another subject " . $batchclass->course_code;
                             }
                         }
                     }
                     //Checking for instructor time conflict
                     $offered_by = Course_detail::where('id', $classcode)->first()->offered_by;
                     $instructorclasses = Course_detail::where('offered_by', $offered_by)->get();
                     foreach ($instructorclasses as $instructorclass) {
                         $instructorschedule = Schedule::where('class_id', $instructorclass->id . $set)->first();
                         $scheludeclasscode = $instructorschedule['class_id'];
                         if ($scheludeclasscode != $classcode . $set) {
                             $stime = $instructorschedule['stime'];
                             $etime = $instructorschedule['etime'];
                             $flag = 0;
                             $case1 = 0;
                             if ($starttime <= $stime && $endtime > $stime) {
                                 $flag = 1;
                                 $case1 = 1;
                             } else {
                                 if ($starttime >= $stime && $endtime < $etime) {
                                     $flag = 1;
                                 } else {
                                     if ($starttime >= $stime && $starttime < $etime && $case1 != 1) {
                                         $flag = 1;
                                     }
                                 }
                             }
                             if ($flag == 1) {
                                 $errorarray[count($errorarray)] = "You have another class " . $instructorclass->course_code . " in Time slot: " . $starttime . "-" . $endtime . " (" . $set . ") for batch " . $instructorclass->offered_to;
                             }
                         }
                     }
                     //Checking time conflict for day
                     //Teacher ko department line ho ki students ko department choose accordingly
                     //for now lets use teacher's department
                     $offered_by = Course_detail::where('id', $classcode)->first()->offered_by;
                     $departcode = User_detail::where('id', User::where('username', $offered_by)->first()->id)->first()->department;
                     $departmentmaxrooms = Department::where('code', $departcode)->first()['total_rooms'];
                     $counter = 0;
                     $dayschedules = Schedule::where('day', $set)->where('department_code', $departcode)->get();
                     foreach ($dayschedules as $dayschedule) {
                         $stime = $dayschedule->stime;
                         $etime = $dayschedule->etime;
                         $case1 = 0;
                         if ($starttime <= $stime && $endtime > $stime) {
                             $counter++;
                             $case1 = 1;
                         } else {
                             if ($starttime >= $stime && $endtime < $etime) {
                                 $counter++;
                             } else {
                                 if ($starttime >= $stime && $starttime < $etime && $case1 != 1) {
                                     $counter++;
                                 }
                             }
                         }
                     }
                     if ($counter >= $departmentmaxrooms) {
                         $errorarray[count($errorarray)] = "Sorry the room management is not possible for your time slots for " . $set;
                     }
                 }
             }
         }
         if (count($errorarray) > 0) {
             return Redirect::Back()->withInput()->withErrors($errorarray);
         } else {
             foreach ($_POST['set'] as $set) {
                 $starttime = Input::get('starttime' . $set);
                 $endtime = Input::get('endtime' . $set);
                 $classcode = Input::get('code');
                 Schedule::where('course_code', $classcode)->where('day', $set)->delete();
                 Time_table::where('course_code', $classcode)->where('day', $set)->delete();
                 //Teacher ko department line ho ki students ko department choose accordingly
                 //for now lets use teacher's department
                 $offered_by = Course_detail::where('id', $classcode)->first()->offered_by;
                 $departcode = User_detail::where('id', User::where('username', $offered_by)->first()->id)->first()->department;
                 $newschedule = new Schedule();
                 $newschedule->class_id = $classcode . $set;
                 $newschedule->course_code = $classcode;
                 $newschedule->stime = $starttime;
                 $newschedule->etime = $endtime;
                 $newschedule->day = $set;
                 $newschedule->department_code = $departcode;
                 $newschedule->save();
             }
             return Redirect::back();
         }
     } else {
         if (isset($_POST['remove_classtime']) && isset($_POST['set'])) {
             foreach ($_POST['set'] as $set) {
                 $classcode = Input::get('code');
                 Time_table::where('course_code', $classcode)->where('day', $set)->delete();
                 Schedule::where('course_code', $classcode)->where('day', $set)->delete();
                 return Redirect::back();
             }
         } else {
             return Redirect::back();
         }
     }
 }