<?php
// Confirmar sesión
session_start();
if (!isset($_SESSION['loggedin'])) {
    header('Location: index.php');
    exit;
}

include_once('conexion.php');

// Ejecutar la reindexación paso a paso
if (isset($_POST['crear_tabla_temp'])) {
    echo "Iniciando proceso de reindexación...<br>";

    // Verificar si la tabla temporal ya existe y eliminarla si es necesario
    $sql_check_table = "DROP TABLE IF EXISTS temp_controlconos;";
    if (mysqli_query($conexion, $sql_check_table)) {
        echo "Tabla temporal existente eliminada correctamente.<br>";
    } else {
        echo "Error al eliminar la tabla temporal existente: " . mysqli_error($conexion) . "<br>";
        exit;
    }

    // Paso 1: Crear una tabla temporal
    $sql_create_temp = "
        CREATE TABLE temp_controlconos AS
        SELECT @row := @row + 1 AS new_id, idcrl, idusu, feccon, numcon, kilcon, precio
        FROM controlconos, (SELECT @row := 0) AS r
        ORDER BY feccon, idcrl;
    ";
    if (mysqli_query($conexion, $sql_create_temp)) {
        // Contar el número de registros en la tabla temporal
        $sql_count = "SELECT COUNT(*) AS total FROM temp_controlconos;";
        $result = mysqli_query($conexion, $sql_count);
        if ($result) {
            $row = mysqli_fetch_assoc($result);
            $total_registros = $row['total'];
            echo "Tabla temporal creada correctamente. Se copiaron $total_registros registros.<br>";
        } else {
            echo "Tabla temporal creada correctamente, pero no se pudo contar el número de registros.<br>";
        }
    } else {
        echo "Error al crear la tabla temporal: " . mysqli_error($conexion) . "<br>";
        exit;
    }
}

if (isset($_POST['actualizar_ids'])) {
    // Verificar si la tabla temporal existe
    $sql_check_temp = "SHOW TABLES LIKE 'temp_controlconos';";
    $result = mysqli_query($conexion, $sql_check_temp);
    if (mysqli_num_rows($result) == 0) {
        echo "Error: La tabla temporal no existe. Debes crear la tabla temporal primero.<br>";
        exit;
    }

    // Paso 2: Eliminar la tabla original y recrearla
    $sql_drop_original = "DROP TABLE IF EXISTS controlconos;";
    if (mysqli_query($conexion, $sql_drop_original)) {
        echo "Tabla original eliminada correctamente.<br>";
    } else {
        echo "Error al eliminar la tabla original: " . mysqli_error($conexion) . "<br>";
        exit;
    }

    // Crear la tabla original con la estructura correcta y AUTO_INCREMENT
    $sql_create_original = "
        CREATE TABLE controlconos (
            idcrl INT AUTO_INCREMENT PRIMARY KEY,
            idusu INT,
            feccon DATE,
            numcon INT,
            kilcon DECIMAL(10, 2),
            precio DECIMAL(10, 2)
        );
    ";
    if (mysqli_query($conexion, $sql_create_original)) {
        echo "Tabla original recreada correctamente.<br>";
    } else {
        echo "Error al recrear la tabla original: " . mysqli_error($conexion) . "<br>";
        exit;
    }

    // Paso 3: Copiar los datos de la tabla temporal a la tabla original
    $sql_copy_data = "
        INSERT INTO controlconos (idcrl, idusu, feccon, numcon, kilcon, precio)
        SELECT new_id, idusu, feccon, numcon, kilcon, precio
        FROM temp_controlconos;
    ";
    if (mysqli_query($conexion, $sql_copy_data)) {
        // Contar el número de registros copiados
        $sql_count_copied = "SELECT ROW_COUNT() AS registros_copiados;";
        $result = mysqli_query($conexion, $sql_count_copied);
        if ($result) {
            $row = mysqli_fetch_assoc($result);
            $registros_copiados = $row['registros_copiados'];
            echo "Datos copiados correctamente a la tabla original. Se agregaron $registros_copiados registros.<br>";
        } else {
            echo "Datos copiados correctamente, pero no se pudo contar el número de registros.<br>";
        }
    } else {
        echo "Error al copiar los datos: " . mysqli_error($conexion) . "<br>";
        exit;
    }
}

if (isset($_POST['eliminar_tabla_temp'])) {
    // Paso 4: Eliminar la tabla temporal
    $sql_drop_temp = "DROP TABLE IF EXISTS temp_controlconos;";
    if (mysqli_query($conexion, $sql_drop_temp)) {
        echo "Tabla temporal eliminada correctamente.<br>";
    } else {
        echo "Error al eliminar la tabla temporal: " . mysqli_error($conexion) . "<br>";
        exit;
    }
}
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Reindexar IDs</title>
</head>
<body class="loggedin">
    <nav class="navtop">
        <h1 style="color:white;"><?php echo $_SESSION["name"]; ?></h1>
        <a href="control.php" style="color:white;">Volver al Control</a>
    </nav>
    <br><br>
    <div id="reindexar">
        <center>
            <h1>Reindexar IDs</h1>
            <form method="post" action="">
                <p>Selecciona el paso que deseas ejecutar:</p>
                <button type="submit" name="crear_tabla_temp">Crear Tabla Temporal</button>
                <button type="submit" name="actualizar_ids">Actualizar IDs en Tabla Original</button>
                <button type="submit" name="eliminar_tabla_temp">Eliminar Tabla Temporal</button>
            </form>
            <br>
            <a href="base.php"><button>Regresar</button></a>
        </center>
    </div>
</body>
</html>