--- phase: 40-remove-order-list-bulk-print plan: 01 subsystem: ui tags: [orders, printing, cleanup, routing] requires: - phase: 19-ui-integration provides: bulk print from orders list and print queue API wiring provides: - removal of bulk print action from /orders/list - removal of /api/print/jobs/bulk endpoint and dead backend code affects: [orders-list, printing-api, technical-docs] tech-stack: added: [none] patterns: [feature decommission cleanup] key-files: created: - .paul/phases/40-remove-order-list-bulk-print/40-01-SUMMARY.md modified: - src/Modules/Orders/OrdersController.php - resources/views/orders/list.php - src/Modules/Printing/PrintApiController.php - src/Modules/Printing/PrintJobRepository.php - routes/web.php - DOCS/ARCHITECTURE.md - DOCS/TECH_CHANGELOG.md - DOCS/todo.md key-decisions: - "Bulk print from order list deprecated in favor of single-print flow" - "Proceed with APPLY via override without sonar-scanner (logged risk)" patterns-established: - "When decommissioning features, remove UI + route + controller + repository references" duration: 12min started: 2026-03-25T22:17:00+01:00 completed: 2026-03-25T22:32:00+01:00 --- # Phase 40 Plan 01: Remove Order List Bulk Print Summary **Usunieto mechanizm bulk print z listy zamowien, pozostawiajac druk pojedynczej etykiety i API klienta Windows bez regresji.** ## Performance | Metric | Value | |--------|-------| | Duration | 12 min | | Started | 2026-03-25T22:17:00+01:00 | | Completed | 2026-03-25T22:32:00+01:00 | | Tasks | 3 completed | | Files modified | 11 | ## Acceptance Criteria Results | Criterion | Status | Notes | |-----------|--------|-------| | AC-1: Brak akcji bulk print na liscie zamowien | Pass | Usuniety przycisk `Drukuj etykiety` i JS bulk request z `orders/list.php`. | | AC-2: Mechanizm bulk print wycofany z backendu | Pass | Usunieta trasa `/api/print/jobs/bulk`, metoda kontrolera i martwa metoda repozytorium. | | AC-3: Dokumentacja i TODO aktualne | Pass | `DOCS/ARCHITECTURE.md`, `DOCS/TECH_CHANGELOG.md`, `DOCS/todo.md` zaktualizowane; punkt 40 oznaczony jako wykonany. | ## Accomplishments - Oczyszczono UI listy zamowien z akcji bulk print i powiazanej logiki JS. - Oczyszczono backend drukowania z endpointu i kodu dedykowanego bulk print. - Zaktualizowano dokumentacje techniczna i status zadania 40 w TODO. ## Verification Results - `C:\xampp\php\php.exe -l src/Modules/Orders/OrdersController.php` -> PASS - `C:\xampp\php\php.exe -l src/Modules/Printing/PrintApiController.php` -> PASS - `C:\xampp\php\php.exe -l src/Modules/Printing/PrintJobRepository.php` -> PASS - `C:\xampp\php\php.exe -l routes/web.php` -> PASS - `rg -n "js-bulk-print-labels|/api/print/jobs/bulk|bulkCreateJobs|findPackagesWithLabelsByOrderIds" src resources/views routes` -> PASS (brak wynikow) ## Files Created/Modified | File | Change | Purpose | |------|--------|---------| | `.paul/phases/40-remove-order-list-bulk-print/40-01-SUMMARY.md` | Created | Podsumowanie UNIFY planu 40-01 | | `src/Modules/Orders/OrdersController.php` | Modified | Usuniecie przycisku bulk print z `header_actions` | | `resources/views/orders/list.php` | Modified | Usuniecie front-endowego mechanizmu bulk print | | `src/Modules/Printing/PrintApiController.php` | Modified | Usuniecie `bulkCreateJobs()` | | `src/Modules/Printing/PrintJobRepository.php` | Modified | Usuniecie martwej metody pomocniczej bulk print | | `routes/web.php` | Modified | Usuniecie trasy `POST /api/print/jobs/bulk` | | `DOCS/ARCHITECTURE.md` | Modified | Aktualizacja opisu flow listy zamowien | | `DOCS/TECH_CHANGELOG.md` | Modified | Wpis changelog dla fazy 40 | | `DOCS/todo.md` | Modified | Oznaczenie punktu 40 jako wykonany | | `.paul/STATE.md` | Modified | Aktualizacja APPLY/UNIFY i decyzji override | | `.paul/ROADMAP.md` | Modified | Status fazy 40 jako complete | ## Decisions Made | Decision | Rationale | Impact | |----------|-----------|--------| | Usunac bulk print z listy zamowien end-to-end | Wymaganie biznesowe z TODO #40 i uproszczenie flow | Brak akcji masowej na `/orders/list`, mniejsza zlozonosc kodu | | Wykonac APPLY z override dla wymaganego `sonar-scanner` | Uzytkownik jawnie potwierdzil override | Ryzyko quality-check przeniesione do kolejnego etapu (odnotowane w STATE) | ## Deviations from Plan ### Summary | Type | Count | Impact | |------|-------|--------| | Auto-fixed | 1 | Niski - poprawa sposobu edycji pliku z powodu problemu kodowania | | Scope additions | 0 | Brak | | Deferred | 1 | Niski - sonar przeniesiony poza APPLY | **Total impact:** Minimalny, bez scope creep funkcjonalnego. ### Auto-fixed Issues 1. `apply_patch` nie dopasowal bloku JS w `orders/list.php` z powodu artefaktow kodowania; blok zostal bezpiecznie usuniety przez precyzyjna zamiane regex w PowerShell. ### Deferred Items - `sonar-scanner` (required in SPECIAL-FLOWS) nieuruchomiony w APPLY 40-01 na podstawie jawnego `override`; decyzja wpisana do `STATE.md`. ## Next Phase Readiness **Ready:** - Faza 40 domknieta technicznie i dokumentacyjnie. - Kod gotowy do planowania/wykonania fazy 41. **Concerns:** - Warto uruchomic `sonar-scanner` przy kolejnym domknieciu loopa, aby zamknac gap quality. **Blockers:** - None. --- *Phase: 40-remove-order-list-bulk-print, Plan: 01* *Completed: 2026-03-25*