28 Listado de Órdenes de Compra en Laravel 13: Vista, Tabla y Modelo CompraTmp 📋🛒Sistema de Farmacia
Duración: 21 minDescripción
📋 Lección 28: Gestión de Órdenes de Compra - Rutas, Modelo y Listado Principal
En esta lección configuramos las acciones operativas para el "carrito de precompras", estructuramos el modelo transactorio con sus relaciones e implementamos la pantalla de listado principal junto con la redirección al formulario de creación.
🧭 1. Definición de Rutas Transaccionales (El Carrito de Compras)
Diseñamos un conjunto de rutas específicas para controlar la lógica interactiva del módulo de compras temporales. Al mapear cada acción de forma independiente, dejamos el terreno preparado para la futura asignación de permisos individuales por usuario. Las acciones cubiertas incluyen:
- Apertura del Formulario: Una ruta de lectura para cargar la pantalla de creación.
- Gestión del Carrito: Rutas dedicadas para agregar productos seleccionados, actualizar cantidades o costos estimados del ítem, remover un artículo específico y vaciar por completo la lista temporal.
- Procesamiento: Una ruta final encargada de guardar y oficializar la orden de compra.
- Visualización: Una ruta de consulta para desglosar los detalles específicos de una compra guardada.
🧠 2. Configuración del Modelo CompraTmp y Relaciones Eloquent
Establecemos las directrices en el modelo para resguardar la seguridad y automatizar las consultas, asegurando mapear manualmente el nombre correcto de la tabla física en la base de datos para evitar errores con los plurales por defecto de Laravel.
- Asignación Masiva e Integridad: Definimos las propiedades permitidas para inserción masiva, abarcando identificadores relacionales (usuario, sucursal, producto), costos unitarios, margen estimado, cantidad y estado. Además, configuramos la conversión nativa de datos para resguardar los campos decimales de precios y transformar la fecha de creación en un objeto de tiempo manipulable.
- Vínculos Relacionales (Trazabilidad):
- Una orden temporal pertenece a un usuario (quien la genera), va dirigida a una sucursal física de la farmacia y contiene un producto del catálogo.
- Implementamos las contrapartes inversas en los modelos maestros (Usuarios, Sucursales y Productos), declarando que cada uno de ellos puede estar asociado a múltiples registros de órdenes de compra temporales.
📊 3. Diseño del Listado Principal y Flujo de Navegación
Programamos el método de control para recuperar el historial de adquisiciones de forma paginada en bloques de 10 registros y lo acoplamos a la interfaz de usuario:
- Construcción de la Tabla Dinámica: Reutilizamos y limpiamos la estructura de un módulo previo, eliminando las dependencias de ventanas modales. Diseñamos las columnas esenciales para el negocio: Sucursal de destino, Proveedor asignado, Usuario operador, Fecha de ejecución, Costo total de la transacción, Tipo de comprobante y Estado actual.
- Transición a la Creación: Reemplazamos los botones disparadores de modales por un enlace de navegación nativo que redirige limpiamente al usuario hacia la URL de creación. Finalmente, inicializamos el archivo de vista correspondiente al formulario, completando la conexión lógica entre el visor de registros y la interfaz de carga de datos.
💡 Conclusión
El esqueleto del listado y la lógica de operaciones del carrito temporal ya están completamente articulados en el backend. En la siguiente etapa del curso, nos enfocaremos en estructurar visualmente el formulario interactivo para que los operarios puedan seleccionar productos y armar las solicitudes de suministro de manera eficiente.
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! ❤️