62 lines
1.7 KiB
PHP
62 lines
1.7 KiB
PHP
<?php
|
|
include("db.php");
|
|
|
|
if (!isset($_SESSION['id_usuario'])) {
|
|
header("Location: login.php?msj=debes_iniciar_sesion");
|
|
exit();
|
|
}
|
|
|
|
$accion = $_GET['accion'] ?? '';
|
|
$id = $_GET['id'] ?? '';
|
|
$id = intval($id);
|
|
|
|
$origen = $_GET['origen'] ?? 'menu';
|
|
$cat_retorno = $_GET['cat'] ?? 'Todos';
|
|
|
|
switch ($accion) {
|
|
case 'agregar':
|
|
if ($id > 0) {
|
|
$sql_stock = "SELECT stock FROM productos WHERE id = ?";
|
|
$stmt = $conexion->prepare($sql_stock);
|
|
$stmt->bind_param("i", $id);
|
|
$stmt->execute();
|
|
$resultado = $stmt->get_result();
|
|
|
|
if ($row = $resultado->fetch_assoc()) {
|
|
$stock_disponible = (int)$row['stock'];
|
|
|
|
|
|
$cantidad_futura = isset($_SESSION['carrito'][$id]) ? $_SESSION['carrito'][$id] + 1 : 1;
|
|
|
|
if ($cantidad_futura <= $stock_disponible) {
|
|
$_SESSION['carrito'][$id] = $cantidad_futura;
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($origen === 'carrito') {
|
|
header("Location: carrito.php");
|
|
} else {
|
|
header("Location: productos.php?cat=" . urlencode($cat_retorno) . "#prod-" . $id);
|
|
}
|
|
exit();
|
|
|
|
case 'quitar':
|
|
if (isset($_SESSION['carrito'][$id])) {
|
|
$_SESSION['carrito'][$id]--;
|
|
if ($_SESSION['carrito'][$id] <= 0) {
|
|
unset($_SESSION['carrito'][$id]);
|
|
}
|
|
}
|
|
header("Location: carrito.php");
|
|
exit();
|
|
|
|
case 'eliminar':
|
|
unset($_SESSION['carrito'][$id]);
|
|
header("Location: carrito.php");
|
|
exit();
|
|
|
|
default:
|
|
header("Location: productos.php");
|
|
exit();
|
|
} |