Ejemplo n.º 1
0
    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;
    }
Ejemplo n.º 2
0
 public function deleteDestroy($id)
 {
     $matri = Matricula::findOrFail($id);
     $matri->delete();
     return $matri;
 }
Ejemplo n.º 3
0
 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);
     }
 }