public static function matricularUno($alumno_id, $grupo_id) { $year = Year::where('actual', '=', true)->first(); $consulta = 'SELECT m.id, m.alumno_id, m.grupo_id, m.matriculado, g.year_id FROM matriculas m inner join grupos g on m.alumno_id = :alumno_id and g.year_id = :year_id and m.grupo_id=g.id'; $matriculas = DB::select(DB::raw($consulta), array('alumno_id' => $alumno_id, 'year_id' => $year->id)); $matricula = false; for ($i = 0; $i < count($matriculas); $i++) { $matri = Matricula::onlyTrashed()->where('id', $matriculas[$i]->id)->first(); /* $queries = DB::getQueryLog(); $last_query = end($queries); return $last_query; */ if ($matri) { if ($matri->grupo_id == $grupo_id) { if ($matricula) { // Si ya he encontrado en un elemento anterior una matrícula identica, es por que ya la he activado, no debo activar más. Por el contrario, debo borrarlas ${$matri}->delete(); } else { $matri->matriculado = true; $matri->fecha_retiro = null; $matri->save(); $matri->restore(); $matricula = $matri; } } else { $matri->delete(); } } } try { if (!$matricula) { $matricula = new Matricula(); $matricula->alumno_id = $alumno_id; $matricula->grupo_id = $grupo_id; $matricula->matriculado = true; $matricula->save(); } } catch (Exception $e) { // se supone que esto nunca va a ocurrir, ya que eliminé todas las matrículas // excepto la que concordara con el grupo, poniéndola en matriculado=true $matricula = Matricula::where('alumno_id', '=', $alumno_id)->where('grupo_id', '=', $grupo_id)->first(); $matricula->matriculado = true; $matricula->save(); } return $matricula; }
public function deleteDestroy($id) { $matri = Matricula::findOrFail($id); $matri->delete(); return $matri; }
public function putUpdate($id) { $alumno = Alumno::findOrFail($id); $this->sanarInputAlumno(); try { $alumno->no_matricula = Request::input('no_matricula'); $alumno->nombres = Request::input('nombres'); $alumno->apellidos = Request::input('apellidos'); $alumno->sexo = Request::input('sexo', 'M'); $alumno->fecha_nac = Request::input('fecha_nac'); $alumno->ciudad_nac = Request::input('ciudad_nac')['id']; $alumno->tipo_doc = Request::input('tipo_doc')['id']; $alumno->documento = Request::input('documento'); $alumno->ciudad_doc = Request::input('ciudad_doc')['id']; $alumno->tipo_sangre = Request::input('tipo_sangre')['sangre']; $alumno->eps = Request::input('eps'); $alumno->telefono = Request::input('telefono'); $alumno->celular = Request::input('celular'); $alumno->barrio = Request::input('barrio'); $alumno->estrato = Request::input('estrato'); $alumno->ciudad_resid = Request::input('ciudad_resid'); $alumno->religion = Request::input('religion'); $alumno->email = Request::input('email'); $alumno->facebook = Request::input('facebook'); $alumno->foto_id = Request::input('foto_id'); $alumno->pazysalvo = Request::input('pazysalvo', true); $alumno->deuda = Request::input('deuda'); if ($alumno->user_id and Request::has('username')) { $this->sanarInputUser(); $this->checkOrChangeUsername($alumno->user_id); $usuario = User::find($alumno->user_id); $usuario->username = Request::input('username'); $usuario->email = Request::input('email2'); $usuario->is_superuser = Request::input('is_superuser', false); $usuario->is_active = Request::input('is_active', true); if (Request::has('password')) { if (Request::input('password') == "") { $usuario->password = Hash::make(Request::input('password')); } } $usuario->save(); $alumno->user_id = $usuario->id; $alumno->save(); $alumno->user = $usuario; } if (!$alumno->user_id and Request::has('username')) { $this->sanarInputUser(); $this->checkOrChangeUsername($alumno->user_id); $yearactual = Year::actual(); $periodo_actual = Periodo::where('actual', true)->where('year_id', $yearactual->id)->first(); $usuario = new User(); $usuario->username = Request::input('username'); $usuario->password = Hash::make(Request::input('password', '123456')); $usuario->email = Request::input('email2'); $usuario->is_superuser = Request::input('is_superuser', false); $usuario->is_active = Request::input('is_active', true); $usuario->periodo_id = $periodo_actual->id; $usuario->save(); $alumno->user_id = $usuario->id; $alumno->save(); $alumno->user = $usuario; } if (Request::input('grupo')['id']) { $grupo_id = Request::input('grupo')['id']; $matricula = Matricula::matricularUno($alumno->id, $grupo_id); $grupo = Grupo::find($matricula->grupo_id); $alumno->grupo = $grupo; } return $alumno; } catch (Exception $e) { return abort('400', $e); } }