Ersetzt die Platzhalter-Routen aus Task 12 durch echte GUI-Seiten: /import mit Drop-Zone (Fetch-Upload), gepollter Importliste (Status-Badges, aufklappbarer Vorschau samt Saldo-/Duplikat-Anzeige, Uebernehmen/Verwerfen) und /planung mit den vier Abschnitten Fixposten (inkl. Vorschlaege), Einmalposten, Kredite (Tilgungsplan-Aufklapper) und Szenarien (Kredit-Zuordnung, Modifikatoren, Durchrechnen mit Ergebnisanzeige). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
30 lines
1.1 KiB
HTML
30 lines
1.1 KiB
HTML
<table>
|
||
<thead>
|
||
<tr><th>Datum</th><th>Verwendungszweck</th><th>Empfänger/Zahler</th><th>Betrag</th><th></th></tr>
|
||
</thead>
|
||
<tbody>
|
||
{% for tx in transactions %}
|
||
<tr>
|
||
<td>{{ tx.booking_date.strftime('%d.%m.%Y') }}</td>
|
||
<td>{{ tx.purpose }}</td>
|
||
<td>{{ tx.counterparty }}</td>
|
||
<td class="{{ 'neg' if tx.amount < 0 else '' }}">{{ '%.2f'|format(tx.amount) }} €</td>
|
||
<td>{% if tx.is_duplicate %}<span class="badge badge-warning">Duplikat</span>{% endif %}</td>
|
||
</tr>
|
||
{% else %}
|
||
<tr><td colspan="5">Keine Buchungen in diesem Import.</td></tr>
|
||
{% endfor %}
|
||
</tbody>
|
||
</table>
|
||
<p>
|
||
Saldo-Status:
|
||
{% if balance_ok %}
|
||
<span class="badge badge-ok">Saldo stimmt</span>
|
||
{% else %}
|
||
<span class="badge badge-error">Saldo-Differenz – bitte prüfen</span>
|
||
{% endif %}
|
||
· Eröffnungssaldo: {{ '%.2f'|format(statement.opening_balance) if statement.opening_balance is not none else '–' }} €
|
||
· Endsaldo: {{ '%.2f'|format(statement.closing_balance) if statement.closing_balance is not none else '–' }} €
|
||
· Duplikate: {{ duplicates }}
|
||
</p>
|