<?php
// ARCHIVO: views/ticket.php

// 1. Conexión Segura e Inteligente
$db_path = dirname(__DIR__) . '/db.php';
if (file_exists($db_path)) { 
    require_once $db_path; 
} else { 
    die("Error crítico: No se encuentra el archivo de conexión (db.php)."); 
}

$id_venta = isset($_GET['id_venta']) ? (int)$_GET['id_venta'] : 0;
if ($id_venta === 0) die("<center><h3>Error: No se envió el ID de la venta.</h3></center>");

// 2. Obtener Datos de la Empresa
$sql_config = "SELECT nombre_empresa, direccion, ruc, logo_url FROM configuracion LIMIT 1";
$res_config = $conn->query($sql_config);
$empresa = ($res_config && $res_config->num_rows > 0) ? $res_config->fetch_assoc() : [
    'nombre_empresa' => 'FARMACIA', 'direccion' => '', 'ruc' => '00000000000', 'logo_url' => ''
];

// 3. Obtener Cabecera de la Venta
$sql_venta = "SELECT v.*, e.nombre as cajero, c.nombre as cliente, c.documento as cli_doc 
              FROM ventas v 
              LEFT JOIN empleados e ON v.id_empleado = e.id_empleado 
              LEFT JOIN clientes c ON v.id_cliente = c.id_cliente 
              WHERE v.id_venta = $id_venta";
$res_venta = $conn->query($sql_venta);

if (!$res_venta || $res_venta->num_rows === 0) {
    die("<center><h3>Error: La venta #$id_venta no existe.</h3></center>");
}
$venta = $res_venta->fetch_assoc();

// 4. Obtener Detalles de la Venta (Nueva Tabla)
$sql_detalle = "SELECT d.*, p.nombre 
                FROM detalle_venta d 
                INNER JOIN productos p ON d.id_producto = p.id_producto 
                WHERE d.id_venta = $id_venta";
$detalles = $conn->query($sql_detalle);

// Generar Hash simulado para el QR de SUNAT
$hash_simulado = strtoupper(substr(md5($venta['id_venta'] . $venta['fecha_venta']), 0, 15)) . "=";
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Ticket #<?php echo $venta['id_venta']; ?></title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script>
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Courier New', Courier, monospace; }
        body { background-color: #f0f0f0; display: flex; justify-content: center; padding: 20px; }
        .ticket { background-color: white; width: 300px; padding: 15px; box-shadow: 0 0 10px rgba(0,0,0,0.1); color: #000; font-size: 12px; }
        .centrado { text-align: center; }
        .logo { max-width: 120px; margin-bottom: 10px; }
        .empresa-nombre { font-size: 16px; font-weight: bold; margin-bottom: 5px; }
        .info-header { margin-bottom: 15px; font-size: 11px; }
        .linea { border-bottom: 1px dashed #000; margin: 10px 0; }
        .tabla-items { width: 100%; border-collapse: collapse; margin-bottom: 10px; font-size: 11px; }
        .tabla-items th { text-align: left; padding-bottom: 5px; border-bottom: 1px solid #000; }
        .tabla-items td { padding: 3px 0; vertical-align: top; }
        .td-cant { width: 15%; text-align: center; }
        .td-prod { width: 55%; }
        .td-precio { width: 30%; text-align: right; }
        .totales { text-align: right; font-size: 13px; font-weight: bold; margin-top: 10px; }
        .metodo-pago { margin-top: 10px; font-size: 11px; }
        .qr-container { display: flex; justify-content: center; margin: 15px 0; }
        .hash-text { font-size: 9px; word-break: break-all; margin-bottom: 10px; }
        .footer { font-size: 10px; text-align: center; margin-top: 10px; }
        .btn-imprimir { padding: 10px 20px; cursor: pointer; background: #0d6efd; color: white; border: none; border-radius: 5px; font-weight: bold; font-size: 14px; margin-top: 20px; width: 100%; }
        
        @media print {
            body { background-color: white; padding: 0; }
            .ticket { box-shadow: none; width: 100%; max-width: 80mm; padding: 5px; margin: 0 auto; }
            .no-print { display: none !important; }
        }
    </style>
</head>
<body>

<div class="ticket">
    <div class="centrado">
        <?php if (!empty($empresa['logo_url'])): ?>
            <img src="../<?php echo htmlspecialchars($empresa['logo_url']); ?>" alt="Logo" class="logo">
        <?php endif; ?>
        <div class="empresa-nombre"><?php echo htmlspecialchars($empresa['nombre_empresa']); ?></div>
        <div class="info-header">
            RUC: <?php echo htmlspecialchars($empresa['ruc']); ?><br>
            <?php echo htmlspecialchars($empresa['direccion']); ?><br>
            --------------------------------<br>
            <strong>TICKET <?php echo $venta['tipo_comprobante']; ?></strong><br>
            <?php echo $venta['serie'] ? $venta['serie'] . '-' . str_pad($venta['correlativo'], 6, '0', STR_PAD_LEFT) : 'T-' . str_pad($venta['id_venta'], 6, '0', STR_PAD_LEFT); ?>
        </div>
    </div>

    <div class="info-header">
        <strong>Fecha:</strong> <?php echo date('d/m/Y H:i', strtotime($venta['fecha_venta'])); ?><br>
        <strong>Cajero:</strong> <?php echo htmlspecialchars($venta['cajero'] ?? 'Admin'); ?><br>
        <strong>Cliente:</strong> <?php echo htmlspecialchars($venta['cliente'] ?? 'Público General'); ?><br>
        <?php if($venta['cli_doc'] && $venta['cli_doc'] !== '00000000'): ?>
            <strong>Doc:</strong> <?php echo htmlspecialchars($venta['cli_doc']); ?>
        <?php endif; ?>
    </div>

    <div class="linea"></div>

    <table class="tabla-items">
        <thead>
            <tr>
                <th class="td-cant">Cant</th>
                <th class="td-prod">Producto</th>
                <th class="td-precio">Total</th>
            </tr>
        </thead>
        <tbody>
            <?php while($item = $detalles->fetch_assoc()): ?>
            <tr>
                <td class="td-cant"><?php echo (float)$item['cantidad']; ?></td>
                <td class="td-prod"><?php echo htmlspecialchars($item['nombre']); ?></td>
                <td class="td-precio">S/ <?php echo number_format($item['subtotal'], 2); ?></td>
            </tr>
            <?php endwhile; ?>
        </tbody>
    </table>

    <div class="linea"></div>

    <div class="totales">
        Subtotal: S/ <?php echo number_format($venta['monto_total'], 2); ?><br>
        <span style="font-size: 15px;">TOTAL: S/ <?php echo number_format($venta['monto_total'], 2); ?></span>
    </div>
    
    <div class="metodo-pago">
        Pago con: <?php echo $venta['tipo_pago']; ?> (S/ <?php echo number_format($venta['monto_pago'], 2); ?>)<br>
        Vuelto: S/ <?php echo number_format($venta['vuelto'], 2); ?>
    </div>

    <div class="linea"></div>

    <div class="centrado">
        <div class="qr-container" id="qrcode"></div>
        <div class="hash-text">
            Representación impresa de comprobante.<br>
            Hash: <?php echo $hash_simulado; ?>
        </div>
    </div>

    <div class="footer">
        *** GRACIAS POR SU PREFERENCIA ***<br>
        Vuelva pronto a <?php echo htmlspecialchars($empresa['nombre_empresa']); ?>
    </div>
    
    <button onclick="window.print()" class="btn-imprimir no-print">
        🖨️ IMPRIMIR TICKET
    </button>
</div>

<script>
    // Generar código QR de validación (SUNAT simulación)
    let qrData = "<?php echo $empresa['ruc']; ?>|<?php echo $venta['tipo_comprobante']; ?>|<?php echo $venta['serie']; ?>|<?php echo $venta['correlativo']; ?>|<?php echo number_format($venta['monto_total'], 2, '.', ''); ?>|<?php echo date('Y-m-d', strtotime($venta['fecha_venta'])); ?>|<?php echo $venta['cli_doc'] ?? '-'; ?>|<?php echo $hash_simulado; ?>";
    
    new QRCode(document.getElementById("qrcode"), {
        text: qrData,
        width: 100,
        height: 100,
        colorDark : "#000000",
        colorLight : "#ffffff",
        correctLevel : QRCode.CorrectLevel.L
    });
    
    // Auto-Imprimir al abrir (Opcional)
    // window.onload = function() { window.print(); }
</script>

</body>
</html>