Files
orderPRO/.paul/changelog/2026-04-27.md
Jacek Pyziak 0063402897 feat(108): delivery status management
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>
2026-04-27 22:10:24 +02:00

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-statuses z 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 z DeliveryStatus::getAllOptions()

  • AutomationService — usunięto SHIPMENT_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/new i /{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/destroy przez $request->input('id') (pre-existing z Plan 01)

Zmienione pliki

  • database/migrations/20260427_000103_create_delivery_statuses_table.sql
  • src/Modules/Shipments/DeliveryStatusRepository.php
  • src/Modules/Settings/DeliveryStatusesController.php
  • resources/views/settings/delivery-statuses.php
  • resources/views/settings/_delivery-status-mappings-content.php
  • src/Modules/Shipments/DeliveryStatus.php
  • src/Modules/Settings/DeliveryStatusMappingController.php
  • resources/views/settings/delivery-status-mappings.php
  • resources/views/layouts/app.php
  • resources/scss/modules/_delivery-status.scss
  • public/assets/css/app.css
  • resources/lang/pl.php
  • resources/views/orders/show.php
  • resources/views/shipments/prepare.php
  • .paul/docs/DB_SCHEMA.md
  • .paul/docs/ARCHITECTURE.md
  • .paul/docs/TECH_CHANGELOG.md
  • src/Modules/Automation/AutomationController.php
  • src/Modules/Automation/AutomationService.php
  • routes/web.php
  • resources/views/settings/delivery-status-form.php