diff --git a/panel_inventario.php b/panel_inventario.php index d7b579d..866234b 100644 --- a/panel_inventario.php +++ b/panel_inventario.php @@ -1,356 +1,121 @@ -prepare($sql); - $stmt->bindParam(':nombre', $nombre_sede); - $stmt->execute(); - $feedback = 'Sede añadida correctamente.'; - $feedback_type = 'success'; - } catch (PDOException $e) { - $feedback = 'Error al añadir la sede: ' . $e->getMessage(); - $feedback_type = 'danger'; - } - } else { - $feedback = 'El nombre de la sede no puede estar vacío.'; - $feedback_type = 'warning'; - } -} - -// --- ELIMINAR SEDE --- -if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_sede'])) { - $sede_id = $_POST['sede_id']; - try { - $sql = "DELETE FROM sedes WHERE id = :id"; - $stmt = $conn->prepare($sql); - $stmt->bindParam(':id', $sede_id, PDO::PARAM_INT); - $stmt->execute(); - $feedback = 'Sede eliminada correctamente.'; - $feedback_type = 'success'; - } catch (PDOException $e) { - $feedback = 'Error al eliminar la sede.'; - $feedback_type = 'danger'; - } -} - -// --- REGISTRAR ENTRADA DE INVENTARIO --- -if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['registrar_entrada'])) { - $producto_id = $_POST['producto_id']; - $cantidad = $_POST['cantidad']; - - if (!empty($producto_id) && !empty($cantidad) && is_numeric($cantidad) && $cantidad > 0) { - try { - $conn->beginTransaction(); - $stmt = $conn->prepare("UPDATE productos SET unidades_disponibles = unidades_disponibles + :cantidad WHERE id = :id"); - $stmt->bindParam(':cantidad', $cantidad, PDO::PARAM_INT); - $stmt->bindParam(':id', $producto_id, PDO::PARAM_INT); - $stmt->execute(); - $conn->commit(); - $feedback = 'Stock actualizado correctamente.'; - $feedback_type = 'success'; - } catch (PDOException $e) { - $conn->rollBack(); - $feedback = 'Error al actualizar el stock: ' . $e->getMessage(); - $feedback_type = 'danger'; - } - } else { - $feedback = 'Por favor, selecciona un producto e introduce una cantidad válida.'; - $feedback_type = 'warning'; - } -} - -// --- REGISTRAR NUEVO PRODUCTO --- -if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['registrar_producto'])) { - $nombre = trim($_POST['nombre']); - $unidades = (int)$_POST['unidades_disponibles']; - $precio = (float)$_POST['precio_unitario']; - $costo = (float)$_POST['costo_unitario']; - - if (!empty($nombre) && $unidades >= 0 && $precio >= 0 && $costo >= 0) { - try { - $sql = "INSERT INTO productos (nombre, unidades_disponibles, precio_unitario, costo_unitario) VALUES (:nombre, :unidades, :precio, :costo)"; - $stmt = $conn->prepare($sql); - $stmt->execute([':nombre' => $nombre, ':unidades' => $unidades, ':precio' => $precio, ':costo' => $costo]); - $feedback = 'Producto registrado correctamente.'; - $feedback_type = 'success'; - } catch (PDOException $e) { - $feedback = 'Error al registrar el producto: ' . $e->getMessage(); - $feedback_type = 'danger'; - } - } else { - $feedback = 'Por favor, completa todos los campos del producto correctamente.'; - $feedback_type = 'warning'; - } -} - - -// ======= OBTENCIÓN DE DATOS (GET) ======= - -// --- DATOS PARA GRÁFICOS --- -$productos_por_agotarse = $conn->query("SELECT nombre, unidades_disponibles FROM productos WHERE unidades_disponibles > 0 ORDER BY unidades_disponibles ASC LIMIT 5")->fetchAll(PDO::FETCH_ASSOC); -$productos_mas_stock = $conn->query("SELECT nombre, unidades_disponibles FROM productos ORDER BY unidades_disponibles DESC LIMIT 5")->fetchAll(PDO::FETCH_ASSOC); - -// --- LISTA DE TODOS LOS PRODUCTOS --- -$productos = $conn->query("SELECT * FROM productos ORDER BY nombre ASC")->fetchAll(PDO::FETCH_ASSOC); - -// --- LISTA DE SEDES --- -$sedes = $conn->query("SELECT * FROM sedes ORDER BY nombre ASC")->fetchAll(PDO::FETCH_ASSOC); - -$pageTitle = "Panel de Inventario"; -include 'layout_header.php'; +$pdo = db(); ?>
-

Panel de Inventario

+

Panel de Inventario

- - - - -