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; }
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]; }
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 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); }
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; }
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; }
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); }