prepare("SELECT COUNT(*) FROM products WHERE nombre = ?"); $stmt->execute([$nombre_producto]); if ($stmt->fetchColumn() > 0) { $message = "Error: El producto '{$nombre_producto}' ya existe."; $message_type = "danger"; } else { // Insert new product with default values $stmt = $pdo->prepare("INSERT INTO products (nombre, unidades_disponibles, cobertura, show_on_panel, order_position) VALUES (?, 0, '[]', 1, 0)"); if ($stmt->execute([$nombre_producto])) { $message = "Producto '{$nombre_producto}' registrado con éxito."; $message_type = "success"; } else { $message = "Error al registrar el producto."; $message_type = "danger"; } } } catch (PDOException $e) { $message = "Error de base de datos: " . $e->getMessage(); $message_type = "danger"; } } else { $message = "El nombre del producto no puede estar vacío."; $message_type = "warning"; } } // Set the title based on the section switch ($seccion) { case 'entrada': $pageTitle = "Registro de Entrada"; break; case 'salida': $pageTitle = "Registro de Salida"; break; case 'registro_producto': $pageTitle = "Registro de Nuevo Producto"; break; case 'dashboard': default: $pageTitle = "Dashboard de Inventario"; break; } ?>
Registro de Entrada de Inventario

Esta sección está en construcción. Aquí podrás registrar la entrada de nuevo stock.

Registro de Salida de Inventario

Esta sección está en construcción. Aquí podrás registrar la salida de stock por ventas u otros motivos.

Registrar Nuevo Producto
query("SELECT nombre, unidades_disponibles, cobertura FROM products ORDER BY nombre ASC"); $products = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { echo "
Error al conectar con la base de datos: " . $e->getMessage() . "
"; $products = []; } ?>
Stock de Productos por Ciudad
Producto Stock Total Ciudades de Cobertura
No hay productos para mostrar.
document.title = '" . htmlspecialchars($pageTitle) . "';"; echo ""; } require_once 'layout_footer.php'; ?>