114 Borrar productos del CARRITO en el SISTEMA DE VENTAS (PHP y MySql) FullStack
Duración: 14 minDescripción
Lección 114: Borrar Productos del Carrito y Finalización del DELETE 🛒
Esta lección se enfocó en completar las dos partes restantes de la acción de borrado de una venta dentro de la transacción: la actualización del stock en la tabla de productos y el borrado de los registros en la tabla carrito (detalle de venta).
1. Confirmación y Ejecución de la Actualización de Stock 💾
- Ajuste de Tipos de Datos: El video comenzó corrigiendo un error de programación anterior (por el cual el stock se actualizaba automáticamente al copiar la lógica), volviendo a la base de datos a su estado original [01:53]. Luego se reafirmó la importancia de usar la función parseInt en JavaScript/jQuery para asegurar que el stock actual y la cantidad vendida se sumen como números (ej. $94 + 2 = 96$), y no se concatenen como texto (ej. "94" + "2" = "942") [03:38].
Lógica de Reversión: Se confirmó que la lógica para retornar la cantidad al inventario era correcta:
$$Stock\ Calculado = \text{parseInt}(\text{Stock Actual}) + \text{parseInt}(\text{Cantidad Vendida})$$
- Ejecución de UPDATE: Se utilizó la función existente actualizar_stock para enviar el ID_producto y el stock_calculado al backend. Se demostró que, al presionar el botón "Borrar Venta" (antes de implementar la eliminación), los valores en la tabla de almacén se actualizaban correctamente [06:29].
2. Borrado de Registros de Carrito y Venta Principal 🗑️
Una vez que la actualización del inventario funcionaba dentro de la transacción, se pasó a la eliminación de registros:
- Borrar Carrito: Se añadió la Sentencia 2 al controlador borrar_venta.php para eliminar el detalle de la venta de la tabla tb_carrito:
- DELETE FROM carrito WHERE numero_de_venta = :numero_de_venta [08:01].
- Borrar Venta Principal: Se mantuvo la Sentencia 1 para eliminar el registro de la tabla tb_ventas [07:03].
Ambas sentencias se ejecutan bajo la transacción (BEGIN TRANSACTION, COMMIT, ROLLBACK), asegurando que si el stock se actualiza, la venta y su detalle también se borren, y viceversa.
3. Corrección de Error Crítico y Solución Final 🐛
Al probar la venta y posterior eliminación, se descubrió un error en el borrado del carrito: la venta en la tabla carrito no se eliminó [11:25].
- Problema: En el código frontend, solo se estaba enviando el ID_venta (la clave primaria de la tabla tb_ventas) al backend. La tabla tb_carrito se filtra por el numero_de_venta (el número de factura), y estos valores a veces no coinciden con el ID_venta [11:42].
- Solución: Se corrigió el error en la vista index.php (el listado de ventas) para que, al redirigir a delete.php, se envíen dos variables en la URL:
- ID_venta: Para la tabla tb_ventas.
- numero_de_venta: Para la tabla tb_carrito [12:20].
Esta corrección garantiza que el controlador borrar_venta.php reciba los datos correctos para eliminar los registros tanto de la tabla tb_ventas como de la tabla tb_carrito.
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! ❤️