<?php

       require_once '../app/model/db.class.php';
       require_once '../app/model/rangos.php';

function decimales($nota){

     if (strlen($nota)==1) {
         $nota=$nota.".00";
     }


     if (strlen($nota)>3) {
         $nota=substr($nota ,0,3);
     }

    return $nota;

}

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

        //$obj->consulta("delete from notas_finales_asign where grado='".$grado."' and grupo='".$grupo."'");
            
        $obj->consulta("delete from notas_finales_areas");
   
            $sw='true';
        
            //----------------------------------

            $matri = $obj->consulta("select codigo,grado,curso from matriculas where estado='A'");       
            while($row = $obj->fetch_assoc($matri)){                                                           
                        
            //-------- CONSOLIDAR AREAS ----------- 

            //------ GUARDAMOS LAS AREAS Q TIENEN MAS DE 1 ASIGNATURA ----
            
            $areas_2 = $obj->consulta("select catalogo.area, count(*) as total from (areas inner join catalogo on areas.codigo = catalogo.area) inner join curso_asignatura_profesor on catalogo.codigo = curso_asignatura_profesor.asignatura 
                                       where curso_asignatura_profesor.grado='".$row['grado']."' and curso_asignatura_profesor.curso='".$row['curso']."' group by catalogo.area having count(*) >1");

            $areas_grados=array();
            $a=0;
            
            while($r5 = $obj->fetch_assoc($areas_2)){
                  $areas_grados[$a]=$r5['area'];
                  $a++;
            }         
            
            //---------------------------------------
           
                      
            if ($sw=='true'){ //--- Se ejecuta solamente una vez el procceso
            
               //------ Actualizar el campo area de catalogo.area 
           
                $obj->consulta("update notas_finales_asign join catalogo on notas_finales_asign.asignatura=catalogo.codigo set notas_finales_asign.area=catalogo.area");
                
                //--- INSERTAR en <<notas_finales_areas>> AREAS Q TIENEN SOLAMENTE 1 ASIGNATURA
           
                $areas_1 = $obj->consulta("select catalogo.area from areas inner join catalogo on areas.codigo = catalogo.area group by catalogo.area having count(*)=1");
           
                while($row_a = $obj->fetch_assoc($areas_1)){
              
                      $obj->consulta("insert into notas_finales_areas (codigo,grado,grupo,area,definitiva,valor_area) SELECT codigo,grado,grupo,area,definitiva,valor_asigna from notas_finales_asign WHERE area='".$row_a['area']."'");                         
        
                }
           
                $sw='false';
           
             }
           
          
           
            //--- PROMEDIAR SOLO LAS AREAS Q TIENEN MAS DE >1 ASIGNATURA
          
           
          
             for($i=0;$i<count($areas_grados);$i++) {
              
                  $promedio = $obj->consulta("SELECT avg(notas_finales_asign.definitiva) as promedio
                                              FROM catalogo INNER JOIN notas_finales_asign ON catalogo.codigo = notas_finales_asign.asignatura
                                              WHERE notas_finales_asign.codigo='".$row['codigo']."' AND notas_finales_asign.area='".$areas_grados[$i]."'");
                  
                  $row4 = $obj->fetch_assoc($promedio);
                  $nota=decimales($row4['promedio']);
                  $obj->consulta("insert into notas_finales_areas(codigo, grado, grupo, area, definitiva,valor_area) values ('".$row['codigo']."','".$row['grado']."','".$row['curso']."','".$areas_grados[$i]."','".$nota."','".calculardef($nota)."')");                         
                                    
            }
                                           
        }


       //$obj->consulta("update notas_finales_asign set definitiva=left(definitiva,3) where grado='".$row['grado']."' and grupo='".$row['curso']."'"); //Seleccionar 3 caracteres de la Nota


       
      //---------------------------------------
                 


         
         
         
 //  1   =>   APROBADO
 //  2   =>   APROBADO -  REPRUEBA 1 AREA Y SU PROMEDIO ES SUPERIOR O IGUAL A 3.6
 //  3   =>  APLAZADO -  PENDIENTE POR SUPERAR
 //  4   =>  REPROBADO - CON 3 O MAS AREAS
          

 echo "<script languaje='javascript'>alert('PROCESO TERMINADO')</script>";
 echo "<script languaje='javascript'>document.location.href='../menu.php';</script>";

         $obj->disconnect();
?>