Panel
{{ totales.conteo.CUADRADO || 0 }}
NC Cuadradas
{{ totales.conteo.DIFERENCIA || 0 }}
Con diferencia
{{ totales.conteo.SOLO_EN_BANCO || 0 }}
Solo en banco
{{ totales.conteo.SOLO_EN_DATABALANCE || 0 }}
Solo en databalance
{{ (stats && stats.databalance_total ? stats.databalance_total.n : 0) }}
Total transacciones
Pendientes de emisión de NC (databalance)
| Estado | Filas | Suma |
|---|---|---|
| {{ p.estado }} | {{ p.n }} | {{ fmt(p.suma) }} |
No hay filas pendientes.
Importar archivos
Data Balance (contabilidad)
Filtro por adquirente {{ adquirente }}. Duplicados por TDTLF + FECHA_TRX se detectan automáticamente. Si una fila reimportada trae "Conciliado" y NC, se actualiza en vez de ignorarse.
Import #{{ lastDb.import_id }} — Leídas: {{ lastDb.total_leido }}
· Nuevas: {{ lastDb.insertadas }}
· Actualizadas (NC emitida): {{ lastDb.actualizadas || 0 }}
· Duplicadas: {{ lastDb.duplicadas }}
Rango: {{ lastDb.fecha_desde }} → {{ lastDb.fecha_hasta }}
Rango: {{ lastDb.fecha_desde }} → {{ lastDb.fecha_hasta }}
Extracto DINERS CLUB
Solo filas NC Pago Establecimientos. Deduplicación por fecha+NC+monto.
Import #{{ lastBk.import_id }} — Leídas: {{ lastBk.total_leido }} · NCs: {{ lastBk.ncs_encontradas }} · Nuevas: {{ lastBk.insertadas }} · Duplicadas: {{ lastBk.duplicadas }}
{{ uploadError }}
Conciliación
| NC | Estado | Σ Databalance | Monto banco | Δ | Filas DB | Fecha pago | Fecha banco |
|---|---|---|---|---|---|---|---|
| {{ it.nc }} ↔ {{ it.n_movs_banco }}{{ it.n_excluidos ? ' ('+it.n_excluidos+' excl.)' : '' }} | {{ it.estado }} | {{ fmt(it.suma_databalance) }} | {{ fmt(it.monto_banco) }} | {{ fmt(it.delta) }} | {{ it.n_filas_db }} | {{ it.fecha_pago_min || '—' }} | {{ it.fecha_banco_min || '—' }} |
| Sin resultados. Ajusta filtros o importa los Excel. | |||||||
Mostrando {{ (fConc.pagina-1)*fConc.perPage + 1 }}–{{ Math.min(fConc.pagina*fConc.perPage, filteredItems.length) }} de {{ filteredItems.length }}
{{ fConc.pagina }} / {{ totalPages }}
Reporte para el cliente
{{ repData.meta.total_transacciones }}
Transacciones
{{ repData.meta.total_acreditadas }}
✓ Acreditadas · {{ fmt(repData.meta.suma_acreditadas) }}
{{ repData.meta.total_pendientes_nc }}
⏳ Pendientes NC · {{ fmt(repData.meta.suma_pendientes_nc) }}
{{ repData.meta.total_con_diferencia }}
⚠ Con diferencia · {{ fmt(repData.meta.suma_con_diferencia) }}
{{ repData.meta.total_no_acreditadas }}
✗ No acreditadas · {{ fmt(repData.meta.suma_no_acreditadas) }}
Acreditadas ({{ repData.acreditadas.length }})
| Fecha trx | TDTLF | Tarjeta | Autoriz. | Valor | NC | Fecha banco |
|---|---|---|---|---|---|---|
| {{ (r.fecha_trx||'').substring(0,10) }} | {{ r.tdtlf }} | {{ r.tipo_tarjeta }} | {{ r.autorizacion }} | {{ fmt(r.valor_pagado) }} | {{ r.documento_pago_nc }} | {{ r.fecha_banco }} |
Pendientes de NC ({{ repData.pendientes_nc.length }}) — aún no emiten NC, esperar al adquirente
| Fecha trx | TDTLF | Tarjeta | Autoriz. | Valor | Estado databalance |
|---|---|---|---|---|---|
| {{ (r.fecha_trx||'').substring(0,10) }} | {{ r.tdtlf }} | {{ r.tipo_tarjeta }} | {{ r.autorizacion }} | {{ fmt(r.valor_pagado) }} | {{ r.estado_databalance }} |
Con diferencia ({{ repData.con_diferencia.length }}) — el banco depositó, pero el monto no coincide
| Fecha trx | TDTLF | Tarjeta | Valor | NC | Motivo |
|---|---|---|---|---|---|
| {{ (r.fecha_trx||'').substring(0,10) }} | {{ r.tdtlf }} | {{ r.tipo_tarjeta }} | {{ fmt(r.valor_pagado) }} | {{ r.documento_pago_nc || '—' }} | {{ r.motivo }} |
No acreditadas ({{ repData.no_acreditadas.length }})
| Fecha trx | TDTLF | Tarjeta | Valor | NC | Motivo |
|---|---|---|---|---|---|
| {{ (r.fecha_trx||'').substring(0,10) }} | {{ r.tdtlf }} | {{ r.tipo_tarjeta }} | {{ fmt(r.valor_pagado) }} | {{ r.documento_pago_nc || '—' }} | {{ r.motivo }} |
Elige el rango y presiona Preview.
Usuarios y accesos
Solo administradores pueden gestionar usuarios.
| ID | Nombre | Rol | Estado | Último login | Acciones | |
|---|---|---|---|---|---|---|
| {{ u.id }} | {{ u.nombre }} | {{ u.email }} | {{ u.rol }} | {{ u.activo==1 ? 'Activo' : 'Inactivo' }} | {{ u.ultimo_login || 'Nunca' }} | |
| Sin usuarios. | ||||||
Auditoría del sistema
Solo administradores pueden ver la auditoría.
| Fecha | Usuario | Acción | Entidad | Detalles | IP |
|---|---|---|---|---|---|
| {{ ev.creado_en }} |
{{ ev.user_nombre || '—' }}
{{ ev.user_email || '(sin sesión)' }}
|
{{ ev.accion }} | {{ ev.entidad }} #{{ ev.entidad_id }} — |
{{ formatDetails(ev.details) }}
—
|
{{ ev.ip || '—' }} |
| Sin eventos que coincidan con los filtros. | |||||
Mostrando {{ (auditData.page-1)*auditData.per_page + 1 }}–{{ Math.min(auditData.page*auditData.per_page, auditData.total) }} de {{ auditData.total }} eventos
{{ auditData.page }} / {{ auditData.total_pages }}
Historial de importaciones
| # | Tipo | Adquirente | Archivo | Leídas | Nuevas | Duplicadas | Rango | Fecha | |
|---|---|---|---|---|---|---|---|---|---|
| {{ im.id }} | {{ im.tipo }} | {{ im.adquirente }} | {{ im.filas_leidas }} | {{ im.filas_insertadas }} | {{ im.filas_duplicadas }} | {{ im.fecha_desde || '—' }} → {{ im.fecha_hasta || '—' }} | {{ im.creado_en }} | ||
| Sin importaciones registradas. | |||||||||