public function getDetailed($grupo_id)
    {
        $user = User::fromToken();
        $alumnos = Grupo::alumnos($grupo_id);
        foreach ($alumnos as $alumno) {
            $userData = Alumno::userData($alumno->alumno_id);
            $alumno->userData = $userData;
            $nota = NotaComportamiento::crearVerifNota($alumno->alumno_id, $user->periodo_id);
            $consulta = 'SELECT * FROM (
							SELECT d.id as definicion_id, d.comportamiento_id, d.frase_id, 
								f.frase, f.tipo_frase, f.year_id
							FROM definiciones_comportamiento d
							inner join frases f on d.frase_id=f.id and d.deleted_at is null 
						    where d.comportamiento_id=:comportamiento1_id and f.deleted_at is null
						union
							select d2.id as definicion_id, d2.comportamiento_id, d2.frase_id, 
								d2.frase, null as tipo_frase, null as year_id
							from definiciones_comportamiento d2 where d2.deleted_at is null and d2.frase is not null                  
							  and d2.comportamiento_id=:comportamiento2_id 
							
						) defi';
            $definiciones = DB::select($consulta, array('comportamiento1_id' => $nota->id, 'comportamiento2_id' => $nota->id));
            $alumno->definiciones = $definiciones;
            $alumno->nota = $nota;
        }
        $frases = Frase::where('year_id', '=', $user->year_id)->get();
        $grupo = Grupo::find($grupo_id);
        $resultado = [];
        array_push($resultado, $frases);
        array_push($resultado, $alumnos);
        array_push($resultado, $grupo);
        return $resultado;
    }
Пример #2
0
 public function getDetailed($asignatura_id)
 {
     $user = User::fromToken();
     $resultado = [];
     $unidades = Unidad::where('asignatura_id', '=', $asignatura_id)->where('periodo_id', '=', $user->periodo_id)->orderBy('orden')->get();
     $asignatura = (object) Asignatura::detallada($asignatura_id, $user->year_id);
     foreach ($unidades as $unidad) {
         $subunidades = Subunidad::where('unidad_id', '=', $unidad->id)->orderBy('orden')->get();
         foreach ($subunidades as $subunidad) {
             $notas = Nota::where('subunidad_id', '=', $subunidad->id)->get();
             if (count($notas) == 0) {
                 $notasTemp = Nota::crearNotas($asignatura->grupo_id, $subunidad);
                 $subunidad->notas = $notasTemp;
             } else {
                 $notas = Nota::verificarCrearNotas($asignatura->grupo_id, $subunidad);
                 $subunidad->notas = $notas;
             }
         }
         $unidad->subunidades = $subunidades;
     }
     $alumnos = Grupo::alumnos($asignatura->grupo_id);
     foreach ($alumnos as $alumno) {
         $userData = Alumno::userData($alumno->alumno_id);
         $alumno->userData = $userData;
     }
     // No cambiar el orden!
     array_push($resultado, $asignatura);
     array_push($resultado, $alumnos);
     array_push($resultado, $unidades);
     return $resultado;
 }
Пример #3
0
 /**
  * Creates a new Domicilio model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @param integer $alumno_id
  * @return mixed
  */
 public function actionCreate($alumno_id)
 {
     $alumno = Alumno::findOne(['id' => $alumno_id]);
     $model = new Domicilio(['scenario' => 'alumno']);
     // Para validar sólo lo referente a Alumno
     $model->perfil = $alumno->perfil;
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         return $this->redirect(['alumnos/' . $alumno->id . '/domicilios/view', 'id' => $model->id]);
     } else {
         return $this->render('create', ['model' => $model, 'alumno' => $alumno]);
     }
 }
Пример #4
0
 function nombreSolicitante()
 {
     $nombre = "";
     if ($this->tipo_solicitante == 1) {
         $alumno = Alumno::find($this->cve_solicitante);
         $nombre = $alumno->nombreCompleto();
     } else {
         if ($this->tipo_solicitante == 0) {
             $profesor = Profesor::find($this->cve_solicitante);
             $nombre = $profesor->nombreCompleto();
         }
     }
     return $nombre;
 }
Пример #5
0
 function dameNombre(Request $r)
 {
     $clave = $r->input('clave_alumno');
     $res = ['success' => false];
     try {
         $alumno = Alumno::find($clave);
         $res['nombre'] = "";
         if ($alumno != null) {
             $res['nombre'] = $alumno->nombreCompleto();
             $res['success'] = true;
         }
     } catch (Exception $e) {
         $res['msj'] = $e->getMessage();
     }
     return response()->json($res);
 }
Пример #6
0
 public function getDetailed($asignatura_id)
 {
     $user = User::fromToken();
     $asignatura = (object) Asignatura::detallada($asignatura_id, $user->year_id);
     $alumnos = Grupo::alumnos($asignatura->grupo_id);
     foreach ($alumnos as $alumno) {
         $userData = Alumno::userData($alumno->alumno_id);
         $alumno->userData = $userData;
         $consulta = 'SELECT * FROM ausencias a WHERE a.asignatura_id = ? and a.periodo_id = ? and a.alumno_id=?';
         $ausencias = DB::select(DB::raw($consulta), array($asignatura_id, $user->periodo_id, $alumno->alumno_id));
         foreach ($ausencias as $ausencia) {
             $ausencia->mes = date('n', strtotime($ausencia->fecha_hora)) - 1;
             $ausencia->dia = (int) date('j', strtotime($ausencia->fecha_hora));
         }
         $alumno->ausencias = $ausencias;
     }
     // No cambiar el orden!
     $resultado = [];
     array_push($resultado, $asignatura);
     array_push($resultado, $alumnos);
     return $resultado;
 }
Пример #7
0
 /**
  * Finds the Alumno model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Alumno the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Alumno::find()->where(['alumno.id' => $id])->joinWith('perfil')->one()) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Пример #8
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getAlumno()
 {
     return $this->hasOne(Alumno::className(), ['id' => 'alumno_id']);
 }
Пример #9
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getAlumnos()
 {
     return $this->hasMany(Alumno::className(), ['estado_id' => 'id']);
 }
Пример #10
0
 public function deleteDestroy($id)
 {
     $img = ImageModel::findOrFail($id);
     $filename = 'images/perfil/' . $img->nombre;
     // Debería crear un código que impida borrar si la imagen es usada.
     if (File::exists($filename)) {
         File::delete($filename);
         $img->delete();
     } else {
         return 'No se encuentra la imagen a eliminar. ' . $img->nombre;
     }
     // Elimino cualquier referencia que otros tengan a esa imagen borrada.
     $alumnos = Alumno::where('foto_id', $id)->get();
     foreach ($alumnos as $alum) {
         $alum->foto_id = null;
         $alum->save();
     }
     $profesores = Profesor::where('foto_id', $id)->get();
     foreach ($profesores as $prof) {
         $prof->foto_id = null;
         $prof->save();
     }
     $acudientes = Acudiente::where('foto_id', $id)->get();
     foreach ($acudientes as $acud) {
         $acud->foto_id = null;
         $acud->save();
     }
     $users = User::where('imagen_id', $id)->get();
     foreach ($users as $user) {
         $user->imagen_id = null;
         $user->save();
     }
     $years = Year::where('logo_id', $id)->get();
     foreach ($years as $year) {
         $year->logo_id = null;
         $year->save();
     }
     $asks = ChangeAsked::where('oficial_image_id', $id)->destroy();
     return $img;
 }
Пример #11
0
 public function putSolicitarCambios()
 {
     $user = User::fromToken();
     $tipo = Request::input('tipo');
     $id = Request::input('persona_id');
     if ($tipo == 'Al') {
         $alumno = Alumno::where('id', $id)->first();
         /*
         $consulta = 'SELECT c.id, c.asked_by_user_id, c.asked_to_user_id, c.asked_to_user_id, c.comentario_pedido, 
         			a.id as alumno_id, a.nombres as nombres_alum, a.apellidos as apellidos_alum,
         			c.rechazado_at, c.accepted_at, c.periodo_asked_id, c.year_asked_id, c.created_at,
         			c.deleted_at, c.deleted_by, u.tipo
         		FROM change_asked c
         		inner join users u on u.id=c.asked_by_user_id
         		left join alumnos a on a.user_id=u.id
         		WHERE c.deleted_at is null';
         $cambios = DB::select($consulta);
         */
         $cambios = [];
         if ($alumno->nombres != Request::input('nombres') && Request::input('nombres')) {
             $cambios['nombres'] = Request::input('nombres');
         }
         if ($alumno->apellidos != Request::input('apellidos') && Request::input('apellidos')) {
             $cambios['apellidos'] = Request::input('apellidos');
         }
         if ($alumno->sexo != Request::input('sexo') && Request::input('sexo')) {
             $cambios['sexo'] = Request::input('sexo');
         }
         if ($alumno->fecha_nac != Request::input('fecha_nac') && Request::input('fecha_nac')) {
             $fecha_nac_new = Request::input('fecha_nac');
             $fecha_nac_old = $alumno->fecha_nac->format('Y-m-d');
             if ($fecha_nac_new != $fecha_nac_old) {
                 $cambios['fecha_nac'] = $fecha_nac_new;
                 $cambios['fecha_nac_old'] = $fecha_nac_old;
             }
         }
         if (Request::has('ciudad_nac')) {
             $ciudad_id = null;
             if (Request::input('ciudad_nac')['id']) {
                 $ciudad_id = Request::input('ciudad_nac')['id'];
             } else {
                 $ciudad_id = Request::input('ciudad_nac');
             }
             if ($alumno->ciudad_nac != $ciudad_id && $ciudad_id) {
                 $cambios['ciudad_nac'] = $ciudad_id;
             }
         }
         return $cambios;
     }
 }
Пример #12
0
 public function putCambiarimgunalumno($alumnoElegido)
 {
     $alumno = Alumno::findOrFail($alumnoElegido);
     $alumno->foto_id = Request::input('imgOficialAlumno');
     $alumno->save();
     return $alumno;
 }
Пример #13
0
 public function putRestore($id)
 {
     $alumno = Alumno::onlyTrashed()->findOrFail($id);
     if ($alumno) {
         $alumno->restore();
     } else {
         return abort(400, 'Alumno no encontrado en la Papelera.');
     }
     return $alumno;
 }
Пример #14
0
 public static function alumnoAsignaturasPeriodosDetailed($alumno_id, $year_id, $periodos_a_calcular = 'de_usuario', $periodo_usuario = 0)
 {
     $alumno = Alumno::alumnoData($alumno_id, $year_id);
     $asignaturas = Grupo::detailed_materias($alumno->grupo_id);
     $sumatoria_asignaturas_year = 0;
     $sub_perdidas_year = 0;
     foreach ($asignaturas as $keyAsig => $asignatura) {
         $periodos = Periodo::hastaPeriodo($year_id, $periodos_a_calcular, $periodo_usuario);
         $sum_asignatura_year = 0;
         $subunidadesPerdidas = 0;
         foreach ($periodos as $keyPer => $periodo) {
             $asigna = new stdClass();
             $asigna->unidades = Unidad::deAsignatura($asignatura->asignatura_id, $periodo->id);
             foreach ($asigna->unidades as $unidad) {
                 $unidad->subunidades = Subunidad::deUnidad($unidad->unidad_id);
             }
             Asignatura::calculoAlumnoNotas($asigna, $alumno->alumno_id);
             $sum_asignatura_year += $asigna->nota_asignatura;
             $subunidadesPerdidas += Asignatura::notasPerdidasAsignatura($asigna);
         }
         try {
             $asignatura->nota_asignatura_year = $sum_asignatura_year / count($periodos);
             $asignatura->subunidadesPerdidas = $subunidadesPerdidas;
         } catch (Exception $e) {
             $asignatura->nota_asignatura_year = 0;
         }
         $asignatura->periodos = $periodos;
         $sumatoria_asignaturas_year += $asignatura->nota_asignatura_year;
         $sub_perdidas_year += $subunidadesPerdidas;
     }
     try {
         $alumno->promedio_year = $sumatoria_asignaturas_year / count($asignaturas);
         $alumno->sub_perdidas_year = $sub_perdidas_year;
     } catch (Exception $e) {
         $alumno->promedio_year = 0;
     }
     $alumno->asignaturas = $asignaturas;
     return $alumno;
 }
Пример #15
-1
 public function search($params)
 {
     $query = Alumno::find()->joinWith('perfil')->joinWith('perfil.sexo')->joinWith('perfil.tipoDocumento');
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $dataProvider->getSort()->attributes = array_merge($dataProvider->getSort()->attributes, ['perfilApellido' => ['asc' => ['perfil.apellido' => SORT_ASC], 'desc' => ['perfil.apellido' => SORT_DESC], 'label' => Yii::t('app', 'Apellido')], 'perfilNombre' => ['asc' => ['perfil.nombre' => SORT_ASC], 'desc' => ['perfil.nombre' => SORT_DESC], 'label' => Yii::t('app', 'Nombre')], 'tipoDocumentoAbreviatura' => ['asc' => ['tipo_documento.abreviatura' => SORT_ASC], 'desc' => ['tipo_documento.abreviatura' => SORT_DESC], 'label' => Yii::t('app', 'Tipo de Documento')], 'perfilNumeroDocumento' => ['asc' => ['perfil.numero_documento' => SORT_ASC], 'desc' => ['perfil.numero_documento' => SORT_DESC], 'label' => Yii::t('app', 'Documento')], 'sexoDescripcion' => ['asc' => ['sexo.descripcion' => SORT_ASC], 'desc' => ['sexo.descripcion' => SORT_DESC], 'label' => Yii::t('app', 'Sexo')], 'perfilTelefono' => ['asc' => ['perfil.telefono' => SORT_ASC], 'desc' => ['perfil.telefono' => SORT_DESC], 'label' => Yii::t('app', 'Teléfono')], 'perfilEmail' => ['asc' => ['perfil.email' => SORT_ASC], 'desc' => ['perfil.email' => SORT_DESC], 'label' => Yii::t('app', 'Email')]]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id]);
     $query->andFilterWhere(['like', 'perfil.apellido', $this->perfilApellido])->andFilterWhere(['like', 'perfil.nombre', $this->perfilNombre])->andFilterWhere(['like', 'tipo_documento.abreviatura', $this->tipoDocumentoAbreviatura])->andFilterWhere(['like', 'perfil.numero_documento', $this->perfilNumeroDocumento])->andFilterWhere(['like', 'perfil.tipo_documento.abreviatura', $this->tipoDocumentoAbreviatura])->andFilterWhere(['like', 'perfil.email', $this->perfilEmail]);
     return $dataProvider;
 }