Foros del Web » Programando para Internet » PHP »

verificar que la cantida de productos vendidos no sean mayor a la existencia en stock

Estas en el tema de verificar que la cantida de productos vendidos no sean mayor a la existencia en stock en el foro de PHP en Foros del Web. buen dia a todos, me podrian ayuda rcon esta validacion, necesito verificar que la cantida de productos vendidos no sean mayor a la existencia en ...
  #1 (permalink)  
Antiguo 29/10/2017, 09:12
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 8 meses
Puntos: 1
Información verificar que la cantida de productos vendidos no sean mayor a la existencia en stock

buen dia a todos, me podrian ayuda rcon esta validacion, necesito verificar que la cantida de productos vendidos no sean mayor a la existencia en stock, aqui esta el codigo q tengo

Código PHP:
Ver original
  1. $venta = $_SESSION["CarritoVentas"];
  2.         for($i=0;$i<count($venta);$i++){
  3.        
  4.         $sql2 = "select existencia from productos where '".$venta[$i]['txtCodigo']."'";
  5.         $stmt = $this->dbh->prepare($sql2);
  6.         $num = $stmt->rowCount();
  7.        
  8.             if($row = $stmt->fetch(PDO::FETCH_ASSOC))
  9.             {
  10.                 $p[] = $row;
  11.             }
  12.         $existenciadb = $row[0]["existencia"]; 
  13.        
  14.         if($venta[$i]['cantidad'] < $existenciadb) {
  15.        
  16.                        echo "ERROR";
  17.                        exit;
  18.                                                    }
  19.                                       }
  #2 (permalink)  
Antiguo 29/10/2017, 09:18
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: wqdwqdwqdw

Y ese título del post que traduce?

En cuanto a la condición, si se va a revisar si es mayor, entonces es con >
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 29/10/2017, 09:32
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: wqdwqdwqdw

Muchas gracias por responder, y la verdad disculpen por el titulo, es que no me queria crear el nuevo tema, se quedaba en blanco la pagina, y escribi esas letras pensando q despues podria modificar,.

Y abordando mi pregunta voy a probar haber porq ya e revisado de varias maneras, y no me ejecutaba el error, te aviso amigo y gracias por responder
  #4 (permalink)  
Antiguo 29/10/2017, 10:32
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: wqdwqdwqdw

me da ahora el siguiente error, Notice: Undefined variable: p in C:\xampp\htdocs\restaurant\class\class.php on line 4914 la cual es esta $existenciadb = $p[0]["existencia"];


Código PHP:
Ver original
  1. $venta = $_SESSION["CarritoVentas"];
  2.         for($i=0;$i<count($venta);$i++){
  3.        
  4.         $sql2 = "select existencia from productos where '".$venta[$i]['txtCodigo']."'";
  5.         $stmt = $this->dbh->prepare($sql2);
  6.         $num = $stmt->rowCount();
  7.        
  8.             if($row = $stmt->fetch(PDO::FETCH_ASSOC))
  9.             {
  10.                 $p[] = $row;
  11.             }
  12.         $existenciadb = $p[0]["existencia"];   
  13.        
  14.         if($venta[$i]['cantidad'] > $existenciadb) {
  15.        
  16.                        echo "4";
  17.                        exit;
  18.                                                    }
  19.                                       }
  #5 (permalink)  
Antiguo 29/10/2017, 12:42
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: wqdwqdwqdw

Pues debería haber dado incluso un error de sql,
pues en el WHERE del query no hay un campo que se iguale
al valor de la variable de sesión (o es que la variable de sesión trae el campo igual al valor ya?)

A consecuencia, la variable $p no toma valor en el if
y por eso es que da ese mensaje de la variable indefinida.

__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #6 (permalink)  
Antiguo 29/10/2017, 20:45
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: verificar que la cantida de productos vendidos no sean mayor a la existenc

buenas noches, si amigo tenias razon, no me habia fijado de ese detalle pero ya solucione, muchas gracias
  #7 (permalink)  
Antiguo 29/10/2017, 20:47
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: verificar que la cantida de productos vendidos no sean mayor a la existenc

no se si pueda seguir este mismo tema, con otro problema q no logro, es donde quisiera poder incrementar los productos al carrito que se repitan el mismo codigo, ya logre incrementar de un clic sumandole y rstandole y eliminado toda la linea, pero quisiera es de los productos favoritos, si se clikean 10 veces q se incremente 10 veces

Código PHP:
Ver original
  1. //CARRITO DE ENTRADAS DE PRODUCTOS
  2. $ObjetoCarrito   = json_decode($_POST['MiCarrito']);
  3. if ($ObjetoCarrito->Codigo=="vaciar") {
  4.     unset($_SESSION["CarritoVentas"]);
  5. } else {
  6.     if (isset($_SESSION['CarritoVentas'])) {
  7.         $carrito_venta=$_SESSION['CarritoVentas'];
  8.         if (isset($ObjetoCarrito->Codigo)) {
  9.             $txtCodigo = $ObjetoCarrito->Codigo;
  10.             $ivaproducto= $ObjetoCarrito->Ivaproducto;
  11.             $precioconiva= $ObjetoCarrito->Precioconiva;
  12.             $precio    = $ObjetoCarrito->Precio;
  13.             $precio2    = $ObjetoCarrito->Precio2;
  14.             $existencia    = $ObjetoCarrito->Existencia;
  15.             $tipo    = $ObjetoCarrito->Tipo;
  16.             $cantidad  = $ObjetoCarrito->Cantidad;
  17.             $descripcio= $ObjetoCarrito->Descripcion;
  18.             $opCantidad = $ObjetoCarrito->opCantidad;
  19.             $donde     = -1;
  20.             for ($i=0;$i<=count($carrito_venta)-1;$i ++) {
  21.                 if ($txtCodigo==$carrito_venta[$i]['txtCodigo']) {
  22.                     $donde=$i;
  23.                 }
  24.             }
  25.             if ($donde != -1) {
  26.                 if ($opCantidad === '=') {
  27.                     $cuanto = $cantidad;
  28.                 } else {
  29.                     $cuanto = $carrito_venta[$donde]['cantidad'] + $cantidad;
  30.                 }
  31.                 $carrito_venta[$donde]=array("txtCodigo"=>$txtCodigo,"ivaproducto"=>$ivaproducto,"precioconiva"=>$precioconiva,"precio"=>$precio,"precio2"=>$precio2,"existencia"=>$existencia,"tipo"=>$tipo,"cantidad"=>$cuanto,"descripcion"=>$descripcio);
  32.             } else {
  33.                 $carrito_venta[]=array("txtCodigo"=>$txtCodigo,"ivaproducto"=>$ivaproducto,"precioconiva"=>$precioconiva,"precio"=>$precio,"precio2"=>$precio2,"existencia"=>$existencia,"tipo"=>$tipo,"cantidad"=>$cantidad,"descripcion"=>$descripcio);
  34.             }
  35.         }
  36.     } else {
  37.         $txtCodigo = $ObjetoCarrito->Codigo;
  38.         $ivaproducto= $ObjetoCarrito->Ivaproducto;
  39.         $precioconiva= $ObjetoCarrito->Precioconiva;
  40.         $precio    = $ObjetoCarrito->Precio;
  41.         $precio2    = $ObjetoCarrito->Precio2;
  42.         $existencia    = $ObjetoCarrito->Existencia;
  43.         $tipo    = $ObjetoCarrito->Tipo;
  44.         $cantidad  = $ObjetoCarrito->Cantidad;
  45.         $descripcio= $ObjetoCarrito->Descripcion;
  46.         $carrito_venta[]=array("txtCodigo"=>$txtCodigo,"ivaproducto"=>$ivaproducto,"precioconiva"=>$precioconiva,"precio"=>$precio,"precio2"=>$precio2,"existencia"=>$existencia,"tipo"=>$tipo,"cantidad"=>$cantidad,"descripcion"=>$descripcio);
  47.     }
  48.     $_SESSION['CarritoVentas']=$carrito_venta;
  49.     echo json_encode($_SESSION['CarritoVentas']);
  50. }
  #8 (permalink)  
Antiguo 29/10/2017, 20:54
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: verificar que la cantida de productos vendidos no sean mayor a la existenc

Pues casualmente hay otro carrito andando por aquí
Revisa este y este link

Imagino también que los favoritos tienen un botón adicional para que aumenten o disminuyan 10 no?
Aunque tal vez sería mejor para todos los productos (favoritos y no) que se digite o seleccione de una lista
la cantidad, y se usen botones de aumentar o disminuir.

Y por otra parte, en el código que muestras no veo que hagas algún if preguntando
si el producto es favorito o no.
Sera el campo tipo?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por mortiprogramador; 29/10/2017 a las 20:59
  #9 (permalink)  
Antiguo 29/10/2017, 20:55
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: verificar que la cantida de productos vendidos no sean mayor a la existenc

si amigo ya lo revise, y la verdad la estructura es diferente a como lo estoy trabajando yo jejeej
  #10 (permalink)  
Antiguo 29/10/2017, 21:05
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: verificar que la cantida de productos vendidos no sean mayor a la existenc

Pues tienen semejanzas,
pero tu lo abordaste con objetos, json y array (todo el combo)

Sin embargo, si te fijas en el segundo link,
le comenté que reescribiera el código,
no porque este mal el código que tiene,
sino porque el que yo le sugiero le mejora la eficiencia,
pues evito el uso de los ciclos
(a todos nos gustan los ciclos, claro, yo soy un fan) ; )
pero haciendolo de ese nuevo modo, se evita el procesamiento
adicional, y pues más teniendo en cuenta que están usando
sesión y un carrazo último modelo de compras, jajajaja, así que te sugiero
que le hagas un performance a tu código.

Si por otra parte, el tiempo no te da,
pues entonces responde las preguntas que te hice antes.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #11 (permalink)  
Antiguo 29/10/2017, 21:26
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: verificar que la cantida de productos vendidos no sean mayor a la existenc

si amigo tienes razon en verdad, pero ya me pide cambiar la estructura del codigo y enredarme mas de lo q estoy jejeje
  #12 (permalink)  
Antiguo 29/10/2017, 22:08
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: verificar que la cantida de productos vendidos no sean mayor a la existenc

Ok, en ese caso
1. ¿Cómo se sabe que un producto es 'favorito' ? ¿Por el campo 'tipo' ?
2. ¿Cómo se aumenta de 10 en 10 a los productos 'favoritos'? ¿Es del mismo modo que se aumenta de 1 en 1 a los demás, pero solo cambiando la cantidad, o tiene otra implementación?

En tu código no veo en que parte haces algo con los 'favoritos' en particular.
Revisa eso.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #13 (permalink)  
Antiguo 29/10/2017, 22:33
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: verificar que la cantida de productos vendidos no sean mayor a la existenc

lo productos favoritos solo se muestran ya q tienen un campo favorito, si o no lo es, y entonces al darle clic a ese producto favorito se agrega al carrito con valor de 1, y cuando me refiero a 10 es que por ejemplo si le doy 10 veces a ese mismo producto se incremente en el carro de compras, es decir q se sume 1+1+1+1+1, de la misma manera como tengo en el boton + y -, donde resto y sumo segun los click q le de yo al boton
  #14 (permalink)  
Antiguo 30/10/2017, 00:13
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: verificar que la cantida de productos vendidos no sean mayor a la existenc

Pero si ya se tiene funcionando la mayoría,
entonces el tema tal vez es en el funcionamiento
de los botones o en algo más.

Creo que lo mejor sería ver
el código completo, es decir, el formulario, lo que procesa, y si hay
llamadas a otros recursos (ajax por ej) también.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:23.