64 ACTUALIZAR LA CANTIDAD DEL ALMACEN DE INVENTARIO en el SISTEMA DE VENTAS (PHPyMySql)FullStack
Duración: 9 minDescripción
Lección 64: Actualización del Inventario de Almacén (UPDATE SQL) 📦⬆️
Esta lección aborda el paso final y crucial del registro de compras: actualizar la cantidad total de stock del producto en la tabla almacen para reflejar la mercancía recién comprada.
1. Extracción del Stock Total de la Vista 🖥️
Primero se corrige el envío de datos desde la vista para incluir el valor final del stock:
- Identificación del Stock Total: En la vista de creación de compras (create.php), el campo que contiene la suma del stock actual más la cantidad comprada ya tiene el ID stock_total [04:27].
- Envío por AJAX: Se modifica el script de AJAX para recuperar y enviar este valor (stock_total) al controlador de PHP, junto con el resto de las variables de la compra [05:54].
- Recepción en el Controlador: En el controlador (create.php), se crea la variable $stock_total para recibir este dato crucial a través de $_GET [06:28].
2. Implementación de la Sentencia UPDATE SQL 🔄
Para resolver el problema de inventario (donde el stock no se actualizaba), se añade una segunda sentencia SQL dentro del controlador, que se ejecuta inmediatamente después del INSERT de la compra:
Sentencia UPDATE:
SQL
UPDATE almacen SET stock = ? WHERE ID_producto = ?
- Explicación: Esta sentencia tiene como objetivo:
- Ejecución: Se prepara la nueva sentencia con prepare, se pasan los parámetros ($stock_total y $ID_producto), y se ejecuta con execute [06:56].
3. Uso de Transacciones (PDO) 🛡️
Para asegurar la integridad de la base de datos cuando se ejecutan múltiples consultas (en este caso, un INSERT y un UPDATE):
- Transacción: Se utiliza el concepto de transacción con la extensión PDO para manejar las dos consultas como una sola operación atómica [07:47].
- Comandos Clave:
- $pdo->beginTransaction(): Inicia la transición. Si alguna consulta falla, la transacción puede deshacerse.
- $pdo->commit(): Si ambas consultas (insertar compra y actualizar stock) se ejecutan sin errores, se guardan los cambios permanentemente en la base de datos [08:44].
- $pdo->rollBack(): Si alguna de las consultas falla, se deshacen todos los cambios que se hayan intentado realizar, manteniendo la base de datos en su estado original antes de la operación [08:52].
Al implementar esta lógica de transacción, se garantiza que no haya registros de compra sin la correspondiente actualización de inventario, asegurando la consistencia de los datos.
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️