74 CONTROLLER ACTUALIZAR COMPRA EN EL SISTEMA DE VENTAS (PHPyMySql) FullStack PARTE 2
Duración: 9 minDescripció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 Tabla | Pará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):
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].
- 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:
- Actualizar la tabla tb_compras (con la nueva cantidad y demás datos).
- 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].
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! ❤️