<?php
require 'vendor/autoload.php';  // Asegúrate de que Dompdf está instalado correctamente

use Dompdf\Dompdf;
use Dompdf\Options;
require_once 'conexion.php'; // tu archivo de conexión

$id_devolucion = isset($_GET['id']) ? intval($_GET['id']) : 0;

if ($id_devolucion <= 0) {
    die("ID inválida.");
}

// Consulta principal de la devolución, ahora incluye el 'codigo' de la devolución
$stmt = $conexion->prepare("
    SELECT 
        d.id, d.fecha, d.codigo,  -- Incluir la columna 'codigo' en la consulta
        u.nombres, u.apellido_paterno, u.apellido_materno, u.numero_documento,
        e.nombre AS empresa_nombre,
        b.nombre AS bodega_nombre, b.direccion AS bodega_direccion
    FROM devoluciones d
    INNER JOIN usuarios u ON u.id = d.id_usuario
    LEFT JOIN detalles_devolucion dd ON dd.id_devolucion = d.id
    LEFT JOIN ferreteria f ON f.id_producto = dd.id_producto
    LEFT JOIN bodegas b ON b.id_bodega = f.id_bodega
    LEFT JOIN empresas e ON e.id_empresa = f.id_empresa
    WHERE d.id = ?
    LIMIT 1
");
$stmt->bind_param("i", $id_devolucion);
$stmt->execute();
$result = $stmt->get_result();
$info = $result->fetch_assoc();

if (!$info) {
    die("No se encontró la devolución.");
}

// Productos
$productos = [];
$stmt = $conexion->prepare("
    SELECT f.nombre, dd.cantidad, f.unidad_medida
    FROM detalles_devolucion dd
    INNER JOIN ferreteria f ON f.id_producto = dd.id_producto
    WHERE dd.id_devolucion = ?
");
$stmt->bind_param("i", $id_devolucion);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    $productos[] = $row;
}

// Series
$series = [];
$stmt = $conexion->prepare("
    SELECT s.serie
    FROM detalles_devolucion_series ds
    INNER JOIN series_datos s ON s.id_dato = ds.id_dato
    WHERE ds.id_devolucion = ?
");
$stmt->bind_param("i", $id_devolucion);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    $series[] = $row['serie'];
}

// Crear una instancia de Dompdf
$options = new Options();
$options->set('isHtml5ParserEnabled', true);
$options->set('isPhpEnabled', true);
$dompdf = new Dompdf($options);

// Construir el HTML para el PDF
$html = "<style>
    body {
        font-family: 'Arial', sans-serif;
        margin: 20px;
        color: #333;
    }
    h1 {
        text-align: center;
        color: #0044cc;
        font-size: 26px;
        margin-bottom: 20px;
    }
    h3 {
        color: #0066cc;
        font-size: 18px;
        margin-top: 20px;
    }
    p {
        font-size: 12px;
        margin: 5px 0;
    }
    .header-info {
        font-size: 12px;
        color: #666;
        margin-top: 10px;
    }
    table {
        width: 100%;
        border-collapse: collapse;
        margin-top: 20px;
    }
    table th, table td {
        padding: 10px;
        text-align: left;
        border: 1px solid #ddd;
        font-size: 12px;
    }
    table th {
        background-color: #f2f2f2;
    }
    .user-info {
        background-color: #f1f1f1;
        padding: 10px;
        margin-top: 20px;
        border-radius: 5px;
    }
    .footer {
        text-align: center;
        margin-top: 30px;
        font-size: 12px;
        color: #777;
    }
    .signature {
        margin-top: 40px;
        text-align: center;
        font-size: 14px;
    }
    .table-section {
        margin-top: 20px;
    }
    .table-section td {
        padding-left: 10px;
    }
    .products-table th, .series-table th {
        background-color: #cce5ff;
        color: #0044cc;
        font-weight: bold;
    }
    .products-table td, .series-table td {
        border: 1px solid #ddd;
    }
    .products-table tr:nth-child(even) {
        background-color: #f9f9f9;
    }
    .products-table tr:hover {
        background-color: #e9e9e9;
    }
</style>";

$html .= "<h1>Guía de Devolución #{$info['codigo']}</h1>"; 
$html .= "<p><strong>Fecha:</strong> {$info['fecha']}</p>";

// Datos del "Técnico"
$html .= "<div class='user-info'>";
$html .= "<p><strong>Técnico:</strong> {$info['nombres']} {$info['apellido_paterno']} {$info['apellido_materno']}</p>";
$html .= "<p><strong>DNI:</strong> {$info['numero_documento']}</p>";
$html .= "</div>";

// Empresa y Bodega
$html .= "<p><strong>Empresa:</strong> {$info['empresa_nombre']}</p>";
$html .= "<p><strong>Bodega:</strong> {$info['bodega_nombre']} - {$info['bodega_direccion']}</p>";

// Tabla de productos (Ferretería)
$html .= "<h3>Productos de Ferretería</h3>";
$html .= "<table class='products-table'>
            <thead>
                <tr>
                    <th>Producto</th>
                    <th>Cantidad</th>
                    <th>Unidad</th>
                </tr>
            </thead>
            <tbody>";
foreach ($productos as $p) {
    $html .= "<tr>
                <td><strong>Ferretería:</strong> {$p['nombre']}</td>
                <td>{$p['cantidad']}</td>
                <td>{$p['unidad_medida']}</td>
              </tr>";
}
$html .= "</tbody>
        </table>";

// Tabla de series
$html .= "<h3>Series</h3>";
$html .= "<table class='series-table'>
            <thead>
                <tr>
                    <th>Serie</th>
                </tr>
            </thead>
            <tbody>";
if (count($series) > 0) {
    foreach ($series as $serie) {
        $html .= "<tr>
                    <td>{$serie}</td>
                  </tr>";
    }
} else {
    $html .= "<tr><td>No hay series registradas.</td></tr>";
}
$html .= "</tbody>
        </table>";

// Firma y responsable
$html .= "<div class='signature'>";
$html .= "<p><strong>Firmado por:</strong>  {$info['nombres']} {$info['apellido_paterno']} {$info['apellido_materno']}</p>";
$html .= "<p>______________________</p>";
$html .= "<p><strong>Firma</strong></p>";
$html .= "</div>";

// Footer
$html .= "<div class='footer'>
            <p>Guía generada el " . date("d/m/Y H:i:s") . "</p>
          </div>";

// Cargar el HTML en Dompdf
$dompdf->loadHtml($html);

// (Opcional) Configurar tamaño de página
$dompdf->setPaper('A4', 'portrait');

// Renderizar el PDF (esto generará el archivo PDF en memoria)
$dompdf->render();

// Descargar el PDF automáticamente
$dompdf->stream("guia_devolucion_{$info['codigo']}.pdf", array("Attachment" => 1));  // 1 significa descargar el archivo automáticamente
?>
