90 Procesar Liquidación de Préstamos con Modal Interactivo y Transacciones en Laravel 12 💳✅

Duración: 22 min
Módulo: Módulo Liquidación de Préstamo Lección 3 de 6

Descripción

🧮 Lección 90: Interés Proporcional por Día y Consolidación de Liquidación

En esta sesión, finalizamos el Caso 2 (cuando la cuota aún no ha vencido) y consolidamos todos los valores para presentarlos en la interfaz de usuario.

1. ⏳ Cálculo del Interés Proporcional (Caso 2)

Si el cliente liquida antes de la fecha de vencimiento, el sistema no le cobra el mes completo, sino solo los días que ha usado el capital:

  • Cálculo de Días Transcurridos: Usamos Carbon para obtener la diferencia de días entre el periodo_inicio (última cuota pagada) y la fecha de hoy [04:15].
  • Interés por Día: Dividimos el monto_interes de la cuota entre 30 (o la frecuencia del préstamo) para obtener la tasa diaria.
  • Interés Devengado: Multiplicamos la tasa diaria por los días transcurridos. Así, si el cliente paga 10 días antes de su vencimiento, se ahorra esos 10 días de interés [08:50].

2. 📉 Determinación del Monto de Liquidación Final

Consolidamos todas las piezas del rompecabezas financiero:

  • Fórmula: Total Liquidación = Saldo Capital Total + Interés Devengado + Mora Devengada.
  • Transparencia: Preparamos estas variables para pasarlas a la vista show.blade.php, permitiendo que el administrador vea el desglose exacto de por qué se cobra esa cantidad.

3. 🖥️ Diseño del Botón y Modal de Liquidación

Pasamos del controlador a la vista utilizando Flux UI:

  • Botón Dinámico: Añadimos un botón de "Liquidar Préstamo" que solo aparece si el préstamo está activo.
  • Modal de Confirmación: Al hacer clic, se abre un modal que muestra:
    • Total de capital que se va a cancelar.
    • Ahorro total del cliente (intereses que dejará de pagar).
    • Monto final a cobrar en caja [15:20].

Estado Actual del Proyecto:

  • Backend: El motor de cálculo ya diferencia entre "cuota vencida" y "cuota vigente".
  • Frontend: Tenemos la estructura para procesar el pago final.
  • Impacto: El sistema ahora es capaz de cerrar un préstamo de 12 meses en el mes 3, recalculando todo automáticamente.

🚀 Próximo Paso: En la lección 91, programaremos el método store_liquidation para que, al confirmar, el sistema marque todas las cuotas restantes como "Pagadas" y archive el préstamo como "Finalizado".