{% extends "base.html" %} {% block title %}Reports{% endblock %} {% block extra_css %} /* Print button styles */ .print-btn { position: fixed; top: 20px; right: 20px; z-index: 1000; background: #007bff; color: white; border: none; padding: 10px 20px; border-radius: 5px; cursor: pointer; font-size: 14px; box-shadow: 0 2px 5px rgba(0,0,0,0.2); } .print-btn:hover { background: #0056b3; } /* Print styles */ @media print { .print-btn, .btn-group, #filterCollapse, .pagination, .per-page-selector { display: none !important; } .container { max-width: 100% !important; padding: 0 !important; } .card { box-shadow: none !important; border: 1px solid #ddd !important; break-inside: avoid; } .card-header { background: #f8f9fa !important; color: #000 !important; border-bottom: 1px solid #ddd !important; } .table { font-size: 12px; } .table thead th { background: #f8f9fa !important; color: #000 !important; font-weight: bold; border: 1px solid #ddd !important; position: static; } .table tbody td { border: 1px solid #ddd !important; } .text-success { color: #000 !important; font-weight: bold; } .text-danger { color: #000 !important; font-weight: bold; } /* Avoid breaking rows across pages */ tr { page-break-inside: avoid; } /* Add page breaks between sections */ .card { margin-bottom: 20px; } } {% endblock %} {% block content %}
Total Payin

{{ "{:,.2f}".format(totals.total_payin) }}

Total Payout

{{ "{:,.2f}".format(totals.total_payout) }}

Total Balance

{{ "{:,.2f}".format(totals.total_balance) }}

CAP Redistribution

{{ "{:,.2f}".format(totals.cap_balance) }}

Accumulated Shortfall

{{ "{:,.2f}".format(totals.accumulated_shortfall or 0) }}

Client Reports
Show: per page
{% if clients %}
{% for client in clients %} {% endfor %}
Client Name Client ID Matches Bets Payin Payout Balance CAP Redistribution Accumulated Shortfall Actions
{{ client.token_name }} {{ client.client_id }} {{ client.total_matches }} {{ client.total_bets }} {{ "{:,.2f}".format(client.total_payin) }} {{ "{:,.2f}".format(client.total_payout) }} {{ "{:,.2f}".format(client.balance) }} {{ "{:,.2f}".format(client.cap_balance) }} {{ "{:,.2f}".format(client.accumulated_shortfall) }} {% set detail_filters = {'date_range': filters.date_range, 'start_date': filters.start_date, 'end_date': filters.end_date, 'start_time': filters.start_time, 'end_time': filters.end_time, 'per_page': filters.per_page, 'timezone': filters.timezone, 'sort_by': filters.sort_by, 'sort_order': filters.sort_order} %} View Details
{% if pagination and pagination.pages > 1 %}

Showing {{ pagination.per_page * (pagination.page - 1) + 1 }} to {{ min(pagination.per_page * pagination.page, pagination.total) }} of {{ pagination.total }} clients

Page {{ pagination.page }} of {{ pagination.pages }}
{% endif %} {% else %}

No reports found

Try adjusting your filters or wait for clients to sync reports.

{% endif %}
{% block extra_js %} {% endblock %} {% endblock %}