update
This commit is contained in:
@@ -450,7 +450,7 @@
|
||||
- Tabela `order_activity_log` rejestruje wszystkie zdarzenia dotyczace zamowienia.
|
||||
- Typy zdarzen: `status_change`, `payment`, `invoice`, `shipment`, `message`, `document`, `import`, `note`.
|
||||
- Rejestracja zdarzen: `OrdersRepository::recordActivity(...)`.
|
||||
- Zmiana statusu: `OrdersRepository::updateOrderStatus(...)` — aktualizuje `orders.external_status_id`, wpisuje do `order_status_history` i `order_activity_log`.
|
||||
- Zmiana statusu: `OrdersRepository::updateOrderStatus(...)` — aktualizuje `orders.status_code`, wpisuje do `order_status_history` i `order_activity_log`.
|
||||
- Import zamowienia: `AllegroOrderImportService::importSingleOrder(...)` — po upsert zamowienia rejestruje zdarzenie `import` w `order_activity_log` (nowy import lub re-import/aktualizacja), actor_type `import`, actor_name `Allegro`.
|
||||
- Widok szczegolow zamowienia (`GET /orders/{id}`) wyswietla log aktywnosci w zakladce `Historia zmian`.
|
||||
|
||||
@@ -458,7 +458,7 @@
|
||||
- `POST /orders/{id}/status`:
|
||||
- `OrdersController::updateStatus(Request): Response`
|
||||
- waliduje CSRF i wybrany status,
|
||||
- wywoluje `OrdersRepository::updateOrderStatus(...)` (aktualizuje `orders.external_status_id`, wpisuje do `order_status_history` i `order_activity_log`),
|
||||
- wywoluje `OrdersRepository::updateOrderStatus(...)` (aktualizuje `orders.status_code`, wpisuje do `order_status_history` i `order_activity_log`),
|
||||
- actor_type: `user`, actor_name: nazwa zalogowanego uzytkownika,
|
||||
- po zapisie redirect do `GET /orders/{id}` z flash message (sukces/blad).
|
||||
- Widok szczegolow zamowienia wyswietla dropdown ze wszystkimi aktywnymi statusami (pogrupowanymi wg grup statusow) obok aktualnego statusu.
|
||||
|
||||
@@ -85,7 +85,7 @@ Migracje z prefiksem `ensure_` to migracje kompensujące — zostały dodane
|
||||
- rozszerzenie `company_settings` o `sender_contact_person` (osoba kontaktowa nadawcy),
|
||||
- wykorzystywane w payloadzie Apaczka jako `address.sender.contact_person`.
|
||||
- 2026-03-08: Ujednolicono styl naglowkow sekcji UI (`section-title`) - bez zmian schematu bazy.
|
||||
- 2026-03-14: Dodano migracje `20260314_000048_add_orders_performance_indexes.sql` — indeksy wydajnosciowe na tabeli `orders`: `source`, `external_status_id`, `ordered_at`, composite `(source, external_status_id)`.
|
||||
- 2026-03-14: Dodano migracje `20260314_000048_add_orders_performance_indexes.sql` — indeksy wydajnosciowe na tabeli `orders`: `source`, `status_code`, `ordered_at`, composite `(source, status_code)`.
|
||||
- 2026-03-14: Dodano migracje `20260314_000049_add_cron_last_run_at_setting.sql` — seed klucza `cron_web_last_run_at` w `app_settings` (cron throttle przeniesiony z sesji do DB).
|
||||
- 2026-03-14: Przemianowano migracje `20260301_000014_add_products_sku_format_setting.sql` na `20260301_000014b_add_products_sku_format_setting.sql` — deduplikacja numeru sekwencji (kolizja z `000014_create_product_integration_translations`).
|
||||
- 2026-03-15: Dodano migracje `20260315_000050_create_receipt_configs_table.sql` — tabela konfiguracji paragonow (szablony numeracji, ustawienia imiennosci, zrodlo daty sprzedazy).
|
||||
|
||||
@@ -41,7 +41,7 @@ Rozdzielenie mapowania statusow shopPRO na dwa niezalezne kierunki: PUSH (orderP
|
||||
|
||||
**DB:** Migracja 20260407_000079 — nowa tabela order_status_pull_mappings, pre-populate z istniejacych danych.
|
||||
|
||||
**Ochrona statusu przy re-imporcie:** Re-import z shopPRO nie nadpisuje `external_status_id` istniejacego zamowienia, CHYBA ZE obecny status to `nieoplacone` i shopPRO potwierdza platnosc (`payment_status = 2`). Wtedy status zmienia sie na zmapowany (np. `w_realizacji`) i importowane sa dane platnosci. W kazdym innym przypadku status jest zachowany — orderPRO jest master.
|
||||
**Ochrona statusu przy re-imporcie:** Re-import z shopPRO nie nadpisuje `status_code` istniejacego zamowienia, CHYBA ZE obecny status to `nieoplacone` i shopPRO potwierdza platnosc (`payment_status = 2`). Wtedy status zmienia sie na zmapowany (np. `w_realizacji`) i importowane sa dane platnosci. W kazdym innym przypadku status jest zachowany — orderPRO jest master.
|
||||
|
||||
**Pliki:**
|
||||
- database/migrations/20260407_000079_pull_status_mappings.sql
|
||||
@@ -438,7 +438,7 @@ Odwrocenie kierunku mapowania statusow w integracjach shopPRO i Allegro.
|
||||
- Zoptymalizowano zapytanie listy zamowien (`OrdersRepository::buildListSql()`):
|
||||
- 4 correlated subqueries (items_count, items_qty, shipments_count, documents_count) zastapiono aggregating LEFT JOINami — eliminuje N+1 na kazdym wierszu listy.
|
||||
- `OrdersRepository::canResolveMappedMedia()` — zamiana instance property na `static` — `information_schema` odpytywany co najwyzej raz na cykl PHP zamiast raz per instancja.
|
||||
- Dodano migracje `20260314_000048_add_orders_performance_indexes.sql` — indeksy na `orders`: `source`, `external_status_id`, `ordered_at`, composite `(source, external_status_id)`.
|
||||
- Dodano migracje `20260314_000048_add_orders_performance_indexes.sql` — indeksy na `orders`: `source`, `status_code`, `ordered_at`, composite `(source, status_code)`.
|
||||
- Dodano SSL verification (`CURLOPT_SSL_VERIFYPEER => true`, `CURLOPT_SSL_VERIFYHOST => 2`, `CURLOPT_CAINFO`) do 4 klas ApiClient: AllegroApiClient (3 metody), AllegroOAuthClient, ShopproApiClient, ApaczkaApiClient. Fallback: `$_ENV['CURL_CA_BUNDLE_PATH']` → XAMPP cacert.pem → system CA bundle.
|
||||
- Cron web throttle (`isWebCronThrottled()`) przeniesiony z `$_SESSION` do `app_settings` (klucz `cron_web_last_run_at`) — eliminuje wielokrotne uruchamianie crona przy wielu aktywnych sesjach.
|
||||
- Deduplikacja migracji `000014` → `000014b` (kolizja z `create_product_integration_translations`).
|
||||
@@ -815,7 +815,7 @@ Odwrocenie kierunku mapowania statusow w integracjach shopPRO i Allegro.
|
||||
- Dodano `App\Modules\Settings\AllegroStatusMappingRepository`.
|
||||
- Import pojedynczego zamowienia Allegro mapuje teraz status przez `allegro_order_status_mappings` (jesli istnieje wpis), zamiast fallbackowej translacji.
|
||||
- Poprawiono prezentacje statusow na liscie zamowien:
|
||||
- filtr statusu pokazuje etykiety biznesowe zamiast surowych kodow (`external_status_id`),
|
||||
- filtr statusu pokazuje etykiety biznesowe zamiast surowych kodow (`status_code`),
|
||||
- kody bez mapowania sa tylko formatowane technicznie do czytelnej postaci (`do_odbioru` -> `Do odbioru`).
|
||||
- Dodano reczny import pojedynczego zamowienia Allegro z poziomu `Ustawienia > Integracje > Allegro`:
|
||||
- endpoint `POST /settings/integrations/allegro/import-single`,
|
||||
@@ -930,7 +930,7 @@ Odwrocenie kierunku mapowania statusow w integracjach shopPRO i Allegro.
|
||||
- Rozszerzono `bin/deploy_and_seed_orders.php` o parametr `--profile=default|realistic`.
|
||||
- Dodano realistyczny profil seedowania:
|
||||
- wazone losowanie statusow i metod platnosci,
|
||||
- spojne mapowanie `external_status_id` -> `payment_status` i `total_paid`,
|
||||
- spojne mapowanie `status_code` -> `payment_status` i `total_paid`,
|
||||
- bardziej realne reguly tworzenia wpisow `order_payments`, `order_shipments`, `order_documents`,
|
||||
- historia statusow oparta na logicznych sciezkach przejsc (zamiast losowych skokow).
|
||||
- Wykonano ponowne wdrozenie draftu i seed z profilem realistycznym:
|
||||
@@ -984,11 +984,11 @@ Odwrocenie kierunku mapowania statusow w integracjach shopPRO i Allegro.
|
||||
- aktywny panel `Szczegoly zamowienia`,
|
||||
- pozostale panele (`Historia zmian`, `Przesylki`, `Platnosci`, `Dokumenty`) zawieraja tymczasowe puste boksy.
|
||||
- Zmieniono seed zamowien (`bin/deploy_and_seed_orders.php`):
|
||||
- `external_status_id` jest losowany z aktywnych statusow z tabeli `order_statuses` (zgodnie z konfiguracja w `Ustawienia > Statusy`),
|
||||
- `status_code` jest losowany z aktywnych statusow z tabeli `order_statuses` (zgodnie z konfiguracja w `Ustawienia > Statusy`),
|
||||
- dodano fallback do listy domyslnej, jesli tabela jest pusta/niedostepna,
|
||||
- profil `realistic` ma fallback reguly finansowej dla niestandardowych statusow.
|
||||
- Dodano skrypt serwisowy `bin/randomize_order_statuses.php`:
|
||||
- losowo podmienia `orders.external_status_id` dla juz istniejacych zamowien na aktywne statusy z `order_statuses`,
|
||||
- losowo podmienia `orders.status_code` dla juz istniejacych zamowien na aktywne statusy z `order_statuses`,
|
||||
- aktualizuje tez `is_canceled_by_buyer` dla statusu `cancelled`,
|
||||
- wspiera `--use-remote` i `--dry-run`.
|
||||
- Wykonano podmiane statusow na bazie zdalnej (`--use-remote`): zaktualizowano 30 zamowien.
|
||||
|
||||
Reference in New Issue
Block a user