--- phase: 09-receipt-config plan: 01 subsystem: ui tags: [php, settings, receipts, crud, scss] requires: - phase: 08-db-foundation provides: receipt_configs table provides: - CRUD konfiguracji paragonow (Ustawienia > Ksiegowosc) - ReceiptConfigController + ReceiptConfigRepository affects: [10-receipt-issue, 11-receipt-print, 12-accounting-list] tech-stack: added: [] patterns: [settings-controller-pattern for new modules] key-files: created: - src/Modules/Settings/ReceiptConfigController.php - src/Modules/Settings/ReceiptConfigRepository.php - resources/views/settings/accounting.php modified: - resources/views/layouts/app.php - routes/web.php - resources/lang/pl.php - resources/scss/shared/_ui-components.scss - resources/scss/app.scss - public/assets/css/app.css - DOCS/ARCHITECTURE.md key-decisions: - "Request::input() zamiast query() — klasa Request nie ma metody query()" - "Csrf::token() i Csrf::validate() jako bool — nie rzuca wyjatkow" - "Tabela .table zamiast .data-table — data-table nie istnieje w SCSS" - "form-grid align-items: start — zapobiega rozciaganiu pol przez hint/small" patterns-established: - "Nowe strony ustawien: wzorzec ReceiptConfigController (index+save+toggle+delete)" duration: ~30min completed: 2026-03-15 --- # Phase 9 Plan 01: Konfiguracja paragonow (Ustawienia > Ksiegowosc) Summary **CRUD konfiguracji paragonow z nawigacja, tlumaczeniami i poprawkami globalnymi CSS (form-control, form-grid align).** ## Performance | Metric | Value | |--------|-------| | Duration | ~30min | | Completed | 2026-03-15 | | Tasks | 5 completed | | Files modified | 10 | ## Acceptance Criteria Results | Criterion | Status | Notes | |-----------|--------|-------| | AC-1: Lista konfiguracji | Pass | Tabela z kolumnami Nazwa/Format/Typ/Status/Akcje | | AC-2: Tworzenie konfiguracji | Pass | Formularz z walidacja nazwy i formatu | | AC-3: Edycja konfiguracji | Pass | Link ?edit=ID wypelnia formularz | | AC-4: Toggle aktywnosci | Pass | POST /settings/accounting/toggle | | AC-5: Usuwanie z potwierdzeniem | Pass | OrderProAlerts.confirm() | | AC-6: Sublinek Ksiegowosc | Pass | Widoczny i aktywny w sidebarze | ## Accomplishments - Pelny CRUD konfiguracji paragonow z walidacja i flash messages - Sublinek "Ksiegowosc" w nawigacji ustawien - Globalne poprawki CSS: form-control kompaktniejszy, form-grid align-items: start ## Files Created/Modified | File | Change | Purpose | |------|--------|---------| | `src/Modules/Settings/ReceiptConfigRepository.php` | Created | CRUD na receipt_configs | | `src/Modules/Settings/ReceiptConfigController.php` | Created | 4 endpointy (index/save/toggle/delete) | | `resources/views/settings/accounting.php` | Created | Lista + formularz konfiguracji | | `resources/views/layouts/app.php` | Modified | Sublinek Ksiegowosc w sidebarze | | `routes/web.php` | Modified | 4 trasy + use statements | | `resources/lang/pl.php` | Modified | Tlumaczenia settings.accounting.* | | `resources/scss/shared/_ui-components.scss` | Modified | form-control: min-height 30px, border-radius 6px | | `resources/scss/app.scss` | Modified | form-grid-2/3/4: align-items start | | `public/assets/css/app.css` | Modified | Build CSS | | `DOCS/ARCHITECTURE.md` | Modified | Nowe trasy, klasy, przeplyw | ## Deviations from Plan ### Summary | Type | Count | Impact | |------|-------|--------| | Auto-fixed | 4 | Krytyczne fixy API kontrolera + CSS | ### Auto-fixed Issues **1. Request::query() nie istnieje** - **Fix:** Zamieniono na Request::input() ktory obsluguje tez query params **2. Csrf::generate() nie istnieje** - **Fix:** Zamieniono na Csrf::token() **3. Csrf::validate() zwraca bool, nie rzuca wyjatku** - **Fix:** Zamieniono try/catch na if(!Csrf::validate()) **4. Klasa CSS data-table nie istnieje** - **Fix:** Zamieniono na .table (istniejaca w _ui-components.scss) ## Next Phase Readiness **Ready:** - CRUD konfiguracji dziala — faza 10 moze pobierac aktywne konfiguracje do wystawiania paragonow **Concerns:** - Brak **Blockers:** - Brak --- *Phase: 09-receipt-config, Plan: 01* *Completed: 2026-03-15*