Phase 108 complete (v3.2 milestone):
Plan 108-01 — Delivery Status DB & CRUD:
- Tabela delivery_statuses z seedem 11 statusow systemowych
- DeliveryStatusRepository (CRUD + per-request static cache)
- DeliveryStatus::setRepository() — DB fallback dla static final class
- Panel /settings/delivery-statuses (zakladki Statusy + Mapowanie)
- Sidebar przebudowany: Statusy zamowien + Statusy przesylek
Plan 108-02 — Automation Dropdowns z DB + UI Refactor:
- Dropdowny automatyzacji ladowane z DB (warunek shipment_status + akcja update_shipment_status)
- Walidacja przez DeliveryStatus::getAllStatuses()
- Osobna podstrona formularza CRUD (delivery-status-form.php)
- Lista uproszczona: rename Terminal -> Koncowy, usunieta kolumna Typ
- BREAKING: drop backward compat dla starych grupowych kluczy automatyzacji
- Bug fix: path params w DeliveryStatusesController via \$request->input('id')
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.7 KiB
2026-04-27
Co zrobiono
-
[Phase 108, Plan 01] Wyniesiono znormalizowane statusy przesyłek do tabeli DB z CRUD panelem i dynamicznym ładowaniem
-
Migracja
20260427_000103_create_delivery_statuses_table.sql— tabela delivery_statuses z seedem 11 statusów systemowych -
Nowy
DeliveryStatusRepository— CRUD + per-request static cache, blokady systemowych i używanych statusów -
DeliveryStatus::setRepository()— transparent DB loading: label(), getAllOptions(), getColor() z DB, fallback na stałe -
Nowy panel
/settings/delivery-statusesz zakładkami: Statusy (CRUD niebędacych systemowych) + Mapowanie dostawy (embedded) -
Sidebar przebudowany: "Statusy" → "Statusy zamówień", nowa pozycja "Statusy przesyłek" z badge niezmapowanych; usunięto osobną pozycję "Mapowanie statusów dostawy"
-
Badge przesyłek: system statuses → CSS class; custom statuses →
.delivery-badge--custom+ CSS custom property--status-color -
[Phase 108, Plan 02] Domknięcie integracji DB-driven statusów dla automatyzacji + refaktor UI listy
-
AutomationController— usunięto stałąSHIPMENT_STATUS_OPTIONS; dropdown zDeliveryStatus::getAllOptions() -
AutomationService— usuniętoSHIPMENT_STATUS_OPTION_MAP; ewaluacja porównuje klucze bezpośrednio (BREAKING dla starych reguł) -
Walidacja shipment_status / update_shipment_status przez
DeliveryStatus::getAllStatuses() -
Nowa podstrona
/settings/delivery-statuses/newi/{id}/edit— osobny formularz CRUD zamiast inline edit row -
Lista statusów: rename "Terminal" → "Końcowy", usunięta kolumna "Typ" (badge systemowy)
-
Bug fix: path params w
DeliveryStatusesController::edit/update/destroyprzez$request->input('id')(pre-existing z Plan 01)
Zmienione pliki
database/migrations/20260427_000103_create_delivery_statuses_table.sqlsrc/Modules/Shipments/DeliveryStatusRepository.phpsrc/Modules/Settings/DeliveryStatusesController.phpresources/views/settings/delivery-statuses.phpresources/views/settings/_delivery-status-mappings-content.phpsrc/Modules/Shipments/DeliveryStatus.phpsrc/Modules/Settings/DeliveryStatusMappingController.phpresources/views/settings/delivery-status-mappings.phpresources/views/layouts/app.phpresources/scss/modules/_delivery-status.scsspublic/assets/css/app.cssresources/lang/pl.phpresources/views/orders/show.phpresources/views/shipments/prepare.php.paul/docs/DB_SCHEMA.md.paul/docs/ARCHITECTURE.md.paul/docs/TECH_CHANGELOG.mdsrc/Modules/Automation/AutomationController.phpsrc/Modules/Automation/AutomationService.phproutes/web.phpresources/views/settings/delivery-status-form.php