63 CONTROLLER REGISTRAR COMPRAS CON TABLAS RELACIONADAS en SISTEMA DE VENTAS (PHPyMySql)FullStack

Duraci贸n: 15 min
M贸dulo: 馃挵 Implementaci贸n y Registro del M贸dulo de Compras Lecci贸n 15 de 17

Descripci贸n

Lecci贸n 63: Controlador PHP para Registro de Compras y Tablas Relacionadas 馃捑馃敆

Esta lecci贸n crucial se centr贸 en el desarrollo del controlador de PHP (create.php) para el m贸dulo de Compras, finalizando la l贸gica de inserci贸n de datos en la base de datos tras haber recibido las variables mediante AJAX.

1. Preparaci贸n de la Sentencia SQL para la Inserci贸n 馃摜

El primer paso fue construir la sentencia INSERT INTO para registrar la nueva compra en la tabla compras, asegurando que todos los campos clave fueran mapeados correctamente:

  • Tabla de Destino: compras.
  • Campos a Insertar: Se listaron y se prepararon los placeholders (?) para todos los datos recibidos, incluyendo las claves for谩neas (IDs) y los detalles de la transacci贸n [00:26]:
    • ID_producto
    • numero_compra
    • fecha_compra
    • ID_proveedor
    • comprobante
    • ID_usuario
    • precio_compra
    • cantidad (Se corrigi贸 el nombre del campo a cantidad, no cantidad_compra) [10:34].
    • fecha_hora_creacion (Para el registro temporal).
  • Mapeo de Par谩metros: Se asignaron las variables de PHP (previamente recibidas por $_GET) a los placeholders en el mismo orden que fueron definidos en la sentencia SQL [01:10].

2. Manejo de Respuesta y Redirecci贸n (AJAX) 馃寪

Tras la ejecuci贸n de la sentencia SQL, se implement贸 el mecanismo para enviar una respuesta de vuelta al script de AJAX en la vista, gestionando el 茅xito o el fallo:

  • Respuesta de 脡xito: Si la inserci贸n fue exitosa, se imprime un JSON con un mensaje de success y se notifica al usuario: "Se registr贸 la compra de la manera correcta" [12:28].
  • Redirecci贸n: La respuesta exitosa en la vista dispara la redirecci贸n al listado de compras (/compras/index.php) [12:44].
  • Respuesta de Error: Si falla, se imprime un mensaje de error y se redirecciona al usuario de vuelta al formulario de creaci贸n (/compras/create.php) [12:35].

3. Problema Pendiente: Actualizaci贸n del Inventario 鈿狅笍

Aunque la compra se registra correctamente en la tabla compras, se identific贸 un error de l贸gica cr铆tico al revisar la tabla almacen [14:02]:

  • El Problema: El campo stock del producto en la tabla almacen no se actualiza autom谩ticamente. Si un producto ten铆a 200 unidades y se compraron 100 m谩s, su stock en almacen debe ser 300, pero segu铆a mostrando 200.
  • La Soluci贸n Futura: Para corregir esto, es necesario a帽adir una segunda sentencia SQL de tipo UPDATE dentro del mismo controlador de compras. Esta sentencia debe ejecutarse inmediatamente despu茅s del INSERT para tomar el Stock Total (que se calcul贸 en la vista) y actualizar el campo stock de la tabla almacen para el ID_producto correspondiente [14:52].

Pr贸ximo Paso: La siguiente lecci贸n abordar谩 la implementaci贸n de la sentencia UPDATE para actualizar el stock en la tabla almacen, completando as铆 la funcionalidad principal del m贸dulo de Compras.