3.1 KiB
3.1 KiB
TODO — odlozone zadania techniczne
Lista nieformalnych zadan do zrobienia pozniej. Kazdy wpis ma wlasny tag (np.
STAT-NET) zeby mozna go bylo zlinkowac z komentarzy w kodzie.
STAT-NET — netto zamowien w statystykach (data: 2026-04-19)
Kontekst
- Statystyki
/statistics/orderspokazujaNettoper dzien/kanal. - shopPRO nie wysyla kwoty netto ani na poziomie zamowienia (
orders.total_without_tax), ani produktow (order_items.original_price_without_tax— rowniez puste). - Allegro:
orders.total_without_taxrowniez moze byc puste. - Obecnie dziala fallback: netto =
ROUND(total_with_tax / 1.23, 2)gdy kolumna netto jest pusta/zerowa. Zaklada 23% VAT dla wszystkich.
Zadania
- Ustalic zrodlo prawdy dla netto:
- Sprawdzic, czy API shopPRO udostepnia
price_nettolubtotal_netto(payload zawiera tylkoprice_brutto+vat). - Jesli TAK → rozszerzyc mapping importu (
src/Modules/ShopPro/...) i backfill migracja dla historycznych rekordow. - Jesli NIE → liczyc netto deterministycznie z
order_items.original_price_with_taxiorder_items.tax_rate(wtedy nie zakladamy sztywno 23%).
- Sprawdzic, czy API shopPRO udostepnia
- Backfill historycznych zamowien po wdrozeniu zrodla netto (migracja SQL + idempotentny skrypt).
- Zastapic fallback /1.23 w
OrdersStatisticsRepository::netAmountSql():- Preferuj
orders.total_without_tax. - Jesli brak —
SUM(order_items.original_price_with_tax / (1 + order_items.tax_rate / 100) * order_items.quantity). - Stala 1.23 tylko jako ostateczny fallback przy braku item-levelu.
- Preferuj
Linki w kodzie
src/Modules/Statistics/OrdersStatisticsRepository.php— metodanetAmountSql()(komentarzTODO(STAT-NET)).
DELIVERY-STATUS-MGMT — zarządzanie statusami znormalizowanymi z panelu (data: 2026-04-26)
Kontekst
- Aktualnie statusy znormalizowane (
created,confirmed,picked_up,in_transit, itd.) są stałymi w kodzie (DeliveryStatus.php). - Dodanie nowego statusu wymaga zmiany kodu + deploymentu.
- Panel ustawień pozwala tylko mapować surowe statusy kurierów na istniejące statusy znormalizowane — nie można dodać nowego znormalizowanego statusu z UI.
Zadania
- Wynieść listę statusów znormalizowanych do tabeli DB (np.
delivery_statuses) z kolumnami:key,label_pl,color,sort_order,is_terminal,is_system. - Statusy systemowe (
delivered,returned,cancelled) oznaczać flagąis_system = true— nieedytowalne z UI (mają specjalne znaczenie w kodzie). - Panel
/settings/delivery-statuses— CRUD dla statusów niebędących systemowymi (dodaj, zmień etykietę/kolor, usuń jeśli nieużywany). DeliveryStatus::ALL_STATUSES,LABEL_PLi badge CSS zastąpić dynamicznym ładowaniem z DB (cache per-request).- Automatyzacje i mapowania kurierów — dropdown statusów znormalizowanych pobierany z DB zamiast hardcoded.
Uwagi
TERMINAL_STATUSESmusi zostać zachowane jako lista systemowych statusów końcowych — te nie powinny być usuwalne.- Przy usuwaniu statusu znormalizowanego — blokada jeśli używany w
delivery_status_mappingslubshipment_packages.delivery_status.