Unterstützung #302

MT940 Import, doppelte Datensätze besser abfangen

Von Jan Büren vor 11 Tagen hinzugefügt. Vor 11 Tagen aktualisiert.

Status:NeuBeginn:14.09.2017
Priorität:NormalAbgabedatum:
Zugewiesen an:-% erledigt:

0%

Kategorie:-
Zielversion:-

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

#1 Von Jan Büren vor 11 Tagen aktualisiert

  • Beschreibung aktualisiert (diff)

Auch abrufbar als: Atom PDF