# Session State
Ostatnia aktualizacja: 2026-03-15

## Aktualny cel
Wdrożenie modułu paragonów (milestone v0.3) — 5 faz (08–12). Dwie fazy ukończone, trzy pozostały.

## Co zostało zrobione
- **Faza 0 (poza planem):** Nieaktywne przyciski w orders/show.php — klasa `btn--disabled` (opacity 0.3, cursor not-allowed)
- **Faza 08 — DB Foundation:** 4 migracje SQL (receipt_configs, receipts, receipt_number_counters, company_settings extension o BDO/REGON/KRS/logo), formularz danych firmy rozszerzony, dokumentacja
- **Faza 09 — Konfiguracja paragonów:** CRUD w Ustawienia > Księgowość (ReceiptConfigController + ReceiptConfigRepository + widok accounting.php), sublinek nawigacji, tłumaczenia PL
- **Poprawki globalne CSS:** form-control min-height 30px/border-radius 6px, form-grid align-items: start, klasa .table zamiast nieistniejącej .data-table
- **Fixy API:** Request::input() zamiast query(), Csrf::token() zamiast generate(), Csrf::validate() jako bool (if zamiast try/catch)

## Co zostało do zrobienia
- **Faza 10:** Wystawianie paragonów z widoku zamówienia (backend ReceiptService + UI przycisk + modal wyboru konfiguracji + blokada is_invoice + zapis do receipts + wpis order_activity_log + zakładka Dokumenty powiązane)
- **Faza 11:** Podgląd i wydruk paragonu (HTML+CSS @media print + PDF w locie)
- **Faza 12:** Sekcja główna Księgowość — lista paragonów z filtrami, paginacją, eksport XLSX + nowa grupa w sidebarze

## Kluczowe pliki
- `.paul/ROADMAP.md` — roadmap z postępem v0.3
- `.paul/STATE.md` — aktualny stan (Phase 09 complete)
- `.paul/phases/08-db-foundation/08-01-SUMMARY.md` — podsumowanie fazy 08
- `.paul/phases/09-receipt-config/09-01-SUMMARY.md` — podsumowanie fazy 09
- `src/Modules/Settings/ReceiptConfigController.php` — kontroler CRUD konfiguracji
- `src/Modules/Settings/ReceiptConfigRepository.php` — repozytorium konfiguracji
- `resources/views/settings/accounting.php` — widok konfiguracji paragonów
- `database/migrations/20260315_000050–000053_*.sql` — migracje modułu paragonów

## Ważne decyzje / ustalenia
- Puppeteer: zawsze viewport 1920x1080 (domyślny za mały, aktywuje media query 768px)
- Klasa Request nie ma metody query() — używać input() (obsługuje GET i POST)
- Csrf::token() do generowania, Csrf::validate() zwraca bool
- Tabele: klasa `.table` (nie `.data-table` — ta nie istnieje)
- receipts.order_id musi być BIGINT UNSIGNED (match orders.id)
- ON DELETE RESTRICT na receipt_configs (nie usuwaj konfiguracji z paragonami)
- Logo firmy: na razie pole tekstowe, upload w przyszłości
- Paul planuje przed wdrożeniem — nie implementować bez planu

## Następny krok
Uruchomić `/paul:plan` dla Fazy 10 (Wystawianie paragonów z zamówienia). Plan powinien obejmować: ReceiptService, ReceiptRepository, rozszerzenie OrdersController, UI w orders/show.php (przycisk + modal + zakładka Dokumenty).
