Exemple #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 putUpdateOrden()
 {
     $user = User::fromToken();
     $sortHash = Request::input('sortHash');
     for ($row = 0; $row < count($sortHash); $row++) {
         foreach ($sortHash[$row] as $key => $value) {
             $subunidad = Subunidad::find((int) $key);
             $subunidad->orden = (int) $value;
             $subunidad->save();
         }
     }
     return 'Ordenado correctamente';
 }
 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);
 }
 public function putCopiar()
 {
     $user = User::fromToken();
     $grupo_from_id = Request::input('grupo_from_id');
     $grupo_to_id = Request::input('grupo_to_id');
     $asignatura_to_id = Request::input('asignatura_to_id');
     $copiar_subunidades = Request::input('copiar_subunidades');
     $copiar_notas = Request::input('copiar_notas');
     $periodo_from_id = Request::input('periodo_from_id');
     $periodo_to_id = Request::input('periodo_to_id');
     $unidades_ids = Request::input('unidades_ids');
     $unidades_copiadas = 0;
     $subunidades_copiadas = 0;
     $notas_copiadas = 0;
     foreach ($unidades_ids as $unidad_id) {
         $unidad_curr = Unidad::findOrFail($unidad_id);
         $unidad_new = new Unidad();
         $unidad_new->definicion = $unidad_curr->definicion;
         $unidad_new->porcentaje = $unidad_curr->porcentaje;
         $unidad_new->orden = $unidad_curr->orden;
         $unidad_new->created_by = $user->user_id;
         $unidad_new->periodo_id = $periodo_to_id;
         $unidad_new->asignatura_id = $asignatura_to_id;
         $unidad_new->save();
         $unidades_copiadas++;
         if ($copiar_subunidades) {
             $subunidades = Subunidad::deUnidad($unidad_id);
             foreach ($subunidades as $subunidad) {
                 $sub_new = new Subunidad();
                 $sub_new->definicion = $subunidad->definicion_subunidad;
                 $sub_new->porcentaje = $subunidad->porcentaje_subunidad;
                 $sub_new->unidad_id = $unidad_new->id;
                 $sub_new->nota_default = $subunidad->nota_default;
                 $sub_new->orden = $subunidad->orden_subunidad;
                 $sub_new->inicia_at = $subunidad->inicia_at;
                 $sub_new->finaliza_at = $subunidad->finaliza_at;
                 $sub_new->created_by = $user->user_id;
                 $sub_new->save();
                 $subunidades_copiadas++;
                 if ($copiar_notas and $grupo_to_id == $grupo_from_id) {
                     $notas = Subunidad::notas($subunidad->subunidad_id);
                     foreach ($notas as $nota) {
                         $nota_new = new Nota();
                         $nota_new->nota = $nota->nota;
                         $nota_new->subunidad_id = $sub_new->id;
                         $nota_new->alumno_id = $nota->alumno_id;
                         $nota_new->created_by = $user->user_id;
                         $nota_new->save();
                         $notas_copiadas++;
                     }
                 }
             }
         }
     }
     $res = new stdClass();
     $res->unidades_copiadas = $unidades_copiadas;
     $res->subunidades_copiadas = $subunidades_copiadas;
     $res->notas_copiadas = $notas_copiadas;
     return (array) $res;
 }
 public function asignaturasPerdidasDeAlumnoPorPeriodo($alumno_id, $grupo_id, $periodo_id)
 {
     $asignaturas = Grupo::detailed_materias($grupo_id);
     foreach ($asignaturas as $keyAsig => $asignatura) {
         $asignatura->unidades = Unidad::deAsignatura($asignatura->asignatura_id, $periodo_id);
         foreach ($asignatura->unidades as $keyUni => $unidad) {
             $unidad->subunidades = Subunidad::perdidasDeUnidad($unidad->unidad_id, $alumno_id);
             if (count($unidad->subunidades) == 0) {
                 unset($asignatura->unidades[$keyUni]);
             }
         }
         if (count($asignatura->unidades) == 0) {
             unset($asignaturas[$keyAsig]);
         }
     }
     return $asignaturas;
 }
 public function putRestore($id)
 {
     $user = User::fromToken();
     $subunidad = Subunidad::onlyTrashed()->findOrFail($id);
     if ($subunidad) {
         $subunidad->restore();
     } else {
         return App::abort(400, 'Subunidad no encontrada en la Papelera.');
     }
     return $subunidad;
 }
Exemple #7
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;
 }