2.9 KiB
2.9 KiB
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 09src/Modules/Settings/ReceiptConfigController.php— kontroler CRUD konfiguracjisrc/Modules/Settings/ReceiptConfigRepository.php— repozytorium konfiguracjiresources/views/settings/accounting.php— widok konfiguracji paragonówdatabase/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).