<?php
include("../../config/db.php"); 
include("../../config/conexion.php"); 
require_once('../../fpdf/fpdf.php');

$id_factura = intval($_GET['id_factura']);

// CONSULTA ACTUALIZADA: JOIN con tiendas, users y clientes
$sql_factura = mysqli_query($con, "SELECT f.*, t.nombre as nombre_tienda, u.firstname, u.lastname, c.nombre_cliente 
                                    FROM facturas f 
                                    LEFT JOIN tiendas t ON f.almacen = t.id_tienda 
                                    LEFT JOIN users u ON f.id_vendedor = u.user_id 
                                    LEFT JOIN clientes c ON f.id_cliente = c.id_cliente
                                    WHERE f.id_factura='$id_factura'");

$rw_factura = mysqli_fetch_array($sql_factura);
$numero_factura = $rw_factura['numero_factura'];
$observaciones_factura = $rw_factura['observaciones'];
$fecha = date("d/m/Y H:i", strtotime($rw_factura['fecha_factura']));
$tienda = $rw_factura['nombre_tienda'];
$vendedor = $rw_factura['firstname'] . " " . $rw_factura['lastname'];
$cliente = $rw_factura['nombre_cliente']; 

$sql_detalle = mysqli_query($con, "SELECT * FROM detalle_factura WHERE numero_factura='$numero_factura'");
$num_items = mysqli_num_rows($sql_detalle);

// Ajuste de altura dinámica
$alto_recibo = 100 + ($num_items * 8); 

// Definición de papel 58mm
$pdf = new FPDF('P', 'mm', array(58, $alto_recibo));
$pdf->SetMargins(1, 1, 1); 
$pdf->SetAutoPageBreak(true, 2); 
$pdf->AddPage();

// El ancho útil real para 58mm con márgenes de 2mm es de 54mm
$ancho_util = 54;

// Encabezado del Ticket
$pdf->SetFont('Arial', 'B', 9);
$pdf->Cell($ancho_util, 4, utf8_decode("ORDEN DE PREPARACIÓN"), 0, 1, 'C');
$pdf->SetFont('Arial', 'B', 11);
$pdf->Cell($ancho_util, 6, "COMANDA #$numero_factura", 0, 1, 'C');
$pdf->Ln(2);

$pdf->SetFont('Arial', '', 8);
$pdf->Cell($ancho_util, 4, "Tienda: " . utf8_decode($tienda), 0, 1, 'L');
$pdf->Cell($ancho_util, 4, "Fecha: $fecha", 0, 1, 'L');
$pdf->Cell($ancho_util, 4, "Vendedor: " . utf8_decode($vendedor), 0, 1, 'L');

// --- SECCIÓN: CLIENTE ---
$pdf->Ln(1);
$pdf->SetFont('Arial', 'B', 9);
// Usamos MultiCell por si el nombre del cliente es muy largo
$pdf->MultiCell($ancho_util, 4, "CLIENTE: " . utf8_decode($cliente), 0, 'L');
$pdf->Ln(1);

$pdf->Cell($ancho_util, 0, '', 'T', 1, 'C'); // Línea divisoria
$pdf->Ln(1);

// Encabezado de tabla
$pdf->SetFont('Arial', 'B', 8);
$pdf->Cell(10, 5, "Cant.", 0, 0, 'L');
$pdf->Cell(44, 5, "Producto / Descripcion", 0, 1, 'L');
$pdf->Cell($ancho_util, 0, '', 'T', 1, 'C');
$pdf->Ln(1);

// Detalle de productos
$pdf->SetFont('Arial', '', 10);
// Reseteamos el puntero de la consulta de detalles
mysqli_data_seek($sql_detalle, 0);

while ($row = mysqli_fetch_array($sql_detalle)) {
    $id_producto = $row['id_producto'];
    $cantidad = $row['cantidad'];
    
    $sql_p = mysqli_query($con, "SELECT nombre FROM producto_final WHERE id='$id_producto'");
    $rw_p = mysqli_fetch_array($sql_p);
    $nombre_producto = $rw_p['nombre'];

    // Guardamos la posición X e Y actual para manejar el MultiCell del nombre
    $x = $pdf->GetX();
    $y = $pdf->GetY();

    $pdf->Cell(10, 5, number_format($cantidad, 0), 0, 0, 'R');
    // El ancho del nombre es de 44mm (54 total - 10 de cantidad)
    $pdf->MultiCell(44, 5, utf8_decode($nombre_producto), 0, 'L');
    
    // Si el MultiCell ocupó más de una línea, FPDF baja automáticamente. 
    // Dibujamos una línea punteada sutil opcional o un espacio
    $pdf->Ln(1);
}

// Pie de comanda
$pdf->Cell($ancho_util, 0, '', 'T', 1, 'C');
$pdf->Ln(2);
$pdf->SetFont('Arial', 'B', 9);
$pdf->MultiCell($ancho_util, 4, utf8_decode("Obser: " . $observaciones_factura), 0, 'L');

$pdf->Output("Comanda_$numero_factura.pdf", "I");
?>