Skip to content
Permalink
Browse files
No aumentar cantidad si es mayor a la que existe en la base de datos
  • Loading branch information
parzibyte committed Mar 4, 2019
1 parent 2f1e6d3 commit 46bd2e946c8b64bd98d8242d4132e6f9cf54af7b
Showing 1 changed file with 41 additions and 25 deletions.
@@ -1,31 +1,47 @@
<?php
if(!isset($_POST["codigo"])) return;
if (!isset($_POST["codigo"])) {
return;
}

$codigo = $_POST["codigo"];
include_once "base_de_datos.php";
$sentencia = $base_de_datos->prepare("SELECT * FROM productos WHERE codigo = ? LIMIT 1;");
$sentencia->execute([$codigo]);
$producto = $sentencia->fetch(PDO::FETCH_OBJ);
if($producto){
if($producto->existencia < 1){
header("Location: ./vender.php?status=5");
exit;
}
session_start();
$indice = false;
for ($i=0; $i < count($_SESSION["carrito"]); $i++) {
if($_SESSION["carrito"][$i]->codigo === $codigo){
$indice = $i;
break;
}
}
if($indice === FALSE){
$producto->cantidad = 1;
$producto->total = $producto->precioVenta;
array_push($_SESSION["carrito"], $producto);
}else{
$_SESSION["carrito"][$indice]->cantidad++;
$_SESSION["carrito"][$indice]->total = $_SESSION["carrito"][$indice]->cantidad * $_SESSION["carrito"][$indice]->precioVenta;
}
header("Location: ./vender.php");
}else header("Location: ./vender.php?status=4");
?>
# Si no existe, salimos y lo indicamos
if (!$producto) {
header("Location: ./vender.php?status=4");
exit;
}
# Si no hay existencia...
if ($producto->existencia < 1) {
header("Location: ./vender.php?status=5");
exit;
}
session_start();
# Buscar producto dentro del cartito
$indice = false;
for ($i = 0; $i < count($_SESSION["carrito"]); $i++) {
if ($_SESSION["carrito"][$i]->codigo === $codigo) {
$indice = $i;
break;
}
}
# Si no existe, lo agregamos como nuevo
if ($indice === false) {
$producto->cantidad = 1;
$producto->total = $producto->precioVenta;
array_push($_SESSION["carrito"], $producto);
} else {
# Si ya existe, se agrega la cantidad
# Pero espera, tal vez ya no haya
$cantidadExistente = $_SESSION["carrito"][$indice]->cantidad;
# si al sumarle uno supera lo que existe, no se agrega
if ($cantidadExistente + 1 > $producto->existencia) {
header("Location: ./vender.php?status=5");
exit;
}
$_SESSION["carrito"][$indice]->cantidad++;
$_SESSION["carrito"][$indice]->total = $_SESSION["carrito"][$indice]->cantidad * $_SESSION["carrito"][$indice]->precioVenta;
}
header("Location: ./vender.php");

0 comments on commit 46bd2e9

Please sign in to comment.