feat: Kontoauszug vom Telefon per Teilen-Menue einlesen

Revolut und Raiffeisen lassen die CSV auch am Handy exportieren; nur N26
verlangt die Web-Version. Ein zweiter Kurzbefehl nimmt die Datei aus dem
Teilen-Menue entgegen und schickt sie mit dem gewaehlten Konto an
/quick/statement.

Am Telefon laesst sich keine Spaltenzuordnung vornehmen. Der Endpunkt
verwendet deshalb die Einstellung, mit der dieses Konto zuletzt erfolgreich
eingelesen wurde – und sagt klar Bescheid, wenn es noch keine gibt, statt
mit falschen Spalten zu raten.

Gebucht wird sofort: Ein Auszug hat hunderte Zeilen, die einzeln abzunicken
waere keine Erleichterung. Sicher ist das durch die Duplikaterkennung und
weil der Stapel im Import-Verlauf mit einem Klick zurueckzunehmen ist.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Guido
2026-08-22 21:06:20 +02:00
co-authored by Claude Opus 5
parent e93f565629
commit 34be575eb3
5 changed files with 180 additions and 3 deletions
+21
View File
@@ -154,6 +154,27 @@ export default function Geraetemarken() {
<p className="muted small">{t("tokens.guideHomeScreen")}</p>
<p className="muted small">{t("tokens.guideAutomation")}</p>
</details>
<details style={{ marginTop: "var(--sp-3)" }}>
<summary>{t("tokens.fileGuideTitle")}</summary>
<p className="muted small">{t("tokens.fileGuideIntro")}</p>
<ol className="muted small" style={{ paddingLeft: "1.2em" }}>
<li>{t("tokens.fileStep1")}</li>
<li>{t("tokens.fileStep2")}</li>
<li>
{t("tokens.fileStep3")}
<div className="input-with-button" style={{ marginTop: 4 }}>
<input readOnly className="selectable" value={`${basis}/api/quick/statement`} />
<button type="button" className="btn sm"
onClick={() => kopieren(`${basis}/api/quick/statement`)}>
<Icon name="copy" size={14} />
</button>
</div>
</li>
<li>{t("tokens.fileStep4")}</li>
</ol>
<p className="muted small">{t("tokens.fileGuideNote")}</p>
</details>
<button className="btn sm ghost" style={{ marginTop: "var(--sp-2)" }}
onClick={() => setFrisch(null)}>
{t("tokens.hide")}