45 Guardar Préstamos en Laravel 12: Método Store, Validaciones y Registro de Cuotas en la BD 💰📥

Duración: 26 min
Módulo: Módulo Prestamos y Pagos Lección 4 de 18

Descripción

💰 Lección 45: Guardar Préstamos en Laravel 12: Método Store y Validaciones

En esta sesión de Benji V2, conectamos la interfaz de simulación con el backend. Implementamos el proceso completo para validar, procesar y registrar los datos de un préstamo, asegurando que toda la información calculada (intereses y totales) se guarde correctamente para su posterior gestión.

🛤️ Configuración de la Ruta y el Controlador

Establecemos el canal de comunicación para el envío de datos:

  • 📮 Ruta POST: Creamos la ruta admin/prestamos con el método POST, apuntando a la función store del controlador. Esto permite recibir el paquete de información desde el formulario de creación [01:54].
  • 🎮 Método Store: Preparamos el controlador para recibir el objeto Request, donde realizaremos la limpieza y validación de los datos antes de guardarlos en la base de datos [02:37].

🛡️ Validación Estricta de Datos Financieros

Para evitar errores en el sistema contable, aplicamos reglas de validación rigurosas:

  • 🔢 Tipos Numéricos: El monto prestado, la tasa de interés y el número de cuotas deben ser numéricos y mayores a cero.
  • 🔗 Integridad de Llaves: Validamos que tanto el cliente_id como el categoria_id existan realmente en sus respectivas tablas antes de intentar el registro [19:41].
  • 🗓️ Fechas y Modos: Aseguramos que la fecha de inicio sea válida y que los campos de modalidad de pago y amortización coincidan con los criterios permitidos por el sistema [21:40].

🔄 Manejo de Campos Calculados (Inputs Ocultos)

Un desafío técnico fue enviar los resultados del simulador (JavaScript) al controlador (PHP):

  • Hidden Inputs: Creamos campos de entrada ocultos (hidden) para el Monto de Interés Total y el Monto Total a Pagar.
  • Sincronización: Modificamos el script de cálculo para que, al presionar "Calcular Préstamo", los valores resultantes se inyecten automáticamente en estos campos ocultos, permitiendo que viajen con el formulario al presionar "Registrar" [18:14].

📥 Persistencia y Estado Inicial

Finalizamos el flujo con el guardado exitoso:

  • 💾 Registro en DB: Instanciamos el modelo Prestamo y asignamos cada campo recibido. Por defecto, todo préstamo nuevo se guarda con el estado "Pendiente" [23:14].
  • 📢 Feedback al Usuario: Tras el guardado, el sistema redirige al listado principal de préstamos mostrando una notificación de éxito con el componente de SweetAlert/Flux [24:50].

Resultado de la Lección

Al finalizar, habrás logrado que el sistema registre créditos reales. Los datos ya no viven solo en la memoria del navegador durante la simulación, sino que están almacenados de forma segura en la base de datos, listos para generar el plan de pagos y el seguimiento de cobranzas.