Unterstützung #302
MT940 Import, doppelte Datensätze besser abfangen
Status:
Gelöst
Priorität:
Normal
Zugewiesen an:
-
Zielversion:
-
Beginn:
14.09.2017
Abgabedatum:
% erledigt:
0%
Geschätzter Aufwand:
Beschreibung
Ich hab immer wieder mal doppelte Einträge in der Tabelle bank_transactions.
Hintergrund ist die Prüfung auf Verwendungszweck (purpose), die prüft 1:1 auf den exakten Inhalt des Verwendungszwecks.
Leider sind die umgebenden Parameter nicht so eindeutig und es kommt immer wieder mal vor, dass das HBCI-Programm und/oder aqbanking mal ein Leerzeichen mehr oder weniger beim Konvertieren spendiert:
# purpose may slightly differ, depending on not yet known parameter (aqbanking?, version upgrade hbci program?) # mainly whitespace are added or deleted, compare: # BIC:COBADEFFXXXIBAN:DE66200400000131029100Datum: 08.05.17 Zeit: 11:20UFT4004 # BIC:COBADEFFXXXIBAN:DE66200400000131029100Datum: 08.05.17 Zeit: 11:20UFT 4004
Ich hab jetzt die Prüfung auf den Verwendungszweck beim Import separat gesetzt und ignoriere Whitespaces komplett:
SL/Controller/CsvImport/BankTransaction.pm
foreach my $bt (@{ SL::DB::Manager::BankTransaction->get_all(query =>[ remote_account_number => $object->remote_account_number, transdate => $object->transdate, amount => $object->amount] ) }) { # we have a match on date, account_number AND amount. Probably already imported my $import_purpose = $object->purpose; my $bt_purpose = $bt->purpose; $import_purpose =~ s/ //g; $bt_purpose =~ s/ //g; if ($import_purpose eq $bt_purpose) { push(@{$entry->{errors}}, $::locale->text('Skipping due to existing bank transaction in database')); } }
Hat jmd. vielleicht eine andere Idee?
Historie
Von Jan Büren vor mehr als 3 Jahren aktualisiert
- Status wurde von Neu zu Gelöst geändert
Ist mit dem kivi eigenen Parser des MT940-Formats hinfällig.