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

// Función de cálculo (Mantenida intacta)
function calcular_precio_final($id_producto_final, $con) {
    $sql_comp = "SELECT c.cantidad, p.precio_venta FROM composicion_producto_final c JOIN products p ON c.id_producto = p.id_producto WHERE c.id_producto_final = '$id_producto_final'";
    $query_comp = mysqli_query($con, $sql_comp);
    $total = 0;
    while ($row_comp = mysqli_fetch_array($query_comp)) {
        $total += $row_comp['cantidad'] * $row_comp['precio_venta'];
    }
    return $total;
}

// Captura de variables vía GET (Cambiadas para que coincidan con el botón del reporte)
$desde = isset($_GET['desde']) ? $_GET['desde'] : "";
$hasta = isset($_GET['hasta']) ? $_GET['hasta'] : "";
$tienda_nombre = isset($_GET['tienda']) ? $_GET['tienda'] : "";
$q = isset($_GET['q']) ? $_GET['q'] : "";

// Tasa actual
$con_tasa = mysqli_query($con, "select * from tasa where id_tasa='1'");
$dato_tasa = mysqli_fetch_array($con_tasa);
$tasa_actual = $dato_tasa['tasa'];

// Lógica de filtrado por tienda
$id_tienda = "";
$nombre_tienda_reporte = "TODAS LAS TIENDAS"; 
if (!empty($tienda_nombre)) {
    $query_tienda = mysqli_query($con, "select id_tienda, nombre from tiendas where nombre LIKE '%$tienda_nombre%'");
    if($row_t = mysqli_fetch_array($query_tienda)){
        $id_tienda = $row_t['id_tienda'];
        $nombre_tienda_reporte = $row_t['nombre'];
    }
}

// Reconstrucción de la consulta SQL exacta del reporte
$sql = "select facturas.fecha_factura, facturas.numero_factura, detalle_factura.id_producto, detalle_factura.cantidad, producto_final.tipo, producto_final.nombre, detalle_factura.precio_venta, SUM(cantidad) maximo, SUM(detalle_factura.precio_venta) suma FROM producto_final INNER JOIN detalle_factura ON producto_final.id = detalle_factura.id_producto INNER JOIN facturas ON detalle_factura.numero_factura = facturas.numero_factura WHERE 1=1";

if (!empty($id_tienda)) { $sql .= " AND facturas.almacen = '$id_tienda'"; }
if (!empty($desde) && empty($hasta)) { $sql .= " AND facturas.fecha_factura = '$desde'"; }
if (empty($desde) && !empty($hasta)) { $sql .= " AND facturas.fecha_factura = '$hasta'"; }
if (!empty($desde) && !empty($hasta)) { $sql .= " AND facturas.fecha_factura BETWEEN '$desde' AND '$hasta'"; }
if (!empty($q)) { $sql .= " AND producto_final.tipo LIKE '%$q%'"; }

$sql .= " group by detalle_factura.id_producto ORDER BY maximo DESC";

// --- CONFIGURACIÓN FPDF EN HORIZONTAL ('L') ---
$pdf = new FPDF('L', 'mm', 'A4');
$pdf->AddPage();

// --- ENCABEZADO CON LOGO ---
if (file_exists('img/logotienda.jpeg')) {
    $pdf->Image('img/logotienda.jpeg', 10, 5, 277, 30, 'JPG');
}
$pdf->Ln(32); 

// Información del Reporte
$pdf->SetFont('Arial', 'B', 14);
$pdf->Cell(277, 8, utf8_decode("REPORTE DE PRODUCTOS MÁS VENDIDOS"), 0, 1, 'C');
$pdf->SetFont('Arial', 'B', 11);
$pdf->Cell(277, 6, utf8_decode("TIENDA: " . $nombre_tienda_reporte), 0, 1, 'C');
$pdf->SetFont('Arial', '', 10);
$pdf->Cell(277, 5, "Periodo: $desde al $hasta", 0, 1, 'C');
$pdf->Ln(5);

// --- TABLA HORIZONTAL ---
$pdf->SetFillColor(232, 232, 232);
$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(12, 8, '#', 1, 0, 'C', 1);
$pdf->Cell(40, 8, 'TIPO', 1, 0, 'C', 1);
$pdf->Cell(100, 8, 'DESCRIPCION DEL PRODUCTO', 1, 0, 'C', 1);
$pdf->Cell(30, 8, 'CANTIDAD', 1, 0, 'C', 1);
$pdf->Cell(47, 8, 'P. UNIT ($ / BsD)', 1, 0, 'C', 1);
$pdf->Cell(48, 8, 'TOTAL VENTAS ($ / BsD)', 1, 1, 'C', 1);

$pdf->SetFont('Arial', '', 9);
$query = mysqli_query($con, $sql);
$item = 0;
$tot_general = 0;

while ($dato = mysqli_fetch_array($query)) {
    $item++;
    $can = $dato['maximo'];
    $id_pro = $dato['id_producto'];
    $nombre = $dato['nombre'];
    $tipo = $dato['tipo'];
    
    $precio_producto = calcular_precio_final($id_pro, $con);
    $mon_tot = $can * $precio_producto;
    $tot_general += $mon_tot;
    
    $p_bs = number_format($precio_producto * $tasa_actual, 2, ",", ".");
    $p_dl = number_format($precio_producto, 2, ",", ".");
    $t_bs = number_format($mon_tot * $tasa_actual, 2, ",", ".");
    $t_dl = number_format($mon_tot, 2, ",", ".");

    $pdf->Cell(12, 7, $item, 1, 0, 'C');
    $pdf->Cell(40, 7, utf8_decode($tipo), 1, 0, 'L');
    $pdf->Cell(100, 7, utf8_decode($nombre), 1, 0, 'L');
    $pdf->Cell(30, 7, number_format($can, 2, ",", "."), 1, 0, 'C');
    $pdf->Cell(47, 7, "$$p_dl / $p_bs", 1, 0, 'C');
    $pdf->Cell(48, 7, "$$t_dl / $t_bs", 1, 1, 'C');
}

// Totales
$pdf->SetFont('Arial', 'B', 11);
$total_bs = number_format($tot_general * $tasa_actual, 2, ",", ".");
$total_dl = number_format($tot_general, 2, ",", ".");

$pdf->Cell(182, 10, "", 0, 0);
$pdf->Cell(47, 10, "TOTAL GENERAL:", 1, 0, 'R', 1);
$pdf->Cell(48, 10, "$$total_dl / $total_bs BsD", 1, 1, 'C', 1);

// Importante: El nombre del archivo ahora es genérico al reporte
$pdf->Output("I", "Reporte_Productos_Mas_Vendidos.pdf");
?>