public function crearProyecto() { $data = Input::all(); $ciclo = $data['cicle']; $ciclo == 1 ? $ciclo = 'Agosto-Enero' : ($ciclo = 'Enero-Julio'); //Valida los datos ingresados. $notificaciones = ['year.required' => '¡Escriba un año!', 'year.numeric' => '¡El año debe ser numérico!']; $validation = Validator::make($data, ['year' => 'required|numeric'], $notificaciones); if ($validation->passes()) { //Se revisa si había registros antes $temp = Proyecto::select('ciclo', 'anio')->where('ciclo', $ciclo)->where('anio', $data['year'])->get(); //Si aún no había registros, se añaden las horas disponbiles por aula y día. if (sizeof($temp) < 1) { $idProyecto = Proyecto::insertGetId(['ciclo' => $ciclo, 'anio' => $data['year']]); $aulas = Aula::count(); $horas = Hora::select('*')->where('id', '>', '0')->get(); for ($i = 2; $i <= $aulas; $i++) { for ($k = 0; $k < 5; $k++) { foreach ($horas as $hora) { $temp = new Disponible(); $temp->id_aula = $i; $temp->hora = $hora['id']; $temp->dia = $k; $temp->id_proyecto = $idProyecto; $temp->save(); } } } } return Redirect::to('/proyectos/'); } else { Input::flash(); return Redirect::to('/proyectos/editar-proyecto')->withInput()->withErrors($validation); } }
public function get_check_horas_profesor() { $data = Input::all(); $horas = []; //Obtiene las horas ocupadas por la materia en cuestión. $response = Horario::select('horarios.*', 'hd.disponible', 'hd.id')->join('plantillas as p', 'horarios.id_plantilla', '=', 'p.id')->join('aulas as a', 'a.id', '=', 'horarios.id_aula')->join('subjects as s', 'p.id_subject', '=', 's.id')->join('professors as pr', 'pr.id', '=', 'p.id_profesor')->join('horas_disponibles as hd', function ($join) { $join->on('a.id', '=', 'hd.id_aula'); $join->on('horarios.dia', '=', 'hd.dia')->where('hd.disponible', '=', 0); })->where('p.grupo', $data['grupo'])->where('p.id_proyecto', $data['idProyecto'])->where('p.id_profesor', $data['idProf'])->get(); //Guarda los ID de las horas que ocupa la materia, los cuales se relacionan directamente con el aula y el día. foreach ($response as $hora) { array_push($horas, $hora['id']); } //Se obtienen las horas disponibles en el aula actual. $aux = Disponible::select('*')->where('id_aula', $response[0]->id_aula)->get(); /* Se ponen temporalmente como disponibles las horas que se utilizan para esta materia en el aula seleccionada. Esto para asegurar el buen funcionamiento de los combobox para selección de horas */ for ($i = 0; $i < sizeof($response); $i++) { for ($k = 0; $k < sizeof($aux); $k++) { if ($response[$i]->id == $aux[$k]->id) { $aux[$k]->disponible = 1; } } } //Obtiene el aula y las horas ocupadas por esta materia por día. $response = Horario::select('horarios.*', 'hd.disponible', 'hd.id')->join('plantillas as p', 'horarios.id_plantilla', '=', 'p.id')->join('aulas as a', 'a.id', '=', 'horarios.id_aula')->join('subjects as s', 'p.id_subject', '=', 's.id')->join('professors as pr', 'pr.id', '=', 'p.id_profesor')->join('horas_disponibles as hd', function ($join) { $join->on('a.id', '=', 'hd.id_aula'); $join->on('horarios.dia', '=', 'hd.dia')->where('hd.disponible', '=', 0); })->where('p.grupo', $data['grupo'])->where('p.id_proyecto', $data['idProyecto'])->where('p.id_profesor', $data['idProf'])->groupBy('horarios.id')->get(); $data = []; array_push($data, $response); array_push($data, $aux); array_push($data, $horas); //Se envían el array de datos que contiene las horas ocupadas del aula por día y las horas disponibles por día. echo json_encode($data); }