Skip to content

PortalCtaCteService

Responsabilidad

Consultar cuenta corriente y deudas de clientes. REUTILIZA CuentaCorriente model existente.

Métodos

getDeudas()

Parámetros:

  • clienteId: ID del cliente
  • tenantContext: 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 cliente
  • tenantContext: 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()

  1. Configurar conexión al tenant
  2. Obtener movimientos sin pago usando CuentaCorriente::getMovimientosSinPago() (reutilizado)
  3. Enriquecer cada movimiento con:
    • dias_vencido: Calcular días desde vencimiento hasta hoy
    • esta_vencido: true si vencimiento < hoy
  4. Retornar array enriquecido

getMiCuenta()

  1. Configurar conexión al tenant
  2. Obtener datos del cliente desde model Cliente
  3. Obtener deudas usando getDeudas()
  4. Calcular:
    • saldo_total: Suma de todos los saldos
    • facturas_vencidas: Contador de facturas con esta_vencido = true
    • facturas_pendientes: Total de facturas sin pagar
  5. Obtener último pago usando CuentaCorriente::getUltimoPago()
  6. 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:

  1. Deudas enriquecidas: Debe incluir dias_vencido y esta_vencido calculados
  2. Resumen de cuenta: Debe calcular correctamente totales y contadores
  3. Cliente sin deudas: Debe retornar arrays vacíos y totales en cero