29 Carrito de Compras en Laravel Sistema de Órdenes de Compra con JavaScript Dinámico en el sistema
Duración: 14 minDescripción
🚀 Lección 29: Construcción del Carrito de Compras Dinámico con JavaScript y Ajax para nuestro Sistema Farmacéutico
En este capítulo nos sumergimos de lleno en la interactividad del sistema, transformando una vista estática en una experiencia de usuario sumamente ágil y profesional, ideal para el ritmo de trabajo real en una farmacia.
🎯 El Objetivo Central
El propósito de esta lección es estructurar el formulario de creación para las órdenes de compra. Creamos un "carrito temporal" que permite gestionar los productos que se solicitarán a los proveedores, logrando que cada acción se procese de forma interna en el servidor sin que el navegador tenga que recargar la pantalla ni una sola vez.
🛠️ Lo que Desarrollamos en el Controlador
Para dar soporte a esta interfaz dinámica, expandimos la lógica del backend agregando funciones clave envueltas en sistemas de control de errores para garantizar la estabilidad del software:
⚡ Carga Inteligente de Datos: Preparamos la vista enviando el listado de sucursales, proveedores y el catálogo de productos. Optimizamos la consulta para traer al mismo tiempo las categorías, laboratorios, formas farmacéuticas y presentaciones de cada medicamento.
➕ Función para Agregar Ítems: Un nuevo método que recibe la información del producto seleccionado e inicializa su registro en la tabla de compras temporales.
🔄 Función para Actualizar Ítems: La lógica encargada de modificar en tiempo real la cantidad, el precio de compra o el precio de venta a medida que el usuario edita la información.
❌ Función para Remover Ítems: Un proceso limpio para dar de baja un producto específico del listado temporal si el usuario cambia de opinión.
🧹 Función para Limpiar el Carrito: El mecanismo para vaciar por completo la orden en desarrollo y empezar desde cero con un solo clic.
🎨 La Magia en la Interfaz y la Experiencia de Usuario
La vista de esta lección cobra vida propia gracias a un robusto script de JavaScript que maneja más de mil líneas de lógica en el frontend, logrando un comportamiento fluido:
🛑 Validación del Flujo de Trabajo: El sistema guía al usuario obligándolo a seleccionar primero la sucursal de destino. Si intenta agregar un producto antes de este paso, una alerta detiene la acción para evitar registros huérfanos.
📊 Cálculo de Utilidades en Tiempo Real: Implementamos una lógica bidireccional en caliente. Si el usuario digita el precio de compra y el de venta, el sistema muestra instantáneamente el porcentaje de ganancia. Si prefiere ingresar directamente el porcentaje de ganancia deseado, el sistema calcula de inmediato el precio de venta sugerido.
⌨️ Fluidez con Lector de Barras y Teclado: Optimizamos la navegación para que al presionar la tecla Enter o Tab, el foco del cursor salte automáticamente al siguiente campo de edición. Esto permite un trabajo continuo con pistolas de código de barras, agilizando la carga en el mostrador.
🗑️ Gestión de Registros Temporales: Toda esta información se almacena de forma aislada en una tabla temporal vinculada al usuario en sesión. De este modo, los inventarios generales y los lotes permanecen intactos hasta que la orden sea confirmada formalmente.
Al terminar este capítulo, el sistema cuenta con una pantalla moderna, interactiva y de alta velocidad, dejando el escenario perfectamente preparado para la consolidación de la compra y el envío automatizado por correo electrónico al proveedor en los próximos videos.
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! ❤️