Ejemplo n.º 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;
 }
Ejemplo n.º 2
0
 private function notasDeLaAsignatura($year_id, $alumno_id, $asignatura_id, $periodos_a_calcular = 'de_usuario', $periodo_usuario)
 {
     $periodos = Periodo::hastaPeriodo($year_id, $periodos_a_calcular, $periodo_usuario);
     foreach ($periodos as $keyPer => $periodo) {
         $asigna = new stdClass();
         $asigna->unidades = Unidad::deAsignatura($asignatura_id, $periodo->id);
         $nota_asignatura = 0;
         foreach ($asigna->unidades as $unidad) {
             $unidad->subunidades = Subunidad::deUnidad($unidad->unidad_id);
             $nota_unidad = 0;
             foreach ($unidad->subunidades as $subunidad) {
                 $nota = Nota::where('subunidad_id', '=', $subunidad->subunidad_id)->where('alumno_id', '=', $alumno_id)->first();
                 if ($nota) {
                     $subunidad->nota = $nota;
                     $subunidad->nota->valor = $nota->nota * $subunidad->porcentaje_subunidad / 100;
                     $nota_unidad += $subunidad->nota->valor;
                 }
             }
             $unidad->nota_unidad = $nota_unidad;
             $valor_unidad = $unidad->nota_unidad * $unidad->porcentaje_unidad / 100;
             $unidad->valor_unidad = $valor_unidad;
             $nota_asignatura += $unidad->valor_unidad;
         }
         $periodo->unidades = $asigna->unidades;
         $periodo->nota_asignatura = $nota_asignatura;
         // Definitiva de la materia en este periodo
     }
     return $periodos;
 }
Ejemplo n.º 3
0
 public static function verificarCrearNota($alumno_id, $subunidad)
 {
     $notVerif = Nota::where('subunidad_id', '=', $subunidad->id)->where('alumno_id', '=', $alumno_id)->first();
     if ($notVerif) {
         $nota = $notVerif;
     } else {
         $nota = new Nota();
         $nota->alumno_id = $alumno->id;
         $nota->subunidad_id = $subunidad->id;
         $nota->nota = $subunidad->nota_default;
         $nota->save();
         $notVerif = $nota;
     }
     return $notVerif;
 }
Ejemplo n.º 4
0
 public static function calculoAlumnoNotas(&$asignatura, $alumno_id)
 {
     $nota_asignatura = 0;
     foreach ($asignatura->unidades as $unidad) {
         $nota_unidad = 0;
         foreach ($unidad->subunidades as $subunidad) {
             $nota = Nota::where('subunidad_id', '=', $subunidad->subunidad_id)->where('alumno_id', '=', $alumno_id)->first();
             if ($nota) {
                 $subunidad->nota = $nota;
                 $subunidad->nota->valor = $nota->nota * $subunidad->porcentaje_subunidad / 100;
                 $nota_unidad += $subunidad->nota->valor;
             }
         }
         $unidad->nota_unidad = $nota_unidad;
         $valor_unidad = $unidad->nota_unidad * $unidad->porcentaje_unidad / 100;
         $unidad->valor_unidad = $valor_unidad;
         $nota_asignatura += $unidad->valor_unidad;
     }
     $asignatura->nota_asignatura = $nota_asignatura;
     // Definitiva de la materia
     return $asignatura;
 }
Ejemplo n.º 5
0
    public static function informacionAsignatura($asignatura_id, $periodo_id)
    {
        $result = new \stdClass();
        $consulta = 'SELECT id, definicion, porcentaje
					FROM unidades
					where asignatura_id=:asignatura_id and periodo_id=:periodo_id and deleted_at is null
					order by orden';
        $unidades = DB::select($consulta, [':asignatura_id' => $asignatura_id, ':periodo_id' => $periodo_id]);
        $porc_unidades = 0;
        $result->porc_subunidades_incorrecto = false;
        $result->porc_notas_incorrecto = false;
        foreach ($unidades as $unidad) {
            $porc_unidades += $unidad->porcentaje;
            $consulta = 'SELECT id, definicion, porcentaje
						FROM subunidades
						where unidad_id=:unidad_id and deleted_at is null
						order by orden';
            $unidad->subunidades = DB::select(DB::raw($consulta), array(':unidad_id' => $unidad->id));
            $porc_subunidades = 0;
            foreach ($unidad->subunidades as $subunidad) {
                $porc_subunidades += $subunidad->porcentaje;
                $notas = Nota::where('subunidad_id', $subunidad->id)->get();
                $subunidad->cantNotas = count($notas);
                if ($subunidad->cantNotas == 0) {
                    $result->porc_notas_incorrecto = true;
                }
            }
            $unidad->porc_subunidades = $porc_subunidades;
            if ($unidad->porc_subunidades != 100) {
                $result->porc_subunidades_incorrecto = true;
            }
        }
        $result->porc_unidades = $porc_unidades;
        $result->items = $unidades;
        return $result;
    }
Ejemplo n.º 6
0
 public static function notas($subunidad_id)
 {
     $notas = Nota::where('subunidad_id', '=', $subunidad_id)->get();
     return $notas;
 }