43 CRUD de Cajas en Laravel Gestión de Puntos de Venta por Sucursal 💰📋 Sistema de Farmacia

Duración: 9 min
Módulo: Módulo Cajas y Arqueos Lección 2 de 3

¡Contenido Exclusivo!

Adquiere este curso para tener acceso inmediato a esta y a **todas las lecciones Premium**.

Inscribirse Ahora por $10.00 Acceso instantáneo de por vida y código fuente incluido.

Descripción

🚀 Lección 43: CRUD de Cajas en Laravel: Gestión de Puntos de Venta por Sucursal

En este capítulo inauguramos el Módulo de Cajas y Arqueos, una sección crítica del sistema diseñada para registrar, auditar y controlar físicamente el flujo de efectivo en los diferentes puntos de venta de la farmacia.

🎯 El Objetivo Central

Implementar un CRUD completo para administrar las cajas físicas del negocio, configurando sus relaciones en la base de datos a nivel de modelos y permitiendo asignar múltiples puntos de cobro por cada sucursal.

🧮 Modelos y Relaciones en la Base de Datos

Antes de operar la interfaz, establecemos la lógica de dependencias mediante Eloquent en los modelos para garantizar la integridad de los datos:

  • Relación en Caja: Declaramos que una caja pertenece de forma obligatoria a una sucursal única (belongsTo).
  • Relación en Sucursal: Añadimos el método inverso, definiendo que una sucursal puede albergar y controlar múltiples cajas de atención simultáneas (hasMany).

🛠️ Controlador Operativo y Métricas del CRUD

Desarrollamos los métodos estándar en el CajaController integrando lógica de búsqueda avanzada y validaciones:

  • index con Buscador: Permite listar las cajas registradas e incluye un filtro dinámico para buscar tanto por el nombre de la caja como por el nombre de la sucursal asignada.
  • store y update: Validan los campos en el backend (haciendo obligatorio el nombre de la caja y la sucursal) para procesar las inserciones y ediciones directamente desde una ventana modal.
  • destroy Seguro: Habilita la eliminación rápida de registros vacíos (dejando la base lista para inyectar lógica de restricción por llaves foráneas en capítulos posteriores).

🎨 Comportamiento en la Interfaz de Usuario

Actualizamos el menú de navegación general (admin.blade.php) e implementamos la vista, manteniendo un diseño limpio y adaptativo:

  • Estado Inicial Cerrado: Por defecto, cada nueva caja se registra en el sistema con el estado "Cerrada".
  • Flujo del Negocio: El cambio de estado a "Abierta" ocurrirá de forma automática en las próximas lecciones cuando un empleado inicie su jornada y efectúe un Arqueo de Caja con un monto de apertura.

Al concluir este capítulo, los estudiantes tendrán montada la infraestructura base para el manejo del efectivo en el software. ¡En el próximo video avanzaremos con la lógica de los arqueos y turnos de los cajeros!