Konfiguracja zmian i kalendarza produkcyjnego

Zrzuty ekranu w tym dokumencie pochodzą z rzeczywiście uruchomionej aplikacji (dotnet run, http://localhost:5112), otwartej w osobnym oknie przeglądarki Google Chrome.

Strona definiuje dwa powiązane ze sobą elementy, na których opiera się cały późniejszy harmonogram i planowanie kontroli:

  1. Zmiany robocze — nazwane bloki godzinowe (np. ranna, popołudniowa, nocna), które standardowo obowiązują automatycznie w każdy dzień roboczy (pon–pt).
  2. Kalendarz produkcyjny — widok miesięczny, w którym można oznaczyć wyjątki od tego domyślnego wzorca: dni wolne (święta), dodatkowe dni robocze, albo dzień z innym niż zwykle zestawem obowiązujących zmian.

Dane z tej strony są wykorzystywane przez procesor planowania badań (generowanie Badanie) oraz przez widoki dostępności — bez poprawnie skonfigurowanych zmian i kalendarza system nie wie, kiedy i na jaką zmianę zaplanować kontrolę.

Widok ogólny

Lista zmian i kalendarz

Strona składa się z dwóch paneli:

  • Zmiany (góra) — tabela wszystkich zdefiniowanych zmian roboczych.
  • Kalendarz (dół) — widok miesięczny z legendą kolorów i siatką dni.

Panel „Zmiany”

Tabela zawiera kolumny: Kod, Opis, Godziny, Typ (Standardowa / niestandardowa), Status (Aktywna / Nieaktywna) oraz Akcje (ikony edycji ✏️ i usunięcia 🗑️ w każdym wierszu). W nagłówku panelu, po prawej stronie, znajduje się przycisk „+ NOWA ZMIANA”.

Dodawanie nowej zmiany

Kliknięcie „+ NOWA ZMIANA” otwiera formularz:

Dialog dodawania nowej zmiany

PoleTypOpis
Kod (2 litery)tekst, wymaganySkrócony identyfikator zmiany, maks. 2 znaki (np. RA, PP, NO). Wyświetlany w kolorowej „plakietce” w tabeli i w komórkach kalendarza.
Opistekst, wymaganyPełna nazwa zmiany (np. „Zmiana I (ranna)”), maks. 100 znaków.
Godzina odgodzina (format 24h)Początek zmiany.
Godzina dogodzina (format 24h)Koniec zmiany.
StandardowaprzełącznikWłączony = zmiana powtarza się automatycznie w każdy dzień roboczy bez konieczności ręcznego przypisywania jej w kalendarzu.
AktywnaprzełącznikWyłączenie ukrywa zmianę z bieżącego planowania bez usuwania jej historii.

Ważna zasada: jeśli „Godzina do” jest wcześniejsza niż lub równa „Godzinie od”, aplikacja automatycznie traktuje zmianę jako przechodzącą przez północ (np. zmiana nocna 22:00–06:00) — nie trzeba tego nigdzie osobno zaznaczać, wynika to wprost z godzin.

Zapis przyciskiem „ZAPISZ” dodaje zmianę do tabeli i od razu udostępnia ją do wyboru w kalendarzu poniżej. „ANULUJ” zamyka okno bez zapisu.

Edycja i usuwanie zmiany

Ikona ołówka w wierszu otwiera ten sam formularz wypełniony danymi istniejącej zmiany. Ikona kosza usuwa zmianę po potwierdzeniu w oknie dialogowym — usunięcie zmiany, która jest już przypisana do dni w kalendarzu, warto poprzedzić sprawdzeniem, czy nie jest nigdzie krytycznie wykorzystywana (np. w już zaplanowanych badaniach).

Panel „Kalendarz”

Legenda nad siatką dni tłumaczy kolory:

  • Dzień roboczy (domyślnie) — dzień powszedni bez jawnego wyjątku; obowiązują na nim wszystkie zmiany oznaczone jako „Standardowa”.
  • Dzień wolny (domyślnie) — weekend, na którym domyślnie nie planuje się kontroli.
  • Dodatkowy roboczy — jawny wyjątek: dzień normalnie wolny, ale ręcznie oznaczony jako roboczy (np. odrabianie soboty).
  • Dzień wolny (wyjątek) — jawny wyjątek: dzień normalnie roboczy, ręcznie oznaczony jako wolny (np. święto).

Nawigacja miesiącami odbywa się strzałkami przy nazwie miesiąca, a przycisk „DZIŚ” wraca do bieżącego miesiąca. Każda komórka dnia pokazuje numer dnia oraz kolorowe plakietki kodów zmian, które go dotyczą.

Konfiguracja pojedynczego dnia

Kliknięcie dowolnego dnia w siatce otwiera okno wyjątku dla tego konkretnego dnia:

Dialog konfiguracji dnia w kalendarzu

Elementy okna:

  1. Nagłówek z datą (np. „środa, 29 lipca 2026”).
  2. Alert informacyjny — mówi wprost, czy dzień ma już zapisany jawny wyjątek, czy obowiązuje na nim domyślny wzorzec (np. „Brak wyjątku – obowiązuje domyślny wzorzec: dzień roboczy”).
  3. Przełącznik „Dzień roboczy / Dzień wolny” — nadpisuje domyślny charakter dnia.
  4. Opis (opcjonalnie) — pole tekstowe, np. „Święto”, „Pracująca sobota – odrabianie za …”, maks. 300 znaków.
  5. „Zmiany obowiązujące tego dnia” — lista checkboxów z wszystkimi zdefiniowanymi zmianami (widoczna, gdy dzień jest ustawiony jako roboczy); każdy checkbox pozwala włączyć/wyłączyć konkretną zmianę tylko dla tego dnia, niezależnie od jej ustawienia „Standardowa”.
  6. Przyciski „ANULUJ” / „ZAPISZ”, a dla dni z już istniejącym wyjątkiem dodatkowo „Przywróć domyślny wzorzec” (czerwony przycisk kasujący ręczny wyjątek i przywracający zachowanie standardowe).

Zależność: aby zaznaczyć konkretną zmianę jako obowiązującą danego dnia, musi ona najpierw istnieć w panelu „Zmiany” powyżej — lista checkboxów w oknie dnia jest budowana właśnie z tamtej tabeli. Dlatego przy konfiguracji od zera najpierw uzupełnia się zmiany, dopiero potem ustawia się wyjątki w kalendarzu.

Typowy scenariusz konfiguracji

  1. Dodaj wszystkie zmiany robocze zakładu (np. RA/PP/NO albo jedną zmianę dzienną) i oznacz je jako Standardowa + Aktywna.
  2. Sprawdź w kalendarzu, że dni powszednie automatycznie pokazują te zmiany, a weekendy są puste.
  3. Oznacz w kalendarzu święta i inne dni wolne od pracy jako „Dzień wolny (wyjątek)”.
  4. Jeśli zakład pracuje w wybraną sobotę (odrabianie), oznacz ten dzień jako „Dodatkowy roboczy” i zaznacz, które zmiany go obowiązują.
  5. Wróć do tej strony za każdym razem, gdy zmienia się harmonogram pracy zakładu (nowa zmiana, zmiana godzin, nowe święto ustawowe) — to jedyne miejsce, w którym te ustawienia się definiuje.