ParkVision Docs
Guía de Usuario

Módulo de Abonados

Guía completa del módulo de Abonados de ParkVision. Gestión de clientes fijos, suscripciones, vehículos, facturación y estado de cuenta.

Módulo de Abonados

El módulo de Abonados gestiona los clientes que alquilan una plaza de estacionamiento por un período determinado (mensual, semanal o diario) con un pago prepago. Incluye la gestión de clientes, vehículos, suscripciones, planes, plazas, facturación y estado de cuenta.

Desde el menú lateral, bajo la sección Abonados, se accede a:

SecciónRutaDescripción
Gestión de Clientes/apps/customersABM de clientes con suscripciones
Ficha de Cliente/apps/customer-accountEstado de cuenta por cliente
Plazas/apps/plazasGestión de espacios de estacionamiento
Planes/apps/plansConfiguración de planes y tarifas
Vehículos/apps/vehiclesRegistro global de vehículos
Facturación Pendiente/apps/billing-suggestionsSugerencias de facturación automática

Entidades principales

El módulo se compone de las siguientes entidades que se relacionan entre sí:

Cliente (1) ──→ (N) Vehículo
Cliente (1) ──→ (N) Suscripción
Cliente (1) ──→ (N) Factura
Cliente (1) ──→ (N) Pago

Suscripción (N) ──→ (1) Plan
Suscripción (N) ──→ (1) Plaza
Suscripción (N) ──→ (M) Vehículo (muchos a muchos)
Suscripción (1) ──→ (N) Factura
Suscripción (1) ──→ (N) Sugerencia de Facturación

Plan (1) ──→ (N) Reglas de Vencimiento (recargos)

Gestión de Clientes

Listado de clientes

La pantalla principal muestra una tabla paginada con búsqueda por nombre, apellido o documento. Cada fila permite editar, ver o eliminar (soft delete) el cliente.

Formulario de cliente

El formulario de alta/edición tiene 4 pestañas:

1. Datos personales

Información básica del cliente:

  • Nombre y Apellido (obligatorios)
  • Tipo y Número de Documento
  • CUIT (identificación fiscal, necesario para facturación)
  • Email (debe ser único)
  • Teléfono
  • Categoría Fiscal (obligatorio para emitir facturas)
  • Notas

2. Vehículos

Gestión de los vehículos del cliente:

  • Patente: Se normaliza automáticamente a mayúsculas sin guiones
  • Descripción: Marca, modelo, color
  • Notas

Un cliente puede tener múltiples vehículos. Un vehículo puede estar asociado a múltiples suscripciones.

3. Suscripciones

Cada suscripción representa el alquiler de una plaza. Al agregar una suscripción se configura:

  • Plan: Selecciona el plan tarifario (autocompleta el precio por defecto)
  • Plaza: Espacio asignado (opcional)
  • Vehículos: Selección múltiple de los vehículos del cliente
  • Precio: Se puede sobrescribir el precio del plan
  • Días de gracia: De 0 a 30 días antes de aplicar recargo por mora
  • Alineación a fin de mes: Si el ciclo de facturación se ajusta al último día del mes
Prorrateo

Al crear una suscripción a mitad de mes, el sistema calcula automáticamente el prorrateo: divide el precio mensual por los días del mes y multiplica por los días restantes. Esto genera una factura inicial por el período parcial.

Estados de suscripción
EstadoDescripción
ActivaSuscripción vigente, se factura automáticamente
SuspendidaTemporalmente detenida, no genera facturas
CanceladaFinalizada, no genera facturas

4. Ficha (Estado de cuenta)

Vista embebida del estado de cuenta del cliente. Ver sección "Estado de Cuenta" más abajo.

Planes

Los planes definen la tarifa y el período de facturación.

Propiedades de un plan

  • Nombre: Identificador del plan (ej: "Mensual Auto", "Semanal Moto")
  • Período: Día, Semana, Mes o Personalizado
  • Cantidad de períodos: Multiplicador (ej: 2 meses)
  • Precio por defecto: Tarifa base que se puede sobrescribir por suscripción
  • Activo: Solo los planes activos están disponibles para nuevas suscripciones

Reglas de vencimiento (recargos)

Cada plan puede tener múltiples reglas de recargo por mora:

  • DayOffset: Días después de la fecha de emisión
  • SurchargePercentage: Porcentaje de recargo a aplicar

Ejemplo: Si la factura se emite el 1ro del mes con una regla de 10 días / 10%, a partir del día 11 se aplica un recargo del 10% sobre el total.

Plazas

Las plazas representan los espacios físicos del estacionamiento.

  • Código: Identificador de la plaza (ej: "A-01", "B-15")
  • Notas: Observaciones sobre la plaza

Una plaza puede estar asignada a una suscripción. Una suscripción puede tener una plaza asignada opcionalmente.

Vehículos

El registro global de vehículos muestra todos los vehículos de todos los clientes con búsqueda y paginación.

Relación con suscripciones

La relación entre vehículos y suscripciones es muchos a muchos:

  • Un vehículo puede estar en múltiples suscripciones
  • Una suscripción puede incluir múltiples vehículos

Esto permite escenarios como un cliente con dos autos que alternan en la misma plaza, o un auto que usa una plaza de día y otra de noche.

Facturación

Ciclo de facturación automático

El sistema genera facturas automáticamente según las suscripciones activas:

  1. Cada suscripción tiene una fecha ancla de facturación (BillingAnchorDate) y una próxima fecha de facturación (NextInvoiceDate)
  2. Un servicio en background (BillingRunner) verifica diariamente las suscripciones cuya NextInvoiceDate llegó
  3. Se genera una Sugerencia de Facturación (BillingSuggestion) con los montos calculados
  4. El operador revisa y confirma o descarta la sugerencia

Sugerencias de facturación

La pantalla de Facturación Pendiente muestra todas las sugerencias pendientes:

  • Selección masiva: Confirmar varias sugerencias a la vez
  • Edición individual: Ajustar montos antes de confirmar
  • Datos: Cliente, Plan, Período, Subtotal, IVA, Total
  • Totales: Total seleccionado y total general

Al confirmar una sugerencia:

  1. Se genera una Factura de tipo "Cuenta Corriente"
  2. Se asigna un número de factura secuencial
  3. Se crea una línea de factura con la descripción del plan
  4. Se vincula la sugerencia a la factura
  5. Se genera una notificación

Prevención de duplicados

El sistema usa una clave de idempotencia (IdemKey) en facturas, pagos y sugerencias para prevenir la creación de duplicados en caso de errores de red o reintentos.

Tipos de factura

TipoDescripción
Cuenta CorrienteGenerada desde suscripciones, se paga después
ContadoPago inmediato (usado en estacionamiento rotativo)

Estados de factura

EstadoDescripción
PendienteEmitida, esperando pago
PagadaCompletamente pagada
CanceladaAnulada

Pagos

Los pagos se registran desde el estado de cuenta del cliente:

  • Pago total: Cubre el monto completo de las facturas pendientes seleccionadas
  • Pago parcial: Se puede ingresar un monto menor
  • Método de pago: Efectivo, transferencia, tarjeta, etc.
  • Caja: Se asocia a la caja abierta del operador
  • Referencia externa: Número de comprobante o transacción

Asignación de pagos

Un pago se asigna a una o más facturas mediante PaymentAllocation:

  • Un pago puede cubrir varias facturas
  • Una factura puede ser cubierta por varios pagos parciales
  • Se registra el monto aplicado a cada factura

Estado de cuenta

El estado de cuenta muestra el historial financiero del cliente:

KPIs principales

  • Saldo actual: Balance a la fecha
  • Monto vencido: Facturas cuyo plazo de gracia expiró
  • Fecha de último pago
  • Próximo vencimiento

Movimientos

La tabla de movimientos muestra cronológicamente:

TipoColumnaDescripción
FacturaDÉBITOAumenta el saldo (lo que debe el cliente)
PagoCRÉDITOReduce el saldo (lo que pagó el cliente)
ReversiónCRÉDITOAnulación de una factura
Nota de créditoCRÉDITOAjuste a favor del cliente
Nota de débitoDÉBITOAjuste a cargo del cliente

Cada movimiento muestra el saldo acumulado (running balance).

Filtros

  • Rango de fechas: Por defecto últimos 90 días
  • El saldo de apertura se calcula según la fecha de inicio del filtro

Acciones disponibles

Desde el estado de cuenta se puede:

  • Ver factura: Detalle completo de la factura
  • Cobrar: Registrar un pago (abre el diálogo de pago)
  • Anular factura: Cancelar una factura pendiente
  • Anular pago: Cancelar un pago registrado

API Endpoints

Clientes

MétodoRutaDescripción
GET/api/v1/CustomersListar todos los clientes
GET/api/v1/Customers/pagedClientes paginados con búsqueda
GET/api/v1/Customers/{id}Obtener cliente por ID
POST/api/v1/CustomersCrear cliente con vehículos y suscripciones
POST/api/v1/Customers/basicCrear cliente (solo datos básicos)
PUT/api/v1/Customers/{id}Actualizar cliente completo
PUT/api/v1/Customers/{id}/basicActualizar datos básicos
DELETE/api/v1/Customers/{id}Eliminar cliente (soft delete)
GET/api/v1/Customers/{id}/vehiclesVehículos del cliente
PUT/api/v1/Customers/{id}/vehiclesActualizar vehículos
GET/api/v1/Customers/{id}/subscriptionsSuscripciones del cliente
PUT/api/v1/Customers/{id}/subscriptionsActualizar suscripciones
GET/api/v1/Customers/{id}/account-movementsEstado de cuenta

Planes

MétodoRutaDescripción
GET/api/v1/PlansListar planes
POST/api/v1/PlansCrear plan
PUT/api/v1/Plans/{id}Actualizar plan
DELETE/api/v1/Plans/{id}Eliminar plan

Suscripciones

MétodoRutaDescripción
GET/api/v1/Subscriptions/{id}/prorationEstimar prorrateo

Consideraciones técnicas

  • Multi-tenancy: Todas las entidades tienen TenantId para aislar datos entre estacionamientos
  • Soft delete: Los registros se marcan como eliminados (IsDeleted) en lugar de borrarse físicamente
  • Transacciones: La creación de clientes con vehículos y suscripciones se ejecuta en una transacción para garantizar consistencia
  • Normalización de patentes: Las patentes se guardan en mayúsculas sin guiones ni espacios
  • Categoría fiscal: Es obligatoria para la emisión de facturas y determina la numeración de comprobantes
  • Moneda: Por defecto ARS (pesos argentinos), configurable por tenant