{{ viewTitles[currentView] || 'Dashboard' }}

Notificaciones
Cargando...
No tienes notificaciones
{{ n.titulo }}
{{ n.mensaje }}
{{ formatDateTime(n.created_at) }}
{{ auth.user?.nombre }}
{{ alert.message }}
Cargando dashboard...

Requiere tu acción

Lo que está esperando por ti
{{ dash.accion.solicitudes_por_revisar||0 }}
Solicitudes por revisar
{{ dash.accion.contratos_por_firmar||0 }}
Esperando firma
{{ dash.accion.listas_para_pool||0 }}
Listas para crear pool
{{ dash.accion.facturas_por_validar||0 }}
Facturas por validar
{{ dash.accion.kyc_pendientes||0 }}
KYC pendientes
{{ dash.accion.dispersiones_pendientes||0 }}
Pagos por dispersar
{{ formatMoney(dash.accion.monto_por_dispersar||0) }}
Cartera Activa
{{ formatMoney(dash.capital.cartera_activa) }}
{{ dash.capital.pools_activos||0 }} pool(s)
Capital de Godinez
{{ formatMoney(dash.capital.capital_activo) }}
{{ dash.capital.godines_activos||0 }} participante(s)
Cartera en Riesgo
{{ formatMoney(dash.capital.cartera_riesgo) }}
{{ Number(dash.capital.pct_riesgo||0).toFixed(1) }}% de la cartera
Total Rotado Histórico
{{ formatMoney(dash.capital.total_rotado) }}
{{ dash.capital.pools_liquidados||0 }} liquidado(s)

Volumen mensual

Pools por estatus

Concentración por Empresa Clave

exposición activa

Ingreso mensual de Semillero

Pools que requieren atención

{{ dash.pools_atencion.length }}
PoolEmpresaMontoDías de atrasoPenalizaciónEstatus
{{ p.nombre }} {{ p.empresa_clave?.razon_social||'—' }} {{ formatMoney(p.monto_fondeado) }} {{ p.dias_atraso }} {{ formatMoney(p.monto_penalizacion_mora||0) }} {{ p.estatus }}

Pools recientes

PoolEmpresaObjetivoFondeoEstatus
{{ p.nombre }} {{ p.empresa_clave?.razon_social||'—' }} {{ formatMoney(p.monto_objetivo) }}
{{ Number(p.porcentaje_fondeado||0).toFixed(0) }}%
{{ p.estatus }}

No hay pools aún.

{{ viewTitles[currentView] }}

Cargando...

No hay registros aún.

{{ col.label }}Acciones
{{ getNestedValue(item,col.key)?'Sí':'No' }} {{ item[col.key] }} {{ formatMoney(item[col.key]) }} {{ formatDate(item[col.key]) }} {{ getNestedValue(item,col.key) }} {{ item[col.key] }} {{ item.estatus }} {{ ventanaTexto(item.fecha_cierre_fondeo) }} Acceso ✓

Solicitudes de Financiamiento

Cargando...

No hay solicitudes

IDProveedorPO / FacturaTipoMonto Solic.Int. Mensual Prop.Int. Mensual Aprob.Int. TotalFee MgmtEstatusAcciones
{{ s.id }} {{ s.proveedor?.razon_social }} {{ s.orden_compra?.numero_po }}
{{ formatMoney(s.orden_compra?.monto_total) }}Factura #{{ s.factura?.numero_factura }}
{{ s.tipo==='FACTORAJE'?'Factura':'PO' }} {{ formatMoney(s.monto_solicitado) }} {{ s.interes_propuesto_pct }}%/mes
{{ (s.interes_propuesto_pct*(s.plazo_solicitado_dias||30)/30).toFixed(2) }}% total
{{ s.interes_aprobado_pct }}%/mes
{{ (s.interes_aprobado_pct*(s.plazo_aprobado_dias||s.plazo_solicitado_dias||30)/30).toFixed(2) }}% total
-
{{ ((s.interes_aprobado_pct||s.interes_propuesto_pct)*((s.plazo_aprobado_dias||s.plazo_solicitado_dias)||30)/30).toFixed(2) }}%
{{ s.plazo_aprobado_dias||s.plazo_solicitado_dias }} días
aprobado
{{ feeProvDe(s).toFixed(2) }}%
{{ formatMoney(s.monto_solicitado * feeProvDe(s) / 100) }}
{{ s.estatus }}

Perfiles de usuario interno

Admin Core admin_core
  • Acceso total al Panel Core
  • Crear y gestionar usuarios internos
  • Aprobar/rechazar KYC
  • Crear, publicar y gestionar pools
  • Aprobar solicitudes y contraoferta
  • Distribuir rendimientos
  • Configuración del sistema
  • Ver auditoría completa
Operador operador_core
  • Gestionar facturas y órdenes de compra
  • Crear y editar pools
  • Aprobar/rechazar solicitudes
  • Registrar y gestionar pagos
  • Ver reportes y rendimientos
  • No puede crear usuarios
  • No puede cambiar configuración
  • No accede a auditoría
Viewer Empresa empresa_viewer
  • Ver facturas de su empresa
  • Ver pools de su empresa
  • Ver proveedores vinculados
  • Solo lectura — no puede modificar
  • No accede al Panel Core completo
  • Ideal para área de compras o finanzas de la empresa clave.
Participantes y Proveedores no se crean desde aquí. Se registran desde semillerogodinez.app y requieren aprobación de KYC antes de operar.
Cargando...

No hay participaciones{{ invAdmin.filtro!==''?' con este filtro':'' }}.

ParticipanteEmailPoolContratoMontoRend. Est.PagoFirmaFechaAcciones
{{ inv.inversionista?.nombre_completo }} {{ inv.inversionista?.user?.email }} {{ inv.pool?.nombre }} {{ inv.contrato.numero_contrato }} {{ formatMoney(inv.monto) }} {{ formatMoney(inv.rendimiento_estimado) }} PagadoPendiente {{ inv.contrato?.estatus_firma || 'PENDIENTE' }} {{ formatDate(inv.fecha_inversion) }} {{ formatDate(inv.pago_confirmado_at) }}
Cargando pagos...
Total Cobrado
{{ formatMoney(cobranzaTotal) }}
Pagos registrados
{{ cobranza.items.length }}

Pagos recibidos

Dinero que entra de la Empresa Clave

Aún no hay pagos registrados

IDPoolMontoFechaMétodoBanco origenCuenta destinoReferenciaAcciones
{{ p.id }} {{ p.pool?.nombre||('#'+p.pool_id) }} {{ formatMoney(p.monto_recibido) }} {{ formatDate(p.fecha_pago) }} {{ p.metodo_pago }} {{ p.banco_origen||'—' }} {{ p.cuenta_destino||'—' }} {{ p.referencia_bancaria||'—' }}
Cargando dispersiones...
Total a Godinez
{{ formatMoney(dispersion.resumen.total) }}
Pendiente de pago
{{ formatMoney(dispersion.resumen.pendiente) }}
{{ dispersion.resumen.count_pendientes||0 }} pago(s)
Ya pagado
{{ formatMoney(dispersion.resumen.pagado) }}

Pagos a Godinez

Quién, cuánto, de qué pool y a qué cuenta

No hay dispersiones con estos filtros. Se generan al distribuir un pool.

GodínPoolCapitalRendimientoTotalCuenta destinoEstadoReferenciaAcciones
{{ d.inversionista?.nombre_completo||'—' }}CAPITAL PROPIO {{ d.pool?.nombre||('#'+d.pool_id) }} {{ formatMoney(d.monto_capital) }} {{ formatMoney(d.monto_rendimiento) }} {{ formatMoney(d.monto_total) }}
{{ d.banco_destino || d.inversionista?.banco || '—' }}
{{ d.clabe_destino || d.inversionista?.clabe || 'sin CLABE' }}
{{ d.pagado?'PAGADO':'PENDIENTE' }}
{{ formatDate(d.pagado_at) }}
{{ d.referencia_pago||'—' }}
Calculando distribución...
{{ rend.error }}
Pool
{{ rend.calc.pool_nombre }}
Empresa
{{ rend.pool?.empresa_clave?.razon_social || '—' }}
Estatus
{{ rend.pool?.estatus }}
Capital Fondeado
{{ formatMoney(rend.calc.monto_fondeado) }}
Plazo
{{ rend.calc.plazo_dias }} días
Modelo
{{ rend.calc.modelo_calculo }}
Control de caja: cobrado {{ formatMoney(rend.calc.caja.total_pagos_recibidos) }} · comprometido {{ formatMoney(rend.calc.caja.comprometido) }} · diferencia {{ formatMoney(rend.calc.caja.diferencia) }}.

Resumen del Pool

Calculado con la misma fórmula del contrato firmado
Capital a devolver{{ formatMoney(rend.calc.capital_a_devolver) }}
Rendimiento bruto{{ formatMoney(rend.calc.rendimiento_bruto) }}
− Fee de management{{ formatMoney(rend.calc.fee_management) }}
= Rendimiento neto a Godinez{{ formatMoney(rend.calc.rendimiento_neto) }}
+ Penalización moratoria{{ formatMoney(rend.calc.penalizacion_mora) }}
Total a distribuir{{ formatMoney(rend.calc.total_a_distribuir) }}
= Ingreso Semillero Godínez (fee de management + spread — dato interno) {{ formatMoney(rend.calc.ingreso_semillero) }}

Distribución por Participante

{{ rend.calc.distribuciones.length }} participante(s)
Participante Capital % Part. Rend. Bruto Fee Mgmt Rend. Neto Penalización Total a Recibir
{{ d.nombre }}CAPITAL PROPIO {{ formatMoney(d.capital_devuelto) }} {{ Number(d.participacion_pct).toFixed(2) }}% {{ formatMoney(d.rendimiento_bruto) }} {{ formatMoney(d.fee_management) }} {{ formatMoney(d.rendimiento) }} {{ d.penalizacion_mora>0?formatMoney(d.penalizacion_mora):'—' }} {{ formatMoney(d.total) }}
TOTALES {{ formatMoney(rend.calc.capital_a_devolver) }} 100% {{ formatMoney(rend.calc.rendimiento_bruto) }} {{ formatMoney(rend.calc.fee_management) }} {{ formatMoney(rend.calc.rendimiento_neto) }} {{ formatMoney(rend.calc.penalizacion_mora) }} {{ formatMoney(rend.calc.total_a_distribuir) }}

Selecciona un pool y calcula la distribución de rendimientos

Cargando reporte...
{{ report.data.error }}
Pools Activos
{{ report.data.pools_activos??0 }}
Monto en Fondeo
{{ formatMoney(report.data.monto_en_fondeo) }}
Monto en Ejecución
{{ formatMoney(report.data.monto_en_ejecucion) }}
Pools en Atraso/Mora
{{ report.data.pools_en_atraso_mora??0 }}
Comisiones del Mes
{{ formatMoney(report.data.comisiones_mes) }}
Total Rotado Histórico
{{ formatMoney(report.data.total_rotado_historico) }}
Pools Liquidados
{{ report.data.pools_liquidados_total??0 }}

Pools que Requieren Atención

PoolEmpresaMontoDías AtrasoEstatus
{{ p.nombre }}{{ p.empresa||p.empresa_clave?.razon_social||'-' }}{{ formatMoney(p.monto_objetivo||p.monto) }}{{ p.dias_atraso??0 }}{{ p.estatus }}
No hay pools que requieran atención
Total Cartera Activa
{{ formatMoney(report.data.resumen?.total_cartera_activa||0) }}
Pools en Fondeo
{{ report.data.resumen?.pools_en_fondeo??0 }}
Pools en Ejecución
{{ report.data.resumen?.pools_en_ejecucion??0 }}
Cartera Vencida
{{ formatMoney(report.data.resumen?.cartera_vencida||0) }}

Detalle de Cartera

PoolEmpresaObjetivoFondeadoPlazoFondeado elPago esperadoEstado pagoEstatus
{{ p.nombre }}{{ p.empresa_clave?.razon_social||'-' }}{{ formatMoney(p.monto_objetivo) }}{{ formatMoney(p.monto_fondeado) }}{{ p.plazo_estimado_dias }} días{{ poolInfo(p)?.fondeoStr || '—' }}{{ poolInfo(p)?.vencStr || '—' }}{{ poolInfo(p).sem.label }}{{ p.estatus }}

No hay pools en cartera activa

Pools en Atraso
{{ report.data.resumen?.total_en_atraso??0 }}
Pools en Mora
{{ report.data.resumen?.total_en_mora??0 }}
Pools en Cobranza
{{ report.data.resumen?.total_en_cobranza??0 }}
Monto en Riesgo
{{ formatMoney(report.data.resumen?.monto_total_en_riesgo||0) }}
Penalizaciones Acumuladas
{{ formatMoney(report.data.resumen?.penalizacion_total_acumulada||0) }}

Pools con Mora

PoolEmpresaFondeadoPago esperadoDías AtrasoPenalizaciónEstatus
{{ p.nombre }}{{ p.empresa_clave?.razon_social||'-' }}{{ formatMoney(p.monto_fondeado) }}{{ poolInfo(p)?.vencStr || '—' }}{{ p.dias_atraso }}{{ formatMoney(p.monto_penalizacion_mora||0) }}{{ p.estatus }}
No hay pools en mora. Todo al día.
Cargando reporte de ingresos...
Capital Total Fondeado
{{ formatMoney(ingresos.resumen.capital) }}
Ingreso por Spread
{{ formatMoney(ingresos.resumen.spread) }}
dato interno
Fee Proveedor
{{ formatMoney(ingresos.resumen.fee_proveedor) }}
comisión de apertura
Fee de Management
{{ formatMoney(ingresos.resumen.fee_management) }}
% del rendimiento (V2)
Ingreso Total Semillero
{{ formatMoney(ingresos.resumen.ingreso_semillero) }}
{{ Number(ingresos.resumen.margen_pct||0).toFixed(2) }}% sobre capital
Pools incluidos
{{ ingresos.resumen.pools||0 }}

Detalle por Pool

Calculado con la fuente única (calcularDesglose)

No hay pools con los filtros seleccionados

Pool Empresa Tipo Modelo Capital Interés Proveedor Rend. Bruto Godinez Spread Fee Prov. Fee Mgmt Ingreso SG
{{ p.nombre }} {{ p.empresa }} {{ p.tipo_pool||'FACTORAJE' }} {{ p.modelo_calculo }} {{ formatMoney(p.capital) }} {{ formatMoney(p.interes_proveedor) }} {{ formatMoney(p.rendimiento_bruto) }} {{ formatMoney(p.spread) }} {{ formatMoney(p.fee_proveedor) }} {{ formatMoney(p.fee_management) }} {{ formatMoney(p.ingreso_semillero) }}
TOTALES {{ formatMoney(ingresos.resumen.capital) }} {{ formatMoney(ingresos.resumen.interes_proveedor) }} {{ formatMoney(ingresos.resumen.rendimiento_bruto) }} {{ formatMoney(ingresos.resumen.spread) }} {{ formatMoney(ingresos.resumen.fee_proveedor) }} {{ formatMoney(ingresos.resumen.fee_management) }} {{ formatMoney(ingresos.resumen.ingreso_semillero) }}
Total Expuesto
{{ formatMoney(report.data.resumen?.total_expuesto) }}
Empresas Clave
{{ report.data.resumen?.empresas||0 }}
Concentración en el mayor
{{ Number(report.data.resumen?.top1_pct||0).toFixed(1) }}%
{{ report.data.resumen?.top1_empresa }}
Riesgo de concentración: más de la mitad de la exposición activa depende de un solo pagador ancla.

Exposición por Empresa Clave

Empresa ClaveSectorPools activosExpuesto% del totalEn riesgoLiquidado
{{ e.empresa }} {{ e.sector }} {{ e.pools_activos }} {{ formatMoney(e.expuesto) }} {{ Number(e.pct_exposicion).toFixed(1) }}% {{ e.en_riesgo>0?formatMoney(e.en_riesgo):'—' }} {{ formatMoney(e.liquidado) }}
Godinez con actividad
{{ report.data.resumen?.godines||0 }}
Capital Activo
{{ formatMoney(report.data.resumen?.capital_activo) }}
Rendimiento Pagado
{{ formatMoney(report.data.resumen?.rendimiento_pagado) }}
Por Cobrar
{{ formatMoney(report.data.resumen?.por_cobrar) }}

Estado de cuenta por participante

GodínRFCKYCCapital activoPools activosPools históricosRend. cobradoPor cobrar
{{ g.nombre }}CAPITAL PROPIO {{ g.rfc }} {{ g.kyc }} {{ formatMoney(g.capital_activo) }} {{ g.pools_activos }} {{ g.pools_historicos }} {{ formatMoney(g.rendimiento_cobrado) }} {{ g.por_cobrar>0?formatMoney(g.por_cobrar):'—' }}
Solicitudes abiertas
{{ report.data.resumen?.abiertas||0 }}
Monto en pipeline
{{ formatMoney(report.data.resumen?.monto_abierto) }}

Embudo por etapa

las etapas resaltadas esperan por ti
EtapaSolicitudesMonto
{{ e.etapa }} {{ e.solicitudes }} {{ formatMoney(e.monto) }}

Solicitudes abiertas

No hay solicitudes abiertas

IDProveedorTipoEstatusMontoDías abierta
{{ s.id }} {{ s.proveedor }} {{ s.tipo }} {{ s.estatus }} {{ formatMoney(s.monto) }} {{ s.dias }}

Selecciona un reporte

Panel de Seguridad

Estado de seguridad de todos los usuarios y solicitudes de recuperación

Total Usuarios
{{ seguridad.resumen.total_usuarios }}
Con 2FA
{{ seguridad.resumen.con_2fa }}
Sin 2FA
{{ seguridad.resumen.sin_2fa }}
Con Preg. Secreta
{{ seguridad.resumen.con_pregunta }}
Sin Preg. Secreta
{{ seguridad.resumen.sin_pregunta }}
Recuperaciones Pendientes
{{ recovery2faCount }}
Cargando...
UsuarioRolKYC 2FA Preg. Secreta Pregunta configurada Acciones
{{ u.nombre }}
{{ u.email }}
{{ u.rol }} {{ u.kyc_estatus }} N/A {{ u.pregunta_secreta }} No configurada
No hay usuarios que coincidan
Cargando...

No hay solicitudes {{ recov2fa.filtro!=='todas'?'con estatus '+recov2fa.filtro:'' }}

{{ r.user_nombre }} {{ r.estatus }}
{{ r.user_email }} {{ r.pregunta_mostrada }} {{ formatDateTime(r.created_at) }} {{ r.notas_admin }}
Se valida el origen técnico del PDF (qué sistema lo generó), no su contenido. El sistema clasifica y alerta — nunca bloquea: la decisión es tuya.
Rojas
{{ ocv.resumen.rojo||0 }}
Amarillas
{{ ocv.resumen.amarillo||0 }}
Verdes
{{ ocv.resumen.verde||0 }}
Sin revisar
{{ ocv.resumen.pendientes||0 }}
Cargando...

Órdenes de compra validadas

No hay validaciones con este filtro. Se generan al subir una factura con PO, al subir una OC aquí, o al aprobar una OC.

OCProveedorEmisorOrigenFirmaClasif.ScoreDecisiónAcción
{{ v.orden_compra?.numero_po }} {{ v.orden_compra?.proveedor?.razon_social||'—' }} {{ v.emisor_ref||'—' }}
rompe la huella
{{ v.erp_detectado || v.red_b2b_nombre || v.clase_firma || '—' }} {{ v.fuerza_firma }} {{ v.clasificacion }} {{ v.score_confianza }} {{ v.decision_humana }}pendiente
Validación fiscal del CFDI de cada factura del proveedor: se leen los datos timbrados del XML del SAT (UUID, emisor, receptor, total) con el botón Datos SAT.
Cargando...

Facturas del proveedor (CFDI)

No hay facturas de proveedor con XML para validar.

No. FacturaProveedorMontoEmisiónEstatusAcción
{{ f.numero_factura }} {{ f.proveedor?.razon_social||'—' }} {{ formatMoney(f.monto) }} {{ formatDate(f.fecha_emision) }} {{ f.estatus }}
Cargando solicitudes...

Solicitudes de cambio de fecha

El proveedor no puede mover la fecha sin tu aprobación

No hay solicitudes con este filtro

POProveedorEtapaFecha actualFecha propuestaMotivoEstatusAcciones
{{ s.orden_compra?.numero_po }} {{ s.orden_compra?.proveedor?.razon_social||'—' }} {{ s.orden_compra?.etapa_avance }} {{ s.fecha_actual?formatDate(s.fecha_actual):'—' }} {{ formatDate(s.fecha_propuesta) }} {{ s.motivo }} {{ s.estatus }} {{ s.resuelto_at?formatDate(s.resuelto_at):'' }}

Firmas / Documentos

Estatus de firma de los contratos. "Sincronizar" consulta EasyLex y marca como firmados los que ya lo estén.

Cargando...

No hay documentos de firma

IDTipoFirmanteEstatusEnviadoFirmadoDescargas
{{ d.id }} {{ tipoDocLabel(d.tipo) }} {{ (d.firmantes&&d.firmantes[0]) ? ((d.firmantes[0].first_name||'')+' '+(d.firmantes[0].last_name||'')).trim() : '—' }}
{{ (d.firmantes&&d.firmantes[0]) ? d.firmantes[0].email : '' }}
{{ d.estatus }} {{ d.enviado_at?formatDate(d.enviado_at):'—' }} {{ d.firmado_at?formatDate(d.firmado_at):'—' }}

Prospectos

Cargando...

Sin prospectos con este filtro. Importa el CSV del CRM de la landing o da de alta uno manual.

ProspectoContactoTipoOrigenEstatusCódigoInvitado elAcciones
{{ p.nombre }}
{{ [p.empresa,p.cargo].filter(Boolean).join(' · ') }}
{{ p.email }}
{{ p.telefono }}
{{ p.tipo==='godinez'?'Godín':'Proveedor' }} {{ p.origen }} {{ p.estatus }} {{ p.invitado_at?formatDate(p.invitado_at):'—' }}
Página {{ prosp.meta.current_page }} de {{ prosp.meta.last_page }} · {{ prosp.meta.total }} prospectos

Bitácora

Cargando...
FechaUsuarioAcciónEntidadID
{{ formatDateTime(a.created_at) }}{{ a.user_nombre||'Sistema' }}{{ a.accion }}{{ a.entidad }}{{ a.entidad_id }}

Sin registros

Generar contrato de Comitente

Interino · persona física / SOFOM · solo DEV
Procesando…

El desglose (capital, rendimiento, ganancia, comisión) lo calcula el servidor con la fórmula única del pool y aparece en el Anexo A del PDF. El JSON es respaldo para generar el Word a mano si faltara algún dato.

Contratos generados (interinos)

Cargando…

Aún no se han generado contratos.

NúmeroComitentePoolMontoEmisoraFirmaPDF
{{ c.numero_contrato }} {{ c.nombre_inversionista }}
{{ c.rfc_comitente }}
{{ c.pool?.nombre||('#'+c.pool_id) }} {{ formatMoney(c.monto_inversion) }} {{ c.parte_emisora==='SOFOM'?'SOFOM':'P. Física' }} {{ formatDate(c.fecha_firma) }} INTERINO
Cargando respaldos…

Sin respaldos

No hay ningún respaldo en el servidor. Revisa que el cron de mysqldump esté configurado (ver la nota abajo).

Último respaldo vacío (posible fallo)

El respaldo más reciente pesa casi nada — el mysqldump probablemente falló (credenciales o permisos). Revisa backup.log en la carpeta de respaldos. Un archivo vacío NO sirve para restaurar.

Respaldos al día

Último respaldo hace {{ backups.dias_desde_ultimo }} día(s) — {{ backups.ultimo }}.

Respaldo atrasado

El último respaldo fue hace {{ backups.dias_desde_ultimo }} día(s) (más de {{ backups.dias_alerta }}). Revisa que el cron siga corriendo.

Respaldos
{{ backups.total }}
Espacio total
{{ backups.tamano_total }}
Último
{{ backups.ultimo || '—' }}

Respaldos en el servidor

No hay archivos de respaldo.

ArchivoTamañoFecha
{{ r.nombre }}vacío {{ r.tamano }} {{ r.fecha }}

Cómo funciona

Los respaldos los crea un cron con mysqldump (PHP no puede generarlos en este hosting). Este panel es solo de lectura: da visibilidad y un punto de restauración. Por seguridad no se descargan por web (la BD contiene datos sensibles); para bajar un respaldo se usa FTP. La restauración es un procedimiento manual documentado.

Configuración

Cargando...
ClaveValorDescripciónAcción
{{ c.clave }}{{ c.descripcion }}