Backend: Beleg-Analyse präziser (Preis, Kaufdatum, Garantieende)
Anhand echter Galaxus-Rechnungen nachgeschärft:
- Preis: MwSt-Satz ("8.10 %") wird als Prozentangabe ignoriert; von den
Betraegen nahe einem Summen-Stichwort gewinnt der GRÖSSTE (Endbetrag inkl.,
steht rechts) statt des naechstgelegenen (bisher der Exkl.-Betrag).
- Kaufdatum: eindeutige Stichworte (Rechnungs-/Bestell-/Kaufdatum) haben Vorrang;
"Fälligkeitsdatum"/Zahlungsziel werden nicht mehr als Kaufdatum gewertet.
- Garantieende: ein ausdruecklich genanntes Enddatum im Garantie-Umfeld
(z.B. "… - 06.10.2027") hat Vorrang vor dem gerechneten. 4 neue Tests.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -110,3 +110,40 @@ def test_shop_schlaegt_neuen_namen_vor():
|
||||
|
||||
def test_shop_ohne_text_leer():
|
||||
assert guess_shop("", [(1, "Digitec")]) == (None, None)
|
||||
|
||||
|
||||
# ---- Realer Galaxus-Beleg (vereinfacht) ----
|
||||
|
||||
GALAXUS = """Kaufbeleg / Rechnung Auftrag 161498087
|
||||
Bestell- / Rechnungsdatum 05.10.2025
|
||||
Fälligkeitsdatum 26.10.2025
|
||||
Währung CHF
|
||||
Delock USB2.0-Ladekabel 10079671 2 8.10% 16.56 17.90 33.12 35.80
|
||||
24 Monate Garantie (06.10.2025 - 06.10.2027)
|
||||
Logitech G Pro X 13489068 1 8.10% 102.68 111.00 102.68 111.00
|
||||
24 Monate Garantie (06.10.2025 - 06.10.2027)
|
||||
Gesamtbetrag 135.80 146.80
|
||||
Gesamtbetrag enthält folgende Mehrwertsteuer:
|
||||
MwSt. 8.10% 11.00
|
||||
Total aller Lieferungen und Leistungen CHF 146.80
|
||||
03.11.2025 Zahlung geleistet -146.80
|
||||
Offener Betrag 0.00
|
||||
"""
|
||||
|
||||
|
||||
def test_galaxus_kaufdatum_nicht_faelligkeit():
|
||||
assert guess_acquired_on(GALAXUS) == date(2025, 10, 5)
|
||||
|
||||
|
||||
def test_galaxus_preis_ist_gesamt_inkl():
|
||||
assert guess_price_cents(GALAXUS) == 14680
|
||||
|
||||
|
||||
def test_galaxus_mwst_satz_ist_kein_preis():
|
||||
kandidaten = guess_price_candidates(GALAXUS)
|
||||
assert 810 not in kandidaten # 8.10 % ist der Steuersatz, kein Preis
|
||||
assert kandidaten[0] == 14680 # bester Tipp: Gesamt inkl.
|
||||
|
||||
|
||||
def test_galaxus_garantieende_aus_zeitraum():
|
||||
assert guess_warranty_until(GALAXUS, acquired_on=date(2025, 10, 5)) == date(2027, 10, 6)
|
||||
|
||||
Reference in New Issue
Block a user