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 allNotasAlumno(&$alumno, $grupo_id, $periodo_id, $comport_and_frases = false) { $asignaturas = Grupo::detailed_materias($grupo_id); foreach ($asignaturas as $asignatura) { $asignatura->unidades = Unidad::deAsignatura($asignatura->asignatura_id, $periodo_id); foreach ($asignatura->unidades as $unidad) { $unidad->subunidades = Subunidad::deUnidad($unidad->unidad_id); } } $alumno->asignaturas = $asignaturas; $sumatoria_asignaturas = 0; foreach ($alumno->asignaturas as $asignatura) { if ($comport_and_frases) { $asignatura->ausencias = Ausencia::deAlumno($asignatura->asignatura_id, $alumno->alumno_id, $periodo_id); $asignatura->frases = FraseAsignatura::deAlumno($asignatura->asignatura_id, $alumno->alumno_id, $periodo_id); } Asignatura::calculoAlumnoNotas($asignatura, $alumno->alumno_id); $sumatoria_asignaturas += $asignatura->nota_asignatura; // Para sacar promedio del periodo // SUMAR AUSENCIAS Y TARDANZAS if ($comport_and_frases) { $cantAus = 0; $cantTar = 0; foreach ($asignatura->ausencias as $ausencia) { $cantAus += (int) $ausencia->cantidad_ausencia; $cantTar += (int) $ausencia->cantidad_tardanza; } $asignatura->total_ausencias = $cantAus; $asignatura->total_tardanzas = $cantTar; } } try { $alumno->promedio = $sumatoria_asignaturas / count($alumno->asignaturas); } catch (Exception $e) { $alumno->promedio = 0; } // COMPORTAMIENTO Y SUS FRASES if ($comport_and_frases) { $comportamiento = NotaComportamiento::where('alumno_id', '=', $alumno->alumno_id)->where('periodo_id', '=', $periodo_id)->first(); $alumno->comportamiento = $comportamiento; $definiciones = []; if ($comportamiento) { $definiciones = DefinicionComportamiento::frases($comportamiento->id); $alumno->comportamiento->definiciones = $definiciones; } } return $alumno; }
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; }