Auto-OCR załączników PDF, kolumny spedycyjne, Tablica zaznaczanie zakresem
Filip Borkowski, Backend/Frontend/Fullstack Engineer
Zadania — sortowanie i uproszczony widok
Panel zadań otrzymał sortowanie po kolumnach. Kliknięcie w nagłówek kolumny sortuje rosnąco, ponowne kliknięcie — malejąco, trzecie — resetuje sortowanie. Strzałka przy nazwie kolumny wskazuje aktualny kierunek.
Kolumna Priorytet wyświetla teraz zwykły tekst z kolorami zamiast edytowalnego selecta z ramką. Kolory priorytetów: Niski — szary, Średni — ciemny, Wysoki — pomarańczowy, Pilny — czerwony. Edycja priorytetów i przydzielonych osób możliwa jest wyłącznie przez dialog edycji.
Szablony dokumentów — zapis w bazie danych
Szablony dokumentów przeniesione z localStorage do bazy Supabase. Nowa tabela document_templates przechowuje nazwę, pola (JSONB), kategorię bazową oraz przypisanego kontrahenta. API CRUD obsługuje pełen cykl życia szablonu.
Pliki przykładowe (PDF, JPG, PNG) zapisywane są w Supabase Storage (bucket document-templates). Przy edycji szablonu plik jest automatycznie pobierany z bazy i wyświetlany w podglądzie, umożliwiając dalszą pracę z zaznaczaniem obszarów OCR.
Szablony — przypisanie kontrahenta
Edytor szablonów umożliwia teraz przypisanie kontrahenta z bazy. Dropdown wyświetla aktywnych kontrahentów z NIP-em. Powiązanie szablonu z kontrahentem pozwoli aplikacji automatycznie dopasowywać pola przy odczytywaniu przychodzących zleceń od danego kontrahenta.
Na kartach szablonów wyświetlany jest badge z nazwą przypisanego kontrahenta oraz oznaczenie czy szablon ma załączony dokument przykładowy.
Mapa — biały tag podmiotu
Tag podmiotu (entity) w liście pojazdów na mapie wyświetlany jest teraz jako biały tekst na czarnym tle zamiast dotychczasowego czarnego tekstu. Poprawia to czytelność przy ciemnym i jasnym motywie.
Asystent dokumentów — overlay przyklejony do dokumentu
Zaznaczone obszary pól (zielone prostokąty) w Asystencie dokumentów są teraz renderowane wewnątrz wrappera mediów zamiast pozycjonowania zewnętrznego. Overlay podąża za dokumentem 1:1 podczas scrollowania i zmiany zoom — zarówno dla PDF jak i obrazów. Usunięto setInterval do śledzenia pozycji DOM na rzecz czystego CSS (absolute inset-0 wewnątrz relative wrappera).
Agent AI — klucz API w ustawieniach konta
Nowa karta „Agent AI" w panelu ustawień konta umożliwia administratorom skonfigurowanie klucza API Anthropic bezpośrednio z poziomu aplikacji. Klucz jest zapisywany w bazie danych Supabase i używany przez wszystkie funkcje AI: OCR dokumentów, Asystent dokumentów oraz Chat AI. Nie trzeba już ustawiać zmiennej środowiskowej na serwerze — wystarczy wpisać klucz w ustawieniach.
Agent API — mutacje danych
Agent Query API obsługuje teraz operacje zapisu: insert, update i delete. Nowe źródło mutation pozwala agentowi AI na tworzenie, aktualizację i usuwanie rekordów w dozwolonych tabelach z walidacją filtrów bezpieczeństwa.
Szablony dokumentów — widok tabelaryczny
Lista szablonów dokumentów wyświetlana jest teraz w formie tabeli zamiast kart. Kolumny: Nazwa, Kategoria, Kontrahent, Pola, Obszary, Dokument i akcje. Kliknięcie wiersza otwiera edytor szablonu.
Zlecenia — 15 nowych kolumn spedycyjnych
Panel zleceń rozszerzony o kolumny spedycyjne: Haulier, Unifeeder booking no., Shipper, Consignee, Tracking ID, Shipper's ref., Port of loading, Port of discharge, Pier of loading, Pier of discharge, Vessel, ETD, ETA, Stuffing address, Stuffing date/time. Dodano również: Miasto początkowe, Kod miasta, Godzina załadunku, Typ kontenera, Plomba. Kolumna „Termin" przemianowana na „Termin załadunku".
Zlecenia — widoczność kolumn i nawigacja
Toggle widoczności kolumn z trzema trybami: „Wszystkie" (zaznacza wszystko), „Minimum" (tylko stałe kolumny), „Reset" (domyślne). Wszystkie kolumny domyślnie widoczne. Przyciski lewo/prawo umożliwiają przewijanie tabeli horyzontalnie przy dużej liczbie kolumn.
Zlecenia — automatyczne uzupełnianie pól
Formularze dodawania i edycji zleceń posiadają teraz auto-fill: podczas wpisywania wyświetlają się podpowiedzi z wartości już użytych w istniejących zleceniach. Działa dla miast, adresów, portów, pierów, vessel, haulier, shipper, consignee, typu kontenera, słów kluczowych i innych pól tekstowych.
Auto-OCR załączników PDF — dane spedycyjne z BOOKING NOTE
Nowy pipeline automatycznej ekstrakcji danych spedycyjnych z załączników PDF. Gdy przychodzi email z BOOKING NOTE od DP World/Unifeeder, system automatycznie:
- Zapisuje PDF w Supabase Storage i przypisuje do zlecenia
- Uruchamia OCR przez Claude Sonnet 4 na załączniku PDF
- Odczytuje 25+ pól spedycyjnych: vessel, port of loading/discharge, container type, consignee, shipper, haulier, ETD/ETA, gross weight, stuffing address i więcej
- Zapisuje dane bezpośrednio do tabeli
ordersw Supabase
OCR uzupełnia wyłącznie puste pola — nigdy nie nadpisuje istniejących danych. Endpoint /api/admin/inbound-emails/ocr-extract umożliwia ręczne uruchomienie batch OCR dla wszystkich załączników.
Tablica — zaznaczanie zakresem
Panel Tablica (Gantt chart) posiada teraz możliwość zaznaczania obiektów zakresem. Przeciągnięcie myszą tworzy prostokąt zaznaczenia, a wszystkie wiersze w obszarze zostają zaznaczone. Ctrl+klik dodaje/usuwa z zaznaczenia, Shift+klik zaznacza zakres. Pasek akcji wyświetla liczbę zaznaczonych elementów z przyciskami „Zaznacz wszystkie" i „Odznacz".
Zlecenia — sortowanie wszystkich kolumn
Każda kolumna w tabeli zleceń jest teraz sortowalna. Kliknięcie nagłówka sortuje rosnąco, ponowne — malejąco, trzecie — resetuje. Nagłówki kolumn zawijają tekst i mają pionowe linie oddzielające pola. Tabela ma naprzemienny kolor wierszy (zebra-striping) dla lepszej czytelności.
Mapa — ograniczenia ciężarówek
Naprawiono przycisk ograniczeń ciężarówek na mapie. Zapytania Overpass API dostosowują się teraz do widocznego obszaru mapy (viewport) zamiast odpytywać całą Polskę, co eliminowało timeouty. Cache per region z 15-minutowym TTL.
Auto-linkowanie PDF do zleceń
Webhook automatycznie przypisuje załączniki PDF do odpowiednich zleceń — zarówno dla emaili z jednym zleceniem, jak i z wieloma. Pliki zapisywane są w formacie {nrZlecenia}_{data}.pdf. Batch OCR uzupełnił dane spedycyjne w 250+ zleceniach.
WorkDesk — dane spedycyjne i status akceptacji
Panel WorkDesk wyświetla teraz pełne dane spedycyjne na kartach zleceń: vessel, typ kontenera, porty załadunku/rozładunku, shipper, consignee, ETD/ETA, wagę brutto i adres stuffingu. Po wysłaniu zlecenia do akceptacji z przypisanym kierowcą i pojazdem, status zmienia się na „Wysłano do akceptacji" i jest widoczny w panelu Zlecenia.
Tablica — data i godzina załadunku
Harmonogram Gantta wyświetla teraz datę i godzinę załadunku pod trasą w każdym wierszu. Panel szczegółów (po najechaniu) również pokazuje te dane.
Zlecenia — sticky nagłówki, kolumna Akcje i uppercase
Tabela zleceń posiada teraz zablokowane nagłówki: wiersz z opisami kolumn i wiersz z numeracją pozostają widoczne podczas scrollowania. Kolumna Akcje jest przypięta po prawej stronie z cieniem oddzielającym ją od reszty tabeli. Wszystkie dane w tabeli wyświetlane są wielkimi literami (uppercase). Przyciski przewijania tabeli w lewo/prawo działają poprawnie.
Zlecenia — podgląd PDF w dialogu
Przycisk „Podgląd PDF" w akcjach zlecenia otwiera teraz plik PDF wewnątrz strony w dialogu (iframe 85% wysokości ekranu) zamiast pobierać go lub otwierać w nowej karcie. Dialog automatycznie zwalnia pamięć po zamknięciu.
WorkDesk — uproszczony panel zleceń
Prawy panel zleceń w WorkDesk wyświetla teraz tylko kluczowe informacje: numer zlecenia, kontrahent, data i godzina załadunku oraz miejsce załadunku. Usunięto rozbudowaną siatkę danych spedycyjnych na rzecz kompaktowego widoku.