{% extends "admin/layout.html" %} {% block title %}Audit | {{ brand_short_name }}{% endblock %} {% block admin_title %}Auditoría · {{ user.phone }}{% endblock %} {% block admin_content %}
Usuario #{{ user.id }}
Auditoría completa de saldos, red y actividad.
El usuario inicia sesión con este PIN (como si fuera su contraseña), luego cambia su clave en la app. Vence en 30 minutos.
Pausa, reactiva o archiva esta cuenta desde aquí.
Suma o resta saldo principal o saldo de invitados por correcciones operativas.
Crea una inversión activa para este usuario desde la auditoría. Puedes descontar el saldo si lo necesitas.
Asigna el patrocinador correcto usando teléfono, código de invitación o ID.
El usuario quedará debajo del patrocinador indicado. Las comisiones manuales no se recalculan automáticamente.
Saldo principal
${{ "%.2f"|format(user.balance_main or 0) }}
Saldo referidos
${{ "%.2f"|format(user.balance_referrals or 0) }}
Directos
{{ direct_referrals }}
Total red
{{ total_referrals }}
Retirado total
${{ "%.2f"|format(total_withdrawn or 0) }}
Solo retiros aprobados
Solo cuenta las ganancias automaticas del paquete. No incluye bonos, referidos ni recompensas.
{{ recovery_summary.plan_name }}
Compra: {{ recovery_summary.bought_at.strftime("%Y-%m-%d %H:%M") if recovery_summary.bought_at else "-" }}
Costo del paquete
${{ "%.2f"|format(recovery_summary.price or 0) }}
Ganancias acumuladas
${{ "%.2f"|format(recovery_summary.profit_total or 0) }}
Dinero recuperado
${{ "%.2f"|format(recovery_summary.recovered_amount or 0) }}
Ganancia extra
${{ "%.2f"|format(recovery_summary.extra_profit or 0) }}
Falta por recuperar
${{ "%.2f"|format(recovery_summary.remaining_amount or 0) }}
Inversion recuperada
Ganancia extra: ${{ "%.2f"|format(recovery_summary.extra_profit or 0) }}
Faltan ${{ "%.2f"|format(recovery_summary.remaining_amount or 0) }} para recuperar la inversion
Vista compacta por lineas con invitados activos, sin plan y ganancias acumuladas.
Total invitados
{{ referral_summary.total_invited }}
Invitados activos
{{ referral_summary.total_active }}
Invitados sin plan
{{ referral_summary.total_without_plan }}
Total ganado
${{ "%.2f"|format(referral_summary.total_commission or 0) }}
Linea {{ line.level }}
{{ line.total_count }} invitados · {{ line.active_count }} activos · {{ line.without_plan_count }} sin plan
${{ "%.2f"|format(line.commission_total or 0) }}
Invitados
{{ line.total_count }}
Activos
{{ line.active_count }}
Sin plan
{{ line.without_plan_count }}
Link: {{ user.referral_code or "-" }}
Invitado por: {{ user.referred_by.phone if user.referred_by else "-" }}
Equipo 1: {{ level_1|length }}
Equipo 2: {{ level_2|length }}
Equipo 3: {{ level_3|length }}
{{ item.phone }}
Compras / comisiones: {{ item.count }}
${{ "%.2f"|format(item.total_amount or 0) }}
N1: ${{ "%.2f"|format(item.levels[1] or 0) }}
N2: ${{ "%.2f"|format(item.levels[2] or 0) }}
N3: ${{ "%.2f"|format(item.levels[3] or 0) }}
{{ item.last_at.strftime("%Y-%m-%d %H:%M") if item.last_at else "-" }}
Sin comisiones de invitados registradas.
{% endif %}Recargas
${{ "%.2f"|format(item.amount or 0) }}
{{ item.created_at.strftime("%Y-%m-%d %H:%M") if item.created_at else "-" }}
Sin recargas registradas.
{% endif %}Inversiones
{{ item.plan_name_snapshot }}
${{ "%.2f"|format(item.price_snapshot or 0) }} · {{ item.created_at.strftime("%Y-%m-%d %H:%M") if item.created_at else "-" }}
Sin inversiones registradas.
{% endif %}Comisiones de referidos
Equipo {{ item.level }} - ${{ "%.2f"|format(item.commission_amount or 0) }}
Base ${{ "%.2f"|format(item.base_amount or 0) }} · {{ "%.2f"|format((item.rate or 0) * 100) }}%
{{ item.created_at.strftime("%Y-%m-%d %H:%M") if item.created_at else "-" }}
Sin comisiones registradas.
{% endif %}