Finanzmanager/migrations
fds2610-bot 0b4a216954 Sammel-Commit: PayPal-Bankverbindung und Bankleitzahlen-Verzeichnis
Zwei Features an derselben Stelle, die im Arbeitsverzeichnis
nebeneinander lagen und sich dieselben Dateien teilen (Routen,
BankingController, Bankzugang, Zugangsformular, Dokumentation) –
getrennte Commits ließen sich daraus nur mit einem kaputten
Zwischenstand schneiden.

PayPal als zweite Art von Bankverbindung
----------------------------------------
„Bankverbindung anlegen“ führt zur Wahl der Art: HBCI/FinTS oder
PayPal (bank_zugaenge.typ, Migration 014). Die Abfrage läuft über die
Classic-NVP-API (Services\PaypalNvp, TransactionSearch und GetBalance).
Kein Dreischritt, da PayPal genau ein Guthabenkonto führt –
Zugangsdaten und Kontenzuordnung stehen in einem Formular. Konten,
Umsätze, Protokoll, Regeln und Abgleich bleiben dieselben.

Bankleitzahlen-Verzeichnis
--------------------------
Verwaltung → Bankleitzahlen (/verwaltung/bankinstitute, Migration 015)
nimmt die CSV-Institutsliste der Deutschen Kreditwirtschaft auf und
beantwortet damit die eine Angabe, die beim Anlegen einer
FinTS-Verbindung regelmäßig fehlt: den PIN/TAN-Zugangspunkt.

Reine Nachschlagedaten ohne benutzer_id; ein Import ersetzt den
gesamten Bestand, statt ihn zu ergänzen. „Nur prüfen“ und „Übernehmen“
sind zwei Knöpfe an derselben Datei – abgelegt wird sie nicht, ihr
Inhalt steht ja in der Tabelle.

Services\FintsInstituteImport nimmt der Datei ihre Eigenheiten ab:
ISO-8859-1 statt UTF-8, ein Institutsname über zwei Zeilen in
Anführungszeichen, dieselbe Bankleitzahl vielfach (eine Zeile je
Filiale), Hunderte leerer Zeilen am Ende, Text statt Adresse, wo es
keinen PIN/TAN-Zugang gibt. Spalten werden über ihre Überschrift
angesprochen; fehlen BLZ und Institut, bricht der Import ab.

Gesucht wird über Bankleitzahl, BIC, Name und Ort in einem Zug: „1822“
steht bei der 1822direkt im Namen und bei der Frankfurter Sparkasse im
BIC, in keiner der beiden Bankleitzahlen.

Aus der Trefferliste führt „Verbindung anlegen“ ins gefüllte
FinTS-Formular. Die FinTS-Adresse ist damit kein Pflichtfeld mehr –
bleibt sie leer, wird sie zur Bankleitzahl nachgeschlagen. Findet auch
das nichts, weist Bankzugang den Zugang ab, statt ihn ohne Gegenstelle
zu speichern.

Tests: 31_PaypalZugangTest, 32_BankinstituteTest,
e2e/specs/banking.spec.js, e2e/specs/bankinstitute.spec.js.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 08:48:14 +02:00
..
001_grundgeruest.sql Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
002_stammdaten.sql Phase 1: Stammdaten und QIF-Stammdatenimport 2026-08-09 21:33:40 +02:00
003_buchungen.sql Phase 2: Buchungen, Kontoblatt und QIF-Buchungsimport 2026-08-10 16:40:31 +02:00
004_budget_monatsabschluss.sql Phase 3: Budgetplaner und Monatsabschluss 2026-08-11 07:31:25 +02:00
005_berichte.sql Phase 4: Auswertungen mit Berichtsmodul 2026-08-11 17:38:30 +02:00
006_banking.sql Phasen 4 bis 7: Cockpit, Online-Banking, Wertpapiere, Nebenmodule 2026-08-12 06:59:24 +02:00
007_wertpapiere.sql Phasen 4 bis 7: Cockpit, Online-Banking, Wertpapiere, Nebenmodule 2026-08-12 06:59:24 +02:00
008_nebenmodule.sql Phasen 4 bis 7: Cockpit, Online-Banking, Wertpapiere, Nebenmodule 2026-08-12 06:59:24 +02:00
009_tan_verfahren.sql Online-Banking: TAN-Verfahren bei der Bank abfragen und wählen 2026-08-12 08:07:02 +02:00
010_kontenzuordnung.sql Online-Banking: Kontenzuordnung, Sammellöschen und drei Umsatz-Fehler 2026-08-12 11:54:23 +02:00
011_abruf_stichtag.sql Stichtag für den Umsatzabruf 2026-08-13 10:41:05 +02:00
012_wertpapierkosten.sql Wertpapiergeschäft aus einer Kontobuchung 2026-08-13 13:27:52 +02:00
013_housekeeping.sql Import und Export in QIF und CSV, Housekeeping für Importdateien 2026-08-17 23:01:30 +02:00
014_paypal_zugang.sql Sammel-Commit: PayPal-Bankverbindung und Bankleitzahlen-Verzeichnis 2026-08-18 08:48:14 +02:00
015_bankinstitute.sql Sammel-Commit: PayPal-Bankverbindung und Bankleitzahlen-Verzeichnis 2026-08-18 08:48:14 +02:00