update
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
- deduplikacja wykonania tej samej pary `event_type + rule_id` w obrebie jednego lancucha,
|
||||
- limit historii wykonan w kontekście (`MAX_CHAIN_EXECUTIONS`).
|
||||
- `ShipmentTrackingHandler` triggeruje automatyzacje tylko po zmianie `delivery_status` i przekazuje kontekst (`package_id`, `provider`, `delivery_status`, `delivery_status_raw`, `previous_status`).
|
||||
- `DeliveryStatus` normalizuje statusy Allegro edge zarowno z opisow PL, jak i EN (mapa slugow + fallback keyword matching), dzieki czemu opisy typu `Parcel is awaiting pick-up` i `Parcel has been delivered` sa mapowane na statusy biznesowe zamiast `unknown`.
|
||||
- Kolejka wydruku ma akcje usuwania wpisu przez route `POST /settings/printing/jobs/delete` (CSRF + `OrderProAlerts.confirm`).
|
||||
- Szablony e-mail obsluguja zmienne przesylki:
|
||||
- `{{przesylka.numer}}` -> `shipment_packages.tracking_number` (najnowsza paczka zamowienia),
|
||||
@@ -29,7 +30,7 @@
|
||||
- `App\Modules\Settings`
|
||||
- `App\Modules\Accounting` (modul paragonow — wystawianie, podglad, druk, PDF, lista, eksport XLSX)
|
||||
- `App\Modules\Settings\EmailMailbox*` (skrzynki pocztowe SMTP — CRUD + test polaczenia)
|
||||
- `App\Modules\Settings\EmailTemplate*` (szablony e-mail — CRUD + Quill.js + zmienne + zalaczniki)
|
||||
- `App\Modules\Settings\EmailTemplate*` (szablony e-mail - lista + osobna podstrona formularza create/edit + Quill.js + zmienne + zalaczniki)
|
||||
- `App\Modules\Email` (wysylka e-mail z zamowien — EmailSendingService, VariableResolver, AttachmentGenerator; kompozycja: header (mailbox) + body (template) + footer (mailbox))
|
||||
- `App\Modules\Automation` (zadania automatyczne — reguly zdarzenie/warunki/akcje, CRUD)
|
||||
|
||||
@@ -92,6 +93,14 @@
|
||||
- `POST /settings/email-mailboxes/delete`
|
||||
- `POST /settings/email-mailboxes/toggle`
|
||||
- `POST /settings/email-mailboxes/test`
|
||||
- `GET /settings/email-templates`
|
||||
- `GET /settings/email-templates/create`
|
||||
- `GET /settings/email-templates/edit`
|
||||
- `POST /settings/email-templates/save`
|
||||
- `POST /settings/email-templates/delete`
|
||||
- `POST /settings/email-templates/duplicate`
|
||||
- `POST /settings/email-templates/toggle`
|
||||
- `POST /settings/email-templates/preview`
|
||||
- `GET /settings/automation`
|
||||
- `GET /settings/automation/create`
|
||||
- `POST /settings/automation/store`
|
||||
@@ -490,6 +499,22 @@
|
||||
- `activeSettings = users`
|
||||
- Usunieto wewnetrzny pasek `settings-nav` z widokow podstron ustawien.
|
||||
|
||||
## Przeplyw Ustawienia > Szablony e-mail
|
||||
- `GET /settings/email-templates`:
|
||||
- `EmailTemplateController::index(Request): Response`
|
||||
- renderuje liste szablonow (`resources/views/settings/email-templates.php`) i akcje tabeli.
|
||||
- `GET /settings/email-templates/create`:
|
||||
- `EmailTemplateController::create(Request): Response`
|
||||
- renderuje osobna podstrone formularza tworzenia (`resources/views/settings/email-templates-form.php`).
|
||||
- `GET /settings/email-templates/edit?id={id}`:
|
||||
- `EmailTemplateController::edit(Request): Response`
|
||||
- laduje wskazany szablon i renderuje osobna podstrone formularza edycji.
|
||||
- `POST /settings/email-templates/save`:
|
||||
- `EmailTemplateController::save(Request): Response`
|
||||
- waliduje CSRF i wymagane pola,
|
||||
- przy bledzie wraca na odpowiednia podstrone formularza (`create` lub `edit`),
|
||||
- po sukcesie zapisuje szablon i wraca do listy.
|
||||
|
||||
## Zasady aktualizacji
|
||||
- Przy kazdej zmianie dopisz:
|
||||
- nowe klasy i metody (sygnatury + odpowiedzialnosc),
|
||||
@@ -586,3 +611,4 @@
|
||||
## Klasy (aktualizacja 2026-03-28)
|
||||
- `App\Modules\Automation\AutomationExecutionLogRepository` (create, paginate, count, listEventTypes, purgeOlderThanDays).
|
||||
- `App\Modules\Cron\AutomationHistoryCleanupHandler` (cleanup retencji historii automatyzacji).
|
||||
|
||||
|
||||
@@ -104,6 +104,7 @@ Migracje z prefiksem `ensure_` to migracje kompensujące — zostały dodane
|
||||
- nowa tabela `automation_execution_logs` (historia wykonan regul automatyzacji: co, kiedy, na jakim zamowieniu, wynik),
|
||||
- indeksy pod filtrowanie po czasie/zdarzeniu/statusie/regule/zamowieniu,
|
||||
- seed harmonogramu `cron_schedules` dla joba `automation_history_cleanup` (retencja historii starszej niz 30 dni).
|
||||
- 2026-04-04: Hotfix trackingu Allegro Delivery (edge API) - rozszerzono mapowanie statusow EN i fallback keyword matching (`Parcel is awaiting pick-up`, `Parcel has been delivered`, itp.) w warstwie aplikacyjnej; bez zmian schematu bazy.
|
||||
|
||||
## Tabele
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
# Tech Changelog
|
||||
|
||||
## 2026-04-04 (Email templates - split list/form view)
|
||||
- `EmailTemplateController`:
|
||||
- dodano osobne endpointy widokowe `create()` i `edit()` dla formularza szablonu,
|
||||
- wydzielono render formularza do `renderForm(...)`,
|
||||
- `save()` przy bledzie walidacji/CSRF wraca na odpowiednia podstrone formularza (`/create` albo `/edit?id=`), zamiast do listy.
|
||||
- Routing:
|
||||
- dodano trasy `GET /settings/email-templates/create` oraz `GET /settings/email-templates/edit`.
|
||||
- Widoki:
|
||||
- `resources/views/settings/email-templates.php` zawiera tylko liste szablonow i akcje tabeli,
|
||||
- dodano `resources/views/settings/email-templates-form.php` jako osobna podstrone create/edit (Quill, zmienne, preview).
|
||||
- Brak zmian schematu bazy danych.
|
||||
|
||||
## 2026-04-04 (Phase 69 - Allegro Tracking English Statuses, Plan 01)
|
||||
- `DeliveryStatus::slugifyAllegroDescription()`:
|
||||
- dodano obsluge prefiksow EN (`Parcel has been ...`, `Parcel is ...`, `Courier has ...`) przed slugifikacja.
|
||||
- `DeliveryStatus`:
|
||||
- rozszerzono `ALLEGRO_EDGE_MAP` o slugi EN i ich mapowanie na statusy biznesowe (m.in. `awaiting_pick_up`, `delivered`, `dispatched`, `released_for_delivery`),
|
||||
- rozszerzono `ALLEGRO_EDGE_DESCRIPTIONS` o opisy EN/PL dla nowych slugow,
|
||||
- rozszerzono `guessStatusFromDescription()` o keyword fallback dla statusow EN (delivery/return/cancel/pickup/transit/confirmed/created/problem).
|
||||
- Dodano test jednostkowy `tests/Unit/DeliveryStatusTest.php` pokrywajacy:
|
||||
- mapowanie EN (`Parcel is awaiting pick-up`, `Parcel has been delivered`),
|
||||
- fallback EN (`released for delivery`),
|
||||
- regresje mapowania PL (`Przesylka zostala dostarczona`).
|
||||
- Brak zmian schematu bazy danych.
|
||||
|
||||
## 2026-04-03 (Phase 64 - Receipt Datetime Precision, Plan 01)
|
||||
- Migracja `20260403_000076_alter_receipts_issue_date_to_datetime.sql`: ALTER TABLE receipts MODIFY issue_date DATETIME NOT NULL.
|
||||
- `ReceiptController::store()`: zapis issue_date jako Y-m-d H:i:s, konwersja z formatu datetime-local (T separator).
|
||||
@@ -878,5 +903,3 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user