PdfViewer, multi-booking OCR, podkolumny adresowe, parser adresów
Filip Borkowski, Backend/Frontend/Fullstack Engineer
Podgląd PDF — PdfViewer
Panel Zleceń używa teraz komponentu PdfViewer opartego na pdfjs-dist — tego samego co pozostałe panele (Email, Biblioteka Danych). Eliminuje to problemy z tagiem <object>, brakiem cookies i podwójnym pobieraniem pliku (HEAD + GET). Podgląd otwiera się natychmiast, a błędy są obsługiwane wewnętrznie przez komponent.
Multi-booking OCR
System rozpoznaje teraz pliki PDF zawierające wiele zleceń transportowych. Kiedy email nie zawiera numeru bookingu w tytule (np. „Nowa Sol / 15x week 12/"), OCR analizuje cały dokument i wyciąga każde zlecenie osobno — tworząc oddzielne rekordy w bazie z pełnymi danymi spedycyjnymi. Dodano normalizację dat i godzin z różnych formatów.
Automatyczna synchronizacja zadań — server-side
Logika synchronizacji zadań została przeniesiona na stronę serwera. Po każdym dodaniu, edycji lub usunięciu pracownika API automatycznie generuje zadania dla brakujących pól — bez polegania na kliencie. Wspólny moduł task-sync.js jest współdzielony między endpointami. Rozszerzono listę sprawdzanych pól o 7 nowych pozycji: numer dowodu, prawo jazdy, karta kierowcy, termin badań lekarskich, psychologicznych, Kod 95 i ważność prawa jazdy.
WorkDesk — formatowanie adresów
Adresy załadunku i rozładunku wyświetlane są teraz w 4 liniach: firma, ulica, kod pocztowy, miasto. Lista zleceń po prawej stronie ma ujednolicony rozmiar elementów z datą i godziną załadunku pod numerem zlecenia.
Pracownicy
Status pracownika wyświetla się czarnym tekstem zamiast zielonego. Import z pliku TXT poprawnie dzieli format „NAZWISKO IMIĘ" na osobne kolumny. Kody krajów w polu telefonu wyświetlane w formacie ISO: PL (+48), UA (+380), DE (+49). Pola wymagane przy dodawaniu pracownika ograniczone do: Imię, Nazwisko, Telefon.
Zadania — polskie nazwy pól
Naprawiono paginację przy pobieraniu istniejących auto-tasków (Supabase domyślnie zwraca max 1000 wierszy). Dzięki temu wszystkie zadania mają teraz polskie nazwy: „nr prawa jazdy" zamiast „license_number", „ważność badań lekarskich" zamiast „medical_expiry", „nr karty kierowcy" zamiast „driver_card_number" itd.
Ustawienia — reorganizacja
Sekcja „Czat z AI (Claude)" przeniesiona z karty Preferencje do karty Agent AI — wszystkie klucze API Anthropic w jednym miejscu.
Zlecenia — podkolumny adresowe
Kolumny adresowe (14 Podjęcie kont., 15 Adres załadunku, 21 Złożenie kont.) zostały podzielone na 6 podkolumn: Zakład, Ulica, Miasto, Kod, Województwo, Kraj. Każda kolumna wyświetla dane w wewnętrznym gridzie z pionowymi separatorami.
Zlecenia — inteligentny parser adresów
Parser adresów został przepisany z precyzyjnym rozpoznawaniem województw (dokładne nazwy zamiast częściowych wzorców). Eliminuje to mylenie miast jak „Gorzów Wielkopolski" z województwem „Wielkopolskie". Ulice bez nazwy firmy (np. „Przemyslowa 2", „Kasprzaka 6a") są poprawnie klasyfikowane. Adresy bez przecinków obsługiwane przez fallback na dzielenie po spacjach. Rozszerzona lista rozpoznawanych krajów.
WorkDesk — numer bookingu i spójny layout kart
Nagłówek karty zlecenia wyświetla teraz numer bookingu zamiast tematu emaila — ułatwia to identyfikację zlecenia na pierwszy rzut oka. Ujednolicono layout kart zleceń: spójne wyświetlanie danych, czytelne rozmieszczenie informacji. Wysokość kart zleceń w panelu bocznym zwiększona do 100px dla lepszej czytelności.
Zlecenia — ujednolicone kolumny 200px
Wszystkie kolumny w tabeli zleceń ustawione na jednolitą szerokość 200px. Podkolumny adresowe (Podjęcie kont., Adres załadunku, Złożenie kont.) również po 200px każda. Usunięto kolumny Stuffing address i Stuffing time jako zbędne.
Zlecenia — pełne nazwy kolumn i nowa kolumna
Polskie skróty w nagłówkach tabeli zamienione na pełne nazwy: „Nr zlecenia" → „Numer zlecenia", „Podjęcie kont." → „Podjęcie kontenera", „Godz. załadunku" → „Godzina załadunku" itd. Zmieniono kolejność kolumn portowych (Pier of loading za Port of loading) i dodano nową kolumnę Pier of discharge. Tabela wyświetla teraz 20 pozycji na stronę.
WorkDesk — sortowanie zleceń po dacie załadunku
Lista zleceń w panelu bocznym WorkDesk sortowana jest teraz po dacie i godzinie załadunku — najbliższe terminy względem aktualnego czasu wyświetlane są na górze. Zlecenia bez daty trafiają na koniec listy.
Plan załadunkowy — nowa tabela z kolumnami zleceń
Panel Plan załadunkowy przebudowany z nową tabelą o identycznej strukturze kolumn jak w panelu Zlecenia (33 kolumny z podkolumnami adresowymi). Tabela wyświetla zlecenia ze statusem „oczekujące na akceptację" przesłane z WorkDesk.
Zlecenia — czarne nagłówki kolumn
Tekst opisów kolumn (wiersze 2 i 3 nagłówka) wyświetlany teraz czarną czcionką zamiast szarej — poprawa czytelności. Wiersz numeracji kolumn pozostał bez zmian.
PdfViewer — komunikat o braku załącznika
Podgląd PDF rozróżnia teraz brak załącznika (HTTP 404 → „Brak załącznika PDF dla tego zlecenia") od innych błędów ładowania. Eliminuje to mylący ogólny komunikat o błędzie dla zleceń bez PDF.
Zlecenia — fallback nazwy zakładu
Kolumna „Zakład" w adresie załadunku wyświetla teraz nazwę zamawiającego (Shipper) jako fallback, gdy parser adresów nie wykryje nazwy firmy w adresie.
WorkDesk — poprawka przeciągania zleceń
Naprawiono mechanizm drag-and-drop — dynamiczne pomiary wysokości kart (zamiast stałej wartości) z uwzględnieniem poziomu zoom zapewniają prawidłowe upuszczanie zleceń na karty kierowców.