92 Procesar y Finalizar Liquidación: Ajuste de Cuotas y Diferencia de Intereses en Laravel💳🔐 Parte 1

Duración: 20 min
Módulo: Módulo Liquidación de Préstamo Lección 5 de 6

Descripción

💳 Lección 92: Procesar Liquidación (Parte 1) - Seguridad y Ajuste de Intereses

En esta sesión de Benji V2, conectamos la interfaz de usuario con la lógica del servidor para finalizar préstamos de forma atómica y segura.

1. 🔐 Gestión de Permisos sin Pérdida de Datos

Aprendemos a manejar cambios en la estructura de permisos cuando el sistema ya tiene datos reales (producción):

  • Nuevo Permiso: Definimos el permiso liquidar préstamo en el archivo RollPermissions.php [04:16].
  • Actualización Manual: En lugar de hacer un migrate:fresh (que borraría los préstamos existentes), insertamos el permiso directamente en la tabla permissions de la base de datos y lo sincronizamos con el rol de SuperAdministrador [05:40].

2. 🛣️ Ruta y Controlador de Liquidación

Establecemos el canal de comunicación para la acción:

  • Definición de Ruta: Creamos una ruta de tipo POST (admin/prestamos/{id}/liquidar) protegida por el nuevo permiso de seguridad [03:19].
  • Estructura del Método: En el PrestamoController, iniciamos el método liquidar, el cual recibe el ID del préstamo y utiliza la función de cálculo desarrollada anteriormente para obtener los valores finales [11:42].

3. 🛡️ Transacciones y Validación de Datos

Garantizamos que la operación sea segura y precisa:

  • DB::beginTransaction(): Iniciamos una transacción de base de datos. Esto es vital porque la liquidación modifica múltiples registros (todas las cuotas pendientes) y si un paso falla, el sistema debe revertir todo para evitar datos corruptos [15:05].
  • Identificación de Pendientes: Recuperamos solo las cuotas que aún no han sido pagadas, ordenándolas cronológicamente para procesar el saldo capital [15:44].

4. 🧮 Cálculo de la Diferencia de Intereses

Validamos matemáticamente lo que se cobrará:

  • Suma de Capitales: Calculamos la suma neta de los campos monto_capital de las cuotas restantes [19:11].
  • Interés Devengado: Identificamos la diferencia entre el total a liquidar y la suma de capitales. Este monto representa el interés proporcional por los días transcurridos desde el último pago [20:21].