Пример #1
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;
 }
    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;
    }
Пример #3
0
 public function putDetailedNotasYear()
 {
     $user = User::fromToken();
     $grupo_id = Request::input('grupo_id');
     $periodo_a_calcular = Request::input('periodo_a_calcular', 10);
     $alumnos_response = [];
     $grupo = Grupo::datos($grupo_id);
     $year = Year::datos($user->year_id);
     $alumnos = Grupo::alumnos($grupo_id);
     foreach ($alumnos as $keyAlum => $alumno) {
         $alumno->notas_asig = $this->definitivas_year_alumno($alumno->alumno_id, $user->year_id, $periodo_a_calcular);
         $sumatoria_asignaturas_year = 0;
         $perdidos_year = 0;
         foreach ($alumno->notas_asig as $keyAsig => $asignatura) {
             $sumatoria_asignaturas_year += $asignatura->nota_asignatura_year;
             $perdidos_year += $asignatura->perdidos;
         }
         try {
             $cant = count($alumno->notas_asig);
             if ($cant == 0) {
                 $alumno->promedio_year = 0;
             } else {
                 $alumno->promedio_year = $sumatoria_asignaturas_year / $cant;
                 $alumno->perdidos_year = $perdidos_year;
             }
         } catch (Exception $e) {
             $alumno->promedio_year = 0;
         }
         array_push($alumnos_response, $alumno);
     }
     return ['grupo' => $grupo, 'year' => $year, 'alumnos' => $alumnos_response];
 }
Пример #4
0
 public function getShowProfesor($profesor_id)
 {
     $user = User::fromToken();
     $year = Year::datos_basicos($user->year_id);
     $asignaturas = Profesor::asignaturas($user->year_id, $profesor_id);
     $periodos = Periodo::where('year_id', '=', $user->year_id)->get();
     $year->periodos = $periodos;
     $profesor = Profesor::detallado($profesor_id);
     foreach ($asignaturas as $keyAsig => $asignatura) {
         $alumnos = Grupo::alumnos($asignatura->grupo_id);
         $asignatura->nombres_profesor = $profesor->nombres_profesor;
         $asignatura->apellidos_profesor = $profesor->apellidos_profesor;
         $asignatura->foto_nombre = $profesor->foto_nombre;
         $asignatura->foto_id = $profesor->foto_id;
         $asignatura->sexo = $profesor->sexo;
         $asignatura->periodosProm = Periodo::where('year_id', '=', $user->year_id)->get();
         // A cada alumno le daremos los periodos y la definitiva de cada periodo
         foreach ($alumnos as $keyAl => $alumno) {
             $periodosTemp = Periodo::where('year_id', '=', $user->year_id)->get();
             foreach ($periodosTemp as $keyPer => $periodo) {
                 // Unidades y subunidades de la asignatura en el periodo
                 $asignaturaTemp = Asignatura::find($asignatura->asignatura_id);
                 $asignaturaTemp->unidades = Unidad::deAsignatura($asignaturaTemp->id, $periodo->id);
                 foreach ($asignaturaTemp->unidades as $unidad) {
                     $unidad->subunidades = Subunidad::deUnidad($unidad->unidad_id);
                 }
                 // Traemos las notas de esta asignatura segun las unidades y subunidades calculadas arriba
                 Asignatura::calculoAlumnoNotas($asignaturaTemp, $alumno->alumno_id);
                 $periodo->nota_asignatura = $asignaturaTemp->nota_asignatura;
                 unset($asignaturaTemp);
             }
             $alumno->periodos = $periodosTemp;
             unset($periodosTemp);
             foreach ($asignatura->periodosProm as $keyPer => $periodo) {
                 if (!$periodo->sumatoria) {
                     $periodo->sumatoria = 0;
                 }
                 foreach ($alumno->periodos as $keyPerAl => $periodo_alum) {
                     if ($periodo_alum->id == $periodo->id) {
                         $periodo->sumatoria += $periodo_alum->nota_asignatura;
                     }
                 }
             }
         }
         $asignatura->alumnos = $alumnos;
     }
     return array($year, $asignaturas);
 }
Пример #5
0
 public function detailedNotasGrupo($grupo_id, $user, $requested_alumnos = '')
 {
     $grupo = Grupo::datos($grupo_id);
     $year = Year::datos($user->year_id);
     $alumnos = Grupo::alumnos($grupo_id, $requested_alumnos);
     $year->periodos = Periodo::where('year_id', $user->year_id)->get();
     $grupo->cantidad_alumnos = count($alumnos);
     $response_alumnos = [];
     foreach ($alumnos as $alumno) {
         // Todas las materias con sus unidades y subunides
         $this->definitivasMateriasXPeriodo($alumno, $grupo_id, $user->year_id, $year->periodos);
         $asignaturas_perdidas = $this->asignaturasPerdidasDeAlumno($alumno, $grupo_id, $user->year_id);
         if (count($asignaturas_perdidas) > 0) {
             $alumno->asignaturas_perdidas = $asignaturas_perdidas;
             $alumno->notas_perdidas_year = 0;
             $alumno->periodos_con_perdidas = Periodo::where('year_id', $user->year_id)->get();
             foreach ($alumno->periodos_con_perdidas as $keyPerA => $periodoAlone) {
                 $periodoAlone->cant_perdidas = 0;
                 foreach ($alumno->asignaturas_perdidas as $keyAsig => $asignatura_perdida) {
                     foreach ($asignatura_perdida->periodos as $keyPer => $periodo) {
                         if ($periodoAlone->periodo_id == $periodo->periodo_id) {
                             if ($periodo->id == $periodoAlone->id) {
                                 $periodoAlone->cant_perdidas += $periodo->cantNotasPerdidas;
                             }
                         }
                     }
                 }
                 $alumno->notas_perdidas_year += $periodoAlone->cant_perdidas;
             }
         }
     }
     foreach ($alumnos as $alumno) {
         $alumno->puesto = Nota::puestoAlumno($alumno->promedio, $alumnos);
         if ($requested_alumnos == '') {
             array_push($response_alumnos, $alumno);
         } else {
             foreach ($requested_alumnos as $req_alumno) {
                 if ($req_alumno['alumno_id'] == $alumno->alumno_id) {
                     array_push($response_alumnos, $alumno);
                 }
             }
         }
     }
     return array($grupo, $year, $response_alumnos);
 }
Пример #6
0
 public static function verificarCrearNotas($grupo_id, $subunidad)
 {
     $alumnos = Grupo::alumnos($grupo_id);
     $notas = [];
     foreach ($alumnos as $alumno) {
         $nota = '';
         $notVerif = Nota::where('subunidad_id', '=', $subunidad->id)->where('alumno_id', '=', $alumno->alumno_id)->first();
         if ($notVerif) {
             $nota = $notVerif;
         } else {
             $nota = new Nota();
             $nota->alumno_id = $alumno->alumno_id;
             $nota->subunidad_id = $subunidad->id;
             $nota->nota = $subunidad->nota_default;
             $nota->save();
         }
         array_push($notas, $nota);
     }
     return $notas;
 }
Пример #7
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;
 }
Пример #8
0
    public function detailedNotasGrupo($grupo_id, $user, $requested_alumnos = '')
    {
        $this->escalas_val = EscalaDeValoracion::where('year_id', $user->year_id)->get();
        $grupo = Grupo::datos($grupo_id);
        $year = Year::datos($user->year_id);
        $alumnos = Grupo::alumnos($grupo_id, $requested_alumnos);
        $year->periodos = Periodo::where('year_id', $user->year_id)->get();
        $cons = 'SELECT c.*, i.nombre as encabezado_nombre, i2.nombre as pie_nombre 
				FROM config_certificados c 
				left join images i on i.id=c.encabezado_img_id and i.deleted_at is null
				left join images i2 on i2.id=c.piepagina_img_id and i2.deleted_at is null
					where c.id=?';
        $config_certificado = DB::select($cons, [$year->config_certificado_estudio_id]);
        if (count($config_certificado) > 0) {
            $year->config_certificado = $config_certificado[0];
        }
        $cons = 'SELECT n.nombre as nivel_educativo FROM niveles_educativos n
				inner join grados gra on gra.nivel_educativo_id=n.id and gra.deleted_at is null
				inner join grupos gru on gru.grado_id=gra.id and gru.id=? and gru.deleted_at is null
				where n.deleted_at is null';
        $niveles = DB::select($cons, [$grupo_id]);
        if (count($niveles) > 0) {
            $grupo->nivel_educativo = $niveles[0]->nivel_educativo;
        }
        $grupo->cantidad_alumnos = count($alumnos);
        $response_alumnos = [];
        foreach ($alumnos as $alumno) {
            // Todas las materias con sus unidades y subunides
            $this->definitivasMateriasXPeriodo($alumno, $grupo_id, $user->year_id, $year->periodos);
            $asignaturas_perdidas = $this->asignaturasPerdidasDeAlumno($alumno, $grupo_id, $user->year_id);
            if (count($asignaturas_perdidas) > 0) {
                $alumno->asignaturas_perdidas = $asignaturas_perdidas;
                $alumno->notas_perdidas_year = 0;
                $alumno->periodos_con_perdidas = Periodo::where('year_id', $user->year_id)->get();
                foreach ($alumno->periodos_con_perdidas as $keyPerA => $periodoAlone) {
                    $periodoAlone->cant_perdidas = 0;
                    foreach ($alumno->asignaturas_perdidas as $keyAsig => $asignatura_perdida) {
                        foreach ($asignatura_perdida->periodos as $keyPer => $periodo) {
                            if ($periodoAlone->periodo_id == $periodo->periodo_id) {
                                if ($periodo->id == $periodoAlone->id) {
                                    $periodoAlone->cant_perdidas += $periodo->cantNotasPerdidas;
                                }
                            }
                        }
                    }
                    $alumno->notas_perdidas_year += $periodoAlone->cant_perdidas;
                }
            }
        }
        foreach ($alumnos as $alumno) {
            $alumno->puesto = Nota::puestoAlumno($alumno->promedio, $alumnos);
            if ($requested_alumnos == '') {
                array_push($response_alumnos, $alumno);
            } else {
                foreach ($requested_alumnos as $req_alumno) {
                    if ($req_alumno['alumno_id'] == $alumno->alumno_id) {
                        array_push($response_alumnos, $alumno);
                    }
                }
            }
        }
        return array($grupo, $year, $response_alumnos);
    }