feat: Buchungen lassen sich von Hand einem Abo zuordnen – und das merkt sich
Die Erkennung lief seit Stufe 3, aber nur automatisch: Was sie nicht sicher traf, blieb liegen, und sehen konnte man davon nichts. Die Endpunkte gab es, die Oberflaeche kannte keinen davon. Jetzt steht in der Buchungsliste eine Spalte "Abo" – dieselbe Form wie die Kategorie daneben: Die Auswahl zeigt, zu welchem Vertrag die Zahlung gehoert, aendert es, und leer loest die Zuordnung. Uebertraege bleiben aussen vor; sie verschieben nur Geld. Und sie lernt. Musste man von Hand ran, hat der Erkennungstext nicht gepasst – also wird der Empfaenger dieser Buchung der neue. Beim naechsten Mal faellt dieselbe Zahlung von selbst zu, statt dass man jeden Monat dasselbe klickt. Der Vertragsname bleibt als zweite Chance: _passt_text prueft beide, nicht entweder/oder, sonst verlaere man beim Lernen, was vorher schon getroffen hat. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
493a98ab6b
commit
0ea2ab1322
@@ -77,13 +77,18 @@ def _passt_text(vertrag: Subscription, text: str) -> bool:
|
||||
am Stück vor. Kurze Wörter bleiben draussen; „SA" oder „AG" trifft sonst
|
||||
die halbe Kontoauszug.
|
||||
"""
|
||||
muster = normalize_text(vertrag.payee_pattern or vertrag.name)
|
||||
if not muster:
|
||||
return False
|
||||
if muster in text:
|
||||
return True
|
||||
woerter = [w for w in muster.split() if len(w) >= 4]
|
||||
return bool(woerter) and any(w in text for w in woerter)
|
||||
# Beides pruefen, nicht entweder/oder: Der gelernte Text (payee_pattern)
|
||||
# kommt beim Zuordnen von Hand dazu und soll den Namen nicht verdraengen.
|
||||
for roh in (vertrag.payee_pattern, vertrag.name):
|
||||
muster = normalize_text(roh)
|
||||
if not muster:
|
||||
continue
|
||||
if muster in text:
|
||||
return True
|
||||
woerter = [w for w in muster.split() if len(w) >= 4]
|
||||
if woerter and any(w in text for w in woerter):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def _erwartet_in(db: Session, vertrag: Subscription, konto: Account,
|
||||
|
||||
Reference in New Issue
Block a user