--- phase: 87-shipment-delete plan: 01 subsystem: shipments tags: [php, shipment-packages, crud, ui] requires: [] provides: - Usuwanie przesylek z poziomu szczegolow zamowienia affects: [] tech-stack: added: [] patterns: [OrderProAlerts.confirm for destructive actions] key-files: created: [] modified: - src/Modules/Shipments/ShipmentPackageRepository.php - src/Modules/Shipments/ShipmentController.php - routes/web.php - resources/views/orders/show.php key-decisions: - "Hard delete z bazy (bez soft-delete) — spójne z resztą systemu" - "Usuwanie tylko lokalnego rekordu, bez kasowania z API przewoźnika" patterns-established: [] duration: ~5min started: 2026-04-08T00:00:00Z completed: 2026-04-08T00:00:00Z --- # Phase 87 Plan 01: Shipment Delete Summary **Usuwanie przesyłek z zakładki Przesyłki w szczegółach zamówienia z potwierdzeniem OrderProAlerts.confirm** ## Performance | Metric | Value | |--------|-------| | Duration | ~5min | | Tasks | 2 completed | | Files modified | 4 | ## Acceptance Criteria Results | Criterion | Status | Notes | |-----------|--------|-------| | AC-1: Przycisk usuwania widoczny przy przesyłce | Pass | Kolumna Akcje z przyciskiem "Usun" btn--danger | | AC-2: Potwierdzenie przed usunięciem | Pass | OrderProAlerts.confirm z fallback na native confirm | | AC-3: Usunięcie przesyłki po potwierdzeniu | Pass | DELETE z DB, cleanup etykiety, activity log, flash + redirect | ## Accomplishments - Endpoint POST `/orders/{id}/shipment/{packageId}/delete` z walidacją CSRF i owner check - Cleanup pliku etykiety z dysku przy usunięciu - Activity log `shipment_deleted` z tracking number i provider info - Przycisk "Usun" z dialogiem potwierdzenia w tabeli przesyłek ## Files Created/Modified | File | Change | Purpose | |------|--------|---------| | `src/Modules/Shipments/ShipmentPackageRepository.php` | Modified | Metoda `delete(int $id): void` | | `src/Modules/Shipments/ShipmentController.php` | Modified | Metoda `delete()` — CSRF, owner check, label cleanup, activity log | | `routes/web.php` | Modified | Route POST `/orders/{id}/shipment/{packageId}/delete` | | `resources/views/orders/show.php` | Modified | Kolumna Akcje, przycisk Usun, JS confirm handler | ## Decisions Made | Decision | Rationale | Impact | |----------|-----------|--------| | Hard delete (nie soft-delete) | Spójne z resztą systemu, brak potrzeby historii usuniętych | Prostsze, activity log zachowuje ślad | | Brak kasowania z API przewoźnika | Usuwamy tylko lokalny rekord; przesyłka u przewoźnika istnieje niezależnie | Bezpieczne — nie wpływa na realną przesyłkę | | Fallback na native confirm | Na wypadek gdyby OrderProAlerts nie był załadowany | Robustność | ## Deviations from Plan None — plan executed exactly as written. ## Issues Encountered None. ## Next Phase Readiness **Ready:** - Funkcjonalność usuwania przesyłek kompletna i gotowa do użycia **Concerns:** - None **Blockers:** - None --- *Phase: 87-shipment-delete, Plan: 01* *Completed: 2026-04-08*