79 CONTROLLER PARA ELIMINAR COMPRA EN EL SISTEMA DE VENTAS (PHPyMySql) FullStack PARTE 3

Duración: 14 min
Módulo: 🔄 Mantenimiento y Actualización de Compras Lección 14 de 15

Descripción

Lección 79: Controlador para Eliminar Compra (delete.php) (Parte 3) 🗑️

Este video culmina la funcionalidad de Eliminar Compra, implementando las consultas SQL dentro del controlador delete.php y verificando que la acción se ejecute de manera atómica utilizando transacciones.

1. Configuración del Controlador (delete.php) ⚙️

El controlador delete.php se encargó de recibir los parámetros necesarios y ejecutar dos consultas cruciales:

  1. Variables Recibidas: Se reciben cuatro parámetros principales mediante el método GET [07:45]:
    • ID_compra: El identificador del registro de la compra a eliminar.
    • ID_producto: El identificador del producto cuyo stock será modificado.
    • cantidad_compra: La cantidad que debe restarse del stock.
    • stock_actual: El stock actual en almacén (antes de la operación).
  2. Transacción (BEGIN/COMMIT/ROLLBACK): Se utilizó la estructura de transacción para garantizar que las dos operaciones (eliminar y actualizar stock) se realicen con éxito o que ambas se reviertan (ROLLBACK) en caso de error [01:41].

2. Lógica de Ejecución (Doble Consulta) 📝

El controlador ejecuta las siguientes operaciones dentro de la transacción:

  1. Eliminar Compra (DELETE):
    • Se ejecuta la consulta DELETE FROM sobre la tabla tabla_compras utilizando el ID_compra como condición WHERE [03:11].
    • Consulta: DELETE FROM tabla_compras WHERE ID_compra = :ID_compra
  2. Cálculo y Actualización de Stock (UPDATE):
    • Cálculo del Nuevo Stock: Se calcula el nuevo stock en PHP, restando la cantidad comprada eliminada del stock actual [09:45].

      Nuevo Stock=Stock Actual−Cantidad Compra

    • Actualización en Almacén: Se ejecuta la consulta UPDATE sobre la tabla tabla_almacen para establecer el nuevo valor calculado en el campo stock, utilizando el ID_producto como condición WHERE [10:12].
    • Consulta: UPDATE tabla_almacen SET stock = :nuevo_stock WHERE ID_producto = :ID_producto

3. Verificación Final 🚀

La prueba final se realizó con éxito:

  • Estado Inicial: El stock del producto era 250 y la compra a eliminar era de 130 unidades.
  • Resultado:
    • Se eliminó el registro de compra.
    • El stock en el almacén se actualizó correctamente a 120 (250−130) [12:41].
    • El sistema muestra el mensaje: "Se borró la compra de la manera correcta" [12:24].

Con la implementación de la acción Eliminar, el módulo de Compras tiene todas las funcionalidades de un CRUD completo: Crear (C), Leer/Ver (R), Actualizar (U) y Eliminar (D) [13:24].