Appearance
PortalCtaCteService
Responsabilidad
Consultar cuenta corriente y deudas de clientes. REUTILIZA CuentaCorriente model existente.
Métodos
getDeudas()
Parámetros:
clienteId: ID del clientetenantContext: Contexto del tenant
Retorna: Array de deudas pendientes con:
- Datos básicos:
id,tipo,numero,fecha,vencimiento,monto,saldo - Datos calculados:
dias_vencido(días desde vencimiento),esta_vencido(boolean)
getMiCuenta()
Parámetros:
clienteId: ID del clientetenantContext: Contexto del tenant
Retorna: Resumen de cuenta:
json
{
"cliente_id": 123,
"nombre": "Juan Pérez",
"saldo_total": 15000.00,
"facturas_vencidas": 3,
"facturas_pendientes": 5,
"ultimo_pago": {
"fecha": "2026-01-15",
"monto": 5000.00
}
}Lógica de Negocio
getDeudas()
- Configurar conexión al tenant
- Obtener movimientos sin pago usando
CuentaCorriente::getMovimientosSinPago()(reutilizado) - Enriquecer cada movimiento con:
dias_vencido: Calcular días desde vencimiento hasta hoyesta_vencido:truesi vencimiento < hoy
- Retornar array enriquecido
getMiCuenta()
- Configurar conexión al tenant
- Obtener datos del cliente desde model
Cliente - Obtener deudas usando
getDeudas() - Calcular:
saldo_total: Suma de todos los saldosfacturas_vencidas: Contador de facturas conesta_vencido = truefacturas_pendientes: Total de facturas sin pagar
- Obtener último pago usando
CuentaCorriente::getUltimoPago() - Retornar resumen consolidado
Ventaja de Reutilización
- NO re-implementa lógica de CtaCte
- USA modelos y métodos existentes (
CuentaCorriente,Cliente) - SOLO agrega transformación de datos para el frontend (campos calculados)
Casos de Prueba
Escenarios clave a testear:
- Deudas enriquecidas: Debe incluir
dias_vencidoyesta_vencidocalculados - Resumen de cuenta: Debe calcular correctamente totales y contadores
- Cliente sin deudas: Debe retornar arrays vacíos y totales en cero