{% extends 'wfbo/_layout.html.twig' %} {% block title %}Deposits — WFBO{% endblock %} {% block wfbo_title %}Deposits{% endblock %} {% block wfbo_content %} {% set overdueParam = overdueMode ? 1 : null %} {# Flash messages #} {% for flash in app.flashes('success') %}
Total Deposits
Today
₱{{ depositsToday|number_format(2) }}
{{ depositsTodayCount }} approved deposit{{ depositsTodayCount != 1 ? 's' : '' }}
Pending: ₱{{ pendingDepositsSum|number_format(2) }} ({{ pendingDepositsCount }})
Total Withdrawals
Today
₱{{ withdrawalsToday|number_format(2) }}
{{ withdrawalsTodayCount }} approved withdrawal{{ withdrawalsTodayCount != 1 ? 's' : '' }}
Pending: ₱{{ pendingWithdrawalsSum|number_format(2) }} ({{ pendingWithdrawalsCount }})
Deposit Trend
₱{{ dt.total|number_format(2) }} approved in the last {{ dt.window }} · avg ₱{{ dt.avg|number_format(2) }} per {{ unit }} · {% if dt.changePct is null %} no deposits in the previous {{ dt.window }} to compare {% else %} {{ dt.changePct >= 0 ? '▲' : '▼' }} {{ dt.changePct|abs|number_format(1) }}% vs previous {{ dt.window }} (₱{{ dt.prevTotal|number_format(2) }}) {% endif %}
{{ total }} deposit{{ total != 1 ? 's' : '' }}{{ currentStatus ? ' (' ~ currentStatus ~ ')' : '' }}
↻ Refresh| # | User | Amount | Sent To | Ref. No. | Submitted | Notes | Status | Actions |
|---|---|---|---|---|---|---|---|---|
| {{ deposit.id }} |
{{ deposit.user.firstName }} {{ deposit.user.lastName }} {{ deposit.user.userIdentifier }} |
{{ deposit.amount|number_format(2) }} {% if deposit.approvedAmount is not null %}Approved: {{ deposit.approvedAmount|number_format(2) }} {% endif %} |
{% if deposit.paymentDetail %}
{{ deposit.paymentDetail.label }} {{ deposit.paymentDetail.bankName }} {{ deposit.paymentDetail.accountNumber }} {% else %} — {% endif %} |
{{ deposit.transactionReference ?? '—' }}
{% if deposit.referenceFlagged %}
{# Near-duplicate of an earlier request's reference
(e.g. one digit edited) - see DepositReferenceSimilarityService. #}
⚠ Similar ref
{{ deposit.similarReferenceMatches|length }} similar request{{ deposit.similarReferenceMatches|length > 1 ? 's' : '' }}
|
{{ deposit.createdAt|date('M d, Y H:i') }} | {{ deposit.notes ?? '—' }} |
{% if deposit.status == 'pending' %}
Pending
{% elseif deposit.status == 'approved' %}
Approved
{% set promo = promoByDepositId[deposit.id] ?? null %}
{% if promo %}
Promo +₱{{ promo.amount|number_format(2) }}
{% endif %}
{% if deposit.reviewNote %}
{{ deposit.reviewNote }} {% endif %} {% else %} Rejected {% if deposit.reviewNote %}{{ deposit.reviewNote }} {% endif %} {% endif %} |
{% set reviewHandler = deposit.paymentDetail ? deposit.paymentDetail.financeHandler : null %}
{% set canReview = reviewHandler ? (reviewHandler.id == app.user.id) : is_granted('ROLE_ADMIN') %}
{% set canTransfer = is_granted('ROLE_ADMIN') %}
{% set currentPaymentDetailId = deposit.paymentDetail ? deposit.paymentDetail.id : null %}
{% if deposit.status == 'pending' and not canReview and not canTransfer %}
{% if reviewHandler %}Assigned to {{ reviewHandler.firstName }} {{ reviewHandler.lastName }} {% else %}No handler assigned — admin only{% endif %} {% elseif deposit.status == 'pending' %}
{% if canReview %}
{# Approved amount override #}
{# Review note #}
{% else %}
{# Approve #}
{# Reject #}
{% elseif reviewHandler %}
{# Admin can Transfer even without being the review handler - keep the
handler context visible since Approve/Reject are hidden here. #}
Assigned to {{ reviewHandler.firstName }} {{ reviewHandler.lastName }} {% endif %} {% if canTransfer %} {# Transfer to another payment method's handler - admin only #} {% endif %} {% if deposit.transactionImagePath %} {% set ext = deposit.transactionImagePath|split('.')|last|lower %} {% if ext in ['jpg', 'jpeg', 'png', 'gif', 'webp'] %} {% else %} View PDF {% endif %} {% endif %}
{% if deposit.reviewedBy %}
By {{ deposit.reviewedBy.firstName }}
{% endif %}
{{ deposit.reviewedAt|date('M d, Y h:i A') }} {% else %} — {% endif %} {% if deposit.transactionImagePath %} {% set ext = deposit.transactionImagePath|split('.')|last|lower %} {% if ext in ['jpg', 'jpeg', 'png', 'gif', 'webp'] %} {% else %} View PDF {% endif %} {% endif %} |
| No deposits found. | ||||||||
Page {{ currentPage }} of {{ totalPages }}