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; }
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 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; }
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; }
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 deleteDestroy($id) { $nota = Nota::findOrFail($id); $nota->delete(); return $nota; }
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); }
/** * @return \yii\db\ActiveQuery */ public function getNotas() { return $this->hasMany(Nota::className(), ['componenteid' => 'id']); }
public static function notas($subunidad_id) { $notas = Nota::where('subunidad_id', '=', $subunidad_id)->get(); return $notas; }