<?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'");

        $grado = $_POST['grado'];
        $grupo =$_POST['grupo'];


           //$obj->consulta("delete from notas_finales_asign where grado='".$grado."' and grupo='".$grupo."'");
           
           $obj->consulta("delete from notas_finales_areas");
           $matri = $obj->consulta("select codigo,grado,curso from matriculas where estado='A' and grado='".$grado."' and curso='".$grupo."'");
           
            while($row = $obj->fetch_assoc($matri)){                                                           

            //*******************************************
            //-------- CALCULAR DEFINITIVAS DE ASIGNATURAS 
            //*******************************************
              /*                   
                   $asign = $obj->consulta("select asignatura from curso_asignatura_profesor where grado='".$row['grado']."' and curso='".$row['curso']."' order by asignatura");
                  
                   $grad = $obj->consulta("select * from grados where codigo='".$row['grado']."'");
                   $per = $obj->fetch_assoc($grad);    //-- Cantidad de periodos
                  
                   while($row1 = $obj->fetch_assoc($asign)){
              
                        $prom = $obj->consulta("select ROUND(sum(detalleboletin.definitiva)/4,1) as definitiva from boletin inner join detalleboletin on boletin.numero = detalleboletin.boletin
                                                where detalleboletin.alumno='".$row['codigo']."' and boletin.asignatura='".$row1['asignatura']."'");
                       
                         $row2 = $obj->fetch_assoc($prom);
                        
                          if ($row2['definitiva']==null)
                              $nota=0;
                          else
                              $nota=$row2['definitiva'];
  

                         //=====================================================
                         
                          $verificar=$obj->consulta("select * from notas_finales_asign where codigo='".$row['codigo']."' and asignatura='".$row1['asignatura']."'");

                         //---- Verificar si existe la nota definitiva para insertarla o actualizarla y no borrar las habilitaciones

                         $nm=$obj->numero_de_filas($verificar);

                         if ($nm==0){                            
                             $obj->consulta("insert into notas_finales_asign (codigo, grado, grupo, asignatura, definitiva, valor_asigna) values ('".$row['codigo']."','".$row['grado']."','".$row['curso']."','".$row1['asignatura']."',".$nota.",'".calculardef($nota)."');");
                         }
                         else{

                             $obj->consulta("UPDATE notas_finales_asign SET definitiva=".$nota.", valor_asigna='".calculardef($nota)."' where codigo='".$row['codigo']."' and asignatura='".$row1['asignatura']."'");

                             if ($nota>=3){ // Si tiene habilitaciones y la nota se modifica con 3 o mas se borra
                                 $obj->consulta("UPDATE notas_finales_asign SET habilitacion=NULL, valor_habilitacion=NULL where codigo='".$row['codigo']."' and asignatura='".$row1['asignatura']."'");
                             }

                         }

                         //=====================================================


                   }
                         
              */     
            //*******************************************       
            //-------- CONSOLIDAR AREAS ----------- 
            //*******************************************
            
            
            //------ 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");
           
            $areas = $obj->consulta("SELECT curso_asignatura_profesor.grado, curso_asignatura_profesor.curso, catalogo.area
                                     FROM catalogo INNER JOIN curso_asignatura_profesor ON catalogo.codigo = curso_asignatura_profesor.asignatura
                                     GROUP BY curso_asignatura_profesor.grado, curso_asignatura_profesor.curso, catalogo.area
                                     HAVING curso_asignatura_profesor.grado='".$row['grado']."' AND curso_asignatura_profesor.curso='".$row['curso']."'");


            while($row3 = $obj->fetch_assoc($areas)){

                  $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='".$row3['area']."'");
                  
                  $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']."','".$row3['area']."','".$nota."','".calculardef($nota)."')");                         
            }           
            
            //*******************************************
            //-------- ESTADO FINAL DEL ALUMNO-----------        
            //*******************************************
            /*   
                            
                   $leyenda='';

                   if ($row['grado']==0) 
                       $leyenda="PROMOVIDO AL GRADO PRIMERO";  
                   elseif ($row['grado']==1) 
                       $leyenda="PROMOVIDO AL GRADO SEGUNDO";  
                   elseif ($row['grado']==2) 
                       $leyenda="PROMOVIDO AL GRADO TERCERO";  
                   elseif ($row['grado']==3) 
                       $leyenda="PROMOVIDO AL GRADO CUARTO";   
                   elseif ($row['grado']==4) 
                      $leyenda="PROMOVIDO AL GRADO QUINTO";   
                   elseif ($row['grado']==5) 
                      $leyenda="PROMOVIDO AL GRADO SEXTO";    

                   elseif ($row['grado']==6) 
                      $leyenda="PROMOVIDO AL GRADO SEPTIMO";  
                   elseif ($row['grado']==7) 
                      $leyenda="PROMOVIDO AL GRADO OCTAVO";  
                   elseif ($row['grado']==8) 
                      $leyenda="PROMOVIDO AL GRADO NOVENO";   
                   elseif ($row['grado']==9) 
                      $leyenda="PROMOVIDO AL GRADO DECIMO";   
                   elseif ($row['grado']==10) 
                      $leyenda="PROMOVIDO AL GRADO UNDECIMO";   
                   elseif ($row['grado']=11) 
                      $leyenda="APROBADO"; 

                   $areas_perdidas = $obj->consulta("select count(definitiva) as x from notas_finales_areas where codigo='".$row['codigo']."' and definitiva<3");
                   $row1 = $obj->fetch_assoc($areas_perdidas);

                    if ($row1['x']==0){                  
                         $obj->consulta("UPDATE matriculas SET promovido='SI',tipo_aprobacion=1,areas_perdidas=".$row1['x'].",estado_final='".$leyenda."' where codigo='".$row['codigo']."'");                     
                     }
                                         
                     if  ($row1['x']==1){                  
                     
                         $nota_perdida = $obj->consulta("select definitiva from notas_finales_areas where codigo='".$row['codigo']."' and definitiva<3");
                         $row_nota = $obj->fetch_assoc($nota_perdida);
                                         
                        $promedio_general=$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['codigo']."' and catalogo.promediar='SI'");
                        $row5 = $obj->fetch_assoc($promedio_general);     
                             
                        if ($row5['promedio']>= 3.6)                            
                            $obj->consulta("UPDATE matriculas SET promovido='SI',tipo_aprobacion=2,areas_perdidas=".$row1['x'].",estado_final='".$leyenda." POR PROMEDIO SUPERIOR O IGUAL A 3.6' where codigo='".$row['codigo']."'");
                        else
                            $obj->consulta("UPDATE matriculas SET promovido='NO',tipo_aprobacion=3,areas_perdidas=".$row1['x'].",estado_final='PENDIENTE POR SUPERAR' where codigo='".$row['codigo']."'");
                     
                     }

                     if ($row1['x']==2){ 
                                                               
                         $obj->consulta("UPDATE matriculas SET promovido='NO',tipo_aprobacion=3,areas_perdidas=".$row1['x'].",estado_final='PENDIENTE POR SUPERAR' where codigo='".$row['codigo']."'");
                                                       
                     }  

                      if ($row1['x']>=3){ 
                                      
                         $obj->consulta("UPDATE matriculas SET promovido='NO',tipo_aprobacion=4,areas_perdidas=".$row1['x'].",estado_final='REPROBADO' where codigo='".$row['codigo']."'");                                   
                      } 

                */                        
            }

         //---------------------------------------
                 
         $obj->consulta("update notas_finales_asign set definitiva=left(definitiva,3) where grado='".$grado."' and grupo='".$grupo."'"); //Seleccionar 3 caracteres de la Nota
         $obj->consulta("update notas_finales_asign set definitiva=left(definitiva,3)"); //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 "-PROCESO TERMINADO - ";

         $obj->disconnect();
?>