Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/buchungskorrektur #122

Merged
merged 12 commits into from
Jan 27, 2024

Conversation

dippeal
Copy link
Member

@dippeal dippeal commented Jan 24, 2024

Original von https://github.com/schlevoigt/jverein/commits/develop/
Ich habe per cherry-pick nur die entsprechenden commits des features zusammengeführt.

  • Verwendungstexte von Buchungen können manuell korrigiert werden
  • Verwendungstexte von Buchungen können automatisch korrigiert werden bei Übernahme aus Hibiscus (Checkbox in Einstellungen > Buchführung > "Automatische Korrektur der Verwendungszecke aus Hibsicus Buchungen")
  • Aus den Texten werden Sonderzeichen (pipe, Plus) und Bank Referenz ID's (EREF, MREF, SVWZ, CRED) entfernt (s. Screenshot)

feature-buchungskorrektur

image

@dippeal dippeal added the enhancement New feature or request label Jan 24, 2024
@MSchmalzl
Copy link

Eine Buchungsübernahme aus Hibiscus ist mit den Änderungen scheinbar nicht mehr möglich. Ausgangssituation:

-Ich habe in Hibiscus ein Konto eingerichtet und mir die Umsätze geholt.
-In OpenJverein unter Konten habe ich das vorhin eingerichtete Konto importiert. Es ist somit in OpenJVerein ein Hibiscus-Konto vorhanden.
-In OpenJVerein unter Hibiscus-Buchung habe ich anschließend auf den Button Übernahme geklickt.

Ergebnis sind diese 3 Fehler:

jameica-20240125.log

@dippeal
Copy link
Member Author

dippeal commented Jan 25, 2024

Danke für den Test und Log - schaue ich mir an.

dippeal added 2 commits January 25, 2024 22:33
java.lang.NullPointerException: Cannot invoke "String.replace(java.lang.CharSequence, java.lang.CharSequence)" because "value" is null
@dippeal
Copy link
Member Author

dippeal commented Jan 25, 2024

Ich habe noch mal ein Hibiscus Konto auf einer leeren DB angelegt und die Umsätze importiert. Keine Probleme bei mir.
Nichts desto trotz habe ich die nullpointer exception vom value (Verwendungszweck) abgefangen.
Warum aber bei dir das Datum leer ist kann ich mir nicht erklären. Die Erweiterung macht ja auch nichts mit dem Datum.
Sind die Umsätze im Hibiscus denn korrekt?
Welche Jameica/Hibiscus Version nutzt du? Ich bin im Jameica/Hibiscus 2.10 Branch.

@MSchmalzl
Copy link

Danke für die Korrekturen. Jetzt hat die Übernahme auch bei mir funktioniert.

In den Einstellungen habe ich unter Buchführung die Option "Automatische Buchungsübernahme aus Hibiscus" und "Automatische Korrektur der Verwendungszwecke aus Hibiscus Buchungen" aktiviert. Bei Verwendungszwecke hat sich ein Rechtschreibfehler eingeschlichen.

Wann sollte eigentlich bei Buchungskorrektur etwas auftauchen? Die Liste ist bei mir immer leer. Egal welche der obigen Optionen ich aktiviere oder deaktiviere.

Wenn ich beide Optionen aktiviere, so wäre meine Erwartungshaltung gewesen, dass die Buchungstexte korrigiert werden. Dies ist aber nicht der Fall.

Ich bin bei Hibiscus/Jameica 2.11-nightly.

@dippeal
Copy link
Member Author

dippeal commented Jan 26, 2024

Es war zusätzlich ein Rechtschreibfehler im Wort Hibiscus enthalten. Mit 6698eb1 behoben.

Magst du mal auf die Jameica/Hibiscus 2.10 wechseln.

Bei aktivierter "Automatische Korrektur der Verwendungszwecke ..." werden die Texte

  1. Automatisch korrigiert wenn die automatischen Übernahme aus Hibiscus aktiviert ist oder
  2. Beim Klick auf den Button "Übernehmen" im Menüpunkt "Hibiscus-Buchungen"

Was im Einzelnen korrigiert wird steht im https://github.com/openjverein/jverein/pull/122/files#diff-106915c4c274b485297026dd8289ed6a4bd9bf910c50156a4602501d305d122cR7

@MSchmalzl
Copy link

Ich habe jetzt mal auf 2.10 gewechselt. Auch hier ist das Verhalten gleich.

Wenn ich das so richtig sehe, dann werden bei mir einfach keine Buchungen gefunden, die korrigiert werden können.

Somit scheint das auch der Grund zu sein warum bei mir die Liste "Buchungskorrektur" leer bleibt.

Jetzt schalte ich in den Optionen die automatische Buchungskorrektur aus. Die Buchungsliste ist dann aber trotzdem leer. Soll das so sein? Es widerspricht halt irgendwie Punkt 1 "Verwendungstexte von Buchungen können manuell korrigiert werden". Oder ist hiermit gemeint, dass in den Buchungen der Verwendungszweck korrigiert werden kann oder dass die automatisch korrigierten Verwendungszwecke auch noch händisch in der Buchungskorrektur angepasst werden können?

@dippeal
Copy link
Member Author

dippeal commented Jan 26, 2024

Der Filter ist recht simpel. Wenn im Verwendungszweck SVWZ (SEPA-Verwendungszweck) enthalten ist, dann kommt die Buchung für eine Korrektur in Frage. Du hast wohl keine Buchungen mit dem Kürzel und deshalb bleibt auch die Liste leer bzw. die automatische Korrektur startet nicht. Zu sehen in BuchungsKorrekturQuery > get()

Das kannst du leicht prüfen indem du bei einer OpenJVerein Buchung im Verwendungstext "SVWZ" irgendwo einträgst. Dann erscheint der Eintrag in der Buchungskorrektur (s. Screenshot)

image

@MSchmalzl
Copy link

Genau. Ich habe keine Buchung mit SVWZ.

MSchmalzl
MSchmalzl previously approved these changes Jan 26, 2024
willuhn
willuhn previously approved these changes Jan 26, 2024
@JohannMaierhofer
Copy link

Danke für die Übernahme meines Requests #104.
Jetzt musst du leider die Datenbankmigration auf 427 umstellen.

@dippeal dippeal dismissed stale reviews from willuhn and MSchmalzl via ea6bb19 January 27, 2024 10:30
@dippeal dippeal requested a review from willuhn January 27, 2024 10:31
@MSchmalzl MSchmalzl merged commit b148140 into openjverein:master Jan 27, 2024
@dippeal dippeal deleted the feature/buchungskorrektur branch January 27, 2024 12:08
@JohannMaierhofer
Copy link

JohannMaierhofer commented Jul 5, 2024

@dippeal ich hätte einige Anregungen zu diesem Feature weil ich es momentan nicht richtig nutzen kann.

Hier zwei Beispiele von Buchungen verschiedener Banken:
Aus Bank 1:
SEPA-ÜBERWEISUNG IBAN+ DE4683065408 0005200164 BIC+ GENODEF1SLR SVWZ+ U mbuchung Aktivitas KREF+ GENODEF1S0 4240618071201100000000500
SEPA-BASISLASTSCHRIFT SVWZ+ KD-Nr. K1948879/RG-Nr. 100143888427 EREF+ 005813342298 MREF+ 0020001950583 CR ED+ DE74ZZZ00000045294
Aus Bank 2:
2092.04001.01 Hausgeldeinzug 7/2024 EREF: FIO/25238/706873 MREF: 0018495-DE88830654080005277590-34 CRED: DE22ZZZ00000063884 IBAN: DE38120300001055943680 BIC: BYLADEM1001 ABWA: WEG ST.-CAJETAN-STR. 1 - 3
Interessant ist bei dieser Bank, dass die Kürzel nicht mit + enden sondern mit :

Dein Feature entfernt jetzt nur das SVWZ+ aus den ersten beiden Buchungen.
Ich hätte gerne die Buchungen so ersetzt:
Aus Bank 1:
U mbuchung Aktivitas
KD-Nr. K1948879/RG-Nr. 100143888427
Aus Bank 2:
2092.04001.01 Hausgeldeinzug 7/2024

Es sollten also Texte zwischen den Markern EREF, MREF, CRED, IBAN, BIC, ABWA, KREF ganz entfernt werden.
Da das evtl. nicht alle wollen wäre der Vorschlag, in den Einstellung eine Liste dieser Marker anzuzeigen wo man dann konfigurieren kann bei welchen davon nichts passiert, nur der Marker entfernt werden soll oder auch der Text danach bis zum nächsten Marker. Bei denen wo etwas passiert müssen diese auch in das Query aufgenommen werden.
Wegen SEPA-BASISLASTSCHRIFT und SEPA-ÜBERWEISUNG könnte man in den Einstellungen noch in einer Liste Namen eingeben die dann auch gelöscht werden.
Und man muss sowohl + als auch : bei den Markern erlauben.
Statt in den einstellungen könnte man die Konfiguration auch in den "Buchungstexte korrigieren" View oben einbauen.
Hier gibt es eine Liste aller Abkürzungen: https://www.bonify.de/abkuerzungen-im-verwendungszweck

Was meinst du?

@JohannMaierhofer
Copy link

Ich habe mir jetzt einmal misc.java angesehen. Der Code scheint zu erwarten, dass bei jedem neuen Key eine neue Zeile beginnt. Das ist aber nicht der Fall. Damit werden die nicht gewünschten Key Einträge auch nicht herausgelöscht.

@dippeal
Copy link
Member Author

dippeal commented Jul 5, 2024

Das feature ist ja von schlevoigt. Wenn du Verbesserungen hast, mach gerne einen PR.

@JohannMaierhofer
Copy link

Ich werde mal schauen was ich machen kann. Immer per Hand raus löschen ist ja nicht so toll und wenn es dann schon ein Feature gibt das das machen soll, dann sollte es auch so funktionieren.

@willuhn
Copy link
Member

willuhn commented Jul 5, 2024

In Hibiscus gibt es mit https://github.com/willuhn/hibiscus/blob/master/src%2Fde%2Fwilluhn%2Fjameica%2Fhbci%2Fserver%2FVerwendungszweckUtil.java eine Klasse, die das Parsen und Extrahieren dieser SEPA-Tags kann und dabei auch so ziemlich alle Sonderfälle verschiedenster Banken abdeckt. Die kann hier sicher als Basis verwendet werden, um das Parsen zu erleichtern.

@JohannMaierhofer
Copy link

Danke für die Info. Ich werde mir das anschauen.
Wenn es schon etwas brauchbares gibt muss man es ja nicht noch einmal erfinden und du hast sicher mehr Erfahrung in solchen Dingen.

@JohannMaierhofer
Copy link

JohannMaierhofer commented Jul 5, 2024

@willuhn ich hätte noch eine Info für dich. Vielleicht hast du ja eine Idee woran das liegen könnte.
In den Buchungen wie oben steht "U mbuchung" im Verwendungszweck. Auch das Tag steht als "CR ED+".
In beiden ist ein Blank das da nicht sein sollte. Ich habe mir die Buchungen im Kontoauszug angeschaut und da sind die Blanks nicht.
Ich habe mir dann andere Buchungen aus dem Umsätze View von Hibiskus angeschaut und man findet das sehr oft. Sogar in der Spalte Gegenkonto. Siehe Bild unten.
Ich habe mir dann Buchungen von verschiedenen Banken angeschaut und es scheint nur bei der Sparda Bank München aufzutreten. Also wird es wohl an der Bank liegen, oder was meinst du?
Wie ich gelesen habe wechseln die Sparda Banken bis Ende nächsten Jahres auch zur Feducia. Dann hat sich das wohl gelöst und Lastschriften über FinTS geht dann wahrscheinlich auch.
Das hier also nur zu deiner Information.

@willuhn
Copy link
Member

willuhn commented Jul 5, 2024

Im Homebanking-Forum unter https://homebanking-hilfe.de/forum/topic.php?p=171987#real171987 hat User "msa" kürzlich gut beschrieben, warum das passiert.

@JohannMaierhofer
Copy link

Danke für die Info :)

@lenilsas
Copy link

lenilsas commented Jul 5, 2024

Kann man das nicht so wie bei der Buchungsübernahme zu Syntax machen?
String text = StringUtils.trimToNull((String) u.getAttribute(Tag.SVWZ.name()));
Bei Syntax funktioniert das so sehr gut.

@JohannMaierhofer
Copy link

Danke für den Tipp. Das mache ich hier dann auch so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants