Phase 08 — DB Foundation: - 3 new tables: receipt_configs, receipts, receipt_number_counters - company_settings extended with BDO, REGON, KRS, logo fields Phase 09 — Receipt Config: - CRUD for receipt configurations (Settings > Accounting) - ReceiptConfigController + ReceiptConfigRepository Phase 10 — Receipt Issuing: - ReceiptRepository with atomic numbering (INSERT ON DUPLICATE KEY UPDATE) - ReceiptController with snapshot pattern (seller/buyer/items as JSON) - "Wystaw paragon" button in order view - Documents tab showing both receipts and marketplace documents - Activity log entry on receipt creation Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
127 lines
4.1 KiB
Markdown
127 lines
4.1 KiB
Markdown
---
|
|
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*
|