112 BORRAR VENTA de la tabla de la BASE da DATOS en el SISTEMA DE VENTAS (PHP y MySql) FullStack

Duración: 10 min
Módulo: 🧾 Cierre de Venta y Control de Inventario Lección 9 de 14

Descripción

Lección 112: Borrar Venta de la Base de Datos (Parte 1) 🗑️

Esta lección se centró en la implementación inicial de la lógica de eliminación para la venta, priorizando la integridad de los datos mediante el uso de transacciones SQL.

1. Preparación y Controlador de Eliminación 🛠️

La primera parte de la lección consistió en asegurar la comunicación entre la vista de confirmación y el controlador de eliminación:

  • Paso 1: Captura del ID: Se verificó que la vista delete.php capturaba correctamente el ID_venta de la URL para pasarlo al script de borrado.
  • Paso 2: Creación del Controlador: Se creó el archivo borrar_venta.php dentro del directorio de controladores. Este archivo recibirá la solicitud AJAX para ejecutar la eliminación en el backend.
  • Paso 3: Lógica Inicial (DELETE): Se implementó inicialmente la consulta SQL para eliminar el registro principal de la venta de la tabla tb_ventas mediante la condición WHERE ID_venta = :ID_venta.

Se realizó una prueba funcional que eliminó con éxito una venta de la tabla principal, demostrando la conexión entre el frontend y el backend.

2. Implementación de Transacciones para la Integridad de Datos 🔒

La lección enfatizó que una eliminación completa requiere más que solo borrar la venta principal, ya que se deben manejar múltiples tablas (ventas, detalle/carrito, almacén/productos). Para garantizar que todas las operaciones se completen o ninguna lo haga, se implementaron las Transacciones de MySQL:

  • BEGIN TRANSACTION: Inicia la secuencia de comandos SQL.
  • COMMIT: Se ejecuta si todas las operaciones SQL (actualizar stock, borrar detalle, borrar venta) se realizan con éxito.
  • ROLLBACK: Se ejecuta en caso de error en cualquiera de las sentencias, revirtiendo la base de datos a su estado original antes de la transacción.

Este enfoque es crucial para evitar que, por ejemplo, la venta se borre pero el stock no se actualice, o viceversa, lo que dejaría la base de datos en un estado inconsistente.

3. Planificación de la Lógica de Actualización de Stock 🔄

Se identificó el orden correcto de las operaciones para evitar problemas de datos faltantes:

  1. Actualizar Stock (UPDATE): Primero se debe actualizar el stock en la tabla de productos (tb_almacen o similar). Para ello, se necesita recuperar la cantidad vendida de cada producto de la tabla detalle/carrito antes de que esta sea eliminada.
  2. Borrar Detalle (DELETE): Eliminar los registros de la tabla detalle/carrito que correspondan a la venta.
  3. Borrar Venta Principal (DELETE): Eliminar el registro de la tabla tb_ventas.

La lección concluyó con la necesidad de recuperar los datos del carrito antes de su eliminación para poder ejecutar la actualización del stock. La implementación del script para iterar sobre los productos y actualizar el stock quedó pendiente para la siguiente lección.