189 lines
9.3 KiB
HTML
189 lines
9.3 KiB
HTML
{% extends 'base.html' %}
|
||
{% block title %}Transakcje – {{ zbiorka.nazwa }}{% endblock %}
|
||
|
||
{% block content %}
|
||
<div class="container my-4">
|
||
|
||
<div class="d-flex justify-content-between align-items-center mb-3">
|
||
<h3 class="mb-0">Transakcje: {{ zbiorka.nazwa }}</h3>
|
||
|
||
<div class="btn-group" role="group" aria-label="Akcje zbiórki">
|
||
<a class="btn btn-sm btn-outline-light" href="{{ url_for('dodaj_wplate', zbiorka_id=zbiorka.id) }}">
|
||
<i class="fas fa-plus-circle"></i> Dodaj wpłatę
|
||
</a>
|
||
<a class="btn btn-sm btn-outline-light" href="{{ url_for('dodaj_wydatek', zbiorka_id=zbiorka.id) }}">
|
||
Dodaj wydatek
|
||
</a>
|
||
<a class="btn btn-sm btn-outline-light" href="{{ url_for('edytuj_stan', zbiorka_id=zbiorka.id) }}">
|
||
Edytuj stan
|
||
</a>
|
||
<a class="btn btn-sm btn-outline-light" href="{{ url_for('zbiorka', zbiorka_id=zbiorka.id) }}">
|
||
Otwórz ↗
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card shadow-sm">
|
||
<div class="card-body">
|
||
<div class="table-responsive">
|
||
<table class="table align-middle">
|
||
<thead>
|
||
<tr>
|
||
<th>Data</th>
|
||
<th>Typ</th>
|
||
<th>Widoczność</th>
|
||
<th class="text-end">Kwota</th>
|
||
<th>Opis</th>
|
||
<th class="text-end"></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
{% for a in aktywnosci %}
|
||
<tr data-tx-id="{{ a.id }}" data-tx-typ="{{ a.typ }}">
|
||
<td>{{ a.data|dt("%d.%m.%Y %H:%M") }}</td>
|
||
<td>
|
||
<span class="badge {{ 'bg-success' if a.typ=='wpłata' else 'bg-danger' }}">{{ a.typ
|
||
}}</span>
|
||
|
||
</td>
|
||
|
||
<td>
|
||
{% if a.ukryta %}
|
||
<span class="badge bg-warning ms-1">ukryta</span>
|
||
{% else %}
|
||
<span class="badge bg-success ms-1">widoczna</span>
|
||
{% endif %}
|
||
|
||
</td>
|
||
<td class="text-end">{{ '%.2f'|format(a.kwota) }} PLN</td>
|
||
<td class="text-muted">{{ a.opis or '—' }}</td>
|
||
<td class="text-end">
|
||
|
||
<div class="d-inline-flex flex-nowrap align-items-center gap-2">
|
||
{% if a.typ == 'wpłata' %}
|
||
<button class="btn btn-sm btn-outline-light btn-edit-wplata" data-id="{{ a.id }}"
|
||
data-kwota="{{ '%.2f'|format(a.kwota) }}" data-opis="{{ a.opis|e if a.opis }}"
|
||
data-action="{{ url_for('zapisz_wplate', wplata_id=a.id) }}">
|
||
Edytuj
|
||
</button>
|
||
<form class="d-inline" method="post"
|
||
action="{{ url_for('usun_wplate', wplata_id=a.id) }}"
|
||
onsubmit="return confirm('Usunąć wpłatę? Cofnie to wpływ na stan.');">
|
||
<button class="btn btn-sm btn-outline-danger">Usuń</button>
|
||
</form>
|
||
|
||
{% if a.ukryta %}
|
||
<form class="d-inline" method="post"
|
||
action="{{ url_for('odkryj_wplate', wplata_id=a.id) }}">
|
||
<button class="btn btn-sm btn-outline-secondary">Odkryj</button>
|
||
</form>
|
||
{% else %}
|
||
<form class="d-inline" method="post"
|
||
action="{{ url_for('ukryj_wplate', wplata_id=a.id) }}">
|
||
<button class="btn btn-sm btn-outline-secondary">Ukryj</button>
|
||
</form>
|
||
{% endif %}
|
||
|
||
{% else %}
|
||
<button class="btn btn-sm btn-outline-light btn-edit-wydatek" data-id="{{ a.id }}"
|
||
data-kwota="{{ '%.2f'|format(a.kwota) }}" data-opis="{{ a.opis|e if a.opis }}"
|
||
data-action="{{ url_for('zapisz_wydatek', wydatek_id=a.id) }}">
|
||
Edytuj
|
||
</button>
|
||
<form class="d-inline" method="post"
|
||
action="{{ url_for('usun_wydatek', wydatek_id=a.id) }}"
|
||
onsubmit="return confirm('Usunąć wydatek? Cofnie to wpływ na stan.');">
|
||
<button class="btn btn-sm btn-outline-danger">Usuń</button>
|
||
</form>
|
||
|
||
{% if a.ukryta %}
|
||
<form class="d-inline" method="post"
|
||
action="{{ url_for('odkryj_wydatek', wydatek_id=a.id) }}">
|
||
<button class="btn btn-sm btn-outline-secondary">Odkryj</button>
|
||
</form>
|
||
{% else %}
|
||
<form class="d-inline" method="post"
|
||
action="{{ url_for('ukryj_wydatek', wydatek_id=a.id) }}">
|
||
<button class="btn btn-sm btn-outline-secondary">Ukryj</button>
|
||
</form>
|
||
{% endif %}
|
||
|
||
{% endif %}
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
{% else %}
|
||
<tr>
|
||
<td colspan="5" class="text-center text-muted py-4">Brak transakcji.</td>
|
||
</tr>
|
||
{% endfor %}
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="small text-muted">
|
||
Aktualny stan: <strong>{{ '%.2f'|format(zbiorka.stan or 0) }} PLN</strong>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
{# === MODAL: Edycja wpłaty === #}
|
||
<div class="modal fade" id="modalWplata" tabindex="-1" aria-hidden="true">
|
||
<div class="modal-dialog modal-dialog-centered">
|
||
<form class="modal-content" method="post" id="formWplata">
|
||
<div class="modal-header">
|
||
<h5 class="modal-title">Edytuj wpłatę</h5>
|
||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Zamknij"></button>
|
||
</div>
|
||
<div class="modal-body">
|
||
<div class="mb-3">
|
||
<label class="form-label">Kwota (PLN)</label>
|
||
<input class="form-control text-end" name="kwota" step="0.01" min="0.01" id="wplataKwota"
|
||
inputmode="decimal" required>
|
||
</div>
|
||
<div class="mb-3">
|
||
<label class="form-label">Opis</label>
|
||
<textarea class="form-control" name="opis" id="wplataOpis" rows="3"></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="modal-footer">
|
||
<button class="btn btn-success">Zapisz</button>
|
||
<button type="button" class="btn btn-outline-light" data-bs-dismiss="modal">Anuluj</button>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
|
||
{# === MODAL: Edycja wydatku === #}
|
||
<div class="modal fade" id="modalWydatek" tabindex="-1" aria-hidden="true">
|
||
<div class="modal-dialog modal-dialog-centered">
|
||
<form class="modal-content" method="post" id="formWydatek">
|
||
<div class="modal-header">
|
||
<h5 class="modal-title">Edytuj wydatek</h5>
|
||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Zamknij"></button>
|
||
</div>
|
||
<div class="modal-body">
|
||
<div class="mb-3">
|
||
<label class="form-label">Kwota (PLN)</label>
|
||
<input class="form-control text-end" name="kwota" step="0.01" min="0.01" id="wydatekKwota"
|
||
inputmode="decimal" required>
|
||
</div>
|
||
<div class="mb-3">
|
||
<label class="form-label">Opis</label>
|
||
<textarea class="form-control" name="opis" id="wydatekOpis" rows="3"></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="modal-footer">
|
||
<button class="btn btn-success">Zapisz</button>
|
||
<button type="button" class="btn btn-outline-light" data-bs-dismiss="modal">Anuluj</button>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
{% endblock %}
|
||
|
||
{% block extra_scripts %}
|
||
{{ super() }}
|
||
<script src="{{ url_for('static', filename='js/transakcje.js') }}?v={{ APP_VERSION }}"></script>
|
||
{% endblock %} |