Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/12/2012, 14:13
Avatar de javiertroya
javiertroya
 
Fecha de Ingreso: mayo-2009
Ubicación: Valencia
Mensajes: 15
Antigüedad: 15 años
Puntos: 2
Respuesta: Restar Salidas de almacen!!

Hola que tal? Lo primero que te recomendaría sería cambiar la tabla salida de la siguiente forma:

Código MySQL:
Ver original
  1. CREATE TABLE  `salida` (
  2.  `id_producto` INT( 11 ) NOT NULL ,
  3.  `cantidad` DECIMAL( 7, 2 ) NOT NULL ,
  4.  `fecha` DATETIME NOT NULL ,
  5.  `comentarios` VARCHAR( 255 ) NOT NULL
  6. ) ENGINE = MYISAM ;

Esto con la finalidad de que si cambias el nombre del producto, no debas cambiarlo en todas las tablas en donde el nombre del producto sea la relacion, lo mismo con el campo serie.

Lo más recomendable en estos casos siempre es usar el campo ID.

Ahora en cuanto a tu consulta para restar y comparar, puedes hacer lo siguiente:

Código PHP:
Ver original
  1. $id_producto = $_POST["id_producto"];
  2. $cantidad_vendida = mysql_query("SELECT SUM(cantidad) FROM salida WHERE id_producto = " . $id_producto); // Esta línea te dará como resultado un número con la suma de todas las salidas del producto

Ese simple código sería para obtener la cantidad vendida hasta ahora del producto, lo debes colocar antes de que se guarde la venta/salida en la tabla salida.

Para la comparación simplemente obtienes la fila con el id del producto también y ejecutas una resta simple, algo como:

Código PHP:
Ver original
  1. // Usemos los datos anteriores
  2. $info_producto = mysql_fetch_row ( mysql_query ( "SELECT * FROM productos WHERE id = " . $_POST["id"] ) );
  3.  
  4. $cantidad_disponible = $info_producto["cantidad"] - $cantidad_vendida;
  5.  
  6. // Ahora con esta variable ya almacenada puedes hacer funciones que permitan o no la venta
  7.  
  8. if ( $cantidad_disponible == 0 ) // Si no hay disponibilidad
  9.  echo "No se puede vender este producto, debido a que no existe disponibilidad";
  10. elseif( $_POST["cantidad"] > $cantidad_disponible ) // Si la venta actual es mayor a la disponibilidad
  11.  echo "No se puede vender más cantidad de la disponible del producto";

Y así sucesivamente puedes ir generando funciones que hagan a tu aplicación más inteligente.

Espero te funcione todo, un saludo!