<?php
session_start();

// Verificar si el usuario está logueado
if (!isset($_SESSION['usuario_id']) || !isset($_SESSION['idrol'])) {
    header("Location: login.php");  // Redirigir al login si no está autenticado
    exit();
}

include("../config/conexion.php");

$idusuario = $_SESSION['usuario_id']; // Obtener el ID del usuario autenticado

$carnet = $_POST['carnet'];
$nombre = $_POST['nombre'];
$apellidos = $_POST['apellidos'];
$carrera = $_POST['carrera'] ?? null;
$grado = $_POST['grado'] ?? null;
$seccion = $_POST['seccion'] ?? null;
$falta = $_POST['falta'] ?? null;
$bimestre = $_POST['bimestre'] ?? null;
$maestro = $_POST['maestro'] ?? null;
$fecha = $_POST['fecha'] ?? null;
$observaciones = $_POST['observaciones'] ?? null;

// Verificar cuántas faltas tiene el carnet
$sql = "SELECT COUNT(*) as total_faltas FROM registro_falta WHERE carnet = ?";
$stmt = $conexion->prepare($sql);
$stmt->bind_param("s", $carnet);
$stmt->execute();

// Vincular el resultado a una variable
$stmt->bind_result($total_faltas);
$stmt->fetch();
$stmt->close();

// Insertar la nueva falta
$insert_sql = "INSERT INTO registro_falta (carnet, nombre, apellidos, carrera, grado, seccion, falta, bimestre, fecha, observaciones, maestro, idusuario) 
               VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

$stmt = $conexion->prepare($insert_sql);
$stmt->bind_param("sssssssssssi", $carnet, $nombre, $apellidos, $carrera, $grado, $seccion, $falta, $bimestre, $fecha, $observaciones, $maestro, $idusuario);

if ($stmt->execute()) {
    $total_faltas++;

    echo "<script>
        alert('Falta registrada exitosamente. Total de faltas: " . $total_faltas . ".');
        ";

    // Verificar si el total de faltas es múltiplo de 4
    if ($total_faltas % 4 === 0) {
        echo "
        if (confirm('Este carnet tiene $total_faltas faltas registradas. ¿Desea generar una cita?')) {
            window.location.href='../Formularios/formcita.php?carnet=$carnet';
        } else {
            window.location.href='../inicio_registrofalta.php';
        }";
    } else {
        echo "window.location.href='../inicio_registrofalta.php';";
    }

    echo "</script>";

    // Insertar en la tabla de auditoría
    $insert_auditoria = "INSERT INTO registro_actividad (idusuario, accion, detalles) 
                         VALUES (?, 'INSERT', ?)";
    $stmt_auditoria = $conexion->prepare($insert_auditoria);
    $detalles = "Registró la falta: $falta para el estudiante con carnet $carnet";
    $stmt_auditoria->bind_param("is", $idusuario, $detalles);
    $stmt_auditoria->execute();
    $stmt_auditoria->close();
} else {
    die("Error al registrar la falta: " . $conexion->error);
}

$stmt->close();
$conexion->close();
