<?php
// 1. CONEXIÓN
$conexion = mysqli_connect("localhost", "root", "BpjysVrFK6LJ5XyW", "micpu");
$conexion->set_charset("utf8");

if (!$conexion) {
    die("❌ Error de conexión: " . mysqli_connect_error());
}

// ---------------------------------------------------------
// BLOQUE A: PROCESAMIENTO DEL FORMULARIO (POST)
// ---------------------------------------------------------
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    
    $campos = ['nombre', 'apellidos', 'area', 'ubicacion', 'nodeserie', 'descripcion', 'necesidad', 'clasificacion'];
    foreach ($campos as $campo) {
        if (empty($_POST[$campo])) {
            die("❌ Error: El campo '$campo' es obligatorio.");
        }
    }

    function capitalizar($texto) {
        return ucwords(strtolower(trim($texto)));
    }

    $nombre = capitalizar(mysqli_real_escape_string($conexion, $_POST['nombre']));
    $apellidos = capitalizar(mysqli_real_escape_string($conexion, $_POST['apellidos']));
    $area = mysqli_real_escape_string($conexion, $_POST['area']);
    $ubicacion = mysqli_real_escape_string($conexion, $_POST['ubicacion']);
    $nodeserie = strtoupper(trim(mysqli_real_escape_string($conexion, $_POST['nodeserie'])));
    $descripcion = mysqli_real_escape_string($conexion, $_POST['descripcion']);
    $necesidad = mysqli_real_escape_string($conexion, $_POST['necesidad']);
    $clasificacion = mysqli_real_escape_string($conexion, $_POST['clasificacion']);

    date_default_timezone_set('America/Mexico_City');
    $anio_actual = date("Y");

    $sql_check = "SELECT MAX(folio_anual) as maximo FROM mcorrect WHERE YEAR(Fecha) = '$anio_actual'";
    $query_check = mysqli_query($conexion, $sql_check);
    $fila = mysqli_fetch_assoc($query_check);

    $nuevo_folio = ($fila['maximo'] == NULL) ? 1 : $fila['maximo'] + 1;
    $folio_visual = $anio_actual . "-" . str_pad($nuevo_folio, 3, "0", STR_PAD_LEFT);

    $sql = "INSERT INTO mcorrect (folio_anual, Nombre, Apellidos, Area, Ubicacion, NoSerie, Descripcion, Necesidad, Clasificacion)
            VALUES ('$nuevo_folio', '$nombre', '$apellidos', '$area', '$ubicacion', '$nodeserie', '$descripcion', '$necesidad', '$clasificacion')";

    $rta = mysqli_query($conexion, $sql);

    if (!$rta) {
        // Cargamos el header, mostramos el error, cargamos el footer y detenemos la ejecución
        include 'header.php';
        echo "
        <div class='contenedor-formulario' style='text-align: center; border-top-color: var(--color-peligro); margin-top: 50px; margin-bottom: 50px;'>
            <h2 style='color: var(--color-peligro);'>❌ Error al guardar</h2>
            <p>" . mysqli_error($conexion) . "</p>
            <a href='responsive_home.php' class='btn-pildora btn-secundario' style='margin-top: 20px;'>Regresar</a>
        </div>";
        include 'footer.php';
        exit();
    } else {
        // Redirección PRG (Debe ejecutarse ANTES de cualquier salida HTML)
        $url_actual = $_SERVER['PHP_SELF'];
        header("Location: $url_actual?folio=" . urlencode($folio_visual));
        exit(); 
    }
}

// ---------------------------------------------------------
// BLOQUE B: VISUALIZACIÓN DEL TICKET (GET)
// ---------------------------------------------------------
if (isset($_GET['folio'])) {
    
    $folio_visual = mysqli_real_escape_string($conexion, $_GET['folio']);
    $partes_folio = explode("-", $folio_visual);
    
    if (count($partes_folio) === 2) {
        $anio_consulta = $partes_folio[0];
        $folio_num_consulta = (int)$partes_folio[1];

        $sql_ticket = "SELECT * FROM mcorrect WHERE folio_anual = '$folio_num_consulta' AND YEAR(Fecha) = '$anio_consulta' LIMIT 1";
        $res_ticket = mysqli_query($conexion, $sql_ticket);

        // 1. INCLUIR ENCABEZADO
        include 'header.php';

        // 2. REGLAS DE IMPRESIÓN EXCLUSIVAS PARA ESTA VISTA
        echo "
        <style>
            @media print {
                body { background: none; }
                header, footer, .pie-pagina, .submit-button { display: none !important; }
                .contenedor-formulario { box-shadow: none; border-top: none; margin: 0; padding: 0; }
            }
        </style>";

        if ($ticket = mysqli_fetch_assoc($res_ticket)) {
            
            $fecha_db = isset($ticket['Fecha']) ? $ticket['Fecha'] : 'now';
            $formatter = new IntlDateFormatter('es_ES', IntlDateFormatter::LONG, IntlDateFormatter::NONE);
            $fecha_captura = $formatter->format(new DateTime($fecha_db));

            // 3. CONTENIDO DEL TICKET
            echo "
            <div id='ticket' class='contenedor-formulario' style='margin-top: 50px; margin-bottom: 50px;'>
                
                <h2 style='border-bottom: 2px solid var(--color-acento); padding-bottom: 15px; margin-bottom: 25px;'>
                    🎫 Ticket de Solicitud
                </h2>
                
                <p style='font-size: 1.3em; color: var(--color-primario); text-align: center; margin-bottom: 25px;'>
                    <strong>Folio de Reporte:</strong> $folio_visual
                </p>
                
                <div style='line-height: 1.8; color: var(--color-secundario); padding: 0 20px;'>
                    <p><strong>Fecha de Captura:</strong> $fecha_captura</p>
                    <p><strong>Nombre:</strong> {$ticket['Nombre']} {$ticket['Apellidos']}</p>
                    <p><strong>Área:</strong> {$ticket['Area']}</p>
                    <p><strong>Ubicación:</strong> {$ticket['Ubicacion']}</p>
                    <p><strong>Descripción:</strong> {$ticket['Descripcion']}</p>
                    <p><strong>Necesidad o falla:</strong> {$ticket['Necesidad']}</p>
                </div>
                
                <p class='nota' style='color: var(--color-secundario); font-size: 0.9em; margin-top: 30px; text-align: center; border-top: 1px solid #eee; padding-top: 20px;'>
                    <em>✅ Su solicitud ha sido registrada correctamente y será atendida por el Departamento de Sistemas a la brevedad.<br>
                    <strong>Nota:</strong> La atención está sujeta a disponibilidad de piezas y refacciones.</em>
                </p>
                
                <div class='submit-button' style='display: flex; justify-content: center; gap: 20px; flex-wrap: wrap;'>
                    <a href='responsive_home.php' class='btn-pildora btn-secundario'>Regresar al inicio</a>
                    <button onclick='window.print()' class='btn-pildora'>🖨️ Imprimir Ticket</button>
                </div>
            </div>";
        } else {
            // 3B. TICKET NO ENCONTRADO
            echo "
            <div class='contenedor-formulario' style='text-align: center; border-top-color: var(--color-peligro); margin-top: 50px; margin-bottom: 50px;'>
                <h2 style='color: var(--color-peligro);'>⚠️ Aviso</h2>
                <p>No se encontró el ticket solicitado.</p>
                <a href='responsive_home.php' class='btn-pildora btn-secundario' style='margin-top: 20px;'>Regresar</a>
            </div>";
        }

        // 4. INCLUIR PIE DE PÁGINA
        include 'footer.php';
    }
}
?>