{% extends "base.html" %} {% from "_macros.html" import money %} {% block title %}Bank{% endblock %} {% block heading %}Bank · Camt-Import{% endblock %} {% block topbar_actions %}
Alle Vorschläge Offen Gebucht Ignoriert
{% endblock %} {% block content %} {% if request.query_params.get('error') %}
✗ {{ request.query_params.get('error') }}
{% endif %} {# ============== IMPORT-FORM ============== #}

camt.053-XML importieren

Bank-Statement-Datei vom Online-Banking herunterladen und hier hochladen

Nach dem Import sucht der Auto-Matcher in jedem Verwendungszweck nach Rechnungsnummern im Format RE-JJJJ-NNNN und schlägt Treffer als „Vorschläge" vor — Bestätigung mit einem Klick.

{# ============== STATEMENTS-LISTE ============== #} {% if statements %}

Importierte Statements

{% for s in statements %} {% endfor %}
Datei IBAN Zeitraum Eröffnung Schluss Tx Offen Vorschläge Importiert
{{ s.file_name or '—' }} {{ s.iban or '—' }} {{ s.from_date or '—' }} → {{ s.to_date or '—' }} {{ money(s.opening_bal or 0) }} {{ money(s.closing_bal or 0) }} {{ s.tx_count }} {% if s.unmatched %}{{ s.unmatched }}{% else %}—{% endif %} {% if s.suggested %}{{ s.suggested }}{% else %}—{% endif %} {{ s.imported_at[:16] }}
{% endif %} {# ============== TRANSAKTIONEN ============== #}

Transaktionen {% if status_filter %}· {{ status_filter }}{% endif %}

{% if transactions %} {% for t in transactions %} {% endfor %}
Datum Gegenpartei Verwendungszweck Betrag Vorschlag / Match
{{ t.booking_date or '—' }}
{{ t.counterparty_name or '—' }}
{% if t.counterparty_iban %}
{{ t.counterparty_iban }}
{% endif %}
{{ t.remittance_info or '—' }} {{ '+ ' if t.credit_debit == 'CRDT' else '- ' }}{{ '%.2f'|format(t.amount) }} {{ t.currency }} {% if t.status == 'matched' %} ✓ {{ t.matched_invoice_no }} {% if t.matched_customer %}
{{ t.matched_customer }}
{% endif %} {% elif t.status == 'suggested' %}
{{ t.matched_invoice_no }} {% if t.note %}
⚠ {{ t.note }}
{% endif %}
{% elif t.status == 'ignored' %} Ignoriert {% else %} — offen — {% endif %}
{% if t.status == 'suggested' %} {% elif t.status == 'unmatched' and t.credit_debit == 'CRDT' %} {% endif %}
{% else %}
🏦

Keine Transaktionen{% if status_filter %} mit Status „{{ status_filter }}"{% endif %}.

{% endif %}
{# ============== MANUAL-MATCH-DIALOG ============== #} {% endblock %}