Tema
Pagos
Descripcion
Modulo de validacion y gestion de comprobantes de pago. Los propietarios e inquilinos envian comprobantes de pago que el administrador o encargado revisa, aprueba o rechaza desde esta pantalla. Al aprobar un pago, el sistema actualiza automaticamente el saldo de la expensa, genera un movimiento contable y notifica al usuario.
Acceso
- Roles permitidos: admin, encargado
- Ruta:
/admin/pagos
Funcionalidades
Indicadores Resumen
Se muestran 3 tarjetas con contadores:
| Indicador | Color | Descripcion |
|---|---|---|
| Pendientes de Validacion | Ambar | Pagos que esperan revision |
| Aprobados | Verde | Pagos aprobados |
| Rechazados | Rojo | Pagos rechazados |
Listado de Pagos
Tabla paginada con columnas:
- Expensa (periodo + unidad)
- Usuario (nombre + email)
- Monto (formato moneda)
- Fecha
- Estado (badge)
- Acciones
Ver Detalle
Boton con icono de ojo en cada fila. Abre un dialogo con informacion completa:
- Datos del usuario (nombre, email)
- Unidad y periodo
- Monto y estado
- Fecha de envio y fecha de validacion (si aplica)
- Comentario (si existe)
- Preview del comprobante con opcion "Ver Documento" (URL firmada con expiracion de 1 hora)
Aprobar Pago
Disponible para pagos en estado pendiente_validacion. Se puede aprobar desde:
- La tabla directamente (icono check verde)
- El dialogo de detalle (boton "Aprobar")
Al aprobar un pago:
- Se actualiza el estado a
aprobado - Se pone el saldo de la expensa_unidad en $0
- Se registra la fecha de pago (
pagada_at) - Se calcula el monto pagado final considerando bonificaciones
- Se genera un movimiento contable de tipo "ingreso" en categoria "Expensas"
- Se crea una notificacion in-app para el usuario
- Se envia un email de confirmacion al usuario (si tiene la preferencia activa)
Rechazar Pago
Disponible para pagos en estado pendiente_validacion. Se puede rechazar desde:
- La tabla directamente (icono X rojo)
- El dialogo de detalle (boton "Rechazar")
Abre un dialogo para ingresar el motivo del rechazo. Al confirmar:
- Se actualiza el estado a
rechazadocon el comentario - Se crea una notificacion in-app para el usuario
- Se envia un email con el motivo del rechazo (si tiene la preferencia activa)
Descargar Recibo PDF
Disponible para pagos aprobados que tienen token de verificacion. Boton "Descargar Recibo" que genera un PDF con:
- Logo y datos del consorcio
- Periodo, unidad, montos
- Firmas del encargado y administrador
- Token de verificacion
Verificar Online
Disponible para pagos aprobados. Boton "Verificar Online" que abre la pagina publica de verificacion del recibo usando el token unico.
Exportar
Boton "Exportar" que genera un archivo Excel con las columnas: Fecha, Usuario, Email, Unidad, Periodo, Monto, Estado, Tipo, Validado.
Pagos Manuales
El hook soporta creacion de pagos manuales (tipo efectivo o transferencia_externa) que se auto-aprueban. Estos pagos son registrados por el admin/encargado en nombre del propietario/inquilino.
Actualizacion en Tiempo Real
El modulo utiliza suscripciones realtime de Supabase. Cuando se recibe un nuevo pago, se muestra automaticamente un toast "Nuevo comprobante de pago recibido" y se refresca la lista.
Estados
| Estado | Badge | Descripcion |
|---|---|---|
| pendiente_validacion | Pendiente | El pago fue enviado y espera revision |
| aprobado | Aprobado | El pago fue aprobado por el administrador |
| rechazado | Rechazado | El pago fue rechazado con un motivo |
Tipos de Pago
| Tipo | Descripcion |
|---|---|
| comprobante | Pago con comprobante subido por el usuario |
| efectivo | Pago en efectivo registrado manualmente |
| transferencia_externa | Transferencia registrada manualmente |
| manual | Pago manual generico |
Filtros y busqueda
- Busqueda por texto: nombre del usuario o periodo de la expensa
- Filtro por estado (select): Todos, Pendiente Validacion, Aprobado, Rechazado
- Paginacion: configurable con componente
TablePagination