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:
- Zmiany robocze — nazwane bloki godzinowe (np. ranna, popołudniowa, nocna), które standardowo obowiązują automatycznie w każdy dzień roboczy (pon–pt).
- 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

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:

| Pole | Typ | Opis |
|---|---|---|
| Kod (2 litery) | tekst, wymagany | Skrócony identyfikator zmiany, maks. 2 znaki (np. RA, PP, NO). Wyświetlany w kolorowej „plakietce” w tabeli i w komórkach kalendarza. |
| Opis | tekst, wymagany | Pełna nazwa zmiany (np. „Zmiana I (ranna)”), maks. 100 znaków. |
| Godzina od | godzina (format 24h) | Początek zmiany. |
| Godzina do | godzina (format 24h) | Koniec zmiany. |
| Standardowa | przełącznik | Włączony = zmiana powtarza się automatycznie w każdy dzień roboczy bez konieczności ręcznego przypisywania jej w kalendarzu. |
| Aktywna | przełącznik | Wyłą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:

Elementy okna:
- Nagłówek z datą (np. „środa, 29 lipca 2026”).
- 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”).
- Przełącznik „Dzień roboczy / Dzień wolny” — nadpisuje domyślny charakter dnia.
- Opis (opcjonalnie) — pole tekstowe, np. „Święto”, „Pracująca sobota – odrabianie za …”, maks. 300 znaków.
- „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”.
- 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
- Dodaj wszystkie zmiany robocze zakładu (np. RA/PP/NO albo jedną zmianę dzienną) i oznacz je jako Standardowa + Aktywna.
- Sprawdź w kalendarzu, że dni powszednie automatycznie pokazują te zmiany, a weekendy są puste.
- Oznacz w kalendarzu święta i inne dni wolne od pracy jako „Dzień wolny (wyjątek)”.
- Jeśli zakład pracuje w wybraną sobotę (odrabianie), oznacz ten dzień jako „Dodatkowy roboczy” i zaznacz, które zmiany go obowiązują.
- 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.
