<?php

require_once "../app/model/db.class.php";

    $periodo=$_REQUEST['periodo'];

    $obj = new database();

    $obj->conectar(); $obj->consulta("set names 'utf8'");
    


    $num_reg="select * from cursos_temporal where activar='1'";

    $result5 = $obj->consulta($num_reg);
    $numero = $obj->numero_de_filas($result5); // obtenemos el numero de registros

    if  ($numero!=0) {

         while($reg_ren = $obj->fetch_assoc($result5)){

              $obj->consulta("delete from rendimiento_academico");
              $obj->consulta("insert into rendimiento_academico ( grado, curso, nom_curso, nom_jornada, alumno, nombres )
                              select matriculas.grado, matriculas.curso, cursos.descripcion, jornadas.descripcion,
                              matriculas.codigo,concat(p_apellido,' ',s_apellido,' ',p_nombre,' ',s_nombre) as nombres from
                              jornadas inner join (cursos inner join (matriculas inner join alumnos on matriculas.codigo = alumnos.codigo)
                              on (cursos.codigo = matriculas.curso) and (cursos.grado = matriculas.grado)) on jornadas.codigo = cursos.jornada
                              where matriculas.grado='".$reg_ren['grado']."' and matriculas.curso='".$reg_ren['codigo']."' and matriculas.estado='A'");

              $obj->consulta("update rendimiento_academico set periodo ='".$periodo."'");
              $obj->consulta("update rendimiento_academico set sede ='".$reg_ren['sede']."'");
              $obj->consulta("update rendimiento_academico set jornada ='".$reg_ren['jornada']."'");
             /*--------------------------------------
              ------ Numero de Asignaturas ----------
              ---------------------------------------*/

            $resultado1=$obj->consulta("select * from catalogo inner join curso_asignatura_profesor on catalogo.codigo = curso_asignatura_profesor.asignatura where curso_asignatura_profesor.grado='".$reg_ren['grado']."' and curso_asignatura_profesor.curso='".$reg_ren['codigo']."' and catalogo.promediar='SI'");

            $n_asign=$obj->numero_de_filas($resultado1);

            $obj->consulta("update rendimiento_academico set noasign =".$n_asign);


            /*---------------------------------------*/
            /*------ Calculamos diferentes valores---*/
            /*---------------------------------------*/
            $query = $obj->consulta("select * from rendimiento_academico");

            while($row = $obj->fetch_assoc($query)){
//
               /*------ Calcular cantidad .b B A S -----*/

               if ($periodo !=5){

                   $bajo = $obj->consulta("select detalleboletin.valor_asigna from catalogo inner join (boletin inner join detalleboletin on boletin.numero = detalleboletin.boletin) on catalogo.codigo = boletin.asignatura where boletin.periodo='".$periodo."' and detalleboletin.alumno='".$row['alumno']."' and detalleboletin.valor_asigna='BAJO' and catalogo.promediar='SI'");
                   $n_bajo=$obj->numero_de_filas($bajo);

                   $basico=$obj->consulta("select detalleboletin.valor_asigna from catalogo inner join (boletin inner join detalleboletin on boletin.numero = detalleboletin.boletin) on catalogo.codigo = boletin.asignatura where boletin.periodo='".$periodo."' and detalleboletin.alumno='".$row['alumno']."' and (detalleboletin.valor_asigna='B&aacute;SICO' or detalleboletin.valor_asigna='BASICO')and catalogo.promediar='SI'");
                   $n_basico=$obj->numero_de_filas($basico);

                   $alto=$obj->consulta("select detalleboletin.valor_asigna from catalogo inner join (boletin inner join detalleboletin on boletin.numero = detalleboletin.boletin) on catalogo.codigo = boletin.asignatura where boletin.periodo='".$periodo."' and detalleboletin.alumno='".$row['alumno']."' and detalleboletin.valor_asigna='ALTO' and catalogo.promediar='SI'");
                   $n_alto=$obj->numero_de_filas($alto);

                   $superior=$obj->consulta("select detalleboletin.valor_asigna from catalogo inner join (boletin inner join detalleboletin on boletin.numero = detalleboletin.boletin) on catalogo.codigo = boletin.asignatura where boletin.periodo='".$periodo."' and detalleboletin.alumno='".$row['alumno']."' and detalleboletin.valor_asigna='SUPERIOR' and catalogo.promediar='SI'");
                   $n_superior=$obj->numero_de_filas($superior);

               }
               else{
               
                   $bajo = $obj->consulta("select notas_finales_asign.valor_asigna, catalogo.promediar from catalogo inner join notas_finales_asign on catalogo.codigo = notas_finales_asign.asignatura
                                           where notas_finales_asign.valor_asigna='BAJO' and notas_finales_asign.codigo='".$row['alumno']."' and catalogo.promediar='SI'");

                   $n_bajo=$obj->numero_de_filas($bajo);


                   $basico = $obj->consulta("select notas_finales_asign.valor_asigna, catalogo.promediar from catalogo inner join notas_finales_asign on catalogo.codigo = notas_finales_asign.asignatura
                                           where notas_finales_asign.valor_asigna='BASICO' and notas_finales_asign.codigo='".$row['alumno']."' and catalogo.promediar='SI'");

                   $n_basico=$obj->numero_de_filas($basico);

                  
                   $alto = $obj->consulta("select notas_finales_asign.valor_asigna, catalogo.promediar from catalogo inner join notas_finales_asign on catalogo.codigo = notas_finales_asign.asignatura
                                           where notas_finales_asign.valor_asigna='ALTO' and notas_finales_asign.codigo='".$row['alumno']."' and catalogo.promediar='SI'");

                   $n_alto=$obj->numero_de_filas($alto);

                   $superior = $obj->consulta("select notas_finales_asign.valor_asigna, catalogo.promediar from catalogo inner join notas_finales_asign on catalogo.codigo = notas_finales_asign.asignatura
                                           where notas_finales_asign.valor_asigna='SUPERIOR' and notas_finales_asign.codigo='".$row['alumno']."' and catalogo.promediar='SI'");

                   $n_superior=$obj->numero_de_filas($superior);
               
               
               }


               $obj->consulta("update rendimiento_academico set bajo =".$n_bajo.",basico =".$n_basico.",alto =".$n_alto.",superior=".$n_superior." where alumno='".$row['alumno']."'");

               /*------ Hallamos el promedio del alumno -----*/

               if ($periodo !=5)
                   $promedio=$obj->consulta("select avg(detalleboletin.definitiva) as promedio from catalogo inner join (boletin inner join detalleboletin on boletin.numero = detalleboletin.boletin) on catalogo.codigo = boletin.asignatura where boletin.periodo='".$periodo."' and detalleboletin.alumno='".$row['alumno']."' and catalogo.promediar='SI'");
               else
                   $promedio =$obj->consulta("select avg(definitiva) as promedio, catalogo.promediar from catalogo inner join notas_finales_asign on catalogo.codigo = notas_finales_asign.asignatura
                                                         where notas_finales_asign.codigo='".$row['alumno']."' and catalogo.promediar='SI'");

               
               $row1 = $obj->fetch_assoc($promedio);

               if ($row1['promedio']==""){
                   $p=0;
               }
               else{
                  $p=$row1['promedio'];
               }
               $obj->consulta("update rendimiento_academico set promedio ='".$p."' where alumno='".$row['alumno']."'");
             
             }

              //---- PROMEDIO DEL CURSOS -----
              
               $promedio_curso=$obj->consulta("select avg(promedio) as promedio from rendimiento_academico");
             
               $row2 = $obj->fetch_assoc($promedio_curso);

               if ($row2['promedio']==NULL)
                   $prom=0;
               else
                   $prom=$row2['promedio'];

               $obj->consulta("update rendimiento_academico set promcurso =".$prom);

              /*------ Hallamos el Nivel de Desempeño -----*/

              $nivel = $obj->consulta("select codigo,descripcion,inferior,v1,superior,v2 from rangos");
              while($row3 = $obj->fetch_assoc($nivel)){
                    $obj->consulta("update rendimiento_academico set nivel_desempeno='".$row3['descripcion']."' where promedio ".$row3['inferior'].$row3['v1']." and promedio ".$row3['superior'].$row3['v2']);
              }

              /*------ Ordenamos Descendentemente por promedio -----*/
              
              $puesto = $obj->consulta("select alumno,promedio,puesto from rendimiento_academico order by promedio desc");

              $i=1;
              $p=1;
              $anterior=0;
              $siguiente=0;
              
              while($row4 = $obj->fetch_assoc($puesto)){
              
                    if ($i==1){
                        $anterior=$row4['promedio'];
                        $siguiente=$row4['promedio']; 
                        $p=1;                   
                    }
                    else{
                        $anterior=$siguiente;
                        $siguiente=$row4['promedio'];
                           
                    }
              
                    if ($siguiente!=$anterior){
                        $p=$p+1;   
                    } 
              
                    $obj->consulta("update rendimiento_academico set puesto=".$p." where alumno='".$row4['alumno']."'");

                    $i=$i+1;

              }

              /*-------- Insertamos registros en la tabla rendimiento_general ---------- */

              $obj->consulta("delete from rendimiento_general where periodo='".$periodo."' and grado='".$reg_ren['grado']."' and curso='".$reg_ren['codigo']."'");
              $obj->consulta("insert into rendimiento_general select * from rendimiento_academico");

       }
   }

    $obj->disconnect();

   echo "PROCESO FINALIZADO";

?>
