2.1 KiB
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,Bruttoper kanal oraz stopkaRazem. - Dodano tlumaczenia
statistics.orders.*inavigation.statistics*. - Brak zmian migracyjnych i brak zmian schematu bazy danych.
2026-04-19 - Fix: Statystyki nie pokazywaly zamowien (kolizja collation)
OrdersStatisticsRepository::channelSql()generowal wyrazenieCONCAT("shoppro:", CAST(integration_id AS CHAR)), ktore w MySQL dawalo wynik z collationutf8mb4_bin. W zestawieniu z parametrami bindowanymi (utf8mb4_general_ci) MySQL rzucalSQLSTATE[HY000] 1271 Illegal mix of collations for operation 'in'.- Blad byl polykany przez
try/catch (Throwable)waggregateByDay(), przez co widok dostawal pusta tablice i nie pokazywal zadnych zamowien. - Fix: dodano jawne
COLLATE utf8mb4_unicode_cinaCAST(integration_id AS CHAR)oraz na calym wyrazeniuCASEzwracajacymchannel_key, tak aby klucz kanalu mial spojne collation zgodne zorders.source.
2026-04-19 - Statystyki: fallback netto 23% VAT
OrdersStatisticsRepository::netAmountSql()dostal fallback: jesliorders.total_without_taxjestNULLlub0, aorders.total_with_taxma wartosc, netto wyliczane jest jakoROUND(total_with_tax / 1.23, 2).- Uzasadnienie: shopPRO nie wysyla netto ani na zamowieniu ani w pozycjach (
order_items.original_price_without_taxjest puste), wiec bez fallbacku kolumnaNettow statystykach pokazywala 0. - Uwaga: fallback zaklada 23% VAT. Ostateczne rozwiazanie (prawidlowy netto z shopPRO / z
order_items.tax_rate) opisane w.paul/TODO.md(tagSTAT-NET).