feat(11-receipt-print): phase 11 complete — receipt preview, print & PDF
Add receipt show/print/pdf endpoints with dompdf integration. Active preview and PDF links in order Documents tab. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
141
.paul/phases/11-receipt-print/11-01-SUMMARY.md
Normal file
141
.paul/phases/11-receipt-print/11-01-SUMMARY.md
Normal file
@@ -0,0 +1,141 @@
|
||||
---
|
||||
phase: 11-receipt-print
|
||||
plan: 01
|
||||
subsystem: accounting
|
||||
tags: [dompdf, pdf, receipt, print, view]
|
||||
|
||||
requires:
|
||||
- phase: 10-receipt-issue
|
||||
provides: ReceiptRepository, receipts table, snapshots JSON
|
||||
provides:
|
||||
- Receipt preview (HTML in app layout)
|
||||
- Receipt print view (standalone HTML + auto window.print())
|
||||
- Receipt PDF generation via dompdf
|
||||
- Active preview/PDF links in Documents tab
|
||||
affects: [12-receipt-corrections]
|
||||
|
||||
tech-stack:
|
||||
added: [dompdf/dompdf ^3.1]
|
||||
patterns: [buildReceiptViewData shared helper, standalone print view pattern]
|
||||
|
||||
key-files:
|
||||
created:
|
||||
- resources/views/receipts/show.php
|
||||
- resources/views/receipts/print.php
|
||||
modified:
|
||||
- src/Modules/Accounting/ReceiptController.php
|
||||
- routes/web.php
|
||||
- resources/views/orders/show.php
|
||||
- resources/lang/pl.php
|
||||
- resources/scss/shared/_ui-components.scss
|
||||
- public/assets/css/app.css
|
||||
- composer.json
|
||||
- .vscode/ftp-kr.json
|
||||
|
||||
key-decisions:
|
||||
- "dompdf v3.1 server-side PDF generation (not client-side)"
|
||||
- "DejaVu Sans font for PDF Polish character support"
|
||||
- "ftp-kr vendor/ no longer fully ignored — changed to /vendor/bin only"
|
||||
|
||||
patterns-established:
|
||||
- "buildReceiptViewData() shared helper for show/print/pdf reuse"
|
||||
- "Standalone print view pattern: full HTML without layout + window.print()"
|
||||
|
||||
duration: ~30min
|
||||
completed: 2026-03-15
|
||||
---
|
||||
|
||||
# Phase 11 Plan 01: Receipt Preview & Print Summary
|
||||
|
||||
**Podglad paragonu HTML, widok druku standalone i generowanie PDF przez dompdf — zamyka cykl wystawienie-podglad-wydruk.**
|
||||
|
||||
## Performance
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Duration | ~30min |
|
||||
| Completed | 2026-03-15 |
|
||||
| Tasks | 4 completed (3 auto + 1 checkpoint) |
|
||||
| Files modified | 10 |
|
||||
|
||||
## Acceptance Criteria Results
|
||||
|
||||
| Criterion | Status | Notes |
|
||||
|-----------|--------|-------|
|
||||
| AC-1: Podglad paragonu w layoucie aplikacji | Pass | /orders/{id}/receipt/{receiptId} — dane sprzedawcy, nabywcy, pozycje, suma, daty |
|
||||
| AC-2: Widok druku (standalone HTML) | Pass | /print endpoint, window.print() auto-trigger |
|
||||
| AC-3: Generowanie PDF | Pass | /pdf endpoint, dompdf v3.1, Content-Disposition attachment |
|
||||
| AC-4: Aktywny link Podglad w Dokumentach | Pass | span.btn--disabled zamieniony na a.btn + dodany link PDF |
|
||||
| AC-5: Obsluga bledu — nieistniejacy paragon | Pass | 404 gdy paragon nie istnieje lub order_id mismatch |
|
||||
|
||||
## Accomplishments
|
||||
|
||||
- 3 nowe metody kontrolera: show(), printView(), pdf() + helper buildReceiptViewData()
|
||||
- 2 nowe widoki: receipts/show.php (w layoucie) i receipts/print.php (standalone)
|
||||
- dompdf zainstalowany i dzialajacy na serwerze
|
||||
- Aktywne linki Podglad + PDF w zakladce Dokumenty zamowienia
|
||||
|
||||
## Files Created/Modified
|
||||
|
||||
| File | Change | Purpose |
|
||||
|------|--------|---------|
|
||||
| `src/Modules/Accounting/ReceiptController.php` | Modified | +show(), +printView(), +pdf(), +buildReceiptViewData() |
|
||||
| `routes/web.php` | Modified | +3 trasy GET: show, print, pdf |
|
||||
| `resources/views/receipts/show.php` | Created | Podglad paragonu w layoucie aplikacji |
|
||||
| `resources/views/receipts/print.php` | Created | Standalone widok druku + auto window.print() |
|
||||
| `resources/views/orders/show.php` | Modified | Aktywne linki Podglad + PDF w Dokumentach |
|
||||
| `resources/lang/pl.php` | Modified | +receipts.show.* (13 kluczy) |
|
||||
| `resources/scss/shared/_ui-components.scss` | Modified | +.receipt-header, +.receipt-print |
|
||||
| `public/assets/css/app.css` | Modified | Przebudowany z nowym SCSS |
|
||||
| `composer.json` | Modified | +dompdf/dompdf ^3.1 |
|
||||
| `.vscode/ftp-kr.json` | Modified | /vendor → /vendor/bin w ignore |
|
||||
|
||||
## Decisions Made
|
||||
|
||||
| Decision | Rationale | Impact |
|
||||
|----------|-----------|--------|
|
||||
| dompdf server-side | Plan wymaga server-side PDF, dompdf standard PHP | Wymaga vendor/ na serwerze |
|
||||
| ftp-kr vendor/ nie ignorowany | dompdf musi byc na serwerze, reczny deploy uciazliwy | Automatyczny upload vendor/ przy zmianach |
|
||||
| DejaVu Sans w print CSS | Obsluga polskich znakow w PDF | Poprawne znaki w generowanym PDF |
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
### Summary
|
||||
|
||||
| Type | Count | Impact |
|
||||
|------|-------|--------|
|
||||
| Auto-fixed | 1 | ftp-kr config change for vendor deploy |
|
||||
| Deferred | 0 | — |
|
||||
|
||||
**Total impact:** Minimalne — jedyna zmiana to konfiguracja deploy.
|
||||
|
||||
### Auto-fixed Issues
|
||||
|
||||
**1. [Deploy] vendor/ nie uploadowany na serwer**
|
||||
- **Found during:** Task 1 (instalacja dompdf)
|
||||
- **Issue:** ftp-kr ignorowal caly /vendor, dompdf nie trafialo na serwer
|
||||
- **Fix:** Zmiana /vendor na /vendor/bin w ftp-kr.json ignore
|
||||
- **Files:** .vscode/ftp-kr.json
|
||||
- **Verification:** Upload vendor/ → dompdf dziala na serwerze
|
||||
|
||||
### Skill Audit
|
||||
|
||||
| Expected | Invoked | Notes |
|
||||
|----------|---------|-------|
|
||||
| sonar-scanner | ○ | Required — do uruchomienia przed kolejnym UNIFY |
|
||||
|
||||
## Next Phase Readiness
|
||||
|
||||
**Ready:**
|
||||
- Pelny cykl paragonow: konfiguracja → wystawienie → podglad → druk → PDF
|
||||
- Faza 11 zamknieta, gotowe do fazy 12
|
||||
|
||||
**Concerns:**
|
||||
- sonar-scanner nie uruchomiony (gap z wielu faz)
|
||||
|
||||
**Blockers:**
|
||||
- Brak
|
||||
|
||||
---
|
||||
*Phase: 11-receipt-print, Plan: 01*
|
||||
*Completed: 2026-03-15*
|
||||
Reference in New Issue
Block a user