74 CONTROLLER ACTUALIZAR COMPRA EN EL SISTEMA DE VENTAS (PHPyMySql) FullStack PARTE 2

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

Descripción

Lección 74: Controlador para Actualizar Compra (update.php) (Parte 2) 🛠️🔄

Este video concluye la implementación del Controlador de Actualización (update.php) en el módulo de Compras, centrándose en completar la consulta SQL UPDATE y, crucialmente, en corregir la lógica para el cálculo y la actualización del stock del producto.

1. Finalización de la Consulta SQL UPDATE 📝

Se completó la construcción de la consulta UPDATE para la tabla tb_compras, incluyendo todos los campos que pueden ser modificados por el usuario, y la condición WHERE ID_compra = :ID_compra para asegurar que solo se actualice el registro correcto [02:13]:

Campo de la TablaParámetro de PHP
ID_producto:producto
numero_compra:numero_compra
fecha_compra:fecha_compra
ID_proveedor:proveedor
comprobante:comprobante
ID_usuario:usuario
precio_compra:precio_compra
cantidad:cantidad
fyh_actualizacion:fyh_actualizacion

Transacción: Se mantiene la estructura de transacción (con commit y rollBack) para garantizar que la base de datos se mantenga íntegra. Si la actualización de la compra falla, el sistema revertirá los cambios [04:15].

2. Corrección de la Lógica de Cálculo de Stock ⚠️

El punto más crítico de esta lección es la corrección del cálculo del Stock Total en la vista de edición, el cual afectaría la actualización final en el controlador [06:36].

El Problema

Al modificar la Cantidad de Compra (ej. de 100 a 150), la lógica inicial estaba sumando la nueva cantidad sobre el Stock Actual (que ya incluía la compra anterior), resultando en un cálculo erróneo [07:11].

  • Stock Actual (Correcto): 220
  • Cantidad de Compra Inicial: 100
  • Cálculo Erróneo: Si se cambia a 150, el sistema suma 220 + 150 = 370 (Incorrecto, ya que 100 ya estaba incluido en 220).

La Solución (Frontend)

Para corregir esto, se ajustó la variable del Stock Actual dentro del frontend (update.php):

  1. Descuento de la Compra Original: Antes de mostrarlo, el Stock Actual visible se calcula restándole la Cantidad de Compra original (100) del registro.

    $$Stock\ Actual\ para\ Cálculo = Stock\ Actual\ Real - Cantidad\ de\ Compra\ Original$$

    • Ejemplo: $220 - 100 = \mathbf{120}$ [08:17].
  2. Cálculo Correcto: El cálculo ahora se realiza sumando esta base descontada (120) más la nueva cantidad ingresada por el usuario (150).
    • Ejemplo: $120 + 150 = \mathbf{270}$ (Este es el valor correcto del stock que debe guardarse) [08:38].

La Lógica del Controlador

Una vez que el cálculo es correcto en el frontend y el nuevo Stock Total (270) se envía al controlador, este procede con dos acciones dentro de la transacción:

  1. Actualizar la tabla tb_compras (con la nueva cantidad y demás datos).
  2. Actualizar la tabla tb_almacen (con el nuevo Stock Total calculado).

El mensaje final de éxito fue cambiado a: "Se actualizó la compra de la manera correcta." [03:57].