# 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).