<?php require_once('Connections/cn.php'); ?>

<?php
session_start();
if (!isset($_SESSION['MM_Username'])) {
      header ("Location: modulos/inicio/index.php");
	  }
// Captura la datos del usuario que se logueó (Cédula, Tipo de Usuario y Username).
$cedula_usuario=$_SESSION['CEDULA_USUARIO'];
$username=$_SESSION['MM_Username'];
$tipo_usuario=$_SESSION['PRIVILEGIO']; 

mysql_select_db($database_cn, $cn);
// Tomo los datos del usuario que hizo sesi�n.
$sql = "SELECT cedula,apellidos, nombres FROM usuarios where cedula='$cedula_usuario'";
$rs = mysql_query($sql, $cn) or die(mysql_error());
$row = mysql_fetch_assoc($rs);
$nombre_usuario= $row['apellidos'].' '.$row['nombres'];

// Tomo los datos que vienen del formulario cierre_periodo.php.

$id_periodo=$_GET['periodo'];

$sql3 = "SELECT * FROM periodos WHERE id_periodo='$id_periodo'";
$rs3 = mysql_query($sql3, $cn) or die(mysql_error());
$row3 = mysql_fetch_assoc($rs3);
$codigo_periodo=$row3['codigo'];
$descripcion_periodo=$row3['id_periodo'].':'.$row3['codigo'].'-'.$row3['tipo'];
$annio=$row3['annio'];
$totalRows3 = mysql_num_rows($rs3);
 
$sql1 = "SELECT * FROM inscripciones WHERE id_periodo='$id_periodo'";
$rs1 = mysql_query($sql1, $cn) or die(mysql_error());
$row1 = mysql_fetch_assoc($rs1);
$totalRows1 = mysql_num_rows($rs1);
if ($totalRows1>0 ) {
   /* // Respaldo la Tabla de Inscripciones antes del cierre, para reversar en caso de que haya problemas.
   $sql="DROP TABLE if exists siga_pregrado.`inscripciones_copia`";
   mysql_query($sql, $cn) or die(mysql_error());
   
   $sql = "CREATE  TABLE inscripciones_copia  (  `id` int( 11  )  NOT  NULL  auto_increment ,
 `repite` varchar( 1  )  character  set utf8 collate utf8_spanish_ci NOT  NULL default  'N',
 `id_alumno` int( 11  )  NOT  NULL ,
 `sede` varchar( 7  )  character  set utf8 collate utf8_spanish_ci NOT  NULL ,
 `id_seccion` varchar( 3  )  character  set utf8 collate utf8_spanish_ci NOT  NULL ,
 `id_carrera` varchar( 5  )  character  set utf8 collate utf8_spanish_ci NOT  NULL ,
 `pensum` varchar( 5  )  character  set utf8 collate utf8_spanish_ci NOT  NULL ,
 `nivel` varchar( 3  )  character  set utf8 collate utf8_spanish_ci NOT  NULL ,
 `mencion` varchar( 5  )  character  set utf8 collate utf8_spanish_ci NOT  NULL ,
 `id_periodo` int( 11  )  NOT  NULL ,
 `semestre` int( 2  )  default NULL ,
 `turno` varchar( 1  )  character  set utf8 collate utf8_spanish_ci  default NULL ,
 `id_materia` varchar( 15  )  character  set utf8 collate utf8_spanish_ci NOT  NULL ,
 `id_docente` int( 11  )  NOT  NULL ,
 `eval1` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `eval2` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `eval3` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `recuperacion` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `eval4` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `corte_1` decimal( 5, 2  ) default  '0.00',
 `eval5` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `eval6` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `eval7` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `eval8` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `corte_2` decimal( 5, 2  ) default  '0.00',
 `eval9` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `eval10` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `eval11` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `eval12` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `corte_3` decimal( 5, 2  ) default  '0.00',
 `eval13` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `eval14` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `eval15` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `eval16` decimal( 5, 2  )  NOT  NULL default  '0.00',
 `corte_4` decimal( 5, 2  ) default  '0.00',
 `acumulado` decimal( 6, 2  ) default  '0.00',
 `nota` int( 2  ) default  '0',
 `fecha` date  default NULL ,
 `annio` year( 4  )  default NULL ,
 `corte_sustituido` int( 1  )  NOT  NULL default  '0',
 `cualitativa` varchar( 12  )  character  set utf8 collate utf8_spanish_ci NOT  NULL ,
 `valoracion` varchar( 12  )  character  set utf8 collate utf8_spanish_ci NOT  NULL ,
 `aprobacion` varchar( 12  )  character  set utf8 collate utf8_spanish_ci NOT  NULL ,
 `cedula` varchar( 12  )  character  set utf8 collate utf8_spanish_ci NOT  NULL ,
 PRIMARY  KEY (  `id`  )  )";
    mysql_query($sql, $cn) or die(mysql_error());
	
    $sql1 ="INSERT INTO siga_pregrado.inscripciones_copia SELECT * FROM `siga_pregrado`.`inscripciones`";
    mysql_query($sql, $cn) or die(mysql_error());
	*/
    // Paso las inscripciones correspondientes al lapso seleccionado al histórico.
    // 💛 Asegurar valores numéricos para eval/corte/acumulado: usar 0.00 si vienen NULL
    $sql = "INSERT INTO `historico_notas`( `cedula`, `id_alumno`, `id_materia`, `semestre`, `id_seccion`, `recuperacion`, `nota`, `sede`, `id_carrera`, `pensum`, `nivel`, `mencion`, `id_periodo`, `turno`, `id_docente`, `eval1`, `eval2`, `eval3`, `eval4`, `corte_1`, `eval5`, `eval6`, `eval7`, `eval8`, `corte_2`, `eval9`, `eval10`, `eval11`, `eval12`, `corte_3`, `eval13`, `eval14`, `eval15`, `eval16`, `corte_4`, `acumulado`, `fecha`, `annio`, `aprobacion`, `valoracion`, `cualitativa`, `corte_sustituido`) 
         SELECT 
           cedula, id_alumno, id_materia, semestre, id_seccion, recuperacion, nota, sede, id_carrera, pensum, nivel, mencion, id_periodo, turno, id_docente,
           COALESCE(eval1,0) AS eval1, COALESCE(eval2,0) AS eval2, COALESCE(eval3,0) AS eval3, COALESCE(eval4,0) AS eval4,
           COALESCE(corte_1,0) AS corte_1,
           COALESCE(eval5,0) AS eval5, COALESCE(eval6,0) AS eval6, COALESCE(eval7,0) AS eval7, COALESCE(eval8,0) AS eval8,
           COALESCE(corte_2,0) AS corte_2,
           COALESCE(eval9,0) AS eval9, COALESCE(eval10,0) AS eval10, COALESCE(eval11,0) AS eval11, COALESCE(eval12,0) AS eval12,
           COALESCE(corte_3,0) AS corte_3,
           COALESCE(eval13,0) AS eval13, COALESCE(eval14,0) AS eval14, COALESCE(eval15,0) AS eval15, COALESCE(eval16,0) AS eval16,
           COALESCE(corte_4,0) AS corte_4,
           COALESCE(acumulado,0) AS acumulado,
           (CASE WHEN fecha='' OR fecha='0000-00-00' THEN NULL ELSE fecha END) AS fecha, annio, aprobacion, valoracion, cualitativa, corte_sustituido
         FROM inscripciones WHERE id_periodo='$id_periodo'";
    $res = mysql_query($sql, $cn);
    if (!$res) {
      $err = mysql_error();
      echo "<script>alert('Error al pasar registros al histórico: " . addslashes($err) . "');</script>";
      exit;
    }

    // Guarda el Registro de Auditoría
    $consulta=addslashes($sql);
    // 💛 Fecha para auditoría en formato DATETIME compatible
    $fecha=date("Y-m-d H:i:s");
    $accion="Cierre del Lapso Académico: ".$descripcion_periodo;
    $script="cerrar_periodo.php, cerrar_periodo1.php y pasar_a_historico.php";
    $ip=obtener_ip();
    $sql1 = "insert into `auditoria` (`username`, `tipo_usuario`,`cedula`, `ip`, `fecha`, `accion`, `script`, `query`) values ('$username', '$tipo_usuario', '$cedula_usuario', '$ip', '$fecha', '$accion', '$script', '$consulta')";
    $res1 = mysql_query($sql1, $cn);
    if (!$res1) {
      $err = mysql_error();
      echo "<script>alert('Error al registrar auditoría: " . addslashes($err) . "');</script>";
      exit;
    }	  
  
    // Borro las Inscripciones del periodo cerrado.
  $sql = "DELETE FROM `inscripciones` WHERE id_periodo='$id_periodo' ";
  $res2 = mysql_query($sql, $cn);
  if (!$res2) {
    $err = mysql_error();
    echo "<script>alert('Error al borrar inscripciones: " . addslashes($err) . "');</script>";
    exit;
  }
	?>
	<script type="text/javascript">
	        alert("Cierre del lapso <?php echo $descripcion_periodo; ?> ejecutado exitosamente.\nSe agregaron <?php echo $totalRows1; ?> registros al Historico de Calificaciones.")
	</script>
   <?php  
  }
  else {
   ?>
     <script type="text/javascript">
	      alert("Lapso Académico no tiene estudiantes inscritos")
	 </script>
<?php       
  }
?>

<?php  
function obtener_ip()
  {
 if ($_SERVER) {  
    if ( $_SERVER[HTTP_X_FORWARDED_FOR] ) {  
    $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];  
   } elseif ( $_SERVER["HTTP_CLIENT_IP"] ) {  
$realip = $_SERVER["HTTP_CLIENT_IP"];  
} else  {  
$realip = $_SERVER["REMOTE_ADDR"];  
}  
} else {  
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {  
$realip = getenv( 'HTTP_X_FORWARDED_FOR' );  
} elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {  
$realip = getenv( 'HTTP_CLIENT_IP' );  
} else {  
$realip = getenv( 'REMOTE_ADDR' );  
}  
}  
return $realip;  

  }   
?>