コード例 #1
0
 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);
 }