<?php
session_start();
$user_id = $_SESSION['id_users'];
require_once "../db.php";
require_once "../php_conexion.php";
require_once "../funciones.php";
include_once('libs/fpdf.php');

// ----------------- DATOS GENERALES -----------------
$q = mysqli_real_escape_string($conexion, (strip_tags($_REQUEST['q'], ENT_QUOTES)));
$id_categoria = intval($_REQUEST['categoria']);

$perfil = mysqli_fetch_array(mysqli_query($conexion, "SELECT moneda, nombre_empresa, logo_url FROM perfil"));
$moneda = $perfil["moneda"];
$bussines_name = $perfil["nombre_empresa"];
$logo = $perfil["logo_url"];

$usuario = mysqli_fetch_array(mysqli_query($conexion, "SELECT nombre_users, apellido_users FROM users WHERE id_users = $user_id"));
$users = $usuario['nombre_users'] . ' ' . $usuario['apellido_users'];

// ----------------- CONSULTA PRINCIPAL -----------------
$query = "
    SELECT 
        p.id_producto,
        p.codigo_producto,
        p.nombre_producto,
        p.costo_producto,
        p.stock_producto,
        p.stock_min_producto,
        p.estado_producto,
        pr.nombre_proveedor
    FROM productos p
    LEFT JOIN proveedores pr ON p.id_proveedor = pr.id_proveedor
    WHERE p.stock_producto <= p.stock_min_producto
";

// filtro por categoría
if ($id_categoria > 0) {
    $query .= " AND p.id_linea_producto = $id_categoria ";
}

// filtro por búsqueda
if (!empty($q)) {
    $query .= " AND (
        p.codigo_producto LIKE '%$q%' OR
        p.nombre_producto LIKE '%$q%' OR
        p.cod_oem LIKE '%$q%' OR
        p.cod_remplazo LIKE '%$q%' OR
        p.ubicacion_producto LIKE '%$q%' OR
        p.descripcion_producto LIKE '%$q%'
    ) ";
}

$query .= " ORDER BY p.stock_producto ASC"; // primero los más críticos

$resultado = mysqli_query($conexion, $query);

// ----------------- PDF -----------------
class PDF extends FPDF
{
    function Header()
    {
        global $logo, $users;
        $this->Image($logo, 10, 5, 40);
        $this->SetFont('Arial', 'B', 16);
        $this->Cell(300, 30, "Reporte de Productos Minimos", 0, 1, 'C');
        $this->SetFont('Arial', 'B', 10);

        $ancho = 220;
        $horizontal = 60;

        $this->SetY(10);
        $this->Cell($ancho + $horizontal, 10, 'Usuario: ' . $users, 0, 0, 'R');
        $this->SetY(15);
        $this->Cell($ancho + $horizontal, 10, 'Fecha: ' . date('d/m/Y'), 0, 0, 'R');
        $this->SetY(20);
        $this->Cell($ancho + $horizontal, 10, 'Hora: ' . date('H:i:s'), 0, 0, 'R');

        $this->Ln(25);
    }

    function Footer()
    {
        $this->SetY(-15);
        $this->SetFont('Arial', 'I', 8);
        $this->Cell(0, 10, 'Pagina ' . $this->PageNo() . '/{nb}', 0, 0, 'C');
    }
}

// Inicializar PDF
$pdf = new PDF('L', 'mm', 'A4');
$pdf->AddPage();
$pdf->AliasNbPages();
$pdf->SetFont('Arial', 'B', 12);
$pdf->SetTextColor(3, 3, 3);
$pdf->setFillColor(133, 193, 233);

// ----------------- ENCABEZADOS -----------------
$w = array(20, 100, 60, 25, 35, 20);

$pdf->Cell($w[0], 12, 'CODIGO', 1, 0, 'C', 1);
$pdf->Cell($w[1], 12, 'NOMBRE', 1, 0, 'C', 1);
$pdf->Cell($w[2], 12, 'PROVEEDOR', 1, 0, 'C', 1);
$pdf->Cell($w[3], 12, 'STOCK', 1, 0, 'C', 1);
$pdf->Cell($w[4], 12, 'STOCK MINIMO', 1, 0, 'C', 1);
$pdf->Cell($w[5], 12, 'COSTO', 1, 0, 'C', 1);

$pdf->Ln();

// ----------------- CONTENIDO -----------------
$pdf->SetFont('Arial', '', 10);
$pdf->setFillColor(240, 240, 240);
$fill = false;

while ($row = mysqli_fetch_assoc($resultado)) {

    $pdf->Cell($w[0], 7, utf8_decode($row['codigo_producto']), 1, 0, 'L', $fill);
    $pdf->Cell($w[1], 7, utf8_decode($row['nombre_producto']), 1, 0, 'L', $fill);
    $pdf->Cell($w[2], 7, utf8_decode($row['nombre_proveedor']), 1, 0, 'L', $fill);
    $pdf->Cell($w[3], 7, $row['stock_producto'], 1, 0, 'C', $fill);
    $pdf->Cell($w[4], 7, $row['stock_min_producto'], 1, 0, 'C', $fill);
    $pdf->Cell($w[5], 7, ($moneda . ' ' . formato($row['costo_producto'])), 1, 0, 'R', $fill);

    $pdf->Ln();
    $fill = !$fill; // alternar color
}

$pdf->Output();
