Files
finansePRO/.paul/plans/20260721-2324-import-json-grosze-ceny/SUMMARY.md
T
2026-07-22 00:27:20 +02:00

2.7 KiB
Raw Blame History

plan_id, title, completed, storage, quality_radar
plan_id title completed storage quality_radar
20260721-2324-import-json-grosze-ceny Poprawka parsowania cen z paragonu JSON (grosze → złote) 2026-07-21T23:24:13+02:00 plan-first degraded

Summary: Poprawka parsowania cen z paragonu JSON (grosze → złote)

Objective

Naprawić import paragonu z pliku JSON (eParagon / JPK_KASA_PARAGON), gdzie kwoty były 100× za duże (np. 3,69 odczytane jako 369 zł), bo format trzyma wartości w groszach, a model dostawał surowy JSON bez informacji o jednostce.

What Was Built

Area Result
Prompt parsera W ReceiptParser::prompt() dodano regułę: dla wejścia JSON wszystkie pola kwotowe (price, total, brutto, cena, wart, fiscalTotal, totalWithPacks, vatSale, amount) to liczby całkowite w groszach → podziel przez 100
Zakres reguły Warunkowa, wyłącznie dla JSON; ścieżka obraz/PDF czyta kwoty jak dotąd

Files Modified

  • app/Libraries/ReceiptParser.php — reguła „grosze → złote" w prompcie dla wejścia JSON.

Acceptance Criteria Results

Criterion Status Evidence
AC-1: ceny z JSON w złotych Pass Reguła wdrożona; php -l czysty. UAT runtime realnego importu potwierdzony przez użytkownika (2026-07-21) — kwoty poprawne
AC-2: obraz/PDF bez regresji Pass Reguła warunkowa tylko dla JSON; gałęzie input_image/input_file i normalize() nietknięte

Verification Results

Check Result Notes
php -l app/Libraries/ReceiptParser.php Pass No syntax errors detected
UAT import JSON Pass Potwierdzony przez użytkownika 2026-07-21 — kwoty poprawne

Quality Radar Results

Status: degraded (brak pełnego indeksu codebase-memory-mcp; jscpd/ast-grep wyłączone polityką w config.md)

  • New risks: brak
  • Resolved risks: błędne kwoty z JSON (grosze traktowane jak złote) — obsłużone regułą promptu
  • Deferred risks: natywny parser eParagon w PHP (0 tokenów, 100% determinizm, ale traci display/kategorie z AI) — YAGNI, podnieść jeśli reguła promptu zawiedzie
  • Raw outputs: .paul/codebase/impact_map.md, .paul/codebase/quality_risks.md, .paul/codebase/tooling_status.md

Deviations

  • Brak. Wykonano dokładnie 1 zaplanowany task.

Key Decisions / Patterns

  • Wybrano poprawkę promptową (najkrótszy diff, zero zmian w pipeline, bez regresji obraz/PDF) zamiast natywnego parsera JSON. Reguła „/100" jest deterministyczna dla modelu rozumującego.

Follow-up

  • UAT runtime: potwierdzony przez użytkownika (2026-07-21) — import JSON daje poprawne kwoty.
  • Jeśli reguła promptu okaże się zawodna dla innych paragonów JSON → osobny plan: natywny parser eParagon w PHP.