Die comdirect liefert bei Zahlungen mit der Visa-Debitkarte (GVC 700) kein Namensfeld; der Händler steht nur zwischen „KARTENVERFÜGUNG“ und „KARTE NR.“. Der Abruf leitet ihn ab, ohne den Fingerabdruck zu ändern; ein erneuter Abruf und Migration 027 tragen ihn bei vorhandenen Umsätzen und Buchungen nach. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
23 lines
1 KiB
SQL
23 lines
1 KiB
SQL
-- Empfänger bei Kartenverfügungen nachtragen (#119).
|
||
--
|
||
-- Die comdirect liefert bei Kartenverfügungen der Visa-Debitkarte kein
|
||
-- Namensfeld; der Händler steht nur im Verwendungszweck zwischen
|
||
-- „KARTENVERFÜGUNG“ und „KARTE NR.“. Neue Abrufe leiten ihn ab
|
||
-- (UmsatzEmpfaenger), hier werden die bereits abgerufenen Umsätze und die
|
||
-- daraus übernommenen Buchungen nachgezogen – nur, wo der Empfänger leer ist.
|
||
--
|
||
-- Idempotent: Nach dem ersten Lauf ist der Empfänger nicht mehr leer.
|
||
|
||
UPDATE bank_umsaetze
|
||
SET empfaenger = LEFT(TRIM(REGEXP_REPLACE(
|
||
REGEXP_REPLACE(verwendungszweck, '(?s)^\\s*KARTENVERF(Ü|UE)GUNG\\s*(.+?)\\s*KARTE NR\\..*$', '\\2'),
|
||
'\\s+', ' ')), 255)
|
||
WHERE empfaenger = ''
|
||
AND verwendungszweck REGEXP '^\\s*KARTENVERF(Ü|UE)GUNG\\s*(.+?)\\s*KARTE NR\\.';
|
||
|
||
UPDATE buchungen b
|
||
JOIN bank_umsaetze u ON u.buchung_id = b.id AND u.benutzer_id = b.benutzer_id
|
||
SET b.empfaenger = u.empfaenger
|
||
WHERE b.empfaenger = ''
|
||
AND u.empfaenger <> ''
|
||
AND u.verwendungszweck REGEXP '^\\s*KARTENVERF(Ü|UE)GUNG';
|