feat: CSV-Import ueber bestehende Pipeline mit dreiwertiger Saldo-Pruefung
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -18,8 +18,10 @@
|
||||
</table>
|
||||
<p>
|
||||
Saldo-Status:
|
||||
{% if balance_ok %}
|
||||
<span class="badge badge-ok">Saldo stimmt</span>
|
||||
{% if balance_ok is none %}
|
||||
<span class="badge">Saldo-Prüfung: nicht verfügbar (Format ohne Saldodaten)</span>
|
||||
{% elif balance_ok %}
|
||||
<span class="badge badge-ok">Saldo plausibel</span>
|
||||
{% else %}
|
||||
<span class="badge badge-error">Saldo-Differenz – bitte prüfen</span>
|
||||
{% endif %}
|
||||
|
||||
@@ -16,15 +16,24 @@
|
||||
Über die Übersicht umbenennbar (z. B. "DKB Giro").
|
||||
</li>
|
||||
<li>
|
||||
<strong>Kontoauszug-Import:</strong> PDF in die Drop-Zone auf der
|
||||
Import-Seite ziehen (oder in die Inbox
|
||||
<strong>Kontoauszug-Import:</strong> primärer Weg ist der
|
||||
Kontoumsatz-CSV-Export der Bank (DKB, VR-Bank, HypoVereinsbank) – in die
|
||||
Drop-Zone auf der Import-Seite ziehen (oder in die Inbox
|
||||
<code>~/.local/share/finance_pod/data/inbox/</code> legen und "Inbox
|
||||
scannen"). Jeder Import wird geprüft (Anfangssaldo + Buchungen = Endsaldo)
|
||||
und landet als Entwurf: erst nach Kontrolle der Vorschau "Übernehmen"
|
||||
klicken. Duplikate werden erkannt und nicht doppelt übernommen. Bestätigte
|
||||
Importe lassen sich als Ganzes zurückrollen (Auszug + alle seine
|
||||
Buchungen), z. B. um einen Auszug mit einem verbesserten Parser neu zu
|
||||
importieren; einzelne Buchungen bleiben unlöschbar.
|
||||
scannen"). PDF-Kontoauszüge funktionieren weiterhin als Fallback, falls
|
||||
kein CSV-Export vorliegt. Jeder Import landet als Entwurf: erst nach
|
||||
Kontrolle der Vorschau "Übernehmen" klicken. Der Saldo-Status in der
|
||||
Vorschau ist dreiwertig – "Saldo plausibel" (Anfangssaldo + Buchungen =
|
||||
Endsaldo bzw. lückenlose Saldo-Kette), eine rote Saldo-Differenz, oder
|
||||
"Saldo-Prüfung nicht verfügbar", wenn das Format (z. B. HVB-CSV) keine
|
||||
Saldodaten liefert – dort lohnt ein Blick in die Zeilenzahl und
|
||||
Stichproben vor dem Übernehmen. CSV-Importe mit Datei-Kontostand (DKB)
|
||||
oder lückenloser Saldo-Kette (VR) aktualisieren beim Import automatisch
|
||||
den Konto-Saldo-Anker, sofern er dadurch nicht älter würde als ein bereits
|
||||
vorhandener. Duplikate werden erkannt und nicht doppelt übernommen.
|
||||
Bestätigte Importe lassen sich als Ganzes zurückrollen (Auszug + alle
|
||||
seine Buchungen), z. B. um einen Auszug mit einem verbesserten Parser neu
|
||||
zu importieren; einzelne Buchungen bleiben unlöschbar.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Kategorien & Regeln:</strong> Buchungen lassen sich kategorisieren;
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
<h1>Import</h1>
|
||||
|
||||
<div id="dropzone">
|
||||
Kontoauszug-PDF hier ablegen oder klicken zum Hochladen
|
||||
<input type="file" id="file-input" accept="application/pdf" style="display:none">
|
||||
Kontoumsatz-CSV oder Kontoauszug-PDF hier ablegen oder klicken zum Hochladen
|
||||
<input type="file" id="file-input" accept=".csv,.pdf,application/pdf,text/csv" style="display:none">
|
||||
</div>
|
||||
<button type="button" hx-post="/api/imports/scan-inbox" hx-swap="none"
|
||||
hx-on::after-request="if(event.detail.successful){htmx.trigger(document.getElementById('imports'), 'refresh')}">
|
||||
Inbox scannen
|
||||
</button>
|
||||
<p class="muted">Durchsucht <code>~/.local/share/finance_pod/data/inbox/</code> nach neuen PDF-Kontoauszügen.</p>
|
||||
<p class="muted">Durchsucht <code>~/.local/share/finance_pod/data/inbox/</code> nach neuen CSV- oder PDF-Kontoauszügen.</p>
|
||||
<p id="upload-message"></p>
|
||||
|
||||
<h2>Importe</h2>
|
||||
|
||||
Reference in New Issue
Block a user