Ejemplo n.º 1
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.º 2
0
 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);
 }
Ejemplo n.º 3
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.º 4
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.º 5
0
 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;
 }
Ejemplo n.º 6
0
 public function deleteDestroy($id)
 {
     $nota = Nota::findOrFail($id);
     $nota->delete();
     return $nota;
 }
Ejemplo n.º 7
0
    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);
    }
Ejemplo n.º 8
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getNotas()
 {
     return $this->hasMany(Nota::className(), ['componenteid' => 'id']);
 }
Ejemplo n.º 9
0
 public static function notas($subunidad_id)
 {
     $notas = Nota::where('subunidad_id', '=', $subunidad_id)->get();
     return $notas;
 }