GithubHelp home page GithubHelp logo

$bookingDate parsing in MT940 about phpfints HOT 6 CLOSED

nemiah avatar nemiah commented on August 22, 2024
$bookingDate parsing in MT940

from phpfints.

Comments (6)

na-oma avatar na-oma commented on August 22, 2024

// :61:1605110509D198,02NMSCNONREF

Da irgendein Schlaufuchs im Standard in einer 500 Zeichen Nachricht 2 Zeichen sparen wollte, muss an dieser Stelle von einer einzigen Jahreszahl auf das Jahr von zwei verschiedenen Daten geschlossen werden.
Wenn ich den Code richtig interpretiere, nimmt er an, dass laut MT940-Standard ein Valuta-Date niemals vor einem Booking-Date liegen kann. M.a.W. Valuta-Datum kommt immer nach/ist gleich Booking-Date.
Wenn dann der Monat des Valuta-Dates tatsächlich vor dem Monat des Booking-Dates liegt, geht der Code davon aus, dass das Booking-Date im Jahr davor liegt, während das Valuta-Date im aktuellen Jahr liegt, deshalb wird ein Jahr abgezogen.

61:1906290701
29.06.19 und 01.07.18 = falsch

Ist laut Standard überhaupt erlaubt, das als 29.06.19 (valuta) und 01.07.19 (booking) zu interpretieren?

61:1901011228
01.01.19 und 28.12.17 = falsch

Da scheint definitiv was faul zu sein, Standard hin oder her. Zwei Jahre sollten das nicht sein...er zieht nochmal ein Jahr zusätzlich ab...

Ich kenne leider den Standard nicht auswendig, also weiss ich nicht, ob das Valuta-Datum auch vor dem Booking-Datum liegen darf.

from phpfints.

djm03 avatar djm03 commented on August 22, 2024

Es gibt mittlerweile die Echtzeit-Gutschrift, zumindest sehe ich dort immer wieder den Fall. Aktuell zb:

61:1909280930
61:1909290930
61:1908310902

from phpfints.

na-oma avatar na-oma commented on August 22, 2024

Hmm, dann scheint das wohl möglich zu sein, dass Valuta-Date vor Booking-Date.

Dann ist die einzige Frage, ob beide Daten um ca. 1 Jahr auseinanderliegen können? Dann könnte man nicht mehr unterscheiden ob

1909280930

als

Valuta: 28.09.19 und Booking: 30.09.19

oder

Valuta: 28.09.19 und Booking: 30.09.18 (also ein Jahr eher)

geparst werden soll.

Man könnte natürlich einfach definieren, dass Booking und Valuta maximal ein halbes Jahr auseinanderliegen, und dann immer das Booking-Date genommen wird, was am nächsten am Valuta-Date liegt.

Vielleicht reicht ja dein Fix die Zeile zu löschen und deckt alle Fälle ab? Ich steh grad auf dem Schlauch^^
Mach doch mal n Pullrequest.

from phpfints.

djm03 avatar djm03 commented on August 22, 2024

Ich wüßte jetzt nicht warum Booking und Valuta länger als ein paar Tage auseinander liegen sollten. Ob das entfernen der einen Zeile alles abdeckt, weiß ich jedoch auch nicht. Zumindest würde es die mit "falsch" angegebenen Ergebnisse korrigieren.

from phpfints.

nemiah avatar nemiah commented on August 22, 2024

Schick einfach mal einen PR, mir scheint es ein Fortschritt zu sein 😉

from phpfints.

Magellanth avatar Magellanth commented on August 22, 2024

Ist durch #202 behoben, kann auch zu.

from phpfints.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.