Okna czasowe dostaw w opisywanym wdrożeniu wybiera się z siatki kafelków, a nie wpisuje jako godzinę. Po wskazaniu dnia w kalendarzu formularz pokazuje okna tego dnia, a część z nich bywa szara. Szare kafelki nie reagują na kliknięcie, a dymek podaje powód.
Okno czasowe jest wolne, dopóki liczba oczekujących awizacji nachodzących na jego godziny jest mniejsza od limitu z konfiguracji. Okna zajęte i minione są wygaszone, a w dniu bieżącym nie da się wybrać godziny, która już minęła. Tryb na dziś odblokowuje w kalendarzu bieżący dzień roboczy bez osobnego formularza.
Termin awizacji wybiera się z siatki okien magazynu
Okna czasowe są listą w słowniku konfiguracji, osobną dla każdej pary obiekt-magazyn. Każde okno ma godzinę początku i końca, a okno wyłączone w słowniku nie jest w ogóle pokazywane. Po wyborze dnia formularz pobiera okna dla wybranego dnia oraz dla magazynu i obiektu i rysuje kafelki z godziną początku każdego okna.
Formularz sam zaznacza pierwsze wolne okno. Pod siatką pole Okno czasowe: pokazuje początek i koniec terminu. Koniec to początek okna powiększony o czas trwania awizacji, domyślnie 30 minut. Definicję okna opisuje strona o oknie czasowym, a pola jego definicji strona o definiowaniu okien czasowych. Tu zostajemy przy tym, co robi formularz.
Okno jest wolne, dopóki zajętość jest mniejsza od limitu
Zajętość okna liczy się z awizacji oczekujących na realizację, których czas nachodzi na okno. Awizacja dłuższa niż jedno okno liczy się w każdym oknie, na które nachodzi. Limit jest jedną wartością w konfiguracji, więc jego zmiana to zmiana wpisu, a nie formularza.
Wolne okno jest klikalne. Okno zajęte albo minione jest wygaszone i nie reaguje na kliknięcie, a dymek podaje powód: „Okno zajęte (liczba/limit)” albo „Godzina już minęła”. Cztery stany okna zestawia tabela.
| Stan okna | Warunek | Dymek | Czy można kliknąć |
|---|---|---|---|
| Wolne | Liczba zajętych jest mniejsza od limitu, a godzina nie minęła | Brak | Tak |
| Zajęte | Liczba zajętych jest równa limitowi albo większa | „Okno zajęte (liczba/limit)” | Nie |
| Minione (tylko dziś) | Godzina początku jest wcześniejsza niż bieżąca | „Godzina już minęła” | Nie |
| Wybrane | Pierwsze wolne okno albo okno kliknięte przez użytkownika | Brak | Tak, zmienia wybór |
Okno jest wolne, dopóki liczba oczekujących awizacji nachodzących na jego godziny jest mniejsza od limitu z konfiguracji, a dziś nie da się wybrać godziny, która już minęła.
Siatka pokazuje zajętość i pomaga wybrać termin, ale nie jest twardą rezerwacją okna. Opis tego, co liczy licznik zajętości, kończy się na oczekujących awizacjach nachodzących na okno.
Godziny minione są wygaszone w obu trybach
Dla dnia bieżącego okno, którego godzina początku już minęła, jest wygaszone. Dla pozostałych dni to sprawdzenie niczego nie zmienia. Wygaszanie działa tak samo w trybie zwykłym i w trybie na dziś.
Dla użytkownika oznacza to, że przed południem szare są kafelki wcześniejsze, a wolne zostają późniejsze, o ile limit na to pozwala. Dymek „Godzina już minęła” podaje przyczynę, więc nikt nie musi zgadywać, dlaczego okno nie reaguje.
Tryb na dziś odblokowuje bieżący dzień roboczy
Kalendarz pozwala wybrać dzień do 30 dni naprzód i wyłącza soboty i niedziele na kolejne tygodnie. Najwcześniejszym dniem do wyboru jest domyślnie następny dzień roboczy. Tryb na dziś odblokowuje bieżący dzień roboczy parametrem adresu pozycji menu.
Pozycja menu Nowa awizacja - na dziś (u dostawcy: Nowa awizacja na dziś) jest w menu logistyki i w menu dostawcy. Otwiera ten sam formularz co zwykła awizacja, tylko z parametrem, więc w opisywanym wdrożeniu tryb na dziś nie ma osobnej kopii formularza. Parametr zmienia wyłącznie dolną granicę kalendarza, a zapis i walidacja działają tak samo, podobnie jak okna.
Po otwarciu formularza, także w trybie na dziś, siatka pokazuje okna dnia następnego. Dzisiejszy dzień trzeba wybrać w kalendarzu. Formularz potrafi też przyjąć termin wskazany w adresie i zaznaczyć odpowiadające mu okno. Liczbę pozostałą do dostawy w pozycjach zamówienia, z których powstaje awizacja, wyjaśnia strona o ilości pozostałej do dostawy.
Gdy w dniu nie ma wolnych okien, formularz mówi to wprost
Gdy w wybranym dniu żadne okno nie nadaje się do wyboru, pod siatką pojawia się komunikat: „Brak wolnych okien czasowych w wybranym dniu. Wybierz inny dzień.” Użytkownik wie więc, że przeszkodą jest dzień, a nie sam formularz.
Przykład (dane fikcyjne): jest godzina 10:10, a Dostawca Testowy wybiera w menu Nowa awizacja na dziś. Formularz otwiera się na dniu następnym, ale dzisiejszy dzień jest w kalendarzu klikalny, więc dostawca go wybiera. Kafelki od 08:00 do 10:00 są szare z dymkiem „Godzina już minęła”, a kafelek 11:00 jest szary z dymkiem „Okno zajęte (3/3)”. Wartość 3/3 jest tylko przykładem i nie oznacza rzeczywistego limitu.
Kafelek 10:30 formularz zaznacza sam jako pierwsze wolne okno, a pole Okno czasowe: pokazuje 10:30 - 11:00, bo domyślny czas trwania to 30 minut. Gdyby wszystkie okna dnia były nieprzydatne, pod siatką pojawiłby się komunikat o braku wolnych okien i prośba o wybór innego dnia.
Limit i czas trwania zmienia się we wpisie, a nie w formularzu
Limit okna jest jedną wartością w konfiguracji, więc zmiana limitu nie wymaga zmiany formularza. Czas trwania awizacji ma w formularzu wartość domyślną 30 minut. Zależność długości okna od rodzaju dostawy opisuje strona o rodzajach dostaw.
Mechanizm formularza przewiduje też reguły ze słownika, które mogą wydłużać czas trwania. Każda reguła wskazuje pole formularza i zapytanie zwracające liczbę minut. Gdy pole jest wypełnione, obowiązuje dłuższy czas, a zmiana takiego pola przelicza koniec terminu. Czy reguły są włączone, zależy od konfiguracji, a ta strona nie opisuje ich jako działających w opisywanym wdrożeniu.
Cztery pytania przed ustawieniem siatki w innym zakładzie
Na etapie analizy pomagają cztery pytania. Obsługę wizyty po przyjeździe na bramę opisuje strona o portierni i oknie zmiany statusu, a decyzję, kiedy system tylko ostrzega, a kiedy blokuje, strona o dostawie większej niż zamówienie. Statusy awizacji, od których zależy zajętość okna, wyjaśnia strona o dwóch statusach awizacji.
- Czy limit równoległych awizacji ma być jeden dla całego zakładu, czy osobny dla każdego magazynu albo punktu rozładunku?
- W jakich statusach awizacja ma zajmować okno, a od którego momentu je zwalniać?
- Kto i do której godziny może awizować na bieżący dzień?
- Jak system ma powiedzieć użytkownikowi, dlaczego okno jest niedostępne?