46 Módulo de Pagos en Laravel 12: Migración, Estructura de Cuotas y Control de Estados 💳📊

Duración: 13 min
Módulo: Módulo Prestamos y Pagos Lección 5 de 18

Descripción

💳 Lección 46: Módulo de Pagos: Estructura de Cuotas y Control de Estados

En esta sesión de Benji V2, establecemos la arquitectura para gestionar el calendario de pagos de cada préstamo. No basta con registrar el crédito; es vital tener un desglose cuota por cuota para controlar vencimientos, abonos a capital, intereses y posibles estados de mora.

🏗️ Diseño de la Tabla de Pagos (Plan de Amortización)

Definimos una estructura de datos que refleja fielmente la realidad financiera de un préstamo:

  • 🔗 Relación con Préstamos: Cada pago está vinculado a un préstamo mediante una llave foránea (prestamo_id) con eliminación en cascada. Si un préstamo se borra, su plan de pagos también desaparece [09:20].
  • 📅 Control de Tiempos:
    • Fecha de Vencimiento: El día pactado para el pago.
    • Fecha Cancelado: El día real en que el cliente realizó el pago (campo nulo por defecto para identificar pagos pendientes) [10:54].
  • 💰 Desglose Financiero por Cuota:
    • Saldo Capital: El remanente del préstamo tras cada cuota.
    • Monto Capital: La parte de la cuota que reduce la deuda.
    • Monto Interés: El costo del dinero en ese periodo.
    • Monto de la Cuota: La suma del capital e interés pactado [04:37].

🛡️ Campos de Gestión y Auditoría

Añadimos campos estratégicos para la operación diaria:

  • 📝 Referencia y Método: Guardamos cómo pagó el cliente (efectivo, transferencia) y una referencia descriptiva (ej. "Cuota 1/12") [05:44].
  • 💸 Monto Total Pagado: Diferenciamos este campo del "Monto de la Cuota". Esto es clave para sistemas que cobran mora o intereses por atraso, permitiendo registrar un monto mayor al pactado originalmente si el cliente paga fuera de fecha [07:20].
  • 🚦 Control de Estados: Definimos estados como Pendiente (por defecto), Pagado o En Mora, permitiendo al sistema alertar automáticamente sobre retrasos [08:13].

🛠️ Implementación Técnica en Laravel

  • 🚀 Generación de Componentes: Creamos el modelo Pago, su migración y el controlador con recursos (-mcr) [02:46].
  • 📂 Migración Detallada: Definimos los campos con tipos de datos precisos (decimal para dinero, date para fechas) y establecimos valores por defecto para facilitar la inserción de datos masiva cuando se genere el plan de pagos [11:18].

Resultado de la Lección

Al finalizar, el sistema cuenta con la infraestructura necesaria para el seguimiento individualizado de cada crédito. Ya no solo sabemos cuánto prestamos, sino que tenemos el "mapa" exacto de cómo y cuándo debe regresar ese dinero, base fundamental para el módulo de cobranzas y reportes financieros.