Files
orderPRO/.paul/docs/TECH_CHANGELOG.md
2026-04-19 22:43:02 +02:00

2.1 KiB

TECH_CHANGELOG

Chronologiczny log zmian technicznych — co i dlaczego.

2026-04-19 - Statystyki zamowien (menu + raport dzienny)

  • Dodano nowy modul Statistics:
    • OrdersStatisticsController (obsluga filtrow i render strony /statistics/orders).
    • OrdersStatisticsRepository (agregacje dzienne po kanalach i grupach statusow).
  • Dodano nowa pozycje menu: Statystyki -> Zamowienia.
  • Dodano widok raportowy z filtrem zakresu dat, multiselectem kanalow i multiselectem grup statusow.
  • Dodano tabele dzienna z metrykami Ilosc, Netto, Brutto per kanal oraz stopka Razem.
  • Dodano tlumaczenia statistics.orders.* i navigation.statistics*.
  • Brak zmian migracyjnych i brak zmian schematu bazy danych.

2026-04-19 - Fix: Statystyki nie pokazywaly zamowien (kolizja collation)

  • OrdersStatisticsRepository::channelSql() generowal wyrazenie CONCAT("shoppro:", CAST(integration_id AS CHAR)), ktore w MySQL dawalo wynik z collation utf8mb4_bin. W zestawieniu z parametrami bindowanymi (utf8mb4_general_ci) MySQL rzucal SQLSTATE[HY000] 1271 Illegal mix of collations for operation 'in'.
  • Blad byl polykany przez try/catch (Throwable) w aggregateByDay(), przez co widok dostawal pusta tablice i nie pokazywal zadnych zamowien.
  • Fix: dodano jawne COLLATE utf8mb4_unicode_ci na CAST(integration_id AS CHAR) oraz na calym wyrazeniu CASE zwracajacym channel_key, tak aby klucz kanalu mial spojne collation zgodne z orders.source.

2026-04-19 - Statystyki: fallback netto 23% VAT

  • OrdersStatisticsRepository::netAmountSql() dostal fallback: jesli orders.total_without_tax jest NULL lub 0, a orders.total_with_tax ma wartosc, netto wyliczane jest jako ROUND(total_with_tax / 1.23, 2).
  • Uzasadnienie: shopPRO nie wysyla netto ani na zamowieniu ani w pozycjach (order_items.original_price_without_tax jest puste), wiec bez fallbacku kolumna Netto w statystykach pokazywala 0.
  • Uwaga: fallback zaklada 23% VAT. Ostateczne rozwiazanie (prawidlowy netto z shopPRO / z order_items.tax_rate) opisane w .paul/TODO.md (tag STAT-NET).